diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..a41c697 --- /dev/null +++ b/.editorconfig @@ -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 diff --git a/.luacheckrc b/.luacheckrc new file mode 100644 index 0000000..16e7350 --- /dev/null +++ b/.luacheckrc @@ -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", +} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..2ac726e --- /dev/null +++ b/.pre-commit-config.yaml @@ -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 diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..32a776a --- /dev/null +++ b/.travis.yml @@ -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 diff --git a/CHANGELOG.md b/CHANGELOG.md index e3c422f..ee88f2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,66 @@ -# 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. \ No newline at end of file +### 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. + +[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 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 56fb504..e2a55fa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,10 +1,10 @@ -# Contribution Guide +# Contributing to More Ores -Thank you for your interest in this mod! Before contributing, be sure to know -about these few guidelines: +Thank you for your interest in More Ores! Before contributing, +be sure to know about these few guidelines: -- Contributions have to be under the zlib license (or compatible) for code, - and CC BY-SA 3.0 license (or compatible) for assets. -- Make sure to update the change log, keeping the - [change log format](http://keepachangelog.com/) we use. +- 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. diff --git a/LICENSE.md b/LICENSE.md index a3511ad..67f5f7f 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ # 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.** diff --git a/README.md b/README.md index bf702fc..3bb1cba 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,72 @@ # 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:** +### 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/). diff --git a/depends.txt b/depends.txt deleted file mode 100644 index cd75305..0000000 --- a/depends.txt +++ /dev/null @@ -1,4 +0,0 @@ -default -mg? -moreblocks? -stairs? \ No newline at end of file diff --git a/description.txt b/description.txt deleted file mode 100644 index 6bd1c7c..0000000 --- a/description.txt +++ /dev/null @@ -1 +0,0 @@ -Adds new Ore types. diff --git a/init.lua b/init.lua index 0353dff..a3fdc4e 100644 --- a/init.lua +++ b/init.lua @@ -3,92 +3,74 @@ ** More Ores ** 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. ===================================================================== --]] 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 S = minetest.get_translator("moreores") +moreores.S = S + dofile(modpath .. "/_config.txt") --- `mg` support: +-- `mg` mapgen support if minetest.get_modpath("mg") then dofile(modpath .. "/mg.lua") end --- Utility functions --- ================= +-- `frame` support +local use_frame = minetest.get_modpath("frame") 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 @@ -100,24 +82,27 @@ 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)), + description = S("@1 Ore", 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, }) + + if use_frame then + frame.register(modname .. ":mineral_" .. mineral_name) + end end if oredef.makes.block then 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}, + description = S("@1 Block", S(description)), + tiles = {img_base .. "_block.png"}, + groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2}, sounds = default.node_sound_metal_defaults(), }) if minetest.get_modpath("moreblocks") then @@ -147,15 +132,18 @@ local function add_ore(modname, description, mineral_name, oredef) minetest.register_craft( { output = ingot .. " 9", recipe = { - { block_item } + {block_item}, } }) end + if use_frame then + frame.register(block_item) + end end if oredef.makes.lump then minetest.register_craftitem(lump_item, { - description = S("%s Lump"):format(S(description)), + description = S("@1 Lump", S(description)), inventory_image = img_base .. "_lump.png", }) minetest.register_alias(mineral_name .. "_lump", lump_item) @@ -163,17 +151,23 @@ local function add_ore(modname, description, mineral_name, oredef) minetest.register_craft({ type = "cooking", output = ingot, - recipe = lump_item + recipe = lump_item, }) end + if use_frame then + frame.register(lump_item) + end end if oredef.makes.ingot then minetest.register_craftitem(ingot, { - description = S("%s Ingot"):format(S(description)), + description = S("@1 Ingot", S(description)), inventory_image = img_base .. "_ingot.png", }) minetest.register_alias(mineral_name .. "_ingot", ingot) + if use_frame then + frame.register(ingot) + end end if oredef.makes.chest then @@ -181,7 +175,7 @@ local function add_ore(modname, description, mineral_name, oredef) output = "default:chest_locked", recipe = { {ingot}, - {"default:chest"} + {"default:chest"}, } }) minetest.register_craft( { @@ -202,88 +196,103 @@ 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 tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval tdef.tool_capabilities.damage_groups = oredef.damage_groups - tdef.description = S("%s Sword"):format(S(description)) + tdef.description = S("@1 Sword", S(description)) end if tool_name == "pick" then tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval tdef.tool_capabilities.damage_groups = oredef.damage_groups - tdef.description = S("%s Pickaxe"):format(S(description)) + tdef.description = S("@1 Pickaxe", S(description)) end if tool_name == "axe" then tdef.tool_capabilities.full_punch_interval = oredef.full_punch_interval tdef.tool_capabilities.damage_groups = oredef.damage_groups - tdef.description = S("%s Axe"):format(S(description)) + tdef.description = S("@1 Axe", S(description)) end if tool_name == "shovel" then 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.description = S("@1 Shovel", S(description)) + 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) + + if tool_name == "hoe" and minetest.get_modpath("farming") then + tdef.max_uses = tooldef.uses + tdef.description = S("@1 Hoe", 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 + + -- Toolranks support + 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 oredef.makes.ingot then - minetest.register_craft({ - output = fulltool_name, - recipe = get_recipe(ingot, tool_name) - }) + if use_frame then + frame.register(fulltool_name) end 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, @@ -292,113 +301,103 @@ local oredefs = { 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= 2} + 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= 2} + 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= 2}, - 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= 2}, - snappy = {times = {[2] = 0.70, [3] = 0.25}, uses = 200, maxlevel= 2}, - 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}, } } -if not default_tin then - oredefs.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 = {}, - } +-- 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 -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 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 - -- Bronze has some special cases, because it is made from copper and tin: - minetest.register_craft( { + 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", - } + }, }) end --- 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"}, - inventory_image = "moreores_copper_rail.png", - wield_image = "moreores_copper_rail.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - 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.get_meta(pos):set_string("cart_acceleration", "0") - end, +-- Copper rail (unique node) +if minetest.get_modpath("carts") then + carts:register_rail("moreores:copper_rail", { + description = S("Copper Rail"), + 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", + groups = carts:get_rail_groups(), + }, {}) +end + +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.settings:get_bool("log_mods") then - minetest.log("action", S("[moreores] loaded.")) +for orename, def in pairs(oredefs) do + -- Register everything + add_ore("moreores", def.description, orename, def) end diff --git a/locale/de.txt b/locale/de.txt deleted file mode 100644 index 0fcb8af..0000000 --- a/locale/de.txt +++ /dev/null @@ -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 diff --git a/locale/es.txt b/locale/es.txt deleted file mode 100644 index 1c8b430..0000000 --- a/locale/es.txt +++ /dev/null @@ -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 diff --git a/locale/fr.txt b/locale/fr.txt deleted file mode 100644 index 7c41c7c..0000000 --- a/locale/fr.txt +++ /dev/null @@ -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 diff --git a/locale/it.txt b/locale/it.txt deleted file mode 100644 index bb5f4b6..0000000 --- a/locale/it.txt +++ /dev/null @@ -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 \ No newline at end of file diff --git a/locale/moreores.de.tr b/locale/moreores.de.tr new file mode 100644 index 0000000..aac97be --- /dev/null +++ b/locale/moreores.de.tr @@ -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 diff --git a/locale/moreores.en.tr b/locale/moreores.en.tr new file mode 100644 index 0000000..b13188d --- /dev/null +++ b/locale/moreores.en.tr @@ -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 diff --git a/locale/moreores.es.tr b/locale/moreores.es.tr new file mode 100644 index 0000000..3b709a3 --- /dev/null +++ b/locale/moreores.es.tr @@ -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 diff --git a/locale/moreores.fr.tr b/locale/moreores.fr.tr new file mode 100644 index 0000000..2ac45a8 --- /dev/null +++ b/locale/moreores.fr.tr @@ -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 diff --git a/locale/moreores.hu.tr b/locale/moreores.hu.tr new file mode 100644 index 0000000..820ece7 --- /dev/null +++ b/locale/moreores.hu.tr @@ -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 diff --git a/locale/moreores.it.tr b/locale/moreores.it.tr new file mode 100644 index 0000000..96541f7 --- /dev/null +++ b/locale/moreores.it.tr @@ -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 diff --git a/locale/moreores.nl.tr b/locale/moreores.nl.tr new file mode 100644 index 0000000..e572ff3 --- /dev/null +++ b/locale/moreores.nl.tr @@ -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 diff --git a/locale/moreores.pl.tr b/locale/moreores.pl.tr new file mode 100644 index 0000000..2eb2993 --- /dev/null +++ b/locale/moreores.pl.tr @@ -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 diff --git a/locale/moreores.pt_br.tr b/locale/moreores.pt_br.tr new file mode 100644 index 0000000..613209d --- /dev/null +++ b/locale/moreores.pt_br.tr @@ -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 diff --git a/locale/moreores.tr.tr b/locale/moreores.tr.tr new file mode 100644 index 0000000..e41f8e3 --- /dev/null +++ b/locale/moreores.tr.tr @@ -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 diff --git a/locale/pt_br.txt b/locale/pt_br.txt deleted file mode 100644 index 700805a..0000000 --- a/locale/pt_br.txt +++ /dev/null @@ -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 diff --git a/locale/tr.txt b/locale/tr.txt deleted file mode 100644 index 842b989..0000000 --- a/locale/tr.txt +++ /dev/null @@ -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 diff --git a/mg.lua b/mg.lua index 6551ae5..e7ea5b2 100644 --- a/mg.lua +++ b/mg.lua @@ -1,7 +1,7 @@ --[[ 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. --]] diff --git a/mod.conf b/mod.conf index 5a9f1e2..341e834 100644 --- a/mod.conf +++ b/mod.conf @@ -1 +1,5 @@ name = moreores +description = Adds new ore types. +depends = default +optional_depends = carts,farming,frame,mg,toolranks +min_minetest_version = 5.0.0 diff --git a/textures/moreores_copper_rail.png b/textures/moreores_copper_rail.png index 91fb824..da7f5cf 100644 Binary files a/textures/moreores_copper_rail.png and b/textures/moreores_copper_rail.png differ diff --git a/textures/moreores_copper_rail_crossing.png b/textures/moreores_copper_rail_crossing.png index bc78b47..ca68539 100644 Binary files a/textures/moreores_copper_rail_crossing.png and b/textures/moreores_copper_rail_crossing.png differ diff --git a/textures/moreores_copper_rail_curved.png b/textures/moreores_copper_rail_curved.png index 47ba6e0..64f2830 100644 Binary files a/textures/moreores_copper_rail_curved.png and b/textures/moreores_copper_rail_curved.png differ diff --git a/textures/moreores_copper_rail_t_junction.png b/textures/moreores_copper_rail_t_junction.png index 1e1feaa..406de1e 100644 Binary files a/textures/moreores_copper_rail_t_junction.png and b/textures/moreores_copper_rail_t_junction.png differ diff --git a/textures/moreores_mineral_mithril.png b/textures/moreores_mineral_mithril.png index ed0fbf2..e9219cb 100644 Binary files a/textures/moreores_mineral_mithril.png and b/textures/moreores_mineral_mithril.png differ diff --git a/textures/moreores_mineral_silver.png b/textures/moreores_mineral_silver.png index 93f9f43..82e9158 100644 Binary files a/textures/moreores_mineral_silver.png and b/textures/moreores_mineral_silver.png differ diff --git a/textures/moreores_mineral_tin.png b/textures/moreores_mineral_tin.png index 232d4b5..d2a240f 100644 Binary files a/textures/moreores_mineral_tin.png and b/textures/moreores_mineral_tin.png differ diff --git a/textures/moreores_mithril_block.png b/textures/moreores_mithril_block.png index 133a93b..7eda9cc 100644 Binary files a/textures/moreores_mithril_block.png and b/textures/moreores_mithril_block.png differ diff --git a/textures/moreores_silver_block.png b/textures/moreores_silver_block.png index 6806b5c..c2fec68 100644 Binary files a/textures/moreores_silver_block.png and b/textures/moreores_silver_block.png differ diff --git a/textures/moreores_silver_ingot.png b/textures/moreores_silver_ingot.png index 86dd54e..5af8d37 100644 Binary files a/textures/moreores_silver_ingot.png and b/textures/moreores_silver_ingot.png differ diff --git a/textures/moreores_tin_block.png b/textures/moreores_tin_block.png index 72759b0..31ebce0 100644 Binary files a/textures/moreores_tin_block.png and b/textures/moreores_tin_block.png differ diff --git a/textures/moreores_tin_ingot.png b/textures/moreores_tin_ingot.png index eed5361..4e8c4f5 100644 Binary files a/textures/moreores_tin_ingot.png and b/textures/moreores_tin_ingot.png differ diff --git a/textures/moreores_tool_mithrilpick.png b/textures/moreores_tool_mithrilpick.png index efe9443..7f7c3a2 100644 Binary files a/textures/moreores_tool_mithrilpick.png and b/textures/moreores_tool_mithrilpick.png differ diff --git a/textures/moreores_tool_mithrilshovel.png b/textures/moreores_tool_mithrilshovel.png index 128e9f7..72ec2f5 100644 Binary files a/textures/moreores_tool_mithrilshovel.png and b/textures/moreores_tool_mithrilshovel.png differ diff --git a/textures/moreores_tool_silveraxe.png b/textures/moreores_tool_silveraxe.png index 31d9acf..a47eb13 100644 Binary files a/textures/moreores_tool_silveraxe.png and b/textures/moreores_tool_silveraxe.png differ diff --git a/textures/moreores_tool_silverpick.png b/textures/moreores_tool_silverpick.png index 4194c6e..a291d3f 100644 Binary files a/textures/moreores_tool_silverpick.png and b/textures/moreores_tool_silverpick.png differ diff --git a/textures/moreores_tool_silvershovel.png b/textures/moreores_tool_silvershovel.png index 9f9cfbe..74676b1 100644 Binary files a/textures/moreores_tool_silvershovel.png and b/textures/moreores_tool_silvershovel.png differ