Compare commits
24 Commits
Author | SHA1 | Date | |
---|---|---|---|
5010a148a7 | |||
19e060c31e | |||
3da5fbdc6d | |||
09e69ec0b6 | |||
2fe764ba79 | |||
222a6d47c5 | |||
d6e2b237c7 | |||
54e52ce1ce | |||
b851252996 | |||
77dcac7895 | |||
4db884e00c | |||
2831c806f1 | |||
9dc3378f65 | |||
87be9a6a59 | |||
876630c70d | |||
fe7d656235 | |||
2316595ab9 | |||
238e92a6bf | |||
c2218f810d | |||
84a9198a62 | |||
809da6d1b5 | |||
73e99e7d66 | |||
0842b4fec4 | |||
cc122c2dff |
13
.editorconfig
Normal file
@ -0,0 +1,13 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.{lua,luacheckrc}]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
31
.luacheckrc
Normal file
@ -0,0 +1,31 @@
|
||||
std = "lua51+minetest"
|
||||
unused_args = false
|
||||
allow_defined_top = true
|
||||
max_line_length = 90
|
||||
|
||||
stds.minetest = {
|
||||
read_globals = {
|
||||
"DIR_DELIM",
|
||||
"minetest",
|
||||
"core",
|
||||
"dump",
|
||||
"vector",
|
||||
"nodeupdate",
|
||||
"VoxelManip",
|
||||
"VoxelArea",
|
||||
"PseudoRandom",
|
||||
"ItemStack",
|
||||
"default",
|
||||
table = {
|
||||
fields = {
|
||||
"copy",
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
read_globals = {
|
||||
"farming",
|
||||
"intllib",
|
||||
"mg",
|
||||
}
|
9
.pre-commit-config.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v2.1.0
|
||||
hooks:
|
||||
- id: end-of-file-fixer
|
||||
- id: trailing-whitespace
|
||||
|
||||
- id: mixed-line-ending
|
||||
args: [--fix=lf]
|
15
.travis.yml
Normal file
@ -0,0 +1,15 @@
|
||||
language: generic
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- luarocks
|
||||
|
||||
install:
|
||||
- pyenv global 3.6.3
|
||||
- pip3 install --user pre-commit
|
||||
- luarocks install --local luacheck
|
||||
|
||||
script:
|
||||
- $HOME/.local/bin/pre-commit run --all-files
|
||||
- $HOME/.luarocks/bin/luacheck .
|
40
CHANGELOG.md
@ -1,10 +1,40 @@
|
||||
# Change Log
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.0.0] - 2017-02-19
|
||||
## [Unreleased]
|
||||
|
||||
- Initial versioned release.
|
||||
## [1.1.0] - 2019-03-23
|
||||
|
||||
### Added
|
||||
|
||||
- Brazilian and Dutch translations.
|
||||
|
||||
### Changed
|
||||
|
||||
- Ores are now slower to mine and cannot be mined using wooden tools anymore.
|
||||
- Updated intllib support to avoid using deprecated functions.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Deprecated hoes to follow Minetest Game's deprecation of hoes
|
||||
made of "rare" materials.
|
||||
- Hoes are still available in existing worlds, but they
|
||||
cannot be crafted anymore.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Hoes now use the `farming` mod's handling function and can no longer
|
||||
turn desert sand into dirt.
|
||||
- Handle tin which is now included in [Minetest Game](https://github.com/minetest/minetest_game).
|
||||
If it is detected, then the tin nodes and items from More Ores won't be registered.
|
||||
|
||||
## 1.0.0 - 2017-02-19
|
||||
|
||||
- Initial versioned release.
|
||||
|
||||
[Unreleased]: https://github.com/minetest-mods/moreores/compare/v1.1.0...HEAD
|
||||
[1.1.0]: https://github.com/minetest-mods/moreores/compare/v1.0.0...v1.1.0
|
||||
|
10
CONTRIBUTING.md
Normal file
@ -0,0 +1,10 @@
|
||||
# Contributing to More Ores
|
||||
|
||||
Thank you for your interest in More Ores! Before contributing,
|
||||
be sure to know about these few guidelines:
|
||||
|
||||
- Contributions have to be licensed under the zlib license (or compatible)
|
||||
for code, and CC BY-SA 3.0 (or compatible) for assets.
|
||||
- Make sure to update the changelog, keeping the
|
||||
[changelog format](http://keepachangelog.com/en/1.0.0/) we use.
|
||||
- Don't bump the version yourself. Maintainers will do this when necessary.
|
@ -1,6 +1,6 @@
|
||||
# zlib license
|
||||
|
||||
Copyright (c) 2011-2017 Hugo Locurcio and contributors
|
||||
Copyright © 2011-2019 Hugo Locurcio and contributors
|
||||
|
||||
**This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.**
|
||||
|
||||
|
72
README.md
@ -1,10 +1,74 @@
|
||||
# More Ores
|
||||
|
||||
More Ores for [Minetest](http://minetest.net), a free and open source infinite
|
||||
More Ores for [Minetest](https://www.minetest.net/), a free and open source infinite
|
||||
world block sandbox game.
|
||||
|
||||
To install, just clone this repository into your "mods" directory.
|
||||
[**Forum topic**](https://forum.minetest.net/viewtopic.php?f=11&t=549)
|
||||
|
||||
More Ores code is licensed under the zlib license, textures are by Calinou and are licensed under CC BY-SA 3.0 Unported.
|
||||
## Installation
|
||||
|
||||
**Forum topic:** <https://forum.minetest.net/viewtopic.php?f=11&t=549>
|
||||
### Download the mod
|
||||
|
||||
To install More Ores, clone this Git repository into your Minetest's `mods/`
|
||||
directory:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/minetest-mods/moreores.git
|
||||
```
|
||||
|
||||
You can also
|
||||
[download a ZIP archive](https://github.com/minetest-mods/moreores/archive/master.zip)
|
||||
of More Ores. If you do so, you will need to extract the archive then rename
|
||||
the resulting folder from `moreores-master` to `moreores` – this is
|
||||
**absolutely** required, as the mod won't work otherwise.
|
||||
|
||||
### Enable the mod
|
||||
|
||||
Once you have installed More Ores, you need to enable it in Minetest.
|
||||
The procedure is as follows:
|
||||
|
||||
#### Using the client's main menu
|
||||
|
||||
This is the easiest way to enable More Ores when playing in singleplayer
|
||||
(or on a server hosted from a client).
|
||||
|
||||
1. Start Minetest and switch to the **Local Game** tab.
|
||||
2. Select the world you want to enable More Ores in.
|
||||
3. Click **Configure**, then enable `moreores` by double-clicking it
|
||||
(or ticking the **Enabled** checkbox).
|
||||
4. Save the changes, then start a game on the world you enabled More Ores on.
|
||||
5. More Ores should now be running on your world.
|
||||
|
||||
#### Using a text editor
|
||||
|
||||
This is the recommended way to enable the mod on a server without using a GUI.
|
||||
|
||||
1. Make sure Minetest is not currently running (otherwise, it will overwrite
|
||||
the changes when exiting).
|
||||
2. Open the world's `world.mt` file using a text editor.
|
||||
3. Add the following line at the end of the file:
|
||||
|
||||
```text
|
||||
load_mod_moreores = true
|
||||
```
|
||||
|
||||
If the line is already present in the file, then replace `false` with `true`
|
||||
on that line.
|
||||
|
||||
4. Save the file, then start a game on the world you enabled More Ores on.
|
||||
5. More Ores should now be running on your world.
|
||||
|
||||
## Version compatibility
|
||||
|
||||
More Ores is currently primarily tested with Minetest 0.4.17.
|
||||
It may or may not work with newer or older versions. Issues arising in older
|
||||
versions than 0.4.17 will generally not be fixed.
|
||||
|
||||
## License
|
||||
|
||||
Copyright © 2011-2019 Hugo Locurcio and contributors
|
||||
|
||||
- More Ores code is licensed under the zlib license, see
|
||||
[`LICENSE.md`](LICENSE.md) for details.
|
||||
- Unless otherwise specified, More Ores textures are licensed under
|
||||
[CC BY-SA 3.0 Unported](https://creativecommons.org/licenses/by-sa/3.0/).
|
||||
|
@ -1,2 +1,3 @@
|
||||
default
|
||||
mg?
|
||||
farming?
|
||||
|
321
init.lua
@ -3,87 +3,72 @@
|
||||
** More Ores **
|
||||
By Calinou, with the help of Nore.
|
||||
|
||||
Copyright (c) 2011-2017 Hugo Locurcio and contributors.
|
||||
Copyright © 2011-2019 Hugo Locurcio and contributors.
|
||||
Licensed under the zlib license. See LICENSE.md for more information.
|
||||
=====================================================================
|
||||
--]]
|
||||
|
||||
moreores = {}
|
||||
|
||||
local S
|
||||
if minetest.get_modpath("intllib") then
|
||||
S = intllib.Getter()
|
||||
else
|
||||
S = function(s) return s end
|
||||
end
|
||||
|
||||
local modpath = minetest.get_modpath("moreores")
|
||||
|
||||
local S, NS = dofile(modpath .. "/intllib.lua")
|
||||
moreores.S = S
|
||||
moreores.NS = NS
|
||||
|
||||
dofile(modpath .. "/_config.txt")
|
||||
|
||||
-- `mg` support:
|
||||
-- `mg` mapgen support
|
||||
if minetest.get_modpath("mg") then
|
||||
dofile(modpath .. "/mg.lua")
|
||||
end
|
||||
|
||||
-- Utility functions
|
||||
-- =================
|
||||
|
||||
local default_stone_sounds = default.node_sound_stone_defaults()
|
||||
local default_metal_sounds = default.node_sound_metal_defaults()
|
||||
|
||||
local function hoe_on_use(itemstack, user, pointed_thing, uses)
|
||||
local pt = pointed_thing
|
||||
-- Check if pointing at a node:
|
||||
if not pt then
|
||||
return
|
||||
-- Returns the crafting recipe table for a given material and item.
|
||||
local function get_recipe(material, item)
|
||||
if item == "sword" then
|
||||
return {
|
||||
{material},
|
||||
{material},
|
||||
{"group:stick"},
|
||||
}
|
||||
end
|
||||
if pt.type ~= "node" then
|
||||
return
|
||||
if item == "shovel" then
|
||||
return {
|
||||
{material},
|
||||
{"group:stick"},
|
||||
{"group:stick"},
|
||||
}
|
||||
end
|
||||
|
||||
local under = minetest.get_node(pt.under)
|
||||
local pos = {x = pt.under.x, y = pt.under.y + 1, z = pt.under.z}
|
||||
local above = minetest.get_node(pos)
|
||||
|
||||
-- Return if any of the nodes is not registered:
|
||||
if not minetest.registered_nodes[under.name] then return end
|
||||
if not minetest.registered_nodes[above.name] then return end
|
||||
|
||||
-- Check if the node above the pointed thing is air:
|
||||
if above.name ~= "air" then return end
|
||||
|
||||
-- Check if pointing at dirt:
|
||||
if minetest.get_item_group(under.name, "soil") ~= 1 then return end
|
||||
|
||||
-- Turn the node into soil, wear out item and play sound:
|
||||
minetest.set_node(pt.under, {name ="farming:soil"})
|
||||
minetest.sound_play("default_dig_crumbly", {pos = pt.under, gain = 0.5})
|
||||
itemstack:add_wear(65535 / (uses - 1))
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local function get_recipe(c, name)
|
||||
if name == "sword" then
|
||||
return {{c}, {c}, {"group:stick"}}
|
||||
if item == "axe" then
|
||||
return {
|
||||
{material, material},
|
||||
{material, "group:stick"},
|
||||
{"", "group:stick"},
|
||||
}
|
||||
end
|
||||
if name == "shovel" then
|
||||
return {{c}, {"group:stick"}, {"group:stick"}}
|
||||
if item == "pick" then
|
||||
return {
|
||||
{material, material, material},
|
||||
{"", "group:stick", ""},
|
||||
{"", "group:stick", ""},
|
||||
}
|
||||
end
|
||||
if name == "axe" then
|
||||
return {{c, c}, {c, "group:stick"}, {"", "group:stick"}}
|
||||
if item == "block" then
|
||||
return {
|
||||
{material, material, material},
|
||||
{material, material, material},
|
||||
{material, material, material},
|
||||
}
|
||||
end
|
||||
if name == "pick" then
|
||||
return {{c, c, c}, {"", "group:stick", ""}, {"", "group:stick", ""}}
|
||||
end
|
||||
if name == "hoe" then
|
||||
return {{c, c}, {"", "group:stick"}, {"", "group:stick"}}
|
||||
end
|
||||
if name == "block" then
|
||||
return {{c, c, c}, {c, c, c}, {c, c, c}}
|
||||
end
|
||||
if name == "lockedchest" then
|
||||
return {{"group:wood", "group:wood", "group:wood"}, {"group:wood", c, "group:wood"}, {"group:wood", "group:wood", "group:wood"}}
|
||||
if item == "lockedchest" then
|
||||
return {
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
{"group:wood", material, "group:wood"},
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
@ -95,15 +80,14 @@ local function add_ore(modname, description, mineral_name, oredef)
|
||||
local item_base = tool_base .. mineral_name
|
||||
local ingot = item_base .. "_ingot"
|
||||
local lump_item = item_base .. "_lump"
|
||||
local ingotcraft = ingot
|
||||
|
||||
if oredef.makes.ore then
|
||||
minetest.register_node(modname .. ":mineral_" .. mineral_name, {
|
||||
description = S("%s Ore"):format(S(description)),
|
||||
tiles = {"default_stone.png^" .. modname .. "_mineral_" .. mineral_name .. ".png"},
|
||||
groups = {cracky = 3},
|
||||
groups = {cracky = 2},
|
||||
sounds = default_stone_sounds,
|
||||
drop = lump_item
|
||||
drop = lump_item,
|
||||
})
|
||||
end
|
||||
|
||||
@ -111,8 +95,8 @@ local function add_ore(modname, description, mineral_name, oredef)
|
||||
local block_item = item_base .. "_block"
|
||||
minetest.register_node(block_item, {
|
||||
description = S("%s Block"):format(S(description)),
|
||||
tiles = { img_base .. "_block.png" },
|
||||
groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level= 2},
|
||||
tiles = {img_base .. "_block.png"},
|
||||
groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2},
|
||||
sounds = default_metal_sounds,
|
||||
})
|
||||
minetest.register_alias(mineral_name.."_block", block_item)
|
||||
@ -124,7 +108,7 @@ local function add_ore(modname, description, mineral_name, oredef)
|
||||
minetest.register_craft( {
|
||||
output = ingot .. " 9",
|
||||
recipe = {
|
||||
{ block_item }
|
||||
{block_item},
|
||||
}
|
||||
})
|
||||
end
|
||||
@ -140,7 +124,7 @@ local function add_ore(modname, description, mineral_name, oredef)
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = ingot,
|
||||
recipe = lump_item
|
||||
recipe = lump_item,
|
||||
})
|
||||
end
|
||||
end
|
||||
@ -158,7 +142,7 @@ local function add_ore(modname, description, mineral_name, oredef)
|
||||
output = "default:chest_locked",
|
||||
recipe = {
|
||||
{ingot},
|
||||
{"default:chest"}
|
||||
{"default:chest"},
|
||||
}
|
||||
})
|
||||
minetest.register_craft( {
|
||||
@ -179,9 +163,9 @@ local function add_ore(modname, description, mineral_name, oredef)
|
||||
inventory_image = toolimg_base .. tool_name .. ".png",
|
||||
tool_capabilities = {
|
||||
max_drop_level = 3,
|
||||
groupcaps = tooldef
|
||||
groupcaps = tooldef,
|
||||
},
|
||||
sound = {breaks = "default_tool_breaks"},
|
||||
sound = {breaks = "default_tool_breaks"},
|
||||
}
|
||||
|
||||
if tool_name == "sword" then
|
||||
@ -206,141 +190,154 @@ local function add_ore(modname, description, mineral_name, oredef)
|
||||
tdef.full_punch_interval = oredef.full_punch_interval
|
||||
tdef.tool_capabilities.damage_groups = oredef.damage_groups
|
||||
tdef.description = S("%s Shovel"):format(S(description))
|
||||
tdef.wield_image = toolimg_base .. tool_name .. ".png^[transformR90"
|
||||
end
|
||||
|
||||
if tool_name == "hoe" then
|
||||
tdef.description = S("%s Hoe"):format(S(description))
|
||||
local uses = tooldef.uses
|
||||
tooldef.uses = nil
|
||||
tdef.on_use = function(itemstack, user, pointed_thing)
|
||||
return hoe_on_use(itemstack, user, pointed_thing, uses)
|
||||
end
|
||||
tdef.wield_image = toolimg_base .. tool_name .. ".png^[transformR90"
|
||||
end
|
||||
|
||||
local fulltool_name = tool_base .. tool_name .. tool_post
|
||||
minetest.register_tool(fulltool_name, tdef)
|
||||
minetest.register_alias(tool_name .. tool_post, fulltool_name)
|
||||
if oredef.makes.ingot then
|
||||
minetest.register_craft({
|
||||
output = fulltool_name,
|
||||
recipe = get_recipe(ingot, tool_name)
|
||||
})
|
||||
|
||||
if tool_name == "hoe" and minetest.get_modpath("farming") then
|
||||
tdef.max_uses = tooldef.uses
|
||||
tdef.description = S("%s Hoe"):format(S(description))
|
||||
farming.register_hoe(fulltool_name, tdef)
|
||||
end
|
||||
|
||||
-- Hoe registration is handled above.
|
||||
-- There are no crafting recipes for hoes, as they have been
|
||||
-- deprecated from Minetest Game:
|
||||
-- https://github.com/minetest/minetest_game/commit/9c459e77a
|
||||
if tool_name ~= "hoe" then
|
||||
minetest.register_tool(fulltool_name, tdef)
|
||||
|
||||
if oredef.makes.ingot then
|
||||
minetest.register_craft({
|
||||
output = fulltool_name,
|
||||
recipe = get_recipe(ingot, tool_name)
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_alias(tool_name .. tool_post, fulltool_name)
|
||||
end
|
||||
end
|
||||
|
||||
-- Add everything:
|
||||
local modname = "moreores"
|
||||
|
||||
local oredefs = {
|
||||
silver = {
|
||||
description = "Silver",
|
||||
makes = {ore = true, block = true, lump = true, ingot = true, chest = true},
|
||||
oredef = {clust_scarcity = moreores.silver_chunk_size * moreores.silver_chunk_size * moreores.silver_chunk_size,
|
||||
oredef = {
|
||||
clust_scarcity = moreores.silver_chunk_size ^ 3,
|
||||
clust_num_ores = moreores.silver_ore_per_chunk,
|
||||
clust_size = moreores.silver_chunk_size,
|
||||
y_min = moreores.silver_min_depth,
|
||||
y_max = moreores.silver_max_depth
|
||||
},
|
||||
clust_size = moreores.silver_chunk_size,
|
||||
y_min = moreores.silver_min_depth,
|
||||
y_max = moreores.silver_max_depth,
|
||||
},
|
||||
tools = {
|
||||
pick = {
|
||||
cracky = {times = {[1] = 2.60, [2] = 1.00, [3] = 0.60}, uses = 100, maxlevel= 1}
|
||||
cracky = {times = {[1] = 2.60, [2] = 1.00, [3] = 0.60}, uses = 100, maxlevel = 1},
|
||||
},
|
||||
hoe = {
|
||||
uses = 300
|
||||
uses = 300,
|
||||
},
|
||||
shovel = {
|
||||
crumbly = {times = {[1] = 1.10, [2] = 0.40, [3] = 0.25}, uses = 100, maxlevel= 1}
|
||||
crumbly = {times = {[1] = 1.10, [2] = 0.40, [3] = 0.25}, uses = 100, maxlevel = 1},
|
||||
},
|
||||
axe = {
|
||||
choppy = {times = {[1] = 2.50, [2] = 0.80, [3] = 0.50}, uses = 100, maxlevel= 1},
|
||||
fleshy = {times = {[2] = 1.10, [3] = 0.60}, uses = 100, maxlevel= 1}
|
||||
choppy = {times = {[1] = 2.50, [2] = 0.80, [3] = 0.50}, uses = 100, maxlevel = 1},
|
||||
fleshy = {times = {[2] = 1.10, [3] = 0.60}, uses = 100, maxlevel = 1}
|
||||
},
|
||||
sword = {
|
||||
fleshy = {times = {[2] = 0.70, [3] = 0.30}, uses = 100, maxlevel= 1},
|
||||
snappy = {times = {[2] = 0.70, [3] = 0.30}, uses = 100, maxlevel= 1},
|
||||
choppy = {times = {[3] = 0.80}, uses = 100, maxlevel= 0}
|
||||
fleshy = {times = {[2] = 0.70, [3] = 0.30}, uses = 100, maxlevel = 1},
|
||||
snappy = {times = {[2] = 0.70, [3] = 0.30}, uses = 100, maxlevel = 1},
|
||||
choppy = {times = {[3] = 0.80}, uses = 100, maxlevel = 0},
|
||||
},
|
||||
},
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy = 6},
|
||||
},
|
||||
tin = {
|
||||
description = "Tin",
|
||||
makes = {ore = true, block = true, lump = true, ingot = true, chest = false},
|
||||
oredef = {clust_scarcity = moreores.tin_chunk_size * moreores.tin_chunk_size * moreores.tin_chunk_size,
|
||||
clust_num_ores = moreores.tin_ore_per_chunk,
|
||||
clust_size = moreores.tin_chunk_size,
|
||||
y_min = moreores.tin_min_depth,
|
||||
y_max = moreores.tin_max_depth
|
||||
},
|
||||
tools = {},
|
||||
},
|
||||
mithril = {
|
||||
description = "Mithril",
|
||||
makes = {ore = true, block = true, lump = true, ingot = true, chest = false},
|
||||
oredef = {clust_scarcity = moreores.mithril_chunk_size * moreores.mithril_chunk_size * moreores.mithril_chunk_size,
|
||||
oredef = {
|
||||
clust_scarcity = moreores.mithril_chunk_size ^ 3,
|
||||
clust_num_ores = moreores.mithril_ore_per_chunk,
|
||||
clust_size = moreores.mithril_chunk_size,
|
||||
y_min = moreores.mithril_min_depth,
|
||||
y_max = moreores.mithril_max_depth
|
||||
},
|
||||
clust_size = moreores.mithril_chunk_size,
|
||||
y_min = moreores.mithril_min_depth,
|
||||
y_max = moreores.mithril_max_depth,
|
||||
},
|
||||
tools = {
|
||||
pick = {
|
||||
cracky = {times = {[1] = 2.25, [2] = 0.55, [3] = 0.35}, uses = 200, maxlevel= 1}
|
||||
cracky = {times = {[1] = 2.25, [2] = 0.55, [3] = 0.35}, uses = 200, maxlevel = 2}
|
||||
},
|
||||
hoe = {
|
||||
uses = 1000
|
||||
uses = 1000,
|
||||
},
|
||||
shovel = {
|
||||
crumbly = {times = {[1] = 0.70, [2] = 0.35, [3] = 0.20}, uses = 200, maxlevel= 1}
|
||||
crumbly = {times = {[1] = 0.70, [2] = 0.35, [3] = 0.20}, uses = 200, maxlevel = 2},
|
||||
},
|
||||
axe = {
|
||||
choppy = {times = {[1] = 1.75, [2] = 0.45, [3] = 0.45}, uses = 200, maxlevel= 1},
|
||||
fleshy = {times = {[2] = 0.95, [3] = 0.30}, uses = 200, maxlevel= 1}
|
||||
choppy = {times = {[1] = 1.75, [2] = 0.45, [3] = 0.45}, uses = 200, maxlevel = 2},
|
||||
fleshy = {times = {[2] = 0.95, [3] = 0.30}, uses = 200, maxlevel = 1}
|
||||
},
|
||||
sword = {
|
||||
fleshy = {times = {[2] = 0.65, [3] = 0.25}, uses = 200, maxlevel= 1},
|
||||
snappy = {times = {[2] = 0.70, [3] = 0.25}, uses = 200, maxlevel= 1},
|
||||
choppy = {times = {[3] = 0.65}, uses = 200, maxlevel= 0}
|
||||
}
|
||||
fleshy = {times = {[2] = 0.65, [3] = 0.25}, uses = 200, maxlevel = 2},
|
||||
snappy = {times = {[2] = 0.70, [3] = 0.25}, uses = 200, maxlevel = 2},
|
||||
choppy = {times = {[3] = 0.65}, uses = 200, maxlevel = 0},
|
||||
},
|
||||
},
|
||||
full_punch_interval = 0.45,
|
||||
damage_groups = {fleshy = 9},
|
||||
}
|
||||
}
|
||||
|
||||
for orename,def in pairs(oredefs) do
|
||||
add_ore(modname, def.description, orename, def)
|
||||
-- If tin is available in the `default` mod, don't register More Ores' variant of tin
|
||||
local default_tin
|
||||
if minetest.registered_items["default:tin_ingot"] then
|
||||
default_tin = true
|
||||
else
|
||||
default_tin = false
|
||||
end
|
||||
|
||||
-- Copper rail (special node):
|
||||
minetest.register_craft({
|
||||
output = "moreores:copper_rail 24",
|
||||
recipe = {
|
||||
{"default:copper_ingot", "", "default:copper_ingot"},
|
||||
{"default:copper_ingot", "group:stick", "default:copper_ingot"},
|
||||
{"default:copper_ingot", "", "default:copper_ingot"}
|
||||
if default_tin then
|
||||
minetest.register_alias("moreores:mineral_tin", "default:stone_with_tin")
|
||||
minetest.register_alias("moreores:tin_lump", "default:tin_lump")
|
||||
minetest.register_alias("moreores:tin_ingot", "default:tin_ingot")
|
||||
minetest.register_alias("moreores:tin_block", "default:tinblock")
|
||||
else
|
||||
oredefs.tin = {
|
||||
description = "Tin",
|
||||
makes = {ore = true, block = true, lump = true, ingot = true, chest = false},
|
||||
oredef = {
|
||||
clust_scarcity = moreores.tin_chunk_size ^ 3,
|
||||
clust_num_ores = moreores.tin_ore_per_chunk,
|
||||
clust_size = moreores.tin_chunk_size,
|
||||
y_min = moreores.tin_min_depth,
|
||||
y_max = moreores.tin_max_depth,
|
||||
},
|
||||
tools = {},
|
||||
}
|
||||
})
|
||||
|
||||
-- Bronze has some special cases, because it is made from copper and tin:
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "default:bronze_ingot 3",
|
||||
recipe = {
|
||||
"moreores:tin_ingot",
|
||||
"default:copper_ingot",
|
||||
"default:copper_ingot",
|
||||
}
|
||||
})
|
||||
-- Bronze has some special cases, because it is made from copper and tin
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "default:bronze_ingot 3",
|
||||
recipe = {
|
||||
"moreores:tin_ingot",
|
||||
"default:copper_ingot",
|
||||
"default:copper_ingot",
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
-- Unique node:
|
||||
-- Copper rail (unique node)
|
||||
minetest.register_node("moreores:copper_rail", {
|
||||
description = S("Copper Rail"),
|
||||
drawtype = "raillike",
|
||||
tiles = {"moreores_copper_rail.png", "moreores_copper_rail_curved.png", "moreores_copper_rail_t_junction.png", "moreores_copper_rail_crossing.png"},
|
||||
tiles = {
|
||||
"moreores_copper_rail.png",
|
||||
"moreores_copper_rail_curved.png",
|
||||
"moreores_copper_rail_t_junction.png",
|
||||
"moreores_copper_rail_crossing.png",
|
||||
},
|
||||
inventory_image = "moreores_copper_rail.png",
|
||||
wield_image = "moreores_copper_rail.png",
|
||||
paramtype = "light",
|
||||
@ -348,10 +345,17 @@ minetest.register_node("moreores:copper_rail", {
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
||||
fixed = {
|
||||
-1/2,
|
||||
-1/2,
|
||||
-1/2,
|
||||
1/2,
|
||||
-1/2 + 1/16,
|
||||
1/2,
|
||||
},
|
||||
},
|
||||
sounds = default_metal_sounds,
|
||||
groups = {bendy = 2,snappy = 1,dig_immediate = 2,rail= 1, connect_to_raillike = 1},
|
||||
groups = {bendy = 2, snappy = 1, dig_immediate = 2, rail = 1, connect_to_raillike = 1},
|
||||
mesecons = {
|
||||
effector = {
|
||||
action_on = function(pos, node)
|
||||
@ -365,7 +369,20 @@ minetest.register_node("moreores:copper_rail", {
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "moreores:copper_rail 24",
|
||||
recipe = {
|
||||
{"default:copper_ingot", "", "default:copper_ingot"},
|
||||
{"default:copper_ingot", "group:stick", "default:copper_ingot"},
|
||||
{"default:copper_ingot", "", "default:copper_ingot"},
|
||||
},
|
||||
})
|
||||
|
||||
if minetest.setting_getbool("log_mods") then
|
||||
for orename, def in pairs(oredefs) do
|
||||
-- Register everything
|
||||
add_ore("moreores", def.description, orename, def)
|
||||
end
|
||||
|
||||
if minetest.settings:get_bool("log_mods") then
|
||||
minetest.log("action", S("[moreores] loaded."))
|
||||
end
|
||||
|
44
intllib.lua
Normal file
@ -0,0 +1,44 @@
|
||||
-- Fallback functions for when `intllib` is not installed.
|
||||
-- Code released under Unlicense <http://unlicense.org>.
|
||||
|
||||
-- Get the latest version of this file at:
|
||||
-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
|
||||
|
||||
local function format(str, ...)
|
||||
local args = { ... }
|
||||
local function repl(escape, open, num, close)
|
||||
if escape == "" then
|
||||
local replacement = tostring(args[tonumber(num)])
|
||||
if open == "" then
|
||||
replacement = replacement..close
|
||||
end
|
||||
return replacement
|
||||
else
|
||||
return "@"..open..num..close
|
||||
end
|
||||
end
|
||||
return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
|
||||
end
|
||||
|
||||
local gettext, ngettext
|
||||
if minetest.get_modpath("intllib") then
|
||||
if intllib.make_gettext_pair then
|
||||
-- New method using gettext.
|
||||
gettext, ngettext = intllib.make_gettext_pair()
|
||||
else
|
||||
-- Old method using text files.
|
||||
gettext = intllib.Getter()
|
||||
end
|
||||
end
|
||||
|
||||
-- Fill in missing functions.
|
||||
|
||||
gettext = gettext or function(msgid, ...)
|
||||
return format(msgid, ...)
|
||||
end
|
||||
|
||||
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
|
||||
return format(n==1 and msgid or msgid_plural, ...)
|
||||
end
|
||||
|
||||
return gettext, ngettext
|
@ -10,7 +10,6 @@
|
||||
%s Shovel = %sschaufel
|
||||
%s Axe = %saxt
|
||||
%s Sword = %sschwert
|
||||
%s Hoe = %shacke
|
||||
|
||||
Copper = Kupfer
|
||||
Tin = Zinn
|
||||
|
@ -18,4 +18,4 @@ Silver = Argento
|
||||
Gold = Oro
|
||||
Mithril = Mithril
|
||||
|
||||
Copper Rail = Binario di rame
|
||||
Copper Rail = Binario di rame
|
||||
|
19
locale/nl.txt
Normal file
@ -0,0 +1,19 @@
|
||||
[moreores] loaded. = [moreores] geladen.
|
||||
|
||||
%s Ore = %s Erts
|
||||
%s Lump = %s Klomp
|
||||
%s Ingot = %s Staaf
|
||||
%s Block = %s Blok
|
||||
%s Pickaxe = %s Pikhouweel
|
||||
%s Shovel = %s Schep
|
||||
%s Axe = %s Bijl
|
||||
%s Sword = %s Zwaard
|
||||
|
||||
Copper = Koper
|
||||
Tin = Tin
|
||||
Bronze = Brons
|
||||
Silver = Silver
|
||||
Gold = Goud
|
||||
Mithril = Mithril
|
||||
|
||||
Copper Rail = Koperen Spoor
|
21
locale/pt_br.txt
Normal file
@ -0,0 +1,21 @@
|
||||
# Translation by github.com/caiorrs
|
||||
|
||||
[moreores] loaded. = [moreores] carregado.
|
||||
|
||||
%s Ore = Minério de %s
|
||||
%s Lump = Pepita de %s
|
||||
%s Ingot = Lingote de %s
|
||||
%s Block = Bloco de %s
|
||||
%s Pickaxe = Picareta de %s
|
||||
%s Shovel = Pá de %s
|
||||
%s Axe = Machado de %s
|
||||
%s Sword = Espada de %s
|
||||
|
||||
Copper = Cobre
|
||||
Tin = Estanho
|
||||
Bronze = Bronze
|
||||
Silver = Prata
|
||||
Gold = Ouro
|
||||
Mithril = Mitrilo
|
||||
|
||||
Copper Rail = Trilho de Cobre
|
32
mg.lua
@ -1,24 +1,26 @@
|
||||
--[[
|
||||
More Ores: `mg` mod support
|
||||
|
||||
Copyright (c) 2011-2017 Hugo Locurcio and contributors.
|
||||
Copyright © 2011-2019 Hugo Locurcio and contributors.
|
||||
Licensed under the zlib license. See LICENSE.md for more information.
|
||||
--]]
|
||||
|
||||
mg.register_ore({
|
||||
name = "moreores:mineral_tin",
|
||||
wherein = "default:stone",
|
||||
seeddiff = 8,
|
||||
maxvdistance = 10.5,
|
||||
maxheight = 8,
|
||||
seglenghtn = 15,
|
||||
seglenghtdev = 6,
|
||||
segincln = 0,
|
||||
segincldev = 0.6,
|
||||
turnangle = 57,
|
||||
forkturnangle = 57,
|
||||
numperblock = 2
|
||||
})
|
||||
if not minetest.registered_items["default:tin_ingot"] then
|
||||
mg.register_ore({
|
||||
name = "moreores:mineral_tin",
|
||||
wherein = "default:stone",
|
||||
seeddiff = 8,
|
||||
maxvdistance = 10.5,
|
||||
maxheight = 8,
|
||||
seglenghtn = 15,
|
||||
seglenghtdev = 6,
|
||||
segincln = 0,
|
||||
segincldev = 0.6,
|
||||
turnangle = 57,
|
||||
forkturnangle = 57,
|
||||
numperblock = 2
|
||||
})
|
||||
end
|
||||
|
||||
mg.register_ore({
|
||||
name = "moreores:mineral_silver",
|
||||
|
Before Width: | Height: | Size: 269 B After Width: | Height: | Size: 267 B |
Before Width: | Height: | Size: 249 B After Width: | Height: | Size: 246 B |
Before Width: | Height: | Size: 267 B After Width: | Height: | Size: 263 B |
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 306 B |
Before Width: | Height: | Size: 228 B After Width: | Height: | Size: 225 B |
Before Width: | Height: | Size: 265 B After Width: | Height: | Size: 261 B |
Before Width: | Height: | Size: 274 B After Width: | Height: | Size: 267 B |
Before Width: | Height: | Size: 201 B After Width: | Height: | Size: 200 B |