This commit is contained in:
Jat15 2020-12-27 15:59:43 +01:00
commit 36aa87812e
46 changed files with 624 additions and 350 deletions

13
.editorconfig Normal file
View 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

33
.luacheckrc Normal file
View File

@ -0,0 +1,33 @@
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 = {
"carts",
"farming",
"frame",
"mg",
"toolranks",
}

15
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,15 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.3.0
hooks:
- id: fix-byte-order-marker
- id: end-of-file-fixer
- id: trailing-whitespace
- id: mixed-line-ending
args: [--fix=lf]
- repo: https://github.com/Calinou/pre-commit-luacheck
rev: v1.0.0
hooks:
- id: luacheck

16
.travis.yml Normal file
View File

@ -0,0 +1,16 @@
dist: bionic
language: python
python:
- 3.7.1
install:
- sudo apt-get update -qq
- sudo apt-get install -qqq luarocks
- pip3 install pre-commit
- luarocks install --local luacheck
script:
# All linters are run with pre-commit hooks
- export PATH="$HOME/.luarocks/bin:$PATH"
- pre-commit run --all-files

View File

@ -1,10 +1,66 @@
# Change Log # Changelog
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/) 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/). and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [1.0.0] - 2017-02-19 ## [Unreleased]
### Added
- More Ores tools now have [`toolranks`](https://github.com/lisacvuk/minetest-toolranks) support.
- Hungarian translation.
### Changed
- Migrated translations to the
[Minetest translation file format](https://rubenwardy.com/minetest_modding_book/lua_api.html#translation-file-format).
## [2.0.0] - 2019-11-25
### Added
- More Ores nodes/items/tools can now be placed in item frames
from the [`frame`](https://github.com/minetest-mods/frame) mod.
- Polish translation.
### Changed
- The minimum supported Minetest version is now 5.0.0.
- Copper rails are now registered using functions from the `carts` mod,
making them interoperate seamlessly with default rails.
- Copper rails can no longer be placed in the air.
## [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. - Initial versioned release.
[Unreleased]: https://github.com/minetest-mods/moreores/compare/v2.0.0...HEAD
[2.0.0]: https://github.com/minetest-mods/moreores/compare/v1.1.0...v2.0.0
[1.1.0]: https://github.com/minetest-mods/moreores/compare/v1.0.0...v1.1.0

View File

@ -1,10 +1,10 @@
# Contribution Guide # Contributing to More Ores
Thank you for your interest in this mod! Before contributing, be sure to know Thank you for your interest in More Ores! Before contributing,
about these few guidelines: be sure to know about these few guidelines:
- Contributions have to be under the zlib license (or compatible) for code, - Contributions have to be licensed under the zlib license (or compatible)
and CC BY-SA 3.0 license (or compatible) for assets. for code, and CC BY-SA 3.0 (or compatible) for assets.
- Make sure to update the change log, keeping the - Make sure to update the changelog, keeping the
[change log format](http://keepachangelog.com/) we use. [changelog format](http://keepachangelog.com/en/1.0.0/) we use.
- Don't bump the version yourself. Maintainers will do this when necessary. - Don't bump the version yourself. Maintainers will do this when necessary.

View File

@ -1,6 +1,6 @@
# zlib license # zlib license
Copyright (c) 2011-2017 Hugo Locurcio and contributors Copyright © 2011-2020 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.** **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.**

View File

@ -1,10 +1,72 @@
# More Ores # 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. 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.
### 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 5.1.0.
It may or may not work with newer or older versions. Issues arising in older
versions than 5.0.0 will generally not be fixed.
## License
Copyright © 2011-2020 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/).

View File

@ -1,4 +0,0 @@
default
mg?
moreblocks?
stairs?

View File

@ -1 +0,0 @@
Adds new Ore types.

333
init.lua
View File

@ -3,92 +3,74 @@
** More Ores ** ** More Ores **
By Calinou, with the help of Nore. By Calinou, with the help of Nore.
Copyright (c) 2011-2017 Hugo Locurcio and contributors. Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
===================================================================== =====================================================================
--]] --]]
moreores = {} moreores = {}
local default_tin = false
if minetest.registered_items["default:tin_ingot"] then
default_tin = true
end
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 modpath = minetest.get_modpath("moreores")
local S = minetest.get_translator("moreores")
moreores.S = S
dofile(modpath .. "/_config.txt") dofile(modpath .. "/_config.txt")
-- `mg` support: -- `mg` mapgen support
if minetest.get_modpath("mg") then if minetest.get_modpath("mg") then
dofile(modpath .. "/mg.lua") dofile(modpath .. "/mg.lua")
end end
-- Utility functions -- `frame` support
-- ================= local use_frame = minetest.get_modpath("frame")
local default_stone_sounds = default.node_sound_stone_defaults() local default_stone_sounds = default.node_sound_stone_defaults()
local default_metal_sounds = default.node_sound_metal_defaults() local default_metal_sounds = default.node_sound_metal_defaults()
local function hoe_on_use(itemstack, user, pointed_thing, uses) -- Returns the crafting recipe table for a given material and item.
local pt = pointed_thing local function get_recipe(material, item)
-- Check if pointing at a node: if item == "sword" then
if not pt then return {
return {material},
{material},
{"group:stick"},
}
end end
if pt.type ~= "node" then if item == "shovel" then
return return {
{material},
{"group:stick"},
{"group:stick"},
}
end end
if item == "axe" then
local under = minetest.get_node(pt.under) return {
local pos = {x = pt.under.x, y = pt.under.y + 1, z = pt.under.z} {material, material},
local above = minetest.get_node(pos) {material, "group:stick"},
{"", "group:stick"},
-- 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"}}
end end
if name == "shovel" then if item == "pick" then
return {{c}, {"group:stick"}, {"group:stick"}} return {
{material, material, material},
{"", "group:stick", ""},
{"", "group:stick", ""},
}
end end
if name == "axe" then if item == "block" then
return {{c, c}, {c, "group:stick"}, {"", "group:stick"}} return {
{material, material, material},
{material, material, material},
{material, material, material},
}
end end
if name == "pick" then if item == "lockedchest" then
return {{c, c, c}, {"", "group:stick", ""}, {"", "group:stick", ""}} return {
end {"group:wood", "group:wood", "group:wood"},
if name == "hoe" then {"group:wood", material, "group:wood"},
return {{c, c}, {"", "group:stick"}, {"", "group:stick"}} {"group:wood", "group:wood", "group:wood"},
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"}}
end end
end end
@ -100,24 +82,27 @@ local function add_ore(modname, description, mineral_name, oredef)
local item_base = tool_base .. mineral_name local item_base = tool_base .. mineral_name
local ingot = item_base .. "_ingot" local ingot = item_base .. "_ingot"
local lump_item = item_base .. "_lump" local lump_item = item_base .. "_lump"
local ingotcraft = ingot
if oredef.makes.ore then if oredef.makes.ore then
minetest.register_node(modname .. ":mineral_" .. mineral_name, { minetest.register_node(modname .. ":mineral_" .. mineral_name, {
description = S("%s Ore"):format(S(description)), description = S("@1 Ore", S(description)),
tiles = {"default_stone.png^" .. modname .. "_mineral_" .. mineral_name .. ".png"}, tiles = {"default_stone.png^" .. modname .. "_mineral_" .. mineral_name .. ".png"},
groups = {cracky = 3}, groups = {cracky = 2},
sounds = default_stone_sounds, sounds = default_stone_sounds,
drop = lump_item drop = lump_item,
}) })
if use_frame then
frame.register(modname .. ":mineral_" .. mineral_name)
end
end end
if oredef.makes.block then if oredef.makes.block then
local block_item = item_base .. "_block" local block_item = item_base .. "_block"
minetest.register_node(block_item, { minetest.register_node(block_item, {
description = S("%s Block"):format(S(description)), description = S("@1 Block", S(description)),
tiles = { img_base .. "_block.png" }, tiles = {img_base .. "_block.png"},
groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level= 2}, groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2},
sounds = default.node_sound_metal_defaults(), sounds = default.node_sound_metal_defaults(),
}) })
if minetest.get_modpath("moreblocks") then if minetest.get_modpath("moreblocks") then
@ -147,15 +132,18 @@ local function add_ore(modname, description, mineral_name, oredef)
minetest.register_craft( { minetest.register_craft( {
output = ingot .. " 9", output = ingot .. " 9",
recipe = { recipe = {
{ block_item } {block_item},
} }
}) })
end end
if use_frame then
frame.register(block_item)
end
end end
if oredef.makes.lump then if oredef.makes.lump then
minetest.register_craftitem(lump_item, { minetest.register_craftitem(lump_item, {
description = S("%s Lump"):format(S(description)), description = S("@1 Lump", S(description)),
inventory_image = img_base .. "_lump.png", inventory_image = img_base .. "_lump.png",
}) })
minetest.register_alias(mineral_name .. "_lump", lump_item) minetest.register_alias(mineral_name .. "_lump", lump_item)
@ -163,17 +151,23 @@ local function add_ore(modname, description, mineral_name, oredef)
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
output = ingot, output = ingot,
recipe = lump_item recipe = lump_item,
}) })
end end
if use_frame then
frame.register(lump_item)
end
end end
if oredef.makes.ingot then if oredef.makes.ingot then
minetest.register_craftitem(ingot, { minetest.register_craftitem(ingot, {
description = S("%s Ingot"):format(S(description)), description = S("@1 Ingot", S(description)),
inventory_image = img_base .. "_ingot.png", inventory_image = img_base .. "_ingot.png",
}) })
minetest.register_alias(mineral_name .. "_ingot", ingot) minetest.register_alias(mineral_name .. "_ingot", ingot)
if use_frame then
frame.register(ingot)
end
end end
if oredef.makes.chest then if oredef.makes.chest then
@ -181,7 +175,7 @@ local function add_ore(modname, description, mineral_name, oredef)
output = "default:chest_locked", output = "default:chest_locked",
recipe = { recipe = {
{ingot}, {ingot},
{"default:chest"} {"default:chest"},
} }
}) })
minetest.register_craft( { minetest.register_craft( {
@ -202,7 +196,7 @@ local function add_ore(modname, description, mineral_name, oredef)
inventory_image = toolimg_base .. tool_name .. ".png", inventory_image = toolimg_base .. tool_name .. ".png",
tool_capabilities = { tool_capabilities = {
max_drop_level = 3, max_drop_level = 3,
groupcaps = tooldef groupcaps = tooldef,
}, },
sound = {breaks = "default_tool_breaks"}, sound = {breaks = "default_tool_breaks"},
} }
@ -210,40 +204,43 @@ local function add_ore(modname, description, mineral_name, oredef)
if tool_name == "sword" then if tool_name == "sword" then
tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval
tdef.tool_capabilities.damage_groups = oredef.damage_groups tdef.tool_capabilities.damage_groups = oredef.damage_groups
tdef.description = S("%s Sword"):format(S(description)) tdef.description = S("@1 Sword", S(description))
end end
if tool_name == "pick" then if tool_name == "pick" then
tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval
tdef.tool_capabilities.damage_groups = oredef.damage_groups tdef.tool_capabilities.damage_groups = oredef.damage_groups
tdef.description = S("%s Pickaxe"):format(S(description)) tdef.description = S("@1 Pickaxe", S(description))
end end
if tool_name == "axe" then if tool_name == "axe" then
tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval
tdef.tool_capabilities.damage_groups = oredef.damage_groups tdef.tool_capabilities.damage_groups = oredef.damage_groups
tdef.description = S("%s Axe"):format(S(description)) tdef.description = S("@1 Axe", S(description))
end end
if tool_name == "shovel" then if tool_name == "shovel" then
tdef.full_punch_interval = oredef.full_punch_interval tdef.full_punch_interval = oredef.full_punch_interval
tdef.tool_capabilities.damage_groups = oredef.damage_groups tdef.tool_capabilities.damage_groups = oredef.damage_groups
tdef.description = S("%s Shovel"):format(S(description)) tdef.description = S("@1 Shovel", S(description))
tdef.wield_image = toolimg_base .. tool_name .. ".png^[transformR90" tdef.wield_image = toolimg_base .. tool_name .. ".png^[transformR90"
end end
if tool_name == "hoe" then local fulltool_name = tool_base .. tool_name .. tool_post
tdef.description = S("%s Hoe"):format(S(description))
local uses = tooldef.uses if tool_name == "hoe" and minetest.get_modpath("farming") then
tooldef.uses = nil tdef.max_uses = tooldef.uses
tdef.on_use = function(itemstack, user, pointed_thing) tdef.description = S("@1 Hoe", S(description))
return hoe_on_use(itemstack, user, pointed_thing, uses) farming.register_hoe(fulltool_name, tdef)
end
end end
local fulltool_name = tool_base .. tool_name .. tool_post -- 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) minetest.register_tool(fulltool_name, tdef)
minetest.register_alias(tool_name .. tool_post, fulltool_name)
if oredef.makes.ingot then if oredef.makes.ingot then
minetest.register_craft({ minetest.register_craft({
output = fulltool_name, output = fulltool_name,
@ -251,39 +248,51 @@ local function add_ore(modname, description, mineral_name, oredef)
}) })
end end
end end
end
-- Add everything: -- Toolranks support
local modname = "moreores" if minetest.get_modpath("toolranks") then
minetest.override_item(fulltool_name, {
original_description = tdef.description,
description = toolranks.create_description(tdef.description, 0, 1),
after_use = toolranks.new_afteruse})
end
minetest.register_alias(tool_name .. tool_post, fulltool_name)
if use_frame then
frame.register(fulltool_name)
end
end
end
local oredefs = { local oredefs = {
silver = { silver = {
description = "Silver", description = "Silver",
makes = {ore = true, block = true, lump = true, ingot = true, chest = true}, 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_num_ores = moreores.silver_ore_per_chunk,
clust_size = moreores.silver_chunk_size, clust_size = moreores.silver_chunk_size,
y_min = moreores.silver_min_depth, y_min = moreores.silver_min_depth,
y_max = moreores.silver_max_depth y_max = moreores.silver_max_depth,
}, },
tools = { tools = {
pick = { 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 = { hoe = {
uses = 300 uses = 300,
}, },
shovel = { 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 = { axe = {
choppy = {times = {[1] = 2.50, [2] = 0.80, [3] = 0.50}, 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} fleshy = {times = {[2] = 1.10, [3] = 0.60}, uses = 100, maxlevel = 1}
}, },
sword = { sword = {
fleshy = {times = {[2] = 0.70, [3] = 0.30}, uses = 100, maxlevel= 1}, fleshy = {times = {[2] = 0.70, [3] = 0.30}, uses = 100, maxlevel = 1},
snappy = {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} choppy = {times = {[3] = 0.80}, uses = 100, maxlevel = 0},
}, },
}, },
full_punch_interval = 1.0, full_punch_interval = 1.0,
@ -292,113 +301,103 @@ local oredefs = {
mithril = { mithril = {
description = "Mithril", description = "Mithril",
makes = {ore = true, block = true, lump = true, ingot = true, chest = false}, 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_num_ores = moreores.mithril_ore_per_chunk,
clust_size = moreores.mithril_chunk_size, clust_size = moreores.mithril_chunk_size,
y_min = moreores.mithril_min_depth, y_min = moreores.mithril_min_depth,
y_max = moreores.mithril_max_depth y_max = moreores.mithril_max_depth,
}, },
tools = { tools = {
pick = { pick = {
cracky = {times = {[1] = 2.25, [2] = 0.55, [3] = 0.35}, uses = 200, maxlevel= 2} cracky = {times = {[1] = 2.25, [2] = 0.55, [3] = 0.35}, uses = 200, maxlevel = 2}
}, },
hoe = { hoe = {
uses = 1000 uses = 1000,
}, },
shovel = { shovel = {
crumbly = {times = {[1] = 0.70, [2] = 0.35, [3] = 0.20}, uses = 200, maxlevel= 2} crumbly = {times = {[1] = 0.70, [2] = 0.35, [3] = 0.20}, uses = 200, maxlevel = 2},
}, },
axe = { axe = {
choppy = {times = {[1] = 1.75, [2] = 0.45, [3] = 0.45}, uses = 200, maxlevel= 2}, 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} fleshy = {times = {[2] = 0.95, [3] = 0.30}, uses = 200, maxlevel = 1}
}, },
sword = { sword = {
fleshy = {times = {[2] = 0.65, [3] = 0.25}, uses = 200, maxlevel= 2}, fleshy = {times = {[2] = 0.65, [3] = 0.25}, uses = 200, maxlevel = 2},
snappy = {times = {[2] = 0.70, [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} choppy = {times = {[3] = 0.65}, uses = 200, maxlevel = 0},
} },
}, },
full_punch_interval = 0.45, full_punch_interval = 0.45,
damage_groups = {fleshy = 9}, damage_groups = {fleshy = 9},
} }
} }
if not default_tin then -- If tin is available in the `default` mod, don't register More Ores' variant of tin
oredefs.tin = { local default_tin
description = "Tin", if minetest.registered_items["default:tin_ingot"] then
makes = {ore = true, block = true, lump = true, ingot = true, chest = false}, default_tin = true
oredef = {clust_scarcity = moreores.tin_chunk_size * moreores.tin_chunk_size * moreores.tin_chunk_size, else
clust_num_ores = moreores.tin_ore_per_chunk, default_tin = false
clust_size = moreores.tin_chunk_size,
y_min = moreores.tin_min_depth,
y_max = moreores.tin_max_depth
},
tools = {},
}
end end
for orename,def in pairs(oredefs) do
add_ore(modname, def.description, orename, def)
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 if default_tin then
minetest.register_alias("moreores:mineral_tin", "default:stone_with_tin") minetest.register_alias("moreores:mineral_tin", "default:stone_with_tin")
minetest.register_alias("moreores:tin_lump", "default:tin_lump") minetest.register_alias("moreores:tin_lump", "default:tin_lump")
minetest.register_alias("moreores:tin_ingot", "default:tin_ingot") minetest.register_alias("moreores:tin_ingot", "default:tin_ingot")
minetest.register_alias("moreores:tin_block", "default:tinblock") minetest.register_alias("moreores:tin_block", "default:tinblock")
else else
-- Bronze has some special cases, because it is made from copper and tin: oredefs.tin = {
minetest.register_craft( { 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", type = "shapeless",
output = "default:bronze_ingot 3", output = "default:bronze_ingot 3",
recipe = { recipe = {
"moreores:tin_ingot", "moreores:tin_ingot",
"default:copper_ingot", "default:copper_ingot",
"default:copper_ingot", "default:copper_ingot",
} },
}) })
end end
-- Unique node: -- Copper rail (unique node)
minetest.register_node("moreores:copper_rail", { if minetest.get_modpath("carts") then
carts:register_rail("moreores:copper_rail", {
description = S("Copper Rail"), description = S("Copper Rail"),
drawtype = "raillike", tiles = {
tiles = {"moreores_copper_rail.png", "moreores_copper_rail_curved.png", "moreores_copper_rail_t_junction.png", "moreores_copper_rail_crossing.png"}, "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", inventory_image = "moreores_copper_rail.png",
wield_image = "moreores_copper_rail.png", wield_image = "moreores_copper_rail.png",
paramtype = "light", groups = carts:get_rail_groups(),
sunlight_propagates = true, }, {})
walkable = false, end
selection_box = {
type = "fixed",
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},
mesecons = {
effector = {
action_on = function(pos, node)
minetest.get_meta(pos):set_string("cart_acceleration", "0.5")
end,
action_off = function(pos, node) minetest.register_craft({
minetest.get_meta(pos):set_string("cart_acceleration", "0") output = "moreores:copper_rail 24",
end, recipe = {
}, {"default:copper_ingot", "", "default:copper_ingot"},
{"default:copper_ingot", "group:stick", "default:copper_ingot"},
{"default:copper_ingot", "", "default:copper_ingot"},
}, },
}) })
for orename, def in pairs(oredefs) do
if minetest.settings:get_bool("log_mods") then -- Register everything
minetest.log("action", S("[moreores] loaded.")) add_ore("moreores", def.description, orename, def)
end end

View File

@ -1,24 +0,0 @@
# Translation by Xanthin
[moreores] loaded. = [moreores] geladen.
%s Ore = %serz
%s Lump = %sklumpen
%s Ingot = %sbarren
%s Block = %sblock
%s Block Slab =
%s Block Stair =
%s Pickaxe = %sspitzhacke
%s Shovel = %sschaufel
%s Axe = %saxt
%s Sword = %sschwert
%s Hoe = %shacke
Copper = Kupfer
Tin = Zinn
Bronze = Bronze
Silver = Silber
Gold = Gold
Mithril = Mithril
Copper Rail = Kupferschiene

View File

@ -1,23 +0,0 @@
# Translation by kaeza
[moreores] loaded. = [moreores] cargado.
%s Ore = Mineral de %s
%s Lump = Pepita de %s
%s Ingot = Lingote de %s
%s Block = Bloque de %s
%s Block Slab =
%s Block Stair =
%s Pickaxe = Pico de %s
%s Shovel = Pala de %s
%s Axe = Hacha de %s
%s Sword = Espada de %s
Copper = cobre
Tin = estaño
Bronze = bronce
Silver = plata
Gold = oro
Mithril = mitrilo
Copper Rail = Riel de Cobre

View File

@ -1,23 +0,0 @@
# Translation by Calinou
[moreores] loaded. = [moreores] a été chargé.
%s Ore = Minerai en %s
%s Lump = Roche en %s
%s Ingot = Lingot en %s
%s Block = Bloc en %s
%s Block Slab = Demi-dalle en %s
%s Block Stair = Escaliers en %s
%s Pickaxe = Pioche en %s
%s Shovel = Pelle en %s
%s Axe = Hache en %s
%s Sword = Épée en %s
Copper = cuivre
Tin = étain
Bronze = bronze
Silver = argent
Gold = or
Mithril = mithril
Copper Rail = Rail en cuivre

View File

@ -1,23 +0,0 @@
# Translation by Pagliaccio
[moreores] loaded. = [moreores] caricato.
%s Ore = Minerale di %s
%s Lump = %s grezzo
%s Ingot = Lingotto di %s
%s Block = Blocco di %s
%s Block Slab =
%s Block Stair =
%s Pickaxe = Piccone di %s
%s Shovel = Badile di %s
%s Axe = Ascia di %s
%s Sword = Spada di %s
Copper = Rame
Tin = Stagno
Bronze = Bronzo
Silver = Argento
Gold = Oro
Mithril = Mithril
Copper Rail = Binario di rame

22
locale/moreores.de.tr Normal file
View File

@ -0,0 +1,22 @@
# textdomain: moreores
# Translation by Xanthin
[moreores] loaded.=[moreores] geladen.
@1 Ore=@1erz
@1 Lump=@1klumpen
@1 Ingot=@1barren
@1 Block=@1block
@1 Pickaxe=@1spitzhacke
@1 Shovel=@1schaufel
@1 Axe=@1axt
@1 Sword=@1schwert
Copper=Kupfer
Tin=Zinn
Bronze=Bronze
Silver=Silber
Gold=Gold
Mithril=Mithril
Copper Rail=Kupferschiene

21
locale/moreores.en.tr Normal file
View File

@ -0,0 +1,21 @@
# textdomain: moreores
[moreores] loaded.=[moreores] loaded.
@1 Ore=@1 Ore
@1 Lump=@1 Lump
@1 Ingot=@1 Ingot
@1 Block=@1 Block
@1 Pickaxe=@1 Pickaxe
@1 Shovel=@1 Shovel
@1 Axe=@1 Axe
@1 Sword=@1 Sword
@1 Hoe=@1 Hoe
Copper=Copper
Tin=Tin
Bronze=Bronze
Silver=Silver
Gold=Gold
Mithril=Mithril
Copper Rail=Copper Rail

22
locale/moreores.es.tr Normal file
View File

@ -0,0 +1,22 @@
# textdomain: moreores
# Translation by kaeza
[moreores] loaded.=[moreores] cargado.
@1 Ore=Mineral de @1
@1 Lump=Pepita de @1
@1 Ingot=Lingote de @1
@1 Block=Bloque de @1
@1 Pickaxe=Pico de @1
@1 Shovel=Pala de @1
@1 Axe=Hacha de @1
@1 Sword=Espada de @1
Copper=cobre
Tin=estaño
Bronze=bronce
Silver=plata
Gold=oro
Mithril=mitrilo
Copper Rail=Riel de Cobre

23
locale/moreores.fr.tr Normal file
View File

@ -0,0 +1,23 @@
# textdomain: moreores
# Translation by Calinou
[moreores] loaded.=[moreores] a été chargé.
@1 Ore=Minerai en @1
@1 Lump=Roche en @1
@1 Ingot=Lingot en @1
@1 Block=Bloc en @1
@1 Pickaxe=Pioche en @1
@1 Shovel=Pelle en @1
@1 Axe=Hache en @1
@1 Sword=Épée en @1
@1 Hoe=Houe en @1
Copper=cuivre
Tin=étain
Bronze=bronze
Silver=argent
Gold=or
Mithril=mithril
Copper Rail=Rail en cuivre

22
locale/moreores.hu.tr Normal file
View File

@ -0,0 +1,22 @@
# textdomain: moreores
# Translation by An0n3m0us
[moreores] loaded.=[moreores] betöltve.
@1 Ore=@1 érc
@1 Lump=@1 rög
@1 Ingot=@1 öntvény
@1 Block=@1 blokk
@1 Pickaxe=@1 csákány
@1 Shovel=@1 ásó
@1 Axe=@1 fejsze
@1 Sword=@1 kard
Copper=Réz
Tin=Ón
Bronze=Bronz
Silver=Ezüst
Gold=Arany
Mithril=Mithril
Copper Rail=Réz sín

22
locale/moreores.it.tr Normal file
View File

@ -0,0 +1,22 @@
# textdomain: moreores
# Translation by Pagliaccio
[moreores] loaded.=[moreores] caricato.
@1 Ore=Minerale di @1
@1 Lump=@1 grezzo
@1 Ingot=Lingotto di @1
@1 Block=Blocco di @1
@1 Pickaxe=Piccone di @1
@1 Shovel=Badile di @1
@1 Axe=Ascia di @1
@1 Sword=Spada di @1
Copper=Rame
Tin=Stagno
Bronze=Bronzo
Silver=Argento
Gold=Oro
Mithril=Mithril
Copper Rail=Binario di rame

19
locale/moreores.nl.tr Normal file
View File

@ -0,0 +1,19 @@
# textdomain: moreores
[moreores] loaded.=[moreores] geladen.
@1 Ore=@1 Erts
@1 Lump=@1 Klomp
@1 Ingot=@1 Staaf
@1 Block=@1 Blok
@1 Pickaxe=@1 Pikhouweel
@1 Shovel=@1 Schep
@1 Axe=@1 Bijl
@1 Sword=@1 Zwaard
Copper=Koper
Tin=Tin
Bronze=Brons
Silver=Silver
Gold=Goud
Mithril=Mithril

22
locale/moreores.pl.tr Normal file
View File

@ -0,0 +1,22 @@
# textdomain: moreores
# Translation by mat9117
[moreores] loaded.=[moreores] załadowano.
@1 Ore=@1 Ruda
@1 Lump=@1 Bryłka
@1 Ingot=@1 Sztabka
@1 Block=@1 Blok
@1 Pickaxe=@1 Kilof
@1 Shovel=@1 Łopatka
@1 Axe=@1 Siekiera
@1 Sword=@1 Miecz
Copper=Miedź
Tin=Cyna
Bronze=Brąz
Silver=Srebro
Gold=Złoto
Mithril=Mithril
Copper Rail=Miedziany tor

23
locale/moreores.pt_br.tr Normal file
View File

@ -0,0 +1,23 @@
# textdomain: moreores
# Translation by github.com/caiorrs
[moreores] loaded.=[moreores] carregado.
@1 Ore=Minério de @1
@1 Lump=Pepita de @1
@1 Ingot=Lingote de @1
@1 Block=Bloco de @1
@1 Pickaxe=Picareta de @1
@1 Shovel=Pá de @1
@1 Axe=Machado de @1
@1 Sword=Espada de @1
Copper=Cobre
Tin=Estanho
Bronze=Bronze
Silver=Prata
Gold=Ouro
Mithril=Mitrilo
Copper Rail=Trilho de Cobre

28
locale/moreores.tr.tr Normal file
View File

@ -0,0 +1,28 @@
# textdomain: moreores
# Translation by Mahmutelmas06
# mahmutelmas06@hotmail.com
# Türkçe Çeviri
# Turkish translation
# Language 2 letter iso code is "tr"
[moreores] loaded.=[moreores] yüklendi.
@1 Ore=@1 madeni
@1 Lump=@1 yığını
@1 Ingot=@1 külçesi
@1 Block=@1 blok
@1 Pickaxe=@1 kazma
@1 Shovel=@1 kürek
@1 Axe=@1 balta
@1 Sword=@1 kılıç
Copper=Bakır
Tin=Kalay
Bronze=Bronz
Silver=Gümüş
Gold=Altın
Mithril=Mithril
Copper Rail=Bakır ray

View File

@ -1,23 +0,0 @@
# 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 Block Slab =
%s Block Stair =
%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

View File

@ -1,27 +0,0 @@
# Translation by Mahmutelmas06
# mahmutelmas06@hotmail.com
# Türkçe Çeviri
# Turkish translation
# Language 2 letter iso code is "tr"
[moreores] loaded. = [moreores] yüklendi.
%s Ore = %s madeni
%s Lump = %s yığını
%s Ingot = %s külçesi
%s Block = %s blok
%s Block Slab =
%s Block Stair =
%s Pickaxe = %s kazma
%s Shovel = %s kürek
%s Axe = %s balta
%s Sword = %s kılıç
Copper = Bakır
Tin = Kalay
Bronze = Bronz
Silver = Gümüş
Gold = Altın
Mithril = Mithril
Copper Rail = Bakır ray

2
mg.lua
View File

@ -1,7 +1,7 @@
--[[ --[[
More Ores: `mg` mod support More Ores: `mg` mod support
Copyright (c) 2011-2017 Hugo Locurcio and contributors. Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information. Licensed under the zlib license. See LICENSE.md for more information.
--]] --]]

View File

@ -1 +1,5 @@
name = moreores name = moreores
description = Adds new ore types.
depends = default
optional_depends = carts,farming,frame,mg,toolranks
min_minetest_version = 5.0.0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 B

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 B

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 B

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 B

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 B

After

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 B

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 B

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 B

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

After

Width:  |  Height:  |  Size: 199 B