From ee8e331d9c5903b56eb401eaf02ed886a86c8484 Mon Sep 17 00:00:00 2001 From: Milan2018 Date: Sun, 16 May 2021 13:42:56 +0200 Subject: [PATCH] update --- moreblocks/.editorconfig | 13 + moreblocks/.github/workflows/build.yml | 24 ++ moreblocks/.luacheckrc | 39 ++- moreblocks/.pre-commit-config.yaml | 10 + moreblocks/CHANGELOG.md | 84 ++++- moreblocks/LICENSE.md | 2 +- moreblocks/README.md | 21 +- moreblocks/aliases.lua | 2 +- moreblocks/circular_saw.lua | 58 ++-- moreblocks/config.lua | 4 +- moreblocks/crafting.lua | 126 +++++++- moreblocks/depends.txt | 6 - moreblocks/description.txt | 1 - moreblocks/init.lua | 24 +- moreblocks/intllib.lua | 44 +++ moreblocks/locale/de.po | 290 +++++++++++++++++ moreblocks/locale/de.txt | 67 ---- moreblocks/locale/es.po | 286 +++++++++++++++++ moreblocks/locale/es.txt | 52 ---- moreblocks/locale/fr.po | 291 +++++++++++++++++ moreblocks/locale/fr.txt | 72 ----- moreblocks/locale/it.po | 290 +++++++++++++++++ moreblocks/locale/it.txt | 70 ----- moreblocks/locale/pl.po | 293 +++++++++++++++++ moreblocks/locale/ru.po | 294 ++++++++++++++++++ moreblocks/locale/template.pot | 288 +++++++++++++++++ moreblocks/locale/template.txt | 64 ---- moreblocks/locale/zh_CN.po | 288 +++++++++++++++++ moreblocks/locale/zh_TW.po | 288 +++++++++++++++++ moreblocks/mod.conf | 4 + moreblocks/nodes.lua | 108 ++++++- moreblocks/ownership.lua | 6 +- moreblocks/redefinitions.lua | 103 +++--- moreblocks/settingtypes.txt | 3 + moreblocks/stairsplus/API.md | 4 +- moreblocks/stairsplus/aliases.lua | 70 ----- moreblocks/stairsplus/common.lua | 163 ++++++++-- moreblocks/stairsplus/conversion.lua | 139 --------- moreblocks/stairsplus/custom.lua | 19 +- moreblocks/stairsplus/defs.lua | 4 +- moreblocks/stairsplus/init.lua | 18 +- moreblocks/stairsplus/microblocks.lua | 7 +- moreblocks/stairsplus/panels.lua | 7 +- moreblocks/stairsplus/recipes.lua | 2 +- moreblocks/stairsplus/registrations.lua | 6 +- moreblocks/stairsplus/slabs.lua | 8 +- moreblocks/stairsplus/slopes.lua | 7 +- moreblocks/stairsplus/stairs.lua | 7 +- .../textures/moreblocks_cactus_brick.png | Bin 718 -> 697 bytes .../textures/moreblocks_cactus_checker.png | Bin 693 -> 685 bytes .../moreblocks_checker_stone_tile.png | Bin 306 -> 299 bytes .../moreblocks_circle_stone_bricks.png | Bin 448 -> 446 bytes .../moreblocks_circular_saw_bottom.png | Bin 579 -> 574 bytes .../textures/moreblocks_circular_saw_side.png | Bin 478 -> 474 bytes .../textures/moreblocks_circular_saw_top.png | Bin 441 -> 439 bytes .../textures/moreblocks_clean_glass.png | Bin 177 -> 170 bytes .../textures/moreblocks_coal_checker.png | Bin 744 -> 738 bytes .../moreblocks_coal_glass_stairsplus.png | Bin 166 -> 163 bytes .../textures/moreblocks_coal_stone_bricks.png | Bin 484 -> 481 bytes .../textures/moreblocks_copperpatina.png | Bin 325 -> 258 bytes .../moreblocks_desert_cobble_compressed.png | Bin 0 -> 2570 bytes .../textures/moreblocks_dirt_compressed.png | Bin 318 -> 269 bytes .../textures/moreblocks_empty_shelf.png | Bin 219 -> 207 bytes .../textures/moreblocks_glass_stairsplus.png | Bin 215 -> 167 bytes .../moreblocks_glow_glass_stairsplus.png | Bin 169 -> 167 bytes .../textures/moreblocks_iron_checker.png | Bin 850 -> 739 bytes .../moreblocks_iron_glass_stairsplus.png | Bin 169 -> 167 bytes moreblocks/textures/moreblocks_iron_stone.png | Bin 230 -> 229 bytes .../textures/moreblocks_iron_stone_bricks.png | Bin 485 -> 483 bytes .../textures/moreblocks_junglestick.png | Bin 122 -> 115 bytes moreblocks/textures/moreblocks_rope.png | Bin 356 -> 352 bytes .../textures/moreblocks_split_stone_tile.png | Bin 273 -> 272 bytes .../moreblocks_split_stone_tile_top.png | Bin 279 -> 278 bytes ...moreblocks_super_glow_glass_stairsplus.png | Bin 171 -> 169 bytes moreblocks/textures/moreblocks_sweeper.png | Bin 310 -> 309 bytes moreblocks/textures/moreblocks_tar.png | Bin 270 -> 266 bytes moreblocks/textures/moreblocks_trap_box.png | Bin 135 -> 88 bytes .../textures/moreblocks_trap_box_glass.png | Bin 160 -> 117 bytes .../textures/moreblocks_tree_stairsplus.png | Bin 311 -> 286 bytes moreblocks/textures/moreblocks_wood_tile.png | Bin 396 -> 387 bytes .../textures/moreblocks_wood_tile_center.png | Bin 288 -> 281 bytes .../textures/moreblocks_wood_tile_full.png | Bin 436 -> 433 bytes .../textures/moreblocks_wood_tile_offset.png | Bin 289 -> 282 bytes 83 files changed, 3344 insertions(+), 732 deletions(-) create mode 100644 moreblocks/.editorconfig create mode 100644 moreblocks/.github/workflows/build.yml create mode 100644 moreblocks/.pre-commit-config.yaml delete mode 100644 moreblocks/depends.txt delete mode 100644 moreblocks/description.txt create mode 100644 moreblocks/intllib.lua create mode 100644 moreblocks/locale/de.po delete mode 100644 moreblocks/locale/de.txt create mode 100644 moreblocks/locale/es.po delete mode 100644 moreblocks/locale/es.txt create mode 100644 moreblocks/locale/fr.po delete mode 100644 moreblocks/locale/fr.txt create mode 100644 moreblocks/locale/it.po delete mode 100644 moreblocks/locale/it.txt create mode 100644 moreblocks/locale/pl.po create mode 100644 moreblocks/locale/ru.po create mode 100644 moreblocks/locale/template.pot delete mode 100644 moreblocks/locale/template.txt create mode 100644 moreblocks/locale/zh_CN.po create mode 100644 moreblocks/locale/zh_TW.po create mode 100644 moreblocks/settingtypes.txt delete mode 100644 moreblocks/stairsplus/aliases.lua delete mode 100644 moreblocks/stairsplus/conversion.lua create mode 100644 moreblocks/textures/moreblocks_desert_cobble_compressed.png diff --git a/moreblocks/.editorconfig b/moreblocks/.editorconfig new file mode 100644 index 0000000..a41c697 --- /dev/null +++ b/moreblocks/.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/moreblocks/.github/workflows/build.yml b/moreblocks/.github/workflows/build.yml new file mode 100644 index 0000000..e8f4bda --- /dev/null +++ b/moreblocks/.github/workflows/build.yml @@ -0,0 +1,24 @@ +name: build +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@master + - uses: actions/setup-python@master + + - run: | + sudo apt-get update -qq + sudo apt-get install -qqq luarocks + - name: Install pre-commit + run: pip3 install pre-commit + + - name: Install LuaCheck + run: luarocks install --local luacheck + + - name: Run LuaCheck using pre-commit + run: | + pre-commit run --all-files + $HOME/.luarocks/bin/luacheck . diff --git a/moreblocks/.luacheckrc b/moreblocks/.luacheckrc index fbf3483..7089a5d 100644 --- a/moreblocks/.luacheckrc +++ b/moreblocks/.luacheckrc @@ -1,14 +1,35 @@ +std = "lua51+minetest" unused_args = false allow_defined_top = true +max_line_length = 999 -read_globals = { - "DIR_DELIM", - "minetest", "core", - "dump", - "vector", "nodeupdate", - "VoxelManip", "VoxelArea", - "PseudoRandom", "ItemStack", - "intllib", - "default", +stds.minetest = { + read_globals = { + "DIR_DELIM", + "minetest", + "core", + "dump", + "vector", + "nodeupdate", + "VoxelManip", + "VoxelArea", + "PseudoRandom", + "ItemStack", + "default", + table = { + fields = { + "copy", + }, + }, + } } +read_globals = { + "intllib", + "protector", + "isprotect", + "IsPlayerNodeOwner", + "HasOwner", + "getLastOwner", + "GetNodeOwnerName", +} diff --git a/moreblocks/.pre-commit-config.yaml b/moreblocks/.pre-commit-config.yaml new file mode 100644 index 0000000..a52dbb2 --- /dev/null +++ b/moreblocks/.pre-commit-config.yaml @@ -0,0 +1,10 @@ +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] diff --git a/moreblocks/CHANGELOG.md b/moreblocks/CHANGELOG.md index 53c4458..e050101 100644 --- a/moreblocks/CHANGELOG.md +++ b/moreblocks/CHANGELOG.md @@ -7,6 +7,76 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +### Changed + +- Refactored recipe override mechanism to avoid re-coding recipes + when we only want to change the amount produced. +- [Realigned rail recipe to the changes made in Minetest Game.](https://github.com/minetest-mods/moreblocks/pull/169) + - All rail recipes (standard, power, break) were boosted by 50%. + +### Fixed + +- [Fixed strange placement behavior for non-default Stairs+ nodes.](https://github.com/minetest-mods/moreblocks/pull/168) +- [Fixed stairs placement over oddly-shaped nodes.](https://github.com/minetest-mods/moreblocks/pull/166) + +## [2.1.0] - 2020-12-14 + +### Added + +- Clean Glass versions of Trap and (Super) Glowing Glass. +- Compressed desert cobblestone. + +### Changed + +- Revised placing strategy that takes into account which side of the face + (top/bottom for horizontal, left/right for vertical placement) is being clicked. + Aux (sprint/special, default E) key can be used to place the node with the orientation + it would have if placed from the other side. + When placing nodes next to nodes of the same gategory (e.g.slab to slab) the other + node's orientation is copied, flipping it placing on top or below an upright or + upside-down node. In this case the aux key will disable the special processing of + same-category nodes. + +### Fixed + +- Revised minetest_game crafting recipe overrides to match Minetest 5.0.0 and later. + +### Removed + +- Legacy Stairs+ conversion code. + - It was only required to import worlds last edited before Q3 2013. + +## [2.0.0] - 2019-11-25 + +### Added + +- Stairs+ nodes for ice. +- `settingtypes.txt` file to allow configuring settings in the main menu. +- Polish translation. + +### Changed + +- The minimum supported Minetest version is now 5.0.0. +- Stairs+ nodes now emit one light level less compared to full nodes to make up + for their smaller visual size. + +### Fixed + +- Fixed a recipe conflict that made Centered Wooden Tiles impossible to craft. + +## [1.3.0] - 2019-03-23 + +### Changed + +- Stairs+ are now displayed in the creative inventory by default. +- Localization files now use the gettext `.po` format. +- Updated intllib support to avoid using deprecated functions. + +### Fixed + +- Node rotation now works correctly when placing Stairs+ nodes. +- Stairs+ glasslike nodes' textures are now easier to see. + ## [1.2.0] - 2018-11-24 ### Added @@ -27,12 +97,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Changed -- New craft for: +- New crafting recipes for: - Stone Tile - Circle Stone Bricks - Stairs+: - - Move definitions to `stairsplus.defs` table in a separate file - - Move recipe definitions to `stairsplus.register_recipes` function in a separate file + - Moved definitions to `stairsplus.defs` table into a separate file. + - Moved recipe definitions to `stairsplus.register_recipes` function + into a separate file. ## [1.1.0] - 2017-10-04 @@ -52,12 +123,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Straw - Tin Block - Wool (all colors) -- Other mods can now get a list of all the defined Stairs+ shapes +- Other mods can now get a list of all the defined Stairs+ shapes. ## 1.0.0 - 2017-02-19 - Initial versioned release. -[Unreleased]: https://github.com/minetest-mods/moreblocks/compare/v1.2.0...HEAD +[Unreleased]: https://github.com/minetest-mods/moreblocks/compare/v2.1.0...HEAD +[2.1.0]: https://github.com/minetest-mods/moreblocks/compare/v2.0.0...v2.1.0 +[2.0.0]: https://github.com/minetest-mods/moreblocks/compare/v1.3.0...v2.0.0 +[1.3.0]: https://github.com/minetest-mods/moreblocks/compare/v1.2.0...v1.3.0 [1.2.0]: https://github.com/minetest-mods/moreblocks/compare/v1.1.0...v1.2.0 [1.1.0]: https://github.com/minetest-mods/moreblocks/compare/v1.0.0...v1.1.0 diff --git a/moreblocks/LICENSE.md b/moreblocks/LICENSE.md index f68debf..67f5f7f 100644 --- a/moreblocks/LICENSE.md +++ b/moreblocks/LICENSE.md @@ -1,6 +1,6 @@ # zlib license -Copyright (c) 2011-2018 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/moreblocks/README.md b/moreblocks/README.md index 33b9d6b..2d5d575 100644 --- a/moreblocks/README.md +++ b/moreblocks/README.md @@ -1,4 +1,4 @@ -# More Blocks +# More Blocks [![Build status](https://github.com/minetest-mods/moreblocks/workflows/build/badge.svg)](https://github.com/minetest-mods/moreblocks/actions) More Blocks for [Minetest](https://www.minetest.net/), a free and open source infinite world block sandbox game. @@ -12,15 +12,13 @@ world block sandbox game. To install More Blocks, clone this Git repository into your Minetest's `mods/` directory: -``` +```bash git clone https://github.com/minetest-mods/moreblocks.git ``` You can also [download a ZIP archive](https://github.com/minetest-mods/moreblocks/archive/master.zip) -of More Blocks. If you do so, you will need to extract the archive, then rename -the resulting folder from `moreblocks-master` to `moreblocks` – this is -**absolutely** necessary to do, else, it won't work! +of More Blocks. ### Enable the mod @@ -43,29 +41,30 @@ This is the easiest way to enable More Blocks when playing in singleplayer This is the recommended way to enable the mod on a server without using a GUI. -1. Make sure Minetest is not currently running (else, it will overwrite +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_moreblocks = true ``` -If the line is already present in the file, then replace `false` with `true` on that line. +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 Blocks on. 5. More Blocks should now be running on your world. ## Version compatibility -More Blocks is currently primarily tested with Minetest 0.4.16. +More Blocks is currently primarily tested with Minetest 5.3.0. It may or may not work with newer or older versions. Issues arising in older -versions than 0.4.16 will generally not be fixed. +versions than 5.0.0 will generally not be fixed. ## License -Copyright © 2011-2018 Hugo Locurcio and contributors +Copyright © 2011-2020 Hugo Locurcio and contributors - More Blocks code is licensed under the zlib license, see [`LICENSE.md`](LICENSE.md) for details. diff --git a/moreblocks/aliases.lua b/moreblocks/aliases.lua index 59f5d5c..fc4492f 100644 --- a/moreblocks/aliases.lua +++ b/moreblocks/aliases.lua @@ -1,7 +1,7 @@ --[[ More Blocks: alias definitions -Copyright (c) 2011-2018 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/moreblocks/circular_saw.lua b/moreblocks/circular_saw.lua index 94e680e..174f344 100644 --- a/moreblocks/circular_saw.lua +++ b/moreblocks/circular_saw.lua @@ -1,11 +1,12 @@ --[[ More Blocks: circular saw -Copyright (c) 2011-2018 Hugo Locurcio, Sokomine and contributors. +Copyright © 2011-2020 Hugo Locurcio, Sokomine and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] -local S = moreblocks.intllib +local S = moreblocks.S +local F = minetest.formspec_escape circular_saw = {} @@ -126,15 +127,20 @@ end function circular_saw:reset(pos) local meta = minetest.get_meta(pos) local inv = meta:get_inventory() + local owned_by = meta:get_string("owner") + + if owned_by and owned_by ~= "" then + owned_by = (" (%s)"):format(S("owned by @1", meta:get_string("owner"))) + else + owned_by = "" + end inv:set_list("input", {}) inv:set_list("micro", {}) inv:set_list("output", {}) - meta:set_int("anz", 0) - meta:set_string("infotext", - S("Circular Saw is empty (owned by %s)") - :format(meta:get_string("owner") or "")) + meta:set_int("anz", 0) + meta:set_string("infotext", S("Circular Saw is empty") .. owned_by) end @@ -146,7 +152,7 @@ function circular_saw:update_inventory(pos, amount) amount = meta:get_int("anz") + amount - -- The material is recycled automaticly. + -- The material is recycled automatically. inv:set_list("recycle", {}) if amount < 1 then -- If the last block is taken out. @@ -164,9 +170,17 @@ function circular_saw:update_inventory(pos, amount) end local node_name = stack:get_name() or "" + local node_def = stack:get_definition() local name_parts = circular_saw.known_nodes[node_name] or "" local modname = name_parts[1] or "" local material = name_parts[2] or "" + local owned_by = meta:get_string("owner") + + if owned_by and owned_by ~= "" then + owned_by = (" (%s)"):format(S("owned by @1", meta:get_string("owner"))) + else + owned_by = "" + end inv:set_list("input", { -- Display as many full blocks as possible: node_name.. " " .. math.floor(amount / 8) @@ -191,8 +205,10 @@ function circular_saw:update_inventory(pos, amount) meta:set_int("anz", amount) meta:set_string("infotext", - S("Circular Saw is working on %s (owned by %s)") - :format(material, meta:get_string("owner") or "")) + S("Circular Saw is working on @1", + node_def and node_def.description or material + ) .. owned_by + ) end @@ -230,7 +246,7 @@ function circular_saw.allow_metadata_inventory_put( local stackname = stack:get_name() local count = stack:get_count() - -- Only alow those items that are offered in the output inventory to be recycled: + -- Only allow those items that are offered in the output inventory to be recycled: if listname == "recycle" then if not inv:contains_item("output", stackname) then return 0 @@ -329,7 +345,7 @@ function circular_saw.on_metadata_inventory_take( end -- If it is one of the offered stairs: find out how many - -- microblocks have to be substracted: + -- microblocks have to be subtracted: if listname == "output" then -- We do know how much each block at each position costs: local cost = circular_saw.cost_in_microblocks[index] @@ -351,14 +367,14 @@ function circular_saw.on_construct(pos) local fancy_inv = default.gui_bg..default.gui_bg_img..default.gui_slots meta:set_string( "formspec", "size[11,10]"..fancy_inv.. - "label[0,0;" ..S("Input\nmaterial").. "]" .. + "label[0,0;" ..F(S("Input\nmaterial")).. "]" .. "list[current_name;input;1.5,0;1,1;]" .. - "label[0,1;" ..S("Left-over").. "]" .. + "label[0,1;" ..F(S("Left-over")).. "]" .. "list[current_name;micro;1.5,1;1,1;]" .. - "label[0,2;" ..S("Recycle\noutput").. "]" .. + "label[0,2;" ..F(S("Recycle\noutput")).. "]" .. "list[current_name;recycle;1.5,2;1,1;]" .. - "field[0.3,3.5;1,1;max_offered;" ..S("Max").. ":;${max_offered}]" .. - "button[1,3.2;1,1;Set;" ..S("Set").. "]" .. + "field[0.3,3.5;1,1;max_offered;" ..F(S("Max")).. ":;${max_offered}]" .. + "button[1,3.2;1,1;Set;" ..F(S("Set")).. "]" .. "list[current_name;output;2.8,0;8,6;]" .. "list[current_player;main;1.5,6.25;8,4;]" .. "listring[current_name;output]" .. @@ -427,10 +443,14 @@ minetest.register_node("moreblocks:circular_saw", { after_place_node = function(pos, placer) local meta = minetest.get_meta(pos) local owner = placer and placer:get_player_name() or "" + local owned_by = owner + + if owner ~= "" then + owned_by = (" (%s)"):format(S("owned by @1", owner)) + end + meta:set_string("owner", owner) - meta:set_string("infotext", - S("Circular Saw is empty (owned by %s)") - :format(owner)) + meta:set_string("infotext", S("Circular Saw is empty") .. owned_by) end, -- The amount of items offered per shape can be configured: diff --git a/moreblocks/config.lua b/moreblocks/config.lua index 84dcaf2..5a9c72c 100644 --- a/moreblocks/config.lua +++ b/moreblocks/config.lua @@ -1,7 +1,7 @@ --[[ More Blocks: configuration handling -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] @@ -26,4 +26,4 @@ local function setting(settingtype, name, default) end -- Show stairs/slabs/panels/microblocks in creative inventory (true or false): -setting("bool", "stairsplus_in_creative_inventory", false) +setting("bool", "stairsplus_in_creative_inventory", true) diff --git a/moreblocks/crafting.lua b/moreblocks/crafting.lua index 5fdd82f..34d1dc0 100644 --- a/moreblocks/crafting.lua +++ b/moreblocks/crafting.lua @@ -1,7 +1,7 @@ --[[ More Blocks: crafting recipes -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] @@ -35,15 +35,6 @@ minetest.register_craft({ recipe = {"default:junglegrass", "default:cobble"}, }) -minetest.register_craft({ - output = "moreblocks:wood_tile_center 9", - recipe = { - {"group:wood", "group:wood", "group:wood"}, - {"group:wood", "moreblocks:wood_tile", "group:wood"}, - {"group:wood", "group:wood", "group:wood"}, - } -}) - minetest.register_craft({ output = "moreblocks:wood_tile 9", recipe = { @@ -53,6 +44,17 @@ minetest.register_craft({ } }) +-- This must be registered after `moreblocks:wood_tile` to avoid recipe conflicts, +-- since `moreblocks:wood_tile` is part of `group:wood` +minetest.register_craft({ + output = "moreblocks:wood_tile_center 9", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "moreblocks:wood_tile", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + } +}) + minetest.register_craft({ type = "shapeless", output = "moreblocks:wood_tile", @@ -346,12 +348,36 @@ minetest.register_craft({ recipe = {"moreblocks:sweeper", "default:glass"}, }) +minetest.register_craft({ + output = "moreblocks:trap_clean_glass", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:trap_clean_glass", + type = "shapeless", + recipe = {"moreblocks:sweeper", "moreblocks:trap_glass"}, +}) + minetest.register_craft({ output = "moreblocks:glow_glass", type = "shapeless", recipe = {"default:torch", "default:glass"}, }) +minetest.register_craft({ + output = "moreblocks:clean_glow_glass", + type = "shapeless", + recipe = {"default:torch", "moreblocks:clean_glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:clean_glow_glass", + type = "shapeless", + recipe = {"moreblocks:sweeper", "moreblocks:glow_glass"}, +}) + minetest.register_craft({ output = "moreblocks:trap_glow_glass", type = "shapeless", @@ -364,6 +390,26 @@ minetest.register_craft({ recipe = {"default:mese_crystal_fragment", "moreblocks:glow_glass"}, }) +-- several recipes are possible for the trap+clean+glow, we only present 3 of them +minetest.register_craft({ + output = "moreblocks:trap_clean_glow_glass", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glow_glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:trap_clean_glow_glass", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glass", "default:torch"}, +}) + +minetest.register_craft({ + output = "moreblocks:trap_clean_glow_glass", + type = "shapeless", + recipe = {"moreblocks:sweeper", "moreblocks:trap_glow_glass" }, +}) + + minetest.register_craft({ output = "moreblocks:super_glow_glass", type = "shapeless", @@ -376,6 +422,24 @@ minetest.register_craft({ recipe = {"default:torch", "moreblocks:glow_glass"}, }) +minetest.register_craft({ + output = "moreblocks:clean_super_glow_glass", + type = "shapeless", + recipe = {"default:torch", "default:torch", "moreblocks:clean_glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:clean_super_glow_glass", + type = "shapeless", + recipe = {"default:torch", "moreblocks:clean_glow_glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:clean_super_glow_glass", + type = "shapeless", + recipe = {"moreblocks:sweeper", "moreblocks:super_glow_glass"}, +}) + minetest.register_craft({ output = "moreblocks:trap_super_glow_glass", @@ -389,6 +453,32 @@ minetest.register_craft({ recipe = {"default:mese_crystal_fragment", "moreblocks:super_glow_glass"}, }) +-- several recipes are possible for the trap+clean+glow, we only present 4 of them +minetest.register_craft({ + output = "moreblocks:trap_clean_super_glow_glass", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "moreblocks:clean_super_glow_glass"}, +}) + +minetest.register_craft({ + output = "moreblocks:trap_clean_super_glow_glass", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glow_glass", "default:torch"}, +}) + +minetest.register_craft({ + output = "moreblocks:trap_clean_super_glow_glass", + type = "shapeless", + recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glass", "default:torch", "default:torch"}, +}) + +minetest.register_craft({ + output = "moreblocks:trap_clean_super_glow_glass", + type = "shapeless", + recipe = {"moreblocks:sweeper", "moreblocks:trap_super_glow_glass" }, +}) + + minetest.register_craft({ output = "moreblocks:coal_stone", type = "shapeless", @@ -510,6 +600,22 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "moreblocks:desert_cobble_compressed", + recipe = { + {"default:desert_cobble", "default:desert_cobble", "default:desert_cobble"}, + {"default:desert_cobble", "default:desert_cobble", "default:desert_cobble"}, + {"default:desert_cobble", "default:desert_cobble", "default:desert_cobble"}, + } +}) + +minetest.register_craft({ + output = "default:desert_cobble 9", + recipe = { + {"moreblocks:desert_cobble_compressed"}, + } +}) + minetest.register_craft({ type = "cooking", output = "moreblocks:tar", recipe = "default:pine_tree", }) diff --git a/moreblocks/depends.txt b/moreblocks/depends.txt deleted file mode 100644 index d27d8a5..0000000 --- a/moreblocks/depends.txt +++ /dev/null @@ -1,6 +0,0 @@ -default -intllib? -stairs? -farming? -wool? -basic_materials? diff --git a/moreblocks/description.txt b/moreblocks/description.txt deleted file mode 100644 index 95d7a92..0000000 --- a/moreblocks/description.txt +++ /dev/null @@ -1 +0,0 @@ -Adds various miscellaneous blocks to the game. diff --git a/moreblocks/init.lua b/moreblocks/init.lua index dc9b11f..c3e9b63 100644 --- a/moreblocks/init.lua +++ b/moreblocks/init.lua @@ -3,35 +3,23 @@ ** More Blocks ** By Calinou, with the help of ShadowNinja and VanessaE. -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. ===================================================================== --]] moreblocks = {} -local S -if minetest.global_exists("intllib") then - if intllib.make_gettext_pair then - S = intllib.make_gettext_pair() - else - S = intllib.Getter() - end -else - S = function(s) return s end -end -moreblocks.intllib = S - local modpath = minetest.get_modpath("moreblocks") +local S, NS = dofile(modpath .. "/intllib.lua") +moreblocks.S = S +moreblocks.NS = NS + dofile(modpath .. "/config.lua") dofile(modpath .. "/circular_saw.lua") dofile(modpath .. "/stairsplus/init.lua") dofile(modpath .. "/nodes.lua") --- dofile(modpath .. "/redefinitions.lua") +dofile(modpath .. "/redefinitions.lua") dofile(modpath .. "/crafting.lua") dofile(modpath .. "/aliases.lua") - -if minetest.settings:get_bool("log_mods") then - minetest.log("action", S("[moreblocks] loaded.")) -end diff --git a/moreblocks/intllib.lua b/moreblocks/intllib.lua new file mode 100644 index 0000000..c7af2c2 --- /dev/null +++ b/moreblocks/intllib.lua @@ -0,0 +1,44 @@ +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- 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 diff --git a/moreblocks/locale/de.po b/moreblocks/locale/de.po new file mode 100644 index 0000000..44420e2 --- /dev/null +++ b/moreblocks/locale/de.po @@ -0,0 +1,290 @@ +# German translation for More Blocks. +# Copyright © 2011-2020 Hugo Locurcio and contributors +# This file is distributed under the same license as the More Blocks package. +# Xanthin, 2014. +# CodeXP , 2018. +msgid "" +msgstr "" +"Project-Id-Version: More Blocks\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-13 12:37+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: circular_saw.lua +msgid "Circular Saw" +msgstr "Kreissäge" + +#: circular_saw.lua +msgid "" +"Input\n" +"material" +msgstr "" +"Ausgangs-\n" +"material" + +#: circular_saw.lua +msgid "Left-over" +msgstr "Rest" + +#: circular_saw.lua +msgid "Max" +msgstr "Anzahl" + +#: circular_saw.lua +msgid "" +"Recycle\n" +"output" +msgstr "" +"Wiederver-\n" +"werten" + +#: circular_saw.lua +msgid "Set" +msgstr "Ok" + +#: circular_saw.lua +msgid "owned by @1" +msgstr "gehört @1" + +#: circular_saw.lua +msgid "Circular Saw is empty" +msgstr "Kreissäge ist leer" + +#: circular_saw.lua +msgid "Circular Saw is working on @1" +msgstr "Kreissäge arbeitet mit @1" + +#: init.lua +msgid "[moreblocks] loaded." +msgstr "[moreblocks] geladen." + +#: nodes.lua +msgid "Deprecated" +msgstr "veraltet" + +#: nodes.lua +msgid "All-faces Acacia Tree" +msgstr "allseitiger Akazienbaumstamm" + +#: nodes.lua +msgid "All-faces Aspen Tree" +msgstr "allseitiger Espenbaumstamm" + +#: nodes.lua +msgid "All-faces Jungle Tree" +msgstr "allseitiger Tropenbaumstamm" + +#: nodes.lua +msgid "All-faces Pine Tree" +msgstr "allseitiger Kieferbaumstamm" + +#: nodes.lua +msgid "All-faces Tree" +msgstr "allseitiger Baumstamm" + +#: nodes.lua +msgid "Cactus Brick" +msgstr "Kaktusziegel" + +#: nodes.lua +msgid "Cactus Checker" +msgstr "Kaktus-Mosaik" + +#: nodes.lua +msgid "Centered Wooden Tile" +msgstr "Holzfliese mittig" + +#: nodes.lua +msgid "Checker Stone Tile" +msgstr "Stein-Mosaik" + +#: nodes.lua +msgid "Circle Stone Bricks" +msgstr "Kreissteinziegel" + +#: nodes.lua +msgid "Clean Glass" +msgstr "Klares Glas" + +#: nodes.lua +msgid "Coal Checker" +msgstr "Kohlen-Mosaik" + +#: nodes.lua +msgid "Coal Glass" +msgstr "Kohleglas" + +#: nodes.lua +msgid "Coal Stone" +msgstr "Kohlestein" + +#: nodes.lua +msgid "Coal Stone Bricks" +msgstr "Kohlesteinziegel" + +#: nodes.lua +msgid "Compressed Cobblestone" +msgstr "Gepresster Kopfsteinpflaster" + +#: nodes.lua +msgid "Compressed Desert Cobblestone" +msgstr "" + +#: nodes.lua +msgid "Compressed Dirt" +msgstr "Gepresste Erde" + +#: nodes.lua +msgid "Copper Patina Block" +msgstr "Kupfer Edelrostblock" + +#: nodes.lua +msgid "Empty Shelf" +msgstr "Leeres Regal" + +#: nodes.lua +msgid "Full Wooden Tile" +msgstr "Vollholzfliese" + +#: nodes.lua +msgid "Glow Glass" +msgstr "Leuchtglas" + +#: nodes.lua +msgid "Iron Checker" +msgstr "Metall-Mosaik" + +#: nodes.lua +msgid "Iron Glass" +msgstr "metallisiertes Glas" + +#: nodes.lua +msgid "Iron Stone" +msgstr "Eisenstein" + +#: nodes.lua +msgid "Iron Stone Bricks" +msgstr "Eisensteinziegel" + +#: nodes.lua +msgid "Plankstone" +msgstr "Brettstein" + +#: nodes.lua +msgid "Rope" +msgstr "Seil" + +#: nodes.lua +msgid "Split Stone Tile" +msgstr "Geteilte Steinfliese" + +#: nodes.lua +msgid "Stone Bricks" +msgstr "Steinziegel" + +#: nodes.lua +msgid "Stone Tile" +msgstr "Steinfliese" + +#: nodes.lua +msgid "Super Glow Glass" +msgstr "Superleuchtglas" + +#: nodes.lua +msgid "Sweeper" +msgstr "Besen" + +#: nodes.lua +msgid "Tar" +msgstr "Teer" + +#: nodes.lua +msgid "Trap Desert Stone" +msgstr "Wüstensteinfalle" + +#: nodes.lua +msgid "Trap Glass" +msgstr "Glasfalle" + +#: nodes.lua +msgid "Trap Glow Glass" +msgstr "Leuchtglasfalle" + +#: nodes.lua +msgid "Trap Obsidian" +msgstr "Obsidianfalle" + +#: nodes.lua +msgid "Trap Obsidian Glass" +msgstr "Obsidianglasfalle" + +#: nodes.lua +msgid "Trap Sandstone" +msgstr "Sandsteinfalle" + +#: nodes.lua +msgid "Trap Stone" +msgstr "Steinfalle" + +#: nodes.lua +msgid "Trap Super Glow Glass" +msgstr "Superleuchtglasfalle" + +#: nodes.lua +msgid "Wooden Tile" +msgstr "Holzfliese" + +#: nodes.lua +msgid "Offset Wooden Tile" +msgstr "Holzfliese versetzt" + +#: nodes.lua +msgid "Downwards Wooden Tile" +msgstr "Holzfliese unten" + +#: nodes.lua +msgid "Leftwards Wooden Tile" +msgstr "Holzfliese links" + +#: nodes.lua +msgid "Rightwards Wooden Tile" +msgstr "Holzfliese rechts" + +#: ownership.lua +msgid "Sorry, @1 owns that spot." +msgstr "Tut mir leid, dieser Bereich gehört @1." + +#: ownership.lua +msgid "someone" +msgstr "jemand" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Microblock" +msgstr "%smikroblock" + +#: stairsplus/common.lua stairsplus/slabs.lua +#, lua-format +msgid "%s Slab" +msgstr "%splatte" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Slope" +msgstr "%sneigung" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Panel" +msgstr "%spaneel" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Stairs" +msgstr "%streppe" diff --git a/moreblocks/locale/de.txt b/moreblocks/locale/de.txt deleted file mode 100644 index 542f977..0000000 --- a/moreblocks/locale/de.txt +++ /dev/null @@ -1,67 +0,0 @@ -# Translation by Xanthin - -###init.lua### -[moreblocks] loaded. = [moreblocks] geladen. - -###nodes.lua### -Jungle Wood Fence = Tropenholzzaun -Empty Bookshelf = Leeres Buecherregal -Clean Glass = Klares Glas -Plankstone = Brettstein -Wooden Tile = Holzfliese -Full Wooden Tile = Vollholzfliese -Centered Wooden Tile = Holzfliese mittig -Up Wooden Tile = Holzfliese oben -Down Wooden Tile = Holzfliese unten -Left Wooden Tile = Holzfliese links -Right Wooden Tile = Holzfliese rechts -Circle Stone Bricks = Kreissteinziegel -Stone Tile = Steinfliese -Split Stone Tile = Geteilte Steinfliese -Glow Glass = Leuchtglas -Super Glow Glass = Superleuchtglas -Coal Glass = Kohleglas -Iron Glass = Eisenglas -Coal Checker = Karierte Kohle -Iron Checker = Kariertes Eisen -Trap Stone = Steinfalle -Trap Glass = Glasfalle -Trap Glow Glass = Leuchtglasfalle -Trap Super Glow Glass = Superleuchtglasfalle -Coal Stone = Kohlestein -Iron Stone = Eisenstein -Coal Stone Bricks = Kohlesteinziegel -Iron Stone Bricks = Eisensteinziegel -Cactus Checker = Karierter Kaktus -Cactus Brick = Kaktusziegel -Sweeper = Besen -Jungle Stick = Tropenholzstock -Rope = Seil -All-faces Tree = Baumscheibenstamm - -###circular_saw.lua### -Circular Saw = Kreissaege -Circular saw, empty (owned by %s) = Kreissaege, leer (gehoert %s) -Circular saw, working with %s (owned by %s) = Kreissaege, arbeitet mit %s (gehoert %s) -Circular saw, empty = Kreissaege, leer -Circular saw is empty (owned by %s) = Kreissaege ist leer (gehoert %s) - -Input\nmaterial = Ausgangs-\nmaterial -Left-over = Rest -Max = Anzahl -Set = Ok -Recycle\noutput = Wiederver-\nwerten - -###./stairsplus/*### -%s Stairs = %streppe -%s Slab = %sstufe -%s Panel = %spaneel -%s Microblock = %smikroblock - -%s Pane = %sscheibe -%s Fence = %szaun - -###ownership.lua### -someone = jemand -Sorry, %s owns that spot. = Tut mir leid, %s gehoert diese Stelle. - diff --git a/moreblocks/locale/es.po b/moreblocks/locale/es.po new file mode 100644 index 0000000..e64f0a3 --- /dev/null +++ b/moreblocks/locale/es.po @@ -0,0 +1,286 @@ +# Spanish translation for More Blocks. +# Copyright © 2011-2020 Hugo Locurcio and contributors +# This file is distributed under the same license as the More Blocks package. +# kaeza, 2013. +# CodeXP , 2018. +msgid "" +msgstr "" +"Project-Id-Version: More Blocks\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-13 12:37+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: circular_saw.lua +msgid "Circular Saw" +msgstr "" + +#: circular_saw.lua +msgid "" +"Input\n" +"material" +msgstr "" + +#: circular_saw.lua +msgid "Left-over" +msgstr "" + +#: circular_saw.lua +msgid "Max" +msgstr "" + +#: circular_saw.lua +msgid "" +"Recycle\n" +"output" +msgstr "" + +#: circular_saw.lua +msgid "Set" +msgstr "" + +#: circular_saw.lua +msgid "owned by @1" +msgstr "" + +#: circular_saw.lua +msgid "Circular Saw is empty" +msgstr "" + +#: circular_saw.lua +msgid "Circular Saw is working on @1" +msgstr "" + +#: init.lua +msgid "[moreblocks] loaded." +msgstr "[moreblocks] cargado." + +#: nodes.lua +msgid "Deprecated" +msgstr "" + +#: nodes.lua +msgid "All-faces Acacia Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Aspen Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Jungle Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Pine Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Tree" +msgstr "Tronco de Árbol" + +#: nodes.lua +msgid "Cactus Brick" +msgstr "Ladrillos de Cactus" + +#: nodes.lua +msgid "Cactus Checker" +msgstr "Cuadros de Cactus" + +#: nodes.lua +msgid "Centered Wooden Tile" +msgstr "Parquet Centrado" + +#: nodes.lua +msgid "Checker Stone Tile" +msgstr "" + +#: nodes.lua +msgid "Circle Stone Bricks" +msgstr "Bloques de Piedra Circulares" + +#: nodes.lua +msgid "Clean Glass" +msgstr "Cristal Limpio" + +#: nodes.lua +msgid "Coal Checker" +msgstr "Cuadros de Carbón" + +#: nodes.lua +msgid "Coal Glass" +msgstr "Cristal con Carbón" + +#: nodes.lua +msgid "Coal Stone" +msgstr "Carbón y Piedra" + +#: nodes.lua +msgid "Coal Stone Bricks" +msgstr "" + +#: nodes.lua +msgid "Compressed Cobblestone" +msgstr "" + +#: nodes.lua +msgid "Compressed Desert Cobblestone" +msgstr "" + +#: nodes.lua +msgid "Compressed Dirt" +msgstr "" + +#: nodes.lua +msgid "Copper Patina Block" +msgstr "" + +#: nodes.lua +msgid "Empty Shelf" +msgstr "" + +#: nodes.lua +msgid "Full Wooden Tile" +msgstr "Parquet Completo" + +#: nodes.lua +msgid "Glow Glass" +msgstr "Cristal Brillante" + +#: nodes.lua +msgid "Iron Checker" +msgstr "Cuadros de Hierro" + +#: nodes.lua +msgid "Iron Glass" +msgstr "Cristal con Hierro" + +#: nodes.lua +msgid "Iron Stone" +msgstr "Hierro y Piedra" + +#: nodes.lua +msgid "Iron Stone Bricks" +msgstr "" + +#: nodes.lua +msgid "Plankstone" +msgstr "Tablones de piedra" + +#: nodes.lua +msgid "Rope" +msgstr "Soga" + +#: nodes.lua +msgid "Split Stone Tile" +msgstr "Baldosas de Piedra Partida" + +#: nodes.lua +msgid "Stone Bricks" +msgstr "" + +#: nodes.lua +msgid "Stone Tile" +msgstr "Baldosa de Piedra" + +#: nodes.lua +msgid "Super Glow Glass" +msgstr "Cristal Súper Brillante" + +#: nodes.lua +msgid "Sweeper" +msgstr "Limpiador" + +#: nodes.lua +msgid "Tar" +msgstr "" + +#: nodes.lua +msgid "Trap Desert Stone" +msgstr "" + +#: nodes.lua +msgid "Trap Glass" +msgstr "Cristal Trampa" + +#: nodes.lua +msgid "Trap Glow Glass" +msgstr "" + +#: nodes.lua +msgid "Trap Obsidian" +msgstr "" + +#: nodes.lua +msgid "Trap Obsidian Glass" +msgstr "" + +#: nodes.lua +msgid "Trap Sandstone" +msgstr "" + +#: nodes.lua +msgid "Trap Stone" +msgstr "Piedra Trampa" + +#: nodes.lua +msgid "Trap Super Glow Glass" +msgstr "" + +#: nodes.lua +msgid "Wooden Tile" +msgstr "Parquet" + +#: nodes.lua +msgid "Offset Wooden Tile" +msgstr "" + +#: nodes.lua +msgid "Downwards Wooden Tile" +msgstr "" + +#: nodes.lua +msgid "Leftwards Wooden Tile" +msgstr "" + +#: nodes.lua +msgid "Rightwards Wooden Tile" +msgstr "" + +#: ownership.lua +msgid "Sorry, @1 owns that spot." +msgstr "" + +#: ownership.lua +msgid "someone" +msgstr "" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Microblock" +msgstr "Microbloque de %s" + +#: stairsplus/common.lua stairsplus/slabs.lua +#, lua-format +msgid "%s Slab" +msgstr "Losa de %s" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Slope" +msgstr "" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Panel" +msgstr "Panel de %s" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Stairs" +msgstr "Escalera de %s" diff --git a/moreblocks/locale/es.txt b/moreblocks/locale/es.txt deleted file mode 100644 index d11ba49..0000000 --- a/moreblocks/locale/es.txt +++ /dev/null @@ -1,52 +0,0 @@ -# Translation by kaeza - -[moreblocks] loaded. = [moreblocks] cargado. - -Jungle Wooden Planks = Tablones de madera de jungla -Empty Bookshelf = Estante para libros vacío -Clean Glass = Cristal Limpio -Plankstone = Tablones de piedra -Wooden Tile = Parquet -Full Wooden Tile = Parquet Completo -Centered Wooden Tile = Parquet Centrado -Up Wooden Tile = Parquet Superior -Down Wooden Tile = Parquet Inferior -Left Wooden Tile = Parquet Izquierdo -Right Wooden Tile = Parquet Derecho -Circle Stone Bricks = Bloques de Piedra Circulares -Stone Tile = Baldosa de Piedra -Split Stone Tile = Baldosas de Piedra Partida -Glow Glass = Cristal Brillante -Super Glow Glass = Cristal Súper Brillante -Coal Glass = Cristal con Carbón -Iron Glass = Cristal con Hierro -Coal Checker = Cuadros de Carbón -Iron Checker = Cuadros de Hierro -Trap Stone = Piedra Trampa -Trap Glass = Cristal Trampa -Coal Stone = Carbón y Piedra -Iron Stone = Hierro y Piedra -Cactus Checker = Cuadros de Cactus -Cactus Brick = Ladrillos de Cactus -Sweeper = Limpiador -Jungle Stick = Varita de Madera de Jungla -Horizontal Tree = Tronco de árbol horizontal -Horizontal Jungle Tree = Tronco de árbol de la jungla horizontal -Rope = Soga -All-faces Tree = Tronco de Árbol - -%s Stairs = Escalera de %s -%s Slab = Losa de %s -%s Panel = Panel de %s -%s Microblock = Microbloque de %s - -Wooden = Madera -Papyrus = Papiro -Dry Shrub = Arbusto Desértico -Sapling = Brote de Árbol -Wooden Planks = Tablones de Madera -Ladder = Escalera de Mano -Glass = Cristal - -%s Pane = Panel de %s -%s Fence = Valla de %s diff --git a/moreblocks/locale/fr.po b/moreblocks/locale/fr.po new file mode 100644 index 0000000..e1e25d0 --- /dev/null +++ b/moreblocks/locale/fr.po @@ -0,0 +1,291 @@ +# French translation for More Blocks. +# Copyright © 2011-2020 Hugo Locurcio and contributors +# This file is distributed under the same license as the More Blocks package. +# Hugo Locurcio , 2013-2019. +# Jat15, 2013. +# CodeXP , 2018. +msgid "" +msgstr "" +"Project-Id-Version: More Blocks\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-13 12:37+0200\n" +"PO-Revision-Date: 2019-03-20 21:10+0100\n" +"Last-Translator: Hugo Locurcio \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: circular_saw.lua +msgid "Circular Saw" +msgstr "Scie circulaire" + +#: circular_saw.lua +msgid "" +"Input\n" +"material" +msgstr "" +"Matériau\n" +"d'entrée" + +#: circular_saw.lua +msgid "Left-over" +msgstr "Reste" + +#: circular_saw.lua +msgid "Max" +msgstr "Max" + +#: circular_saw.lua +msgid "" +"Recycle\n" +"output" +msgstr "" +"Sortie à\n" +"recycler" + +#: circular_saw.lua +msgid "Set" +msgstr "Définir" + +#: circular_saw.lua +msgid "owned by @1" +msgstr "propriété de @1" + +#: circular_saw.lua +msgid "Circular Saw is empty" +msgstr "Scie circulaire vide" + +#: circular_saw.lua +msgid "Circular Saw is working on @1" +msgstr "Scie circulaire manipulant @1" + +#: init.lua +msgid "[moreblocks] loaded." +msgstr "[moreblocks] a été chargé." + +#: nodes.lua +msgid "Deprecated" +msgstr "déprécié" + +#: nodes.lua +msgid "All-faces Acacia Tree" +msgstr "Tronc d'arbre d'acacia (toutes faces)" + +#: nodes.lua +msgid "All-faces Aspen Tree" +msgstr "Tronc d'arbre de peuplier (toutes faces)" + +#: nodes.lua +msgid "All-faces Jungle Tree" +msgstr "Tronc d'arbre de jungle (toutes faces)" + +#: nodes.lua +msgid "All-faces Pine Tree" +msgstr "Tronc d'arbre de pin (toutes faces)" + +#: nodes.lua +msgid "All-faces Tree" +msgstr "Tronc d'arbre (toutes faces)" + +#: nodes.lua +msgid "Cactus Brick" +msgstr "Briques de cactus" + +#: nodes.lua +msgid "Cactus Checker" +msgstr "Damier en cactus" + +#: nodes.lua +msgid "Centered Wooden Tile" +msgstr "Dalle en bois centrée" + +#: nodes.lua +msgid "Checker Stone Tile" +msgstr "Damier de dalle en pierre" + +#: nodes.lua +msgid "Circle Stone Bricks" +msgstr "Briques en pierre circulaires" + +#: nodes.lua +msgid "Clean Glass" +msgstr "Verre propre" + +#: nodes.lua +msgid "Coal Checker" +msgstr "Damier en charbon" + +#: nodes.lua +msgid "Coal Glass" +msgstr "Verre de charbon" + +#: nodes.lua +msgid "Coal Stone" +msgstr "Pierre de charbon" + +#: nodes.lua +msgid "Coal Stone Bricks" +msgstr "Briques en pierre de charbon" + +#: nodes.lua +msgid "Compressed Cobblestone" +msgstr "Pierre taillée compressée" + +#: nodes.lua +msgid "Compressed Desert Cobblestone" +msgstr "" + +#: nodes.lua +msgid "Compressed Dirt" +msgstr "Terre compressée" + +#: nodes.lua +msgid "Copper Patina Block" +msgstr "Bloc de patine de cuivre" + +#: nodes.lua +msgid "Empty Shelf" +msgstr "Étagère vide" + +#: nodes.lua +msgid "Full Wooden Tile" +msgstr "Dalle en bois complète" + +#: nodes.lua +msgid "Glow Glass" +msgstr "Verre brillant" + +#: nodes.lua +msgid "Iron Checker" +msgstr "Damier de fer" + +#: nodes.lua +msgid "Iron Glass" +msgstr "Verre de fer" + +#: nodes.lua +msgid "Iron Stone" +msgstr "Pierre de fer" + +#: nodes.lua +msgid "Iron Stone Bricks" +msgstr "Briques en pierre de fer" + +#: nodes.lua +msgid "Plankstone" +msgstr "Pierre-bois" + +#: nodes.lua +msgid "Rope" +msgstr "Corde" + +#: nodes.lua +msgid "Split Stone Tile" +msgstr "Dalle en pierre découpée" + +#: nodes.lua +msgid "Stone Bricks" +msgstr "Briques en pierre" + +#: nodes.lua +msgid "Stone Tile" +msgstr "Dalle en pierre" + +#: nodes.lua +msgid "Super Glow Glass" +msgstr "Verre très brillant" + +#: nodes.lua +msgid "Sweeper" +msgstr "Balai" + +#: nodes.lua +msgid "Tar" +msgstr "Bitume" + +#: nodes.lua +msgid "Trap Desert Stone" +msgstr "Pierre du désert traversable" + +#: nodes.lua +msgid "Trap Glass" +msgstr "Verre traversable" + +#: nodes.lua +msgid "Trap Glow Glass" +msgstr "Verre brillant traversable" + +#: nodes.lua +msgid "Trap Obsidian" +msgstr "Obsidienne traversable" + +#: nodes.lua +msgid "Trap Obsidian Glass" +msgstr "Verre d'obsidienne traversable" + +#: nodes.lua +msgid "Trap Sandstone" +msgstr "Grès traversable" + +#: nodes.lua +msgid "Trap Stone" +msgstr "Pierre traversable" + +#: nodes.lua +msgid "Trap Super Glow Glass" +msgstr "Verre très brillant traversable" + +#: nodes.lua +msgid "Wooden Tile" +msgstr "Dalle en bois" + +#: nodes.lua +msgid "Offset Wooden Tile" +msgstr "Dalle en bois décalée" + +#: nodes.lua +msgid "Downwards Wooden Tile" +msgstr "Dalle en bois vers le bas" + +#: nodes.lua +msgid "Leftwards Wooden Tile" +msgstr "Dalle en bois vers la gauche" + +#: nodes.lua +msgid "Rightwards Wooden Tile" +msgstr "Dalle en bois vers la droite" + +#: ownership.lua +msgid "Sorry, @1 owns that spot." +msgstr "Désolé, @1 possède cet endroit." + +#: ownership.lua +msgid "someone" +msgstr "quelqu'un" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Microblock" +msgstr "Microbloc en %s" + +#: stairsplus/common.lua stairsplus/slabs.lua +#, lua-format +msgid "%s Slab" +msgstr "Demi-dalle en %s" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Slope" +msgstr "Pente en %s" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Panel" +msgstr "Barre en %s" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Stairs" +msgstr "Escaliers en %s" diff --git a/moreblocks/locale/fr.txt b/moreblocks/locale/fr.txt deleted file mode 100644 index 6bd7f98..0000000 --- a/moreblocks/locale/fr.txt +++ /dev/null @@ -1,72 +0,0 @@ -# Translation by Calinou - -###init.lua### -[moreblocks] loaded. = [moreblocks] a t charg. - -Jungle Wooden Planks = Planches de bois de jungle -Empty Bookshelf = tagre vide -Clean Glass = Verre propre -Plankstone = Pierre-bois -Wooden Tile = Dalle en bois -Full Wooden Tile = Dalle en bois complte -Centered Wooden Tile = Dalle en bois centre -Up Wooden Tile = Dalle en bois vers le haut -Down Wooden Tile = Dalle en bois vers le bas -Left Wooden Tile = Dalle en bois vers la gauche -Right Wooden Tile = Dalle en bois vers la droite -Circle Stone Bricks = Briques en pierre circulaires -Stone Tile = Dalle en pierre -Split Stone Tile = Dalle en pierre dcoupe -Glow Glass = Verre brillant -Super Glow Glass = Verre trs brillant -Coal Glass = Verre de charbon -Iron Glass = Verre de fer -Coal Checker = Damier en charbon -Iron Checker = Damier en fer -Trap Stone = Pierre traversable -Trap Glass = Verre traversable -Trap Glow Glass = Verre brillant traversable -Trap Super Glow Glass = Verre trs brillant traversable -Coal Stone = Pierre de charbon -Iron Stone = Pierre de fer -Coal Stone Bricks = Briques en pierre de charbon -Iron Stone Bricks = Briques en pierre de fer -Cactus Checker = Damier en cactus -Cactus Brick = Briques de cactus -Sweeper = Balai -Jungle Stick = Bton en bois de jungle -Horizontal Tree = Tronc d'arbre horizontal -Horizontal Jungle Tree = Tronc d'arbre de jungle horizontal -Rope = Corde -All-faces Tree = Tronc d'arbre - -###redefinition.lua### -Wooden = bois -Papyrus = Papyrus -Dry Shrub = Buisson mort -Sapling = Pousse d'arbre -Wooden Planks = Planches de bois -Ladder = chelle -Glass = Verre - -###circular_saw.lua### -Circular Saw = Scie circulaire -Circular saw, empty (owned by %s) = Scie circulaire, vide (proprit de %s) -Circular saw, working with %s (owned by %s) = Scie circulaire, manipule %s (proprit de %s) -Circular saw, empty = Scie circulaire, vide -Circular saw is empty (owned by %s) = Scie circulaire est vide (proprit de %s) - -Input material = Entre du matriel -Rest/microblocks = Reste/microbloc -Max: = Max: -Set = Fixer -Recycle output = Recyclage - -###./stairsplus/*### -%s Stairs = Escaliers en %s -%s Slab = Demi-dalle en %s -%s Panel = Barre en %s -%s Microblock = Microbloc en %s - -%s Pane = Panneau en %s -%s Fence = Barrire en %s \ No newline at end of file diff --git a/moreblocks/locale/it.po b/moreblocks/locale/it.po new file mode 100644 index 0000000..1ec3055 --- /dev/null +++ b/moreblocks/locale/it.po @@ -0,0 +1,290 @@ +# Italian translation for More Blocks. +# Copyright © 2011-2020 Hugo Locurcio and contributors +# This file is distributed under the same license as the More Blocks package. +# Emon, 2016. +# CodeXP , 2018. +msgid "" +msgstr "" +"Project-Id-Version: More Blocks\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-13 12:37+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: circular_saw.lua +msgid "Circular Saw" +msgstr "Sega circolare" + +#: circular_saw.lua +msgid "" +"Input\n" +"material" +msgstr "" +"Materiale\n" +"iniziale" + +#: circular_saw.lua +msgid "Left-over" +msgstr "Scarto" + +#: circular_saw.lua +msgid "Max" +msgstr "Max." + +#: circular_saw.lua +msgid "" +"Recycle\n" +"output" +msgstr "" +"Ricicla\n" +"finale" + +#: circular_saw.lua +msgid "Set" +msgstr "Imp." + +#: circular_saw.lua +msgid "owned by @1" +msgstr "" + +#: circular_saw.lua +msgid "Circular Saw is empty" +msgstr "Sega circolare, vuota" + +#: circular_saw.lua +msgid "Circular Saw is working on @1" +msgstr "Sega circolare, in funzione su @1" + +#: init.lua +msgid "[moreblocks] loaded." +msgstr "[moreblocks] caricato." + +#: nodes.lua +msgid "Deprecated" +msgstr "" + +#: nodes.lua +msgid "All-faces Acacia Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Aspen Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Jungle Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Pine Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Tree" +msgstr "Albero su ogni lato" + +#: nodes.lua +msgid "Cactus Brick" +msgstr "Mattoni di cactus" + +#: nodes.lua +msgid "Cactus Checker" +msgstr "Scacchiera in cactus" + +#: nodes.lua +msgid "Centered Wooden Tile" +msgstr "Mattonella in legno centrata" + +#: nodes.lua +msgid "Checker Stone Tile" +msgstr "" + +#: nodes.lua +msgid "Circle Stone Bricks" +msgstr "Mattoni concentrici in pietra" + +#: nodes.lua +msgid "Clean Glass" +msgstr "Vetro pulito" + +#: nodes.lua +msgid "Coal Checker" +msgstr "Scacchiera in carbone" + +#: nodes.lua +msgid "Coal Glass" +msgstr "Vetro e carbone" + +#: nodes.lua +msgid "Coal Stone" +msgstr "Pietra in carbone" + +#: nodes.lua +msgid "Coal Stone Bricks" +msgstr "Mattoni di pietra in carbone" + +#: nodes.lua +msgid "Compressed Cobblestone" +msgstr "" + +#: nodes.lua +msgid "Compressed Desert Cobblestone" +msgstr "" + +#: nodes.lua +msgid "Compressed Dirt" +msgstr "" + +#: nodes.lua +msgid "Copper Patina Block" +msgstr "" + +#: nodes.lua +msgid "Empty Shelf" +msgstr "Scaffale Vuoto" + +#: nodes.lua +msgid "Full Wooden Tile" +msgstr "Mattonella in legno pieno" + +#: nodes.lua +msgid "Glow Glass" +msgstr "Vetro luminoso" + +#: nodes.lua +msgid "Iron Checker" +msgstr "Scacchiera in ferro" + +#: nodes.lua +msgid "Iron Glass" +msgstr "Vetro e ferro" + +#: nodes.lua +msgid "Iron Stone" +msgstr "Pietra in ferro" + +#: nodes.lua +msgid "Iron Stone Bricks" +msgstr "Mattoni di pietra in ferro" + +#: nodes.lua +msgid "Plankstone" +msgstr "Pietra e legno" + +#: nodes.lua +msgid "Rope" +msgstr "Corda" + +#: nodes.lua +msgid "Split Stone Tile" +msgstr "Mattonella in pietra divisa" + +#: nodes.lua +msgid "Stone Bricks" +msgstr "" + +#: nodes.lua +msgid "Stone Tile" +msgstr "Mattonella in pietra" + +#: nodes.lua +msgid "Super Glow Glass" +msgstr "Super vetro luminoso" + +#: nodes.lua +msgid "Sweeper" +msgstr "Spazzola" + +#: nodes.lua +msgid "Tar" +msgstr "" + +#: nodes.lua +msgid "Trap Desert Stone" +msgstr "" + +#: nodes.lua +msgid "Trap Glass" +msgstr "Vetro trappola" + +#: nodes.lua +msgid "Trap Glow Glass" +msgstr "Vetro luminoso trappola" + +#: nodes.lua +msgid "Trap Obsidian" +msgstr "" + +#: nodes.lua +msgid "Trap Obsidian Glass" +msgstr "" + +#: nodes.lua +msgid "Trap Sandstone" +msgstr "" + +#: nodes.lua +msgid "Trap Stone" +msgstr "Pietra trappola" + +#: nodes.lua +msgid "Trap Super Glow Glass" +msgstr "Super vetro luminoso trappola" + +#: nodes.lua +msgid "Wooden Tile" +msgstr "Mattonella in legno" + +#: nodes.lua +msgid "Offset Wooden Tile" +msgstr "" + +#: nodes.lua +msgid "Downwards Wooden Tile" +msgstr "" + +#: nodes.lua +msgid "Leftwards Wooden Tile" +msgstr "" + +#: nodes.lua +msgid "Rightwards Wooden Tile" +msgstr "" + +#: ownership.lua +msgid "Sorry, @1 owns that spot." +msgstr "Spiacente, quel punto è di proprietà di @1" + +#: ownership.lua +msgid "someone" +msgstr "qualcuno" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Microblock" +msgstr "Microblocco %s" + +#: stairsplus/common.lua stairsplus/slabs.lua +#, lua-format +msgid "%s Slab" +msgstr "Lastra - %s" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Slope" +msgstr "" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Panel" +msgstr "Pannello - %s" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Stairs" +msgstr "Scale - %s" diff --git a/moreblocks/locale/it.txt b/moreblocks/locale/it.txt deleted file mode 100644 index 589e104..0000000 --- a/moreblocks/locale/it.txt +++ /dev/null @@ -1,70 +0,0 @@ -# -# Italian translation -# Translator: Emon -# - - -###init.lua### -[moreblocks] loaded. = [moreblocks] caricato. - -###nodes.lua### -Jungle Wood Fence = Recinzione in legno della giungla -Empty Bookshelf = Libreria vuota -Clean Glass = Vetro pulito -Plankstone = Pietra e legno -Wooden Tile = Mattonella in legno -Full Wooden Tile = Mattonella in legno pieno -Centered Wooden Tile = Mattonella in legno centrata -Up Wooden Tile = Mattonella in legno verso l'alto -Down Wooden Tile = Mattonella in legno verso il basso -Left Wooden Tile = Mattonella in legno verso sinistra -Right Wooden Tile = Mattonella in legno verso destra -Circle Stone Bricks = Mattoni concentrici in pietra -Stone Tile = Mattonella in pietra -Split Stone Tile = Mattonella in pietra divisa -Glow Glass = Vetro luminoso -Super Glow Glass = Super vetro luminoso -Coal Glass = Vetro e carbone -Iron Glass = Vetro e ferro -Coal Checker = Scacchiera in carbone -Iron Checker = Scacchiera in ferro -Trap Stone = Pietra trappola -Trap Glass = Vetro trappola -Trap Glow Glass = Vetro luminoso trappola -Trap Super Glow Glass = Super vetro luminoso trappola -Coal Stone = Pietra in carbone -Iron Stone = Pietra in ferro -Coal Stone Bricks = Mattoni di pietra in carbone -Iron Stone Bricks = Mattoni di pietra in ferro -Cactus Checker = Scacchiera in cactus -Cactus Brick = Mattoni di cactus -Sweeper = Spazzola -Jungle Stick = Bastone in legno della giungla -Rope = Corda -All-faces Tree = Albero su ogni lato - -###circular_saw.lua### -Circular Saw = Sega circolare -Circular saw, empty (owned by %s) = Sega circolare, vuota (di proprietà di %s) -Circular saw, working with %s (owned by %s) = Sega circolare, in funzione su %s (di proprietà di %s) -Circular saw, empty = Sega circolare, vuota -Circular saw is empty (owned by %s) = La sega circolare è vuota (di proprietà di %s) - -Input\nmaterial = Materiale\niniziale -Left-over = Scarto -Max = Max. -Set = Imp. -Recycle\noutput = Ricicla\nfinale - -###ownership.lua### -someone = qualcuno -Sorry, %s owns that spot. = Spiacente, quel punto è di proprietà di %s - -###./stairsplus/*### -%s Stairs = Scale - %s -%s Slab = Lastra - %s -%s Panel = Pannello - %s -%s Microblock = Microblocco %s - -%s Pane = Pannello - %s -%s Fence = Recinzione - %s diff --git a/moreblocks/locale/pl.po b/moreblocks/locale/pl.po new file mode 100644 index 0000000..4d557f3 --- /dev/null +++ b/moreblocks/locale/pl.po @@ -0,0 +1,293 @@ +# Polish translation for More Blocks. +# Copyright © 2011-2020 Hugo Locurcio and contributors +# This file is distributed under the same license as the More Blocks package. +# mat9117, 2019 +# CodeXP , 2018. +msgid "" +msgstr "" +"Project-Id-Version: More Blocks\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-13 12:37+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: circular_saw.lua +msgid "Circular Saw" +msgstr "Piła tarczowa" + +#: circular_saw.lua +msgid "" +"Input\n" +"material" +msgstr "" +"wejście\n" +"materiał" + +#: circular_saw.lua +msgid "Left-over" +msgstr "Resztki" + +#: circular_saw.lua +msgid "Max" +msgstr "Maks" + +#: circular_saw.lua +msgid "" +"Recycle\n" +"output" +msgstr "" +"Przetwarzanie\n" +"Wyjście" + +#: circular_saw.lua +msgid "Set" +msgstr "Ustaw" + +#: circular_saw.lua +msgid "owned by @1" +msgstr "Należy do @1" + +#: circular_saw.lua +msgid "Circular Saw is empty" +msgstr "Piła tarczowa jest pusta" + +#: circular_saw.lua +msgid "Circular Saw is working on @1" +msgstr "Piła tarczowa pracuje na @1" + +#: init.lua +msgid "[moreblocks] loaded." +msgstr "[moreblocks] załadowane." + +#: nodes.lua +msgid "Deprecated" +msgstr "Przestarzałe" + +#: nodes.lua +msgid "All-faces Acacia Tree" +msgstr "Wielostronna tekstura akacji" + +#: nodes.lua +msgid "All-faces Aspen Tree" +msgstr "Wielostronna tekstura osiki" + +#: nodes.lua +msgid "All-faces Jungle Tree" +msgstr "Wielostronna tekstura drzewa dżunglowego" + +#: nodes.lua +msgid "All-faces Pine Tree" +msgstr "Wielostronna tekstura sosny" + +#: nodes.lua +msgid "All-faces Tree" +msgstr "Wielostronna tekstura drzewa" + +#: nodes.lua +msgid "Cactus Brick" +msgstr "Kaktusowa cegła" + +#: nodes.lua +msgid "Cactus Checker" +msgstr "Kaktusowa szachownica" + +#: nodes.lua +msgid "Centered Wooden Tile" +msgstr "Wyśrodkowany drewniany kafelek" + +#: nodes.lua +msgid "Checker Stone Tile" +msgstr "Kamienna szachownica" + +#: nodes.lua +msgid "Circle Stone Bricks" +msgstr "Okrągłe kamienne cegły" + +#: nodes.lua +msgid "Clean Glass" +msgstr "Czyste szkło" + +#: nodes.lua +msgid "Coal Checker" +msgstr "Węglowa szachownica" + +#: nodes.lua +msgid "Coal Glass" +msgstr "Szkło węglowe" + +#: nodes.lua +msgid "Coal Stone" +msgstr "Kamień węglowy" + +#: nodes.lua +msgid "Coal Stone Bricks" +msgstr "Węglowe kamienne cegły" + +#: nodes.lua +msgid "Compressed Cobblestone" +msgstr "Skompresowany bruk" + +#: nodes.lua +msgid "Compressed Desert Cobblestone" +msgstr "" + +#: nodes.lua +msgid "Compressed Dirt" +msgstr "Skompresowana ziemia" + +#: nodes.lua +msgid "Copper Patina Block" +msgstr "Blok patynowanej miedzi" + +#: nodes.lua +msgid "Empty Shelf" +msgstr "Pusta półka" + +#: nodes.lua +msgid "Full Wooden Tile" +msgstr "Pełny drewniany kafelek" + +#: nodes.lua +msgid "Glow Glass" +msgstr "Świecące szkło" + +#: nodes.lua +msgid "Iron Checker" +msgstr "Żelazna szachownica" + +#: nodes.lua +msgid "Iron Glass" +msgstr "Żelazne szkło" + +#: nodes.lua +msgid "Iron Stone" +msgstr "Żelazny kamień" + +#: nodes.lua +msgid "Iron Stone Bricks" +msgstr "Żelazne kamienne cegły" + +#: nodes.lua +msgid "Plankstone" +msgstr "Deskokamień" + +#: nodes.lua +msgid "Rope" +msgstr "Lina" + +#: nodes.lua +msgid "Split Stone Tile" +msgstr "Kamienny blok kafelkowy" + +#: nodes.lua +msgid "Stone Bricks" +msgstr "Kamienne cegły" + +#: nodes.lua +msgid "Stone Tile" +msgstr "Kamienny kafelek" + +#: nodes.lua +msgid "Super Glow Glass" +msgstr "Super świecące szkło" + +#: nodes.lua +msgid "Sweeper" +msgstr "Miotła" + +#: nodes.lua +msgid "Tar" +msgstr "Smoła" + +#: nodes.lua +msgid "Trap Desert Stone" +msgstr "Pułapka z pustynnego kamienia" + +#: nodes.lua +msgid "Trap Glass" +msgstr "Szklana pułapka" + +#: nodes.lua +msgid "Trap Glow Glass" +msgstr "Pułapka ze świecącego szkłą" + +#: nodes.lua +msgid "Trap Obsidian" +msgstr "Obsydianowa pułapka" + +#: nodes.lua +msgid "Trap Obsidian Glass" +msgstr "Pułapka z obsydianowego szkła" + +#: nodes.lua +msgid "Trap Sandstone" +msgstr "Pułapka z piaskowca" + +#: nodes.lua +msgid "Trap Stone" +msgstr "Kamienna pułapka" + +#: nodes.lua +msgid "Trap Super Glow Glass" +msgstr "Pułapka z super świecącego szkła" + +#: nodes.lua +msgid "Wooden Tile" +msgstr "Drewniany kafelek" + +#: nodes.lua +msgid "Offset Wooden Tile" +msgstr "" + +# @deprecated +#: nodes.lua +msgid "Downwards Wooden Tile" +msgstr "Dolny drewniany kafelek" + +# @deprecated +#: nodes.lua +msgid "Leftwards Wooden Tile" +msgstr "Lewy drewniany kafelek" + +# @deprecated +#: nodes.lua +msgid "Rightwards Wooden Tile" +msgstr "Prawy drewniany kafelek" + +#: ownership.lua +msgid "Sorry, @1 owns that spot." +msgstr "Przykro mi, to miejsce należy do @1" + +#: ownership.lua +msgid "someone" +msgstr "ktoś" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Microblock" +msgstr "%s Mikroblok" + +#: stairsplus/common.lua stairsplus/slabs.lua +#, lua-format +msgid "%s Slab" +msgstr "%s Płyta" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Slope" +msgstr "%s Spad" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Panel" +msgstr "%s Panel" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Stairs" +msgstr "%s Schody" diff --git a/moreblocks/locale/ru.po b/moreblocks/locale/ru.po new file mode 100644 index 0000000..cd3d2c5 --- /dev/null +++ b/moreblocks/locale/ru.po @@ -0,0 +1,294 @@ +# Russian translation for MOREBLOCKS minetest mod. +# Copyright (C) 2018 Hugo Locurcio and contributors +# This file is distributed under the same license as the MOREBLOCKS package. +# CodeXP , 2018. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: MOREBLOCKS MOD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-13 23:30+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: circular_saw.lua +msgid "Circular Saw" +msgstr "циркулярная пила" + +#: circular_saw.lua +msgid "" +"Input\n" +"material" +msgstr "" +"Входной\n" +"материал" + +#: circular_saw.lua +msgid "Left-over" +msgstr "Остатки" + +#: circular_saw.lua +msgid "Max" +msgstr "Кол." + +#: circular_saw.lua +msgid "" +"Recycle\n" +"output" +msgstr "" +"Пере-\n" +"обработка" + +#: circular_saw.lua +msgid "Set" +msgstr "ОК" + +#: circular_saw.lua +msgid "owned by @1" +msgstr "принадлежит @1" + +#: circular_saw.lua +msgid "Circular Saw is empty" +msgstr "циркулярная пила пустая" + +#: circular_saw.lua +msgid "Circular Saw is working on @1" +msgstr "циркулярная пила, @1 в обработке" + +#: init.lua +msgid "[MOD] moreblocks loaded." +msgstr "[MOD] moreblocks загружен." + +#: nodes.lua +msgid "Deprecated" +msgstr "устаревший" + +#: nodes.lua +msgid "All-faces Acacia Tree" +msgstr "всестороннее бревно акации" + +#: nodes.lua +msgid "All-faces Aspen Tree" +msgstr "всестороннее бревно осины" + +#: nodes.lua +msgid "All-faces Jungle Tree" +msgstr "всестороннее бревно дерева джунглей" + +#: nodes.lua +msgid "All-faces Pine Tree" +msgstr "всестороннее бревно сосновое" + +#: nodes.lua +msgid "All-faces Tree" +msgstr "всестороннее бревно дерева" + +#: nodes.lua +msgid "Cactus Brick" +msgstr "кирпич из кактуса" + +#: nodes.lua +msgid "Cactus Checker" +msgstr "мозаика из кактуса" + +#: nodes.lua +msgid "Centered Wooden Tile" +msgstr "деревянная мозаика (центр)" + +#: nodes.lua +msgid "Checker Stone Tile" +msgstr "каменная мозаика" + +#: nodes.lua +msgid "Circle Stone Bricks" +msgstr "кольцевой камень" + +#: nodes.lua +msgid "Clean Glass" +msgstr "чистое стекло" + +#: nodes.lua +msgid "Coal Checker" +msgstr "угольная мозаика" + +#: nodes.lua +msgid "Coal Glass" +msgstr "угольное стекло" + +#: nodes.lua +msgid "Coal Stone" +msgstr "угольный камень" + +#: nodes.lua +msgid "Coal Stone Bricks" +msgstr "угольно-каменный кирпич" + +#: nodes.lua +msgid "Compressed Cobblestone" +msgstr "прессованный булыжник" + +#: nodes.lua +msgid "Compressed Desert Cobblestone" +msgstr "" + +#: nodes.lua +msgid "Compressed Dirt" +msgstr "прессованная земля" + +#: nodes.lua +msgid "Copper Patina Block" +msgstr "медный патинированный блок" + +#: nodes.lua +msgid "Empty Shelf" +msgstr "пустые полки" + +#: nodes.lua +msgid "Full Wooden Tile" +msgstr "деревянная мозаика" + +#: nodes.lua +msgid "Glow Glass" +msgstr "светящееся стекло" + +#: nodes.lua +msgid "Iron Checker" +msgstr "стальная мозаика" + +#: nodes.lua +msgid "Iron Glass" +msgstr "металлизированное стекло" + +#: nodes.lua +msgid "Iron Stone" +msgstr "железный камень" + +#: nodes.lua +msgid "Iron Stone Bricks" +msgstr "железно-каменный кирпич" + +#: nodes.lua +msgid "Plankstone" +msgstr "дерево-каменная мозаика" + +#: nodes.lua +msgid "Rope" +msgstr "верёвка" + +#: nodes.lua +msgid "Split Stone Tile" +msgstr "каменная мозаика" + +#: nodes.lua +msgid "Stone Bricks" +msgstr "каменный кирпич" + +#: nodes.lua +msgid "Stone Tile" +msgstr "каменная плитка" + +#: nodes.lua +msgid "Super Glow Glass" +msgstr "супер светящееся стекло" + +#: nodes.lua +msgid "Sweeper" +msgstr "метёлка" + +#: nodes.lua +msgid "Tar" +msgstr "смола" + +#: nodes.lua +msgid "Trap Desert Stone" +msgstr "мнимый пустынный камень" + +#: nodes.lua +msgid "Trap Glass" +msgstr "мнимое стекло" + +#: nodes.lua +msgid "Trap Glow Glass" +msgstr "мнимое светящееся стекло" + +#: nodes.lua +msgid "Trap Obsidian" +msgstr "мнимый обсидиан" + +#: nodes.lua +msgid "Trap Obsidian Glass" +msgstr "мнимое обсидиановое стекло" + +#: nodes.lua +msgid "Trap Sandstone" +msgstr "мнимый песчаник" + +#: nodes.lua +msgid "Trap Stone" +msgstr "мнимый камень" + +#: nodes.lua +msgid "Trap Super Glow Glass" +msgstr "мнимое супер светящееся стекло" + +#: nodes.lua +msgid "Wooden Tile" +msgstr "деревянная мозаика" + +#: nodes.lua +msgid "Offset Wooden Tile" +msgstr "деревянная мозаика (сверху)" + +# @deprecated +#: nodes.lua +msgid "Downwards Wooden Tile" +msgstr "деревянная мозаика (снизу)" + +# @deprecated +#: nodes.lua +msgid "Leftwards Wooden Tile" +msgstr "деревянная мозаика (слева)" + +# @deprecated +#: nodes.lua +msgid "Rightwards Wooden Tile" +msgstr "деревянная мозаика (справа)" + +#: ownership.lua +msgid "Sorry, @1 owns that spot." +msgstr "Извините, это принадлежит @1." + +#: ownership.lua +msgid "someone" +msgstr "кому-то" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Microblock" +msgstr "%s (микроблок)" + +#: stairsplus/common.lua stairsplus/slabs.lua +#, lua-format +msgid "%s Slab" +msgstr "%s (плита)" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Slope" +msgstr "%s (наклон)" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Panel" +msgstr "%s (панель)" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Stairs" +msgstr "%s (лестница)" diff --git a/moreblocks/locale/template.pot b/moreblocks/locale/template.pot new file mode 100644 index 0000000..25083cc --- /dev/null +++ b/moreblocks/locale/template.pot @@ -0,0 +1,288 @@ +# Template translation for More Blocks. +# Copyright © 2011-2020 Hugo Locurcio and contributors +# This file is distributed under the same license as the More Blocks package. +# CodeXP , 2018. +msgid "" +msgstr "" +"Project-Id-Version: More Blocks\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-13 12:37+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: circular_saw.lua +msgid "Circular Saw" +msgstr "" + +#: circular_saw.lua +msgid "" +"Input\n" +"material" +msgstr "" + +#: circular_saw.lua +msgid "Left-over" +msgstr "" + +#: circular_saw.lua +msgid "Max" +msgstr "" + +#: circular_saw.lua +msgid "" +"Recycle\n" +"output" +msgstr "" + +#: circular_saw.lua +msgid "Set" +msgstr "" + +#: circular_saw.lua +msgid "owned by @1" +msgstr "" + +#: circular_saw.lua +msgid "Circular Saw is empty" +msgstr "" + +#: circular_saw.lua +msgid "Circular Saw is working on @1" +msgstr "" + +#: init.lua +msgid "[moreblocks] loaded." +msgstr "" + +#: nodes.lua +msgid "Deprecated" +msgstr "" + +#: nodes.lua +msgid "All-faces Acacia Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Aspen Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Jungle Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Pine Tree" +msgstr "" + +#: nodes.lua +msgid "All-faces Tree" +msgstr "" + +#: nodes.lua +msgid "Cactus Brick" +msgstr "" + +#: nodes.lua +msgid "Cactus Checker" +msgstr "" + +#: nodes.lua +msgid "Centered Wooden Tile" +msgstr "" + +#: nodes.lua +msgid "Checker Stone Tile" +msgstr "" + +#: nodes.lua +msgid "Circle Stone Bricks" +msgstr "" + +#: nodes.lua +msgid "Clean Glass" +msgstr "" + +#: nodes.lua +msgid "Coal Checker" +msgstr "" + +#: nodes.lua +msgid "Coal Glass" +msgstr "" + +#: nodes.lua +msgid "Coal Stone" +msgstr "" + +#: nodes.lua +msgid "Coal Stone Bricks" +msgstr "" + +#: nodes.lua +msgid "Compressed Cobblestone" +msgstr "" + +#: nodes.lua +msgid "Compressed Desert Cobblestone" +msgstr "" + +#: nodes.lua +msgid "Compressed Dirt" +msgstr "" + +#: nodes.lua +msgid "Copper Patina Block" +msgstr "" + +#: nodes.lua +msgid "Empty Shelf" +msgstr "" + +#: nodes.lua +msgid "Full Wooden Tile" +msgstr "" + +#: nodes.lua +msgid "Glow Glass" +msgstr "" + +#: nodes.lua +msgid "Iron Checker" +msgstr "" + +#: nodes.lua +msgid "Iron Glass" +msgstr "" + +#: nodes.lua +msgid "Iron Stone" +msgstr "" + +#: nodes.lua +msgid "Iron Stone Bricks" +msgstr "" + +#: nodes.lua +msgid "Plankstone" +msgstr "" + +#: nodes.lua +msgid "Rope" +msgstr "" + +#: nodes.lua +msgid "Split Stone Tile" +msgstr "" + +#: nodes.lua +msgid "Stone Bricks" +msgstr "" + +#: nodes.lua +msgid "Stone Tile" +msgstr "" + +#: nodes.lua +msgid "Super Glow Glass" +msgstr "" + +#: nodes.lua +msgid "Sweeper" +msgstr "" + +#: nodes.lua +msgid "Tar" +msgstr "" + +#: nodes.lua +msgid "Trap Desert Stone" +msgstr "" + +#: nodes.lua +msgid "Trap Glass" +msgstr "" + +#: nodes.lua +msgid "Trap Glow Glass" +msgstr "" + +#: nodes.lua +msgid "Trap Obsidian" +msgstr "" + +#: nodes.lua +msgid "Trap Obsidian Glass" +msgstr "" + +#: nodes.lua +msgid "Trap Sandstone" +msgstr "" + +#: nodes.lua +msgid "Trap Stone" +msgstr "" + +#: nodes.lua +msgid "Trap Super Glow Glass" +msgstr "" + +#: nodes.lua +msgid "Wooden Tile" +msgstr "" + +#: nodes.lua +msgid "Offset Wooden Tile" +msgstr "" + +# @deprecated +#: nodes.lua +msgid "Downwards Wooden Tile" +msgstr "" + +# @deprecated +#: nodes.lua +msgid "Leftwards Wooden Tile" +msgstr "" + +# @deprecated +#: nodes.lua +msgid "Rightwards Wooden Tile" +msgstr "" + +#: ownership.lua +msgid "Sorry, @1 owns that spot." +msgstr "" + +#: ownership.lua +msgid "someone" +msgstr "" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Microblock" +msgstr "" + +#: stairsplus/common.lua stairsplus/slabs.lua +#, lua-format +msgid "%s Slab" +msgstr "" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Slope" +msgstr "" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Panel" +msgstr "" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Stairs" +msgstr "" diff --git a/moreblocks/locale/template.txt b/moreblocks/locale/template.txt deleted file mode 100644 index 2b88227..0000000 --- a/moreblocks/locale/template.txt +++ /dev/null @@ -1,64 +0,0 @@ -###init.lua### -[moreblocks] loaded. = - -###nodes.lua### -Jungle Wood Fence = -Empty Bookshelf = -Clean Glass = -Plankstone = -Wooden Tile = -Full Wooden Tile = -Centered Wooden Tile = -Up Wooden Tile = -Down Wooden Tile = -Left Wooden Tile = -Right Wooden Tile = -Circle Stone Bricks = -Stone Tile = -Split Stone Tile = -Glow Glass = -Super Glow Glass = -Coal Glass = -Iron Glass = -Coal Checker = -Iron Checker = -Trap Stone = -Trap Glass = -Trap Glow Glass = -Trap Super Glow Glass = -Coal Stone = -Iron Stone = -Coal Stone Bricks = -Iron Stone Bricks = -Cactus Checker = -Cactus Brick = -Sweeper = -Jungle Stick = -Rope = -All-faces Tree = - -###circular_saw.lua### -Circular Saw = -Circular saw, empty (owned by %s) = -Circular saw, working with %s (owned by %s) = -Circular saw, empty = -Circular saw is empty (owned by %s) = - -Input\nmaterial = -Left-over = -Max = -Set = -Recycle\noutput = - -###ownership.lua### -someone = -Sorry, %s owns that spot. = - -###./stairsplus/*### -%s Stairs = -%s Slab = -%s Panel = -%s Microblock = - -%s Pane = -%s Fence = diff --git a/moreblocks/locale/zh_CN.po b/moreblocks/locale/zh_CN.po new file mode 100644 index 0000000..e27336f --- /dev/null +++ b/moreblocks/locale/zh_CN.po @@ -0,0 +1,288 @@ +# Template translation for More Blocks. +# Copyright © 2011-2020 Hugo Locurcio and contributors +# This file is distributed under the same license as the More Blocks package. +# IFRFSX , 2020. +msgid "" +msgstr "" +"Project-Id-Version: More Blocks\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-13 12:37+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: circular_saw.lua +msgid "Circular Saw" +msgstr "圆锯" + +#: circular_saw.lua +msgid "" +"Input\n" +"material" +msgstr "" +"输入\n" +"材料" + +#: circular_saw.lua +msgid "Left-over" +msgstr "剩余材料" + +#: circular_saw.lua +msgid "Max" +msgstr "最大值" + +#: circular_saw.lua +msgid "" +"Recycle\n" +"output" +msgstr "" +"回收\n" +"输出物" + +#: circular_saw.lua +msgid "Set" +msgstr "设置" + +#: circular_saw.lua +msgid "owned by @1" +msgstr "属于@1所有" + +#: circular_saw.lua +msgid "Circular Saw is empty" +msgstr "圆锯是空的" + +#: circular_saw.lua +msgid "Circular Saw is working on @1" +msgstr "圆锯正在加工@1" + +#: init.lua +msgid "[moreblocks] loaded." +msgstr "[moreblocks] 已加载" + +#: nodes.lua +msgid "Deprecated" +msgstr "弃用" + +#: nodes.lua +msgid "All-faces Acacia Tree" +msgstr "全切面相思树木方块" + +#: nodes.lua +msgid "All-faces Aspen Tree" +msgstr "全切面白杨树木方块" + +#: nodes.lua +msgid "All-faces Jungle Tree" +msgstr "全切面丛林树木方块" + +#: nodes.lua +msgid "All-faces Pine Tree" +msgstr "全切面松树木方块" + +#: nodes.lua +msgid "All-faces Tree" +msgstr "全切面树木方块" + +#: nodes.lua +msgid "Cactus Brick" +msgstr "仙人掌砖" + +#: nodes.lua +msgid "Cactus Checker" +msgstr "仙人掌棋盘方块" + +#: nodes.lua +msgid "Centered Wooden Tile" +msgstr "居中的木瓦" + +#: nodes.lua +msgid "Checker Stone Tile" +msgstr "棋盘石瓦" + +#: nodes.lua +msgid "Circle Stone Bricks" +msgstr "圆石砖" + +#: nodes.lua +msgid "Clean Glass" +msgstr "干净的玻璃" + +#: nodes.lua +msgid "Coal Checker" +msgstr "棋盘煤块" + +#: nodes.lua +msgid "Coal Glass" +msgstr "煤玻璃" + +#: nodes.lua +msgid "Coal Stone" +msgstr "煤炭石" + +#: nodes.lua +msgid "Coal Stone Bricks" +msgstr "煤炭石砖" + +#: nodes.lua +msgid "Compressed Cobblestone" +msgstr "压缩圆石" + +#: nodes.lua +msgid "Compressed Dirt" +msgstr "压缩土" + +#: nodes.lua +msgid "Copper Patina Block" +msgstr "铜绿方块" + +#: nodes.lua +msgid "Empty Shelf" +msgstr "空书架" + +#: nodes.lua +msgid "Full Wooden Tile" +msgstr "全木瓦" + +#: nodes.lua +msgid "Glow Glass" +msgstr "发光玻璃" + +#: nodes.lua +msgid "Iron Checker" +msgstr "棋盘铁方块" + +#: nodes.lua +msgid "Iron Glass" +msgstr "铁玻璃" + +#: nodes.lua +msgid "Iron Stone" +msgstr "铁石" + +#: nodes.lua +msgid "Iron Stone Bricks" +msgstr "铁石砖" + +#: nodes.lua +msgid "Plankstone" +msgstr "板石" + +#: nodes.lua +msgid "Rope" +msgstr "绳子" + +#: nodes.lua +msgid "Split Stone Tile" +msgstr "裂石砖" + +#: nodes.lua +msgid "Stone Bricks" +msgstr "石砖" + +#: nodes.lua +msgid "Stone Tile" +msgstr "石瓦" + +#: nodes.lua +msgid "Super Glow Glass" +msgstr "超级发光玻璃" + +#: nodes.lua +msgid "Sweeper" +msgstr "清扫器" + +#: nodes.lua +msgid "Tar" +msgstr "焦油" + +#: nodes.lua +msgid "Trap Desert Stone" +msgstr "陷阱沙漠石" + +#: nodes.lua +msgid "Trap Glass" +msgstr "陷阱玻璃" + +#: nodes.lua +msgid "Trap Glow Glass" +msgstr "陷阱发光玻璃" + +#: nodes.lua +msgid "Trap Obsidian" +msgstr "陷阱黑耀石" + +#: nodes.lua +msgid "Trap Obsidian Glass" +msgstr "陷阱黑耀石玻璃" + +#: nodes.lua +msgid "Trap Sandstone" +msgstr "陷阱沙石" + +#: nodes.lua +msgid "Trap Stone" +msgstr "陷阱石" + +#: nodes.lua +msgid "Trap Super Glow Glass" +msgstr "陷阱超级发光玻璃" + +#: nodes.lua +msgid "Wooden Tile" +msgstr "木瓦" + +#: nodes.lua +msgid "Offset Wooden Tile" +msgstr "胶合木瓦" + +# @deprecated +#: nodes.lua +msgid "Downwards Wooden Tile" +msgstr "向下的木瓦" + +# @deprecated +#: nodes.lua +msgid "Leftwards Wooden Tile" +msgstr "向左的木瓦" + +# @deprecated +#: nodes.lua +msgid "Rightwards Wooden Tile" +msgstr "向右的木瓦" + +#: ownership.lua +msgid "Sorry, @1 owns that spot." +msgstr "抱歉,那个位置是@1的。" + +#: ownership.lua +msgid "someone" +msgstr "某人" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Microblock" +msgstr "%s 小方块" + +#: stairsplus/common.lua stairsplus/slabs.lua +#, lua-format +msgid "%s Slab" +msgstr "%s 台阶" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Slope" +msgstr "%s 斜坡" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Panel" +msgstr "%s 嵌板" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Stairs" +msgstr "%s 楼梯" diff --git a/moreblocks/locale/zh_TW.po b/moreblocks/locale/zh_TW.po new file mode 100644 index 0000000..b15ca9d --- /dev/null +++ b/moreblocks/locale/zh_TW.po @@ -0,0 +1,288 @@ +# Template translation for More Blocks. +# Copyright © 2011-2020 Hugo Locurcio and contributors +# This file is distributed under the same license as the More Blocks package. +# IFRFSX , 2020. +msgid "" +msgstr "" +"Project-Id-Version: More Blocks\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-13 12:37+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: circular_saw.lua +msgid "Circular Saw" +msgstr "圓鋸" + +#: circular_saw.lua +msgid "" +"Input\n" +"material" +msgstr "" +"輸入\n" +"材料" + +#: circular_saw.lua +msgid "Left-over" +msgstr "剩餘材料" + +#: circular_saw.lua +msgid "Max" +msgstr "最大值" + +#: circular_saw.lua +msgid "" +"Recycle\n" +"output" +msgstr "" +"回收\n" +"輸出物" + +#: circular_saw.lua +msgid "Set" +msgstr "設置" + +#: circular_saw.lua +msgid "owned by @1" +msgstr "屬於@1所有" + +#: circular_saw.lua +msgid "Circular Saw is empty" +msgstr "圓鋸是空的" + +#: circular_saw.lua +msgid "Circular Saw is working on @1" +msgstr "圓鋸正在加工@1" + +#: init.lua +msgid "[moreblocks] loaded." +msgstr "[moreblocks] 已加載" + +#: nodes.lua +msgid "Deprecated" +msgstr "棄用" + +#: nodes.lua +msgid "All-faces Acacia Tree" +msgstr "全切面相思樹木方塊" + +#: nodes.lua +msgid "All-faces Aspen Tree" +msgstr "全切面白楊樹木方塊" + +#: nodes.lua +msgid "All-faces Jungle Tree" +msgstr "全切面叢林樹木方塊" + +#: nodes.lua +msgid "All-faces Pine Tree" +msgstr "全切面松樹木方塊" + +#: nodes.lua +msgid "All-faces Tree" +msgstr "全切面樹木方塊" + +#: nodes.lua +msgid "Cactus Brick" +msgstr "仙人掌磚" + +#: nodes.lua +msgid "Cactus Checker" +msgstr "仙人掌棋盤方塊" + +#: nodes.lua +msgid "Centered Wooden Tile" +msgstr "居中的木瓦" + +#: nodes.lua +msgid "Checker Stone Tile" +msgstr "棋盤石瓦" + +#: nodes.lua +msgid "Circle Stone Bricks" +msgstr "圓石磚" + +#: nodes.lua +msgid "Clean Glass" +msgstr "乾淨的玻璃" + +#: nodes.lua +msgid "Coal Checker" +msgstr "棋盤煤塊" + +#: nodes.lua +msgid "Coal Glass" +msgstr "煤玻璃" + +#: nodes.lua +msgid "Coal Stone" +msgstr "煤炭石" + +#: nodes.lua +msgid "Coal Stone Bricks" +msgstr "煤炭石磚" + +#: nodes.lua +msgid "Compressed Cobblestone" +msgstr "壓縮圓石" + +#: nodes.lua +msgid "Compressed Dirt" +msgstr "壓縮土" + +#: nodes.lua +msgid "Copper Patina Block" +msgstr "銅綠方塊" + +#: nodes.lua +msgid "Empty Shelf" +msgstr "空書架" + +#: nodes.lua +msgid "Full Wooden Tile" +msgstr "全木瓦" + +#: nodes.lua +msgid "Glow Glass" +msgstr "發光玻璃" + +#: nodes.lua +msgid "Iron Checker" +msgstr "棋盤鐵方塊" + +#: nodes.lua +msgid "Iron Glass" +msgstr "鐵玻璃" + +#: nodes.lua +msgid "Iron Stone" +msgstr "鐵石" + +#: nodes.lua +msgid "Iron Stone Bricks" +msgstr "鐵石磚" + +#: nodes.lua +msgid "Plankstone" +msgstr "板石" + +#: nodes.lua +msgid "Rope" +msgstr "繩子" + +#: nodes.lua +msgid "Split Stone Tile" +msgstr "裂石磚" + +#: nodes.lua +msgid "Stone Bricks" +msgstr "石磚" + +#: nodes.lua +msgid "Stone Tile" +msgstr "石瓦" + +#: nodes.lua +msgid "Super Glow Glass" +msgstr "超級發光玻璃" + +#: nodes.lua +msgid "Sweeper" +msgstr "清掃器" + +#: nodes.lua +msgid "Tar" +msgstr "焦油" + +#: nodes.lua +msgid "Trap Desert Stone" +msgstr "陷阱沙漠石" + +#: nodes.lua +msgid "Trap Glass" +msgstr "陷阱玻璃" + +#: nodes.lua +msgid "Trap Glow Glass" +msgstr "陷阱發光玻璃" + +#: nodes.lua +msgid "Trap Obsidian" +msgstr "陷阱黑耀石" + +#: nodes.lua +msgid "Trap Obsidian Glass" +msgstr "陷阱黑耀石玻璃" + +#: nodes.lua +msgid "Trap Sandstone" +msgstr "陷阱沙石" + +#: nodes.lua +msgid "Trap Stone" +msgstr "陷阱石" + +#: nodes.lua +msgid "Trap Super Glow Glass" +msgstr "陷阱超級發光玻璃" + +#: nodes.lua +msgid "Wooden Tile" +msgstr "木瓦" + +#: nodes.lua +msgid "Offset Wooden Tile" +msgstr "膠合木瓦" + +# @deprecated +#: nodes.lua +msgid "Downwards Wooden Tile" +msgstr "向下的木瓦" + +# @deprecated +#: nodes.lua +msgid "Leftwards Wooden Tile" +msgstr "向左的木瓦" + +# @deprecated +#: nodes.lua +msgid "Rightwards Wooden Tile" +msgstr "向右的木瓦" + +#: ownership.lua +msgid "Sorry, @1 owns that spot." +msgstr "抱歉,那個位置是@1的。" + +#: ownership.lua +msgid "someone" +msgstr "某人" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Microblock" +msgstr "%s 小方塊" + +#: stairsplus/common.lua stairsplus/slabs.lua +#, lua-format +msgid "%s Slab" +msgstr "%s 臺階" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Slope" +msgstr "%s 斜坡" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Panel" +msgstr "%s 嵌板" + +#: stairsplus/common.lua +#, lua-format +msgid "%s Stairs" +msgstr "%s 樓梯" diff --git a/moreblocks/mod.conf b/moreblocks/mod.conf index b634ba9..011d4a0 100644 --- a/moreblocks/mod.conf +++ b/moreblocks/mod.conf @@ -1 +1,5 @@ name = moreblocks +description = Adds various miscellaneous blocks to the game. +depends = default +optional_depends = intllib,stairs,farming,wool,basic_materials +min_minetest_version = 5.0.0 diff --git a/moreblocks/nodes.lua b/moreblocks/nodes.lua index f898068..79abcb5 100644 --- a/moreblocks/nodes.lua +++ b/moreblocks/nodes.lua @@ -1,11 +1,11 @@ --[[ More Blocks: node definitions -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] -local S = moreblocks.intllib +local S = moreblocks.S local sound_dirt = default.node_sound_dirt_defaults() local sound_wood = default.node_sound_wood_defaults() @@ -36,6 +36,7 @@ local function wood_tile_replace(itemstack, placer, pointed_thing) return itemstack end +local deprecated = (" (%s)"):format(S('Deprecated')) local nodes = { ["wood_tile"] = { description = S("Wooden Tile"), @@ -52,7 +53,7 @@ local nodes = { sounds = sound_wood, }, ["wood_tile_flipped"] = { - description = S("Wooden Tile (Deprecated)"), + description = S("Wooden Tile") .. deprecated, tiles = {"default_wood.png^moreblocks_wood_tile.png^[transformR90", "default_wood.png^moreblocks_wood_tile.png^[transformR90", "default_wood.png^moreblocks_wood_tile.png^[transformR90", @@ -87,19 +88,19 @@ local nodes = { no_stairs = true, }, ["wood_tile_down"] = { - description = S("Downwards Wooden Tile (Deprecated)"), + description = S("Downwards Wooden Tile") .. deprecated, tiles = {"default_wood.png^[transformR180^moreblocks_wood_tile_offset.png^[transformR180"}, no_stairs = true, on_place = wood_tile_replace }, ["wood_tile_left"] = { - description = S("Leftwards Wooden Tile (Deprecated)"), + description = S("Leftwards Wooden Tile") .. deprecated, tiles = {"default_wood.png^[transformR270^moreblocks_wood_tile_offset.png^[transformR270"}, no_stairs = true, on_place = wood_tile_replace }, ["wood_tile_right"] = { - description = S("Rightwards Wooden Tile (Deprecated)"), + description = S("Rightwards Wooden Tile") .. deprecated, tiles = {"default_wood.png^[transformR90^moreblocks_wood_tile_offset.png^[transformR90"}, no_stairs = true, on_place = wood_tile_replace @@ -174,6 +175,12 @@ local nodes = { is_ground_content = false, sounds = sound_stone, }, + ["desert_cobble_compressed"] = { + description = S("Compressed Desert Cobblestone"), + groups = {cracky = 1}, + is_ground_content = false, + sounds = sound_stone, + }, ["plankstone"] = { description = S("Plankstone"), paramtype2 = "facedir", @@ -187,6 +194,7 @@ local nodes = { description = S("Iron Glass"), drawtype = "glasslike_framed_optional", tiles = {"default_glass.png^[colorize:#DEDEDE", "default_glass_detail.png^[colorize:#DEDEDE"}, + use_texture_alpha = true, paramtype = "light", sunlight_propagates = true, is_ground_content = false, @@ -197,6 +205,7 @@ local nodes = { description = S("Coal Glass"), drawtype = "glasslike_framed_optional", tiles = {"default_glass.png^[colorize:#828282", "default_glass_detail.png^[colorize:#828282"}, + use_texture_alpha = true, paramtype = "light", sunlight_propagates = true, is_ground_content = false, @@ -207,6 +216,7 @@ local nodes = { description = S("Clean Glass"), drawtype = "glasslike_framed_optional", tiles = {"moreblocks_clean_glass.png", "moreblocks_clean_glass_detail.png"}, + use_texture_alpha = true, paramtype = "light", sunlight_propagates = true, is_ground_content = false, @@ -306,6 +316,7 @@ local nodes = { description = S("Trap Glass"), drawtype = "glasslike_framed_optional", tiles = {"default_glass.png^moreblocks_trap_box_glass.png", "default_glass_detail.png"}, + use_texture_alpha = true, paramtype = "light", sunlight_propagates = true, is_ground_content = false, @@ -318,6 +329,7 @@ local nodes = { description = S("Trap Obsidian Glass"), drawtype = "glasslike_framed_optional", tiles = {"default_obsidian_glass.png^moreblocks_trap_box_glass.png", "default_obsidian_glass_detail.png"}, + use_texture_alpha = true, paramtype = "light", sunlight_propagates = true, is_ground_content = false, @@ -337,6 +349,19 @@ local nodes = { sounds = sound_stone, no_stairs = true, }, + ["trap_clean_glass"] = { + description = S("Trap Clean Glass"), + drawtype = "glasslike_framed_optional", + tiles = {"moreblocks_clean_glass.png^moreblocks_trap_box_glass.png", "moreblocks_clean_glass_detail.png"}, + use_texture_alpha = true, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + no_stairs = true, + }, ["trap_sandstone"] = { description = S("Trap Sandstone"), drawtype = "glasslike_framed", @@ -387,6 +412,19 @@ local nodes = { description = S("Glow Glass"), drawtype = "glasslike_framed_optional", tiles = {"default_glass.png^[colorize:#E9CD61", "default_glass_detail.png^[colorize:#E9CD61"}, + use_texture_alpha = true, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + light_source = 11, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + }, + ["clean_glow_glass"] = { + description = S("Clean Glow Glass"), + drawtype = "glasslike_framed_optional", + tiles = {"moreblocks_clean_glass.png^[colorize:#E9CD61", "moreblocks_clean_glass_detail.png^[colorize:#E9CD61"}, + use_texture_alpha = true, paramtype = "light", sunlight_propagates = true, is_ground_content = false, @@ -398,6 +436,21 @@ local nodes = { description = S("Trap Glow Glass"), drawtype = "glasslike_framed_optional", tiles = {"default_glass.png^[colorize:#E9CD61^moreblocks_trap_box_glass.png", "default_glass_detail.png^[colorize:#E9CD61"}, + use_texture_alpha = true, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + light_source = 11, + walkable = false, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + no_stairs = true, + }, + ["trap_clean_glow_glass"] = { + description = S("Trap Clean Glow Glass"), + drawtype = "glasslike_framed_optional", + tiles = {"moreblocks_clean_glass.png^[colorize:#E9CD61^moreblocks_trap_box_glass.png", "moreblocks_clean_glass_detail.png^[colorize:#E9CD61"}, + use_texture_alpha = true, paramtype = "light", sunlight_propagates = true, is_ground_content = false, @@ -411,6 +464,19 @@ local nodes = { description = S("Super Glow Glass"), drawtype = "glasslike_framed_optional", tiles = {"default_glass.png^[colorize:#FFFF78", "default_glass_detail.png^[colorize:#FFFF78"}, + use_texture_alpha = true, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + light_source = default.LIGHT_MAX, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + }, + ["clean_super_glow_glass"] = { + description = S("Clean Super Glow Glass"), + drawtype = "glasslike_framed_optional", + tiles = {"moreblocks_clean_glass.png^[colorize:#FFFF78", "moreblocks_clean_glass_detail.png^[colorize:#FFFF78"}, + use_texture_alpha = true, paramtype = "light", sunlight_propagates = true, is_ground_content = false, @@ -422,6 +488,21 @@ local nodes = { description = S("Trap Super Glow Glass"), drawtype = "glasslike_framed_optional", tiles = {"default_glass.png^[colorize:#FFFF78^moreblocks_trap_box_glass.png", "default_glass_detail.png^[colorize:#FFFF78"}, + use_texture_alpha = true, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + light_source = default.LIGHT_MAX, + walkable = false, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = sound_glass, + no_stairs = true, + }, + ["trap_clean_super_glow_glass"] = { + description = S("Trap Clean Super Glow Glass"), + drawtype = "glasslike_framed_optional", + tiles = {"moreblocks_clean_glass.png^[colorize:#FFFF78^moreblocks_trap_box_glass.png", "moreblocks_clean_glass_detail.png^[colorize:#FFFF78"}, + use_texture_alpha = true, paramtype = "light", sunlight_propagates = true, is_ground_content = false, @@ -459,6 +540,21 @@ for name, def in pairs(nodes) do def.tiles = def.tiles or {"moreblocks_" ..name.. ".png"} minetest.register_node("moreblocks:" ..name, def) minetest.register_alias(name, "moreblocks:" ..name) + + def_copy = table.copy(def) + + -- Use the primary tile for all sides of cut glasslike nodes. + -- This makes them easier to see + if + #def_copy.tiles > 1 and + def_copy.drawtype and + def_copy.drawtype == "glasslike_framed" or + def_copy.drawtype == "glasslike_framed_optional" + then + def.tiles = {def_copy.tiles[1]} + end + + if not def.no_stairs then local groups = {} for k, v in pairs(def.groups) do groups[k] = v end diff --git a/moreblocks/ownership.lua b/moreblocks/ownership.lua index eb1ae0e..3bd4b63 100644 --- a/moreblocks/ownership.lua +++ b/moreblocks/ownership.lua @@ -1,11 +1,11 @@ --[[ More Blocks: ownership handling -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] -local S = moreblocks.gettext +local S = moreblocks.S function moreblocks.node_is_owned(pos, placer) local ownername = false @@ -33,7 +33,7 @@ function moreblocks.node_is_owned(pos, placer) end if ownername ~= false then - minetest.chat_send_player( placer:get_player_name(), S("Sorry, %s owns that spot."):format(ownername) ) + minetest.chat_send_player( placer:get_player_name(), S("Sorry, @1 owns that spot.", ownername) ) return true else return false diff --git a/moreblocks/redefinitions.lua b/moreblocks/redefinitions.lua index fd24c80..e9c5ff7 100644 --- a/moreblocks/redefinitions.lua +++ b/moreblocks/redefinitions.lua @@ -1,49 +1,82 @@ --[[ More Blocks: redefinitions of default stuff -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] --- Redefinitions of some default crafting recipes: +local modname = minetest.get_current_modname() -minetest.register_craft({ - output = "default:sign_wall 4", - recipe = { - {"default:wood", "default:wood", "default:wood"}, - {"default:wood", "default:wood", "default:wood"}, - {"", "default:stick", ""}, - } -}) +-- Redefine some of the default crafting recipes to be more productive -minetest.register_craft({ - output = "default:ladder 4", - recipe = { - {"default:stick", "", "default:stick"}, - {"default:stick", "default:stick", "default:stick"}, - {"default:stick", "", "default:stick"}, +-- Auxiliary function: take a recipe as returned by get_all_craft_recipes +-- and turn it into a table that can be used to clear a craft or declare a new one +local reconstruct_internal_craft = function(recipe) + local recp = { + { "", "", "" }, + { "", "", "" }, + { "", "", "" }, } -}) + for idx, item in pairs(recipe.items) do + local row = math.ceil(idx / recipe.width) + local col = idx - (row-1)*recipe.width + recp[row][col] = item + end + return recp +end -minetest.clear_craft({ - recipe = { - {"default:papyrus", "default:papyrus", "default:papyrus"} - } -}) -minetest.register_craft({ - output = "default:paper 4", - recipe = { - {"default:papyrus", "default:papyrus", "default:papyrus"}, - } -}) +-- Change the amount produced by recipe by apply func to the old amount +local change_recipe_amount = function(product, recipe, func) + local recp = reconstruct_internal_craft(recipe) -minetest.register_craft({ - output = "default:rail 24", - recipe = { - {"default:steel_ingot", "", "default:steel_ingot"}, - {"default:steel_ingot", "default:stick", "default:steel_ingot"}, - {"default:steel_ingot", "", "default:steel_ingot"}, - } + local oldamount = tonumber(recipe.output:match(" [0-9]+$") or "1") + + local newamount = func(oldamount) + + -- remove old crafting recipe + local redo = { recipe = recp } + minetest.clear_craft(redo) + + -- new output + redo.output = ("%s %d"):format(product, newamount) + minetest.register_craft(redo) + + minetest.log("action", ("[MOD]%s: recipe for %s production: %d => %d"):format(modname, product, oldamount, newamount)) +end + +local increase_craft_production = function(product, func) + local recipes = minetest.get_all_craft_recipes(product) + for _, r in pairs(recipes) do + if r.type == "normal" or r.method == "normal" then + change_recipe_amount(product, r, func) + end + end +end + +-- Increase the crafting production according to the rules from the table, which is in the form: +-- { +-- { detector, amount changing function } +-- { detector, amount changing function } +-- } +-- TODO: consider exporting this function to other mods +local increase_craft_production_table = function(map_table) + for product, _ in pairs(minetest.registered_items) do + for _, tab in pairs(map_table) do + local detector = tab[1] + local func = tab[2] + if detector(product) then + increase_craft_production(product, func) + -- only apply one boost + break + end + end + end +end + +increase_craft_production_table({ + { function(n) return n:match('^default:sign_wall') end, function(old) return old + 1 end }, + { function(n) return n == 'default:paper' end, function(old) return old*4 end }, + { function(n) return n:match('^carts:.*rail$') or n:match('^default:.*rail$') end, function(old) return old + old/2 end }, }) minetest.register_craft({ diff --git a/moreblocks/settingtypes.txt b/moreblocks/settingtypes.txt new file mode 100644 index 0000000..c52286e --- /dev/null +++ b/moreblocks/settingtypes.txt @@ -0,0 +1,3 @@ +# If enabled, Stairs+ nodes will be displayed in the inventory when playing in creative mode. +# Disabling this can speed up loading times for clients as fewer nodes need to be registered in the creative inventory. +moreblocks.stairsplus_in_creative_inventory (Display Stairs+ nodes in creative inventory) bool true diff --git a/moreblocks/stairsplus/API.md b/moreblocks/stairsplus/API.md index cd8d1a7..c0fea32 100644 --- a/moreblocks/stairsplus/API.md +++ b/moreblocks/stairsplus/API.md @@ -6,7 +6,7 @@ This also registers the node with the circular saw. Example: ```lua - stairsplus:register_all("moreblocks", "wood", "defaut:wood", { + stairsplus:register_all("moreblocks", "wood", "default:wood", { description = "Wooden", tiles = {"default_wood.png"}, groups = {oddly_breakabe_by_hand=1}, @@ -79,4 +79,4 @@ The subset table should have the following format: { "stair", "_alt_4" }, } ``` -You can remove entries as needed. \ No newline at end of file +You can remove entries as needed. diff --git a/moreblocks/stairsplus/aliases.lua b/moreblocks/stairsplus/aliases.lua deleted file mode 100644 index 224dce7..0000000 --- a/moreblocks/stairsplus/aliases.lua +++ /dev/null @@ -1,70 +0,0 @@ ---[[ -More Blocks: alias definitions - -Copyright (c) 2011-2018 Hugo Locurcio and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local function register_stairsplus_alias(modname, origname, newname) - minetest.register_alias(modname.. ":slab_" ..origname, "moreblocks:slab_" ..newname) - minetest.register_alias(modname.. ":slab_" ..origname.. "_inverted", "moreblocks:slab_" ..newname.. "_inverted") - minetest.register_alias(modname.. ":slab_" ..origname.. "_wall", "moreblocks:slab_" ..newname.. "_wall") - minetest.register_alias(modname.. ":slab_" ..origname.. "_quarter", "moreblocks:slab_" ..newname.. "_quarter") - minetest.register_alias(modname.. ":slab_" ..origname.. "_quarter_inverted", "moreblocks:slab_" ..newname.. "_quarter_inverted") - minetest.register_alias(modname.. ":slab_" ..origname.. "_quarter_wall", "moreblocks:slab_" ..newname.. "_quarter_wall") - minetest.register_alias(modname.. ":slab_" ..origname.. "_three_quarter", "moreblocks:slab_" ..newname.. "_three_quarter") - minetest.register_alias(modname.. ":slab_" ..origname.. "_three_quarter_inverted", "moreblocks:slab_" ..newname.. "_three_quarter_inverted") - minetest.register_alias(modname.. ":slab_" ..origname.. "_three_quarter_wall", "moreblocks:slab_" ..newname.. "_three_quarter_wall") - minetest.register_alias(modname.. ":stair_" ..origname, "moreblocks:stair_" ..newname) - minetest.register_alias(modname.. ":stair_" ..origname.. "_inverted", "moreblocks:stair_" ..newname.. "_inverted") - minetest.register_alias(modname.. ":stair_" ..origname.. "_wall", "moreblocks:stair_" ..newname.. "_wall") - minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half", "moreblocks:stair_" ..newname.. "_wall_half") - minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half_inverted", "moreblocks:stair_" ..newname.. "_wall_half_inverted") - minetest.register_alias(modname.. ":stair_" ..origname.. "_half", "moreblocks:stair_" ..newname.. "_half") - minetest.register_alias(modname.. ":stair_" ..origname.. "_half_inverted", "moreblocks:stair_" ..newname.. "_half_inverted") - minetest.register_alias(modname.. ":stair_" ..origname.. "_right_half", "moreblocks:stair_" ..newname.. "_right_half") - minetest.register_alias(modname.. ":stair_" ..origname.. "_right_half_inverted", "moreblocks:stair_" ..newname.. "_right_half_inverted") - minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half", "moreblocks:stair_" ..newname.. "_wall_half") - minetest.register_alias(modname.. ":stair_" ..origname.. "_wall_half_inverted", "moreblocks:stair_" ..newname.. "_wall_half_inverted") - minetest.register_alias(modname.. ":stair_" ..origname.. "_inner", "moreblocks:stair_" ..newname.. "_inner") - minetest.register_alias(modname.. ":stair_" ..origname.. "_inner_inverted", "moreblocks:stair_" ..newname.. "_inner_inverted") - minetest.register_alias(modname.. ":stair_" ..origname.. "_outer", "moreblocks:stair_" ..newname.. "_outer") - minetest.register_alias(modname.. ":stair_" ..origname.. "_outer_inverted", "moreblocks:stair_" ..newname.. "_outer_inverted") - minetest.register_alias(modname.. ":panel_" ..origname.. "_bottom", "moreblocks:panel_" ..newname.. "_bottom") - minetest.register_alias(modname.. ":panel_" ..origname.. "_top", "moreblocks:panel_" ..newname.. "_top") - minetest.register_alias(modname.. ":panel_" ..origname.. "_vertical", "moreblocks:panel_" ..newname.. "_vertical") - minetest.register_alias(modname.. ":micro_" ..origname.. "_bottom", "moreblocks:micro_" ..newname.. "_bottom") - minetest.register_alias(modname.. ":micro_" ..origname.. "_top", "moreblocks:micro_" ..newname.. "_top") -end - -register_stairsplus_alias("stairsplus", "stone", "stone") -register_stairsplus_alias("stairsplus", "wood", "wood") -register_stairsplus_alias("stairsplus", "pinewood", "pinewood") -register_stairsplus_alias("stairsplus", "cobble", "cobble") -register_stairsplus_alias("stairsplus", "brick", "brick") -register_stairsplus_alias("stairsplus", "sandstone", "sandstone") -register_stairsplus_alias("stairsplus", "glass", "glass") -register_stairsplus_alias("stairsplus", "tree", "tree") -register_stairsplus_alias("stairsplus", "jungletree", "jungletree") -register_stairsplus_alias("stairsplus", "pinetree", "pinetree") -register_stairsplus_alias("stairsplus", "desert_stone", "desert_stone") -register_stairsplus_alias("stairsplus", "steelblock", "steelblock") -register_stairsplus_alias("stairsplus", "mossycobble", "mossycobble") - -register_stairsplus_alias("moreblocks", "coalstone", "coal_stone") -register_stairsplus_alias("moreblocks", "junglewood", "jungle_wood") -register_stairsplus_alias("moreblocks", "circlestonebrick", "circle_stone_bricks") -register_stairsplus_alias("moreblocks", "ironstone", "iron_stone") -register_stairsplus_alias("moreblocks", "coalglass", "coal_glass") -register_stairsplus_alias("moreblocks", "ironglass", "iron_glass") -register_stairsplus_alias("moreblocks", "glowglass", "glow_glass") -register_stairsplus_alias("moreblocks", "superglowglass", "super_glow_glass") -register_stairsplus_alias("moreblocks", "coalchecker", "coal_checker") -register_stairsplus_alias("moreblocks", "ironchecker", "iron_checker") -register_stairsplus_alias("moreblocks", "cactuschecker", "cactus_checker") -register_stairsplus_alias("moreblocks", "ironstonebrick", "iron_stone_bricks") -register_stairsplus_alias("moreblocks", "stonesquare", "stone_tile") -register_stairsplus_alias("moreblocks", "splitstonesquare", "split_stone_tile") -register_stairsplus_alias("moreblocks", "woodtile", "wood_tile") -register_stairsplus_alias("moreblocks", "woodtile_centered", "wood_tile_centered") -register_stairsplus_alias("moreblocks", "woodtile_full", "wood_tile_full") diff --git a/moreblocks/stairsplus/common.lua b/moreblocks/stairsplus/common.lua index a7134b2..5534d8f 100644 --- a/moreblocks/stairsplus/common.lua +++ b/moreblocks/stairsplus/common.lua @@ -1,40 +1,154 @@ --[[ More Blocks: registrations -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] -local S = moreblocks.intllib +local S = moreblocks.S +local descriptions = { + ["micro"] = S("%s Microblock"), + ["slab"] = S("%s Slab"), + ["slope"] = S("%s Slope"), + ["panel"] = S("%s Panel"), + ["stair"] = S("%s Stairs"), +} + +-- Extends the standad rotate_node placement so that it takes into account +-- the side (top/bottom or left/right) of the face being pointed at. +-- As with the standard rotate_node, sneak can be used to force the perpendicular +-- placement (wall placement on floor/ceiling, floor/ceiling placement on walls). +-- Additionally, the aux / sprint / special key can be used to place the node +-- as if from the opposite side. +-- +-- When placing a node next to one of the same category (e.g. slab to slab or +-- stair to stair), the default placement (regardless of sneak) is to copy the +-- under node's param2, flipping if placed above or below it. The aux key disable +-- this behavior. +local wall_right_dirmap = {9, 18, 7, 12} +local wall_left_dirmap = {11, 16, 5, 14} +local ceil_dirmap = {20, 23, 22, 21} + +-- extract the stairsplus category from a node name +-- assumes the name is in the form mod_name:category_original_ndoe_name +local function name_to_category(name) + local colon = name:find(":") or 0 + colon = colon + 1 + local under = name:find("_", colon) + return name:sub(colon, under) +end + +stairsplus.rotate_node_aux = function(itemstack, placer, pointed_thing) + local sneak = placer and placer:get_player_control().sneak + local aux = placer and placer:get_player_control().aux1 + + -- category for what we are placing + local item_prefix = name_to_category(itemstack:get_name()) + -- category for what we are placing against + local under = pointed_thing.under + local under_node = minetest.get_node(under) + local under_prefix = under_node and name_to_category(under_node.name) + + local same_cat = item_prefix == under_prefix + + -- standard (floor) facedir, also used for sneak placement against the lower half of the wall + local p2 = placer and minetest.dir_to_facedir(placer:get_look_dir()) or 0 + + -- check which face and which quadrant we are interested in + -- this is used both to check if we're handling parallel placement in the same-category case, + -- and in general for sneak placement + local face_pos = minetest.pointed_thing_to_face_pos(placer, pointed_thing) + local face_off = vector.subtract(face_pos, under) + + -- we cannot trust face_off to tell us the correct directionif the + -- under node has a non-standard shape, so use the distance between under and above + local wallmounted = minetest.dir_to_wallmounted(vector.subtract(pointed_thing.above, under)) + + if same_cat and not aux then + p2 = under_node.param2 + -- flip if placing above or below an upright or upside-down node + -- TODO should we also flip when placing next to a side-mounted node? + if wallmounted < 2 then + if p2 < 4 then + p2 = (p2 + 2) % 4 + p2 = ceil_dirmap[p2 + 1] + elseif p2 > 19 then + p2 = ceil_dirmap[p2 - 19] - 20 + p2 = (p2 + 2) % 4 + end + end + else + -- for same-cat placement, aux is used to disable param2 copying + if same_cat then + aux = not aux + end + + local remap = nil + + -- standard placement against the wall + local use_wallmap = (wallmounted > 1 and not sneak) or (wallmounted < 2 and sneak) + + -- standard placement against the ceiling, or sneak placement against the upper half of the wall + local use_ceilmap = wallmounted == 1 and not sneak + use_ceilmap = use_ceilmap or (wallmounted > 1 and sneak and face_off.y > 0) + + if use_wallmap then + local left = (p2 == 0 and face_off.x < 0) or + (p2 == 1 and face_off.z > 0) or + (p2 == 2 and face_off.x > 0) or + (p2 == 3 and face_off.z < 0) + if aux then + left = not left + end + remap = left and wall_left_dirmap or wall_right_dirmap + elseif use_ceilmap then + remap = ceil_dirmap + end + + if aux then + p2 = (p2 + 2) % 4 + end + + if remap then + p2 = remap[p2 + 1] + end + end + + return minetest.item_place(itemstack, placer, pointed_thing, p2) +end stairsplus.register_single = function(category, alternate, info, modname, subname, recipeitem, fields) - local descriptions = { - ["micro"] = "Microblock", - ["slab"] = "Slab", - ["slope"] = "Slope", - ["panel"] = "Panel", - ["stair"] = "Stairs", - } + local src_def = minetest.registered_nodes[recipeitem] or {} + local desc_base = descriptions[category]:format(fields.description) local def = {} + if category ~= "slab" then def = table.copy(info) end + -- copy fields to def for k, v in pairs(fields) do def[k] = v end + def.drawtype = "nodebox" - if category == "slope" then - def.drawtype = "mesh" - end def.paramtype = "light" def.paramtype2 = def.paramtype2 or "facedir" - def.on_place = minetest.rotate_node - if category ~= "slab" then - def.description = S("%s " .. descriptions[category]):format(fields.description) - else - local desc_base = S("%s " .. descriptions[category]):format(fields.description) + if def.use_texture_alpha == nil then + def.use_texture_alpha = src_def.use_texture_alpha + end + + -- This makes node rotation work on placement + def.place_param2 = nil + + -- Darken light sources slightly to make up for their smaller visual size + def.light_source = math.max(0, (def.light_source or 0) - 1) + + def.on_place = stairsplus.rotate_node_aux + def.groups = stairsplus:prepare_groups(fields.groups) + + if category == "slab" then if type(info) ~= "table" then def.node_box = { type = "fixed", @@ -48,14 +162,19 @@ stairsplus.register_single = function(category, alternate, info, modname, subnam } def.description = desc_base .. alternate:gsub("_", " "):gsub("(%a)(%S*)", function(a, b) return a:upper() .. b end) end + else + def.description = desc_base + if category == "slope" then + def.drawtype = "mesh" + elseif category == "stair" and alternate == "" then + def.groups.stair = 1 + end end - def.groups = stairsplus:prepare_groups(fields.groups) - if category == "stair" and alternate == "" then - def.groups.stair = 1 - end + if fields.drop and not (type(fields.drop) == "table") then def.drop = modname.. ":" .. category .. "_" .. fields.drop .. alternate end + minetest.register_node(":" ..modname.. ":" .. category .. "_" .. subname .. alternate, def) stairsplus.register_recipes(category, alternate, modname, subname, recipeitem) -end \ No newline at end of file +end diff --git a/moreblocks/stairsplus/conversion.lua b/moreblocks/stairsplus/conversion.lua deleted file mode 100644 index bc8e77e..0000000 --- a/moreblocks/stairsplus/conversion.lua +++ /dev/null @@ -1,139 +0,0 @@ ---[[ -More Blocks: conversion - -Copyright (c) 2011-2018 Hugo Locurcio and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - --- Function to convert all stairs/slabs/etc nodes from --- inverted, wall, etc to regular + 6d facedir - -local dirs1 = {21, 20, 23, 22, 21} -local dirs2 = {15, 8, 17, 6, 15} -local dirs3 = {14, 11, 16, 5, 14} - -function stairsplus:register_6dfacedir_conversion(modname, material) - --print("Register stairsplus 6d facedir conversion") - --print('ABM for '..modname..' "'..material..'"') - - local objects_list1 = { - modname.. ":slab_" ..material.. "_inverted", - modname.. ":slab_" ..material.. "_quarter_inverted", - modname.. ":slab_" ..material.. "_three_quarter_inverted", - modname.. ":stair_" ..material.. "_inverted", - modname.. ":stair_" ..material.. "_wall", - modname.. ":stair_" ..material.. "_wall_half", - modname.. ":stair_" ..material.. "_wall_half_inverted", - modname.. ":stair_" ..material.. "_half_inverted", - modname.. ":stair_" ..material.. "_right_half_inverted", - modname.. ":panel_" ..material.. "_vertical", - modname.. ":panel_" ..material.. "_top", - } - - local objects_list2 = { - modname.. ":slab_" ..material.. "_wall", - modname.. ":slab_" ..material.. "_quarter_wall", - modname.. ":slab_" ..material.. "_three_quarter_wall", - modname.. ":stair_" ..material.. "_inner_inverted", - modname.. ":stair_" ..material.. "_outer_inverted", - modname.. ":micro_" ..material.. "_top" - } - - for _, object in pairs(objects_list1) do - local flip_upside_down = false - local flip_to_wall = false - - local dest_object = object - - if string.find(dest_object, "_inverted") then - flip_upside_down = true - dest_object = string.gsub(dest_object, "_inverted", "") - end - - if string.find(object, "_top") then - flip_upside_down = true - dest_object = string.gsub(dest_object, "_top", "") - end - - if string.find(dest_object, "_wall") then - flip_to_wall = true - dest_object = string.gsub(dest_object, "_wall", "") - end - - if string.find(dest_object, "_vertical") then - flip_to_wall = true - dest_object = string.gsub(dest_object, "_vertical", "") - end - - if string.find(dest_object, "_half") and not string.find(dest_object, "_right_half") then - dest_object = string.gsub(dest_object, "_half", "_right_half") - elseif string.find(dest_object, "_right_half") then - dest_object = string.gsub(dest_object, "_right_half", "_half") - end - - --print(" +---> convert " ..object) - --print(" | to " ..dest_object) - - minetest.register_abm({ - nodenames = {object}, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local fdir = node.param2 or 0 - local nfdir - - if flip_upside_down and not flip_to_wall then - nfdir = dirs1[fdir + 2] - elseif flip_to_wall and not flip_upside_down then - nfdir = dirs2[fdir + 1] - elseif flip_to_wall and flip_upside_down then - nfdir = dirs3[fdir + 2] - end - minetest.set_node(pos, {name = dest_object, param2 = nfdir}) - end - }) - end - - for _, object in pairs(objects_list2) do - local flip_upside_down = false - local flip_to_wall = false - - local dest_object = object - - if string.find(dest_object, "_inverted") then - flip_upside_down = true - dest_object = string.gsub(dest_object, "_inverted", "") - end - - if string.find(dest_object, "_top") then - flip_upside_down = true - dest_object = string.gsub(dest_object, "_top", "") - end - - if string.find(dest_object, "_wall") then - flip_to_wall = true - dest_object = string.gsub(dest_object, "_wall", "") - end - - --print(" +---> convert " ..object) - --print(" | to " ..dest_object) - - minetest.register_abm({ - nodenames = {object}, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local fdir = node.param2 - local nfdir = 20 - - if flip_upside_down and not flip_to_wall then - nfdir = dirs1[fdir + 1] - elseif flip_to_wall and not flip_upside_down then - nfdir = dirs2[fdir + 2] - - end - minetest.set_node(pos, {name = dest_object, param2 = nfdir}) - end - }) - end -end diff --git a/moreblocks/stairsplus/custom.lua b/moreblocks/stairsplus/custom.lua index e456f7c..0b3078f 100644 --- a/moreblocks/stairsplus/custom.lua +++ b/moreblocks/stairsplus/custom.lua @@ -1,12 +1,10 @@ --[[ More Blocks: microblock definitions -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] -local S = moreblocks.intllib - --[[ Subset table should have the following format: (You can remove entries as needed.) @@ -63,7 +61,8 @@ local subset = { } --]] -function register_custom_subset(subset, modname, subname, recipeitem, groups, images, description, drop, light) +-- luacheck: no unused +local function register_custom_subset(subset, modname, subname, recipeitem, groups, images, description, drop, light) stairsplus:register_custom_subset(subset, modname, subname, recipeitem, { groups = groups, tiles = images, @@ -75,22 +74,22 @@ function register_custom_subset(subset, modname, subname, recipeitem, groups, im end function stairsplus:register_custom_subset_alias(subset, modname_old, subname_old, modname_new, subname_new) - local subset = table.copy(subset) - for k, v in pairs(subset) do + local subset_copy = table.copy(subset) + for k, v in pairs(subset_copy) do minetest.register_alias(modname_old .. ":" .. v[1] .. "_" .. subname_old .. v[2], modname_new .. ":" .. v[1] .. "_" .. subname_new .. v[2]) end end function stairsplus:register_custom_subset_alias_force(subset, modname_old, subname_old, modname_new, subname_new) - local subset = table.copy(subset) - for k, v in pairs(subset) do + local subset_copy = table.copy(subset) + for k, v in pairs(subset_copy) do minetest.register_alias_force(modname_old .. ":" .. v[1] .. "_" .. subname_old .. v[2], modname_new .. ":" .. v[1] .. "_" .. subname_new .. v[2]) end end function stairsplus:register_custom_subset(subset, modname, subname, recipeitem, fields) - local subset = table.copy(subset) - for k, v in pairs(subset) do + local subset_copy = table.copy(subset) + for k, v in pairs(subset_copy) do stairsplus.register_single(v[1], v[2], stairsplus.defs[v[1]][v[2]], modname, subname, recipeitem, fields) end diff --git a/moreblocks/stairsplus/defs.lua b/moreblocks/stairsplus/defs.lua index 560b1f2..893ec68 100644 --- a/moreblocks/stairsplus/defs.lua +++ b/moreblocks/stairsplus/defs.lua @@ -1,7 +1,7 @@ --[[ More Blocks: registrations -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] @@ -406,4 +406,4 @@ for type,a in pairs(stairsplus.defs) do for name,b in pairs(stairsplus.defs[type]) do table.insert(stairsplus.shapes_list, { type .. "_", name }) end -end \ No newline at end of file +end diff --git a/moreblocks/stairsplus/init.lua b/moreblocks/stairsplus/init.lua index 624b7c8..4e071de 100644 --- a/moreblocks/stairsplus/init.lua +++ b/moreblocks/stairsplus/init.lua @@ -1,7 +1,7 @@ --[[ More Blocks: Stairs+ -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] @@ -14,8 +14,10 @@ stairsplus.expect_infinite_stacks = false stairsplus.shapes_list = {} -if not minetest.get_modpath("unified_inventory") -and minetest.settings:get_bool("creative_mode") then +if + not minetest.get_modpath("unified_inventory") + and minetest.settings:get_bool("creative_mode") +then stairsplus.expect_infinite_stacks = true end @@ -23,7 +25,7 @@ function stairsplus:prepare_groups(groups) local result = {} if groups then for k, v in pairs(groups) do - if k ~= "wood" and k ~= "stone" then + if k ~= "wood" and k ~= "stone" and k ~= "wool" and k ~= "tree" then result[k] = v end end @@ -36,11 +38,10 @@ end function stairsplus:register_all(modname, subname, recipeitem, fields) self:register_stair(modname, subname, recipeitem, fields) - self:register_slab (modname, subname, recipeitem, fields) + self:register_slab(modname, subname, recipeitem, fields) self:register_slope(modname, subname, recipeitem, fields) self:register_panel(modname, subname, recipeitem, fields) self:register_micro(modname, subname, recipeitem, fields) - -- self:register_6dfacedir_conversion(modname, subname) -- Not needed as of Q3 2013, uncomment to fix old maps. end function stairsplus:register_alias_all(modname_old, subname_old, modname_new, subname_new) @@ -58,7 +59,8 @@ function stairsplus:register_alias_force_all(modname_old, subname_old, modname_n self:register_micro_alias_force(modname_old, subname_old, modname_new, subname_new) end -function register_stair_slab_panel_micro(modname, subname, recipeitem, groups, images, description, drop, light) +-- luacheck: no unused +local function register_stair_slab_panel_micro(modname, subname, recipeitem, groups, images, description, drop, light) stairsplus:register_all(modname, subname, recipeitem, { groups = groups, tiles = images, @@ -68,8 +70,6 @@ function register_stair_slab_panel_micro(modname, subname, recipeitem, groups, i }) end --- dofile(modpath.. "/aliases.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. --- dofile(modpath.. "/conversion.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. dofile(modpath .. "/defs.lua") dofile(modpath .. "/recipes.lua") dofile(modpath .. "/common.lua") diff --git a/moreblocks/stairsplus/microblocks.lua b/moreblocks/stairsplus/microblocks.lua index dc8ddfd..d2c9579 100644 --- a/moreblocks/stairsplus/microblocks.lua +++ b/moreblocks/stairsplus/microblocks.lua @@ -1,15 +1,14 @@ --[[ More Blocks: microblock definitions -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] -local S = moreblocks.intllib - -- Node will be called :micro_ -function register_micro(modname, subname, recipeitem, groups, images, description, drop, light) +-- luacheck: no unused +local function register_micro(modname, subname, recipeitem, groups, images, description, drop, light) stairsplus:register_micro(modname, subname, recipeitem, { groups = groups, tiles = images, diff --git a/moreblocks/stairsplus/panels.lua b/moreblocks/stairsplus/panels.lua index 5e2bf7b..ff572c7 100644 --- a/moreblocks/stairsplus/panels.lua +++ b/moreblocks/stairsplus/panels.lua @@ -1,15 +1,14 @@ --[[ More Blocks: panel definitions -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] -local S = moreblocks.intllib - -- Node will be called :panel_ -function register_panel(modname, subname, recipeitem, groups, images, description, drop, light) +-- luacheck: no unused +local function register_panel(modname, subname, recipeitem, groups, images, description, drop, light) stairsplus:register_panel(modname, subname, recipeitem, { groups = groups, tiles = images, diff --git a/moreblocks/stairsplus/recipes.lua b/moreblocks/stairsplus/recipes.lua index ec908bd..c9aaa29 100644 --- a/moreblocks/stairsplus/recipes.lua +++ b/moreblocks/stairsplus/recipes.lua @@ -1,7 +1,7 @@ --[[ More Blocks: Stairs+ -Copyright (c) 2011-2018 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/moreblocks/stairsplus/registrations.lua b/moreblocks/stairsplus/registrations.lua index 6262a6d..5a2eb77 100644 --- a/moreblocks/stairsplus/registrations.lua +++ b/moreblocks/stairsplus/registrations.lua @@ -1,7 +1,7 @@ --[[ More Blocks: registrations -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] @@ -49,6 +49,7 @@ local default_nodes = { -- Default stairs/slabs/panels/microblocks: "desert_sandstone_block", "sandstone_block", "coral_skeleton", + "ice", } for _, name in pairs(default_nodes) do @@ -105,9 +106,6 @@ if minetest.get_modpath("wool") then local ndef = table.copy(minetest.registered_nodes[nodename]) ndef.sunlight_propagates = true - -- Prevent dye+cut wool recipy from creating a full wool block. - ndef.groups.wool = nil - stairsplus:register_all(mod, name, nodename, ndef) end end diff --git a/moreblocks/stairsplus/slabs.lua b/moreblocks/stairsplus/slabs.lua index 11618a2..abccd2a 100644 --- a/moreblocks/stairsplus/slabs.lua +++ b/moreblocks/stairsplus/slabs.lua @@ -1,15 +1,14 @@ --[[ More Blocks: slab definitions -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] -local S = moreblocks.intllib - -- Node will be called :slab_ -function register_slab(modname, subname, recipeitem, groups, images, description, drop, light) +-- luacheck: no unused +local function register_slab(modname, subname, recipeitem, groups, images, description, drop, light) stairsplus:register_slab(modname, subname, recipeitem, { groups = groups, tiles = images, @@ -36,7 +35,6 @@ end function stairsplus:register_slab(modname, subname, recipeitem, fields) local defs = table.copy(stairsplus.defs["slab"]) - local desc_base = S("%s Slab"):format(fields.description) for alternate, shape in pairs(defs) do stairsplus.register_single("slab", alternate, shape, modname, subname, recipeitem, fields) end diff --git a/moreblocks/stairsplus/slopes.lua b/moreblocks/stairsplus/slopes.lua index 63635eb..5ab00b0 100644 --- a/moreblocks/stairsplus/slopes.lua +++ b/moreblocks/stairsplus/slopes.lua @@ -1,15 +1,14 @@ --[[ More Blocks: slope definitions -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] -local S = moreblocks.intllib - -- Node will be called :slope_ -function register_slope(modname, subname, recipeitem, groups, images, description, drop, light) +-- luacheck: no unused +local function register_slope(modname, subname, recipeitem, groups, images, description, drop, light) stairsplus:register_slope(modname, subname, recipeitem, { groups = groups, tiles = images, diff --git a/moreblocks/stairsplus/stairs.lua b/moreblocks/stairsplus/stairs.lua index 0ccf081..82770c2 100644 --- a/moreblocks/stairsplus/stairs.lua +++ b/moreblocks/stairsplus/stairs.lua @@ -1,15 +1,14 @@ --[[ More Blocks: stair definitions -Copyright (c) 2011-2018 Hugo Locurcio and contributors. +Copyright © 2011-2020 Hugo Locurcio and contributors. Licensed under the zlib license. See LICENSE.md for more information. --]] -local S = moreblocks.intllib - -- Node will be called :stair_ -function register_stair(modname, subname, recipeitem, groups, images, description, drop, light) +-- luacheck: no unused +local function register_stair(modname, subname, recipeitem, groups, images, description, drop, light) stairsplus:register_stair(modname, subname, recipeitem, { groups = groups, tiles = images, diff --git a/moreblocks/textures/moreblocks_cactus_brick.png b/moreblocks/textures/moreblocks_cactus_brick.png index 0e8c2c9eacaaedf222922b5e8cebdfad20cd408c..43d2479f335a5d269dad0eeffa996d9b8d68b151 100644 GIT binary patch delta 673 zcmV;S0$%;j1-S)~B!7TOL_t(|+G0%ZGY}AFzjf_HghktNKt-Fj;8we7BV-|k~FNt%DmnIDF?BXUe|HEoDMboh^7OfNd({*V5- z30sn_bnP53G+Qa?_IPi-bxp`P0vRXLAmCst7k34bt_tI{X@5$RjG->;zo!KwJN)P0 z-#(i%$I|trBk1>q%1sA(S(dXuR`o)xW-9Fp_U!Ag$|x?EOOzrA0z^OZJYNYR8Dm6b zj0xiytOWqAHGVR_+pmx@zv(8jsLW(u9kuo4ACKPB4 zL_K}G%@ zS-0d=5=K0mPTA`pzORTTgWk_jwj-DnOsvCy`eJ_E_Ey?;F)mV?_j {jpe znX%eU|1j)@x84YZ%%+n#O%bs!D;97mrDvk*dNLYszU?*u;2*TRy{4+zxsUG45kkkP z1{Z+`^MCuV%aeDx>L+;2)Rv22GE)dPYT@{w;*9<8+0X5oK1VMxp zmSUlWji9Xvf`5Ua*jOkMND7ICm4-ADu@O5fEi6M)q<9aaPkhO4c4v2Ic7EP_?!A5= zests2`B8HEaQDHrul`zo%}hMueL0GNKA_Y4<;QQ{{Qcrfo_`wLyCFtu9qug@bDAF? z`2>kUeAKy81fh>vp+#KZ`sn=Fi9ux74gZxbN?2Yz{`+2u5%Xgc1r86jZTtaK*L9oo z{jk&fjm-;Vxq*+(jY_w8}St~_Nv)9@nqKJ6!lPrS}0KhrNf3B_r03$l*iiv4^ zzuxw5z3}NDPk*ly5gCHkXD3Oww$-YA|BV}jDk1?hB(tQq!DK2nHqUbzKqtyK;scDW z*Fcde$uj=;!7iDQ4qyS2L^YjY2;O_~Znx+KC`yPmNhh3ARhD@7w_mNuda*n@Id1CO zq-m0605CMI6$b#5$z)a(tL5_Ym6x{51%C3wH7{X(R)4*7^@|7g+u-B23kMpFM*R$( z-QT|b^5^%;o7QlapdgZr5k{{klw|3!6NT})6K$9rK)H=gE#o-qxk+QJc47$l;&h`m z#sFhKREwtC(EtH~R0y8v@PKEt+2YaORzA2`o_oCW%g;)is$6Gz&dfvCqatHWl4W)n z)=yWLuYbG<09Co374xz0@xxoM5knGD28bybrhgvQ@4oWc8GPr5Kw7OgmLa55UR|{B zz5Wf6i_yh-q5BY`4Gy3vv@wQ;(D%L{otdd1Fg77Fq|+(a+qS9V=5Zq$bswFN$P}Ls z56`Qx6P~cxkQ#7Wjjdljd4k{Hxt-^^wd3K@aW7NX-uu37iTT+}mu9nRwQqumb29cF cGkfp<2QjaTzpSB9J^%m!07*qoM6N<$f(GkcIRF3v diff --git a/moreblocks/textures/moreblocks_cactus_checker.png b/moreblocks/textures/moreblocks_cactus_checker.png index 99c2677337c3b1d022f0203df385fe78d269cf0c..79f2e32cdc3c91cc22ba78bb69c56fc8ad3c1dfc 100644 GIT binary patch delta 272 zcmV+r0q_2`1+4|JrvZQQNklx(0 zq!d||#RpNB3Ge~Y5460k+Npx)LSg3v#G6^!&gvX>^yWiVK;^{qwsu;l2B~CA{a<=a WI$16uUmE}b000O{MNUMnLSTZ^+J#^M delta 280 zcmV+z0q6d$1+@jRrvZQYNkl?qNUnJ6JCmFPxx>}=<} zcBcFP{}VkAwTx0rO+snfZc!;dqrGmaE#p`oZzfih)`C(6+v19&>Fj5NZ{Md(cIycE z1zR!<1rd^x0PA%s@B&zuEJt|tRH55HiDvwhts7jWCh0?H`D|5o zA|?LJvt>qy?ZyxSv+GXLf)t$Wd_5hDDXt##jWME_?wsBG2!3$Oazif)r*zZ1$f&tS zH?eWL@O;qE1l(bRs{G>fhdiZ;>laZS)wYF?ak>1ICSba7NBw#TjRQMdBlvHjoop7h eh`DPyoqu{vI$032*8#}@0000X$B!BWrL_t(|+G30Z6a-fX6~j;fKqEJ)8}9IjuYe4~oD6}>AMWtn z+emLXXU;ZxLVG-h0r*}6(usGXhWC<&yEZ>h2oOL0vz8T#^`Re3e}O)3d`P{|N4*Z2 zY&UvSW=;a4Z$`tuliX>LFmr-Br*{$^n6 zVL^PWX&H{`(DD6FHMO#Gr3by)`I(o{0~trOJxN8q^wW?tq6z9#l`+zh@X=6N;XhC2 WdZBrSq0;~W00{s|MNUMnLSTaDv3&Oc delta 279 zcmV+y0qFj#0-B!BryL_t&-(*?oHPQpMG0MNNJccu^8p$J+-Sg_O>zQOPrF8oe^ z!o-bB6JoF>6lqFZTjtTJ=fKOIJ+T-n7GaIPSD@^?SJiw92%l{79up+KJX%XYpI=zwwzDhJd$BnE%o6o2t8dCtsE15foNzb|M< z(sC(VA(d0tn(c9<=QT-sJpzq;#soT#6q+Z!HKV}q;~e=m{~F{va!pny4@ZwWPbLPr z8C4*i8*++fXlBH>8v5`LnvreF>&+MKpnPC;6~E6k@?osD4x*IcT}> d42Y}y2T$gDp%8z~{9XV6002ovPDHLkV1gBse>DIA diff --git a/moreblocks/textures/moreblocks_circle_stone_bricks.png b/moreblocks/textures/moreblocks_circle_stone_bricks.png index 4ca0134d8bc2367fc76ce6d3b3a2e7ece433d017..d14057ab30964640b9d3debca36f9ba632189ac6 100644 GIT binary patch delta 229 zcmV0;eW_UL_t(|+6BSoLiR8WfYB#iUS0bs?k@L#H^@KSVFJtO!Z~tO z2yTPZmIxteEb91~-blYhs^1jyp9e`1jGOy;;H66z7FHPmEr^w}W&+VLFg?{A0KAw56v|b#t5;em(36lt+@7qo@ zmR}}BBFytzqs>|w_Ub?Va0i*2LXNl@0lklVU^DCQ+Ke&uJ%8P1A95P0+*1qi9-)w~ fQm{Z}=3|;4SbS!5vcis800000NkvXXu0mjf9k6eX delta 231 zcmVG{%^ac*6yW@BcW)OOYED z=z{Ll?s$&uJHc&oZV@2_P2G@w@`=0_DH}R@px`Wk6wKO~5OkGjJAahZz* zcqc~9oIJI%p%1@KEGosktQZDHjE}YE`0Y9Iw%ED7vhMWKCSbdKaxNODrX+39XJMWo z)Os7WVeM;9BEhO{uX^3aup92`bcDvClRbwSP`$6fbJNXWMh~@e@3y?iOQN{v8^Ae1 hCu32tKr!>4>pxh0W^}=P;cnC{Y=8f*Ra(MpzJvV!FK?y`!MVjfGRr!fE zs+5YQWPU6zv(4)+ollku-rOMj^PA=qohpuGI;Z>td!4bL35QXSAGxH7gJX#9V6O%T zNh(7?0xx9)pKb*P9YjhjtZ^YEm}RLG+>W6H1P}WEfpjo@0|2E3Z-!`zrKA7=002ov JPDHLkV1fiIb5j5S delta 265 zcmV+k0rvjB1j7WdL;-*5Nkl6?yEIdXp`dFuoYldvn2fj*Q)bP1iuWgH;KT%;T*Ghn<0pUbj2g4-k1^5vet$Fe zSqEl~g*LjaR1Q{)sN62xd}=?N$FJVc-J&&*ORf$_AJ%%=zQ|SJu%kh*tJ;~o7-$#7 zyM$L1-*`SD!Fd@o7W{T+)aeeRjv^hkRhe=)Y8sz}o-8^LW*Cs*5dQ(C1#gCL%c?>E P0000EMspJbACIpNR&{r7?0 zaCcjcOyD)}i24HyvGRZ&R}k delta 231 zcmV*kcUAsGyfYpVi{{lFtvbc(xJB z7>d<@Ey1B>Hn>&h4XxtKS0$?0~^l zpKR*c0TARsu6e`bCRh*DNI)g&$ZcUL!FSv*Fce!ZnK+!~7ros;Z6PNa%4i!DGX6y) hJKzLCz$*+bx_=T+ST{S8r)K~F002ovPDHLkV1gJEZ0Z02 diff --git a/moreblocks/textures/moreblocks_circular_saw_top.png b/moreblocks/textures/moreblocks_circular_saw_top.png index 96f3350cfa99f5c36abecf0f29b83c6d52f3e150..1b491da29fdbab360743f68ff5320edda1076ffc 100644 GIT binary patch delta 231 zcmVA#nB5M~k_Xg4?W2R_Ro zf~u_O%sGtEU*=&We-9kb*5u(aJX)W%7ePvKd_D!*c_TF!@-$kbNVpcIA9~78bao%+ znMzHaBt|@Q@PDq>(ZJ-_d-Wlth}&?)4@sGVt8vtAe1o^R)nGAJ>8`3yurFT_oqq_^ zac%$@cGwKxe$%x2mGdmGIXCkC8kW&m=x@0x7~>MQt#iDl!iSxry4~GMTxRPTCH_tp hq@DOfXxL!P#D5z~i^<57<`Lfb0JT`x`ybRG=_1Y zyrD8Lj)7C<&vU{ygTe~DWM4f D{8Sta delta 106 zcmZ3*xRG&!1SbnK0|Ud`yN`kd>b_cY9F`nk_ptWVHRLryy;&;fq{{7FPXRCwA2!GqcxKo9`Ht^3EeZQHhS*Jz`Q_5L3_0};73 zf}O=eWpkSlrvyX^Yjkl6Kk#y)ATZi2Gn`_`DOUb_5&{b4m-dKnRDYAp5$O_e zxnt^7%&{9%W(lh`fb{_y6IlZz(}()E+zx{aJqUgYRLg018Q_2XoI}`{ zTI$g+u_0Y2LIET^$*Sd)cZ1T}WKp1Io8pz)isbG$8`qQ2_VIr`G!}{owPyo(*T5ny&(hu0000< KMNUMnLSTZqStjlP delta 107 zcmV-x0F?iu0j2?v7zqRe0002(-QrS_Aud-!Nklzo5_}Dj4lEqUD3Q9^wP{zJ^QD-PnG9{3O9e#;O2_rIo};OHzv~gI?7Zk`q2)>c<9|HkfkZ$BCT>t<807*qoM6N<$f|hJ_sQ>@~ delta 237 zcmV*V=@$k%yi|H6E<{R2l1HYh;`vo+xr#lA*97%|;eITV|QLP!3gNR-w8f#x?S>dx!udNs+hhl=ANVu# nUrh-4r{zYfiW(4RD4zKr>{(;WFZCH`00000NkvXXu0mjf!nSZ7 diff --git a/moreblocks/textures/moreblocks_copperpatina.png b/moreblocks/textures/moreblocks_copperpatina.png index 1b971dc89ff8dbaacc89a3d7bfb3fd80a272c68f..d4e98b009373c97781d4b42b61e24d2415165ebb 100644 GIT binary patch delta 183 zcmV;o07(DE0)hgN7zqdi0000eEe}(XAwPeONkly{j_V>3=YI-rM;K;YA&oIoapBgxlZpI3IB%g3CjQg002ovPDHLkV1gaoPvHOn delta 250 zcmVuK57zqRe0002(-QrS_AwPcsVoOIv0Eh)0NB{r;32;bRa{vGf6951U z69E94oEQKA00(qQO+^Rb1q2iq9}c!F$^ZZWn@L1LR0!7rkN|K0000I;Z~_1WRsan8 ztk2A@&$j>?t?K&!s`{w_D!l)y{`;)(01T?l`mL_2(f}&`t@^s$tDpc%uC1&8s>)`^ z0E)cot=j7D#Q-hKs=vOh%eDYI>#Dr_&-(TNI{Lf6uKLgR0E()wy35+F)&LK`y{gUb z%BcW7`mC+J&#dVHFaE#mt*Y;#0C_1QGcu4-Fg%}B4~T>Q8vp zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvvIHj%{O1%t0url^!&VV}ABTKswO!Uc_N^-tC}S--yb4|^J4`pq3+bUD18 z{!C@hFX#`S1;+-}ul*+P5zc!fx*M-QH!aV0e>;hO)_(GPBN^I=lGEGOx;JWj;&Nqw z{B=uT^SAlZk$_SUFyxqrBWKsQR}Y+i3O-T4F^^nE+q-D+Vt398K)xLB0%+d=eF6Ej z%y;x}>l^r7cE9_EW!xB{@#_GEZ~g9?;kRLTJ>ste06+aW&i*`4&(AaTbj3#?8n>br z*mSnR#0tpWS{Csnd;;2OJ%T6OVjC#$w%LlOkr0EG$B?H^g&rE~-KfDu&w~@*%#GdZ z%Pz5SbCV}OA9^@BaUHC&Ydnl|=;rGSExWSpHOjEu2~(M{8DYs^KIZQR|IK5br%i~+ z=8F~l;;C!6F`1j+m<2-U*}R1X@Od`<_N5<46%2+2bH)LSt-3`G^wE}EJUh$_cxwoe zNquhsh+sRw8FFC2Msk57*~FZPfMW(h1)j6>T)_Z^z#UGqcZe2~IP`3wz};DQe!#E?QZK|+Zx`WRx2Db6HUl1n~?6jMq$Nh;Z8 zpF@s0<(wrKVR6WTL82tdB2o&Q0z(CR70fT_sa#$4HPl#B%~fh?kWce1wAfP1O1;tWorK957-LUhJWU25Xr7$eOy2WkZgOUY5fp*pWSHETPLnZE=m&9l=yLaA z?jP}HLjFg*@&97ZOzQq0%o$Mkleb@3>$A?a#h6Cn#MC-O--t0oN4X5^I+9HwA1HX> zJsTbcYhXN==&8Ed6VN!Fg>4n>l(^;_6p%3H7_vLko?p!xU^%WO)|RkVpd!Y;)-)fh znzgZc(ow^{Xfu#VO{)peM|3(jM%HnZh1TzKw>S5^&6!rzo!0W{JMSKjr(Ro`a@!4( ze$3}S`wUCYWAD)bHE**VC|C8b#CcDdO(uyt6+iRd3L7kpCa&p>%0>8KZkN4j?z_Xa zZ?u6;%w}-_u~$}@C6DIvqd$rrpi1E&`W->1q!?h?kJ}|(8{47ggL+hab)>$`l6GON zYSB599F^6JiHO0~6oePY)B7>>LEwW_)YW3RHPT(Zlh)m~->sB0H)$&)?;;G>T+~K8 zn)c(I)uKQux&y%tn$I=}w4>W-l}1$Ifk;-E=1r;%#i>X`2%4+07k)`qA7Hn~=+At) z(esOsW;*$SEU`*Yz^DcUHunCxbkL4Eq!HaUBm1ZzOBQG2=3^wQ(zR|YN^oD;Q5R#- zy=P*3J3X_PSw|j7fH&xM+0<51_bRz^6rHqt#+6CBil=n8;C#zFbs+x-6~sh3>#6yACtFR9r5hD+b}?=u;#dihW(O}HTnXsdF2-WeO9=TzXz^)DeTODS-ka&?=|4h#s zn)emJ`2$r&mAW;k$(3_CSw-s909c!6qOBkyX)3zVEpo>;i4-lGXBbY|bH zB!9gV{CXvLyY{($X;C!`ihZWYJWg7Z7kIzY^kQjh(`<3RuYc-sjj;PsPn5%05nN5h z{0SJ>GU(<40flKpLr_UWLm+T+Z)Rz1WdHzpoPCi!NW(xFhTo=Yi&Px!AmR|D zI$01Eag-_+!9r;(wCZ4T=^r#{NK#xJ1=oUuKZ{id7iV1^Tm?b!2gJ$INzp}0{4Oc9 zi1Ci&9^U)jm%Hx(p;2L~*);*Enq{QoF)^E46$7v6p&7&odL(A*iS%Lyp5yBtKEB^Y zd6swGpQBI7n+))Y#B)qHEaDB~nN3UQyiXivB}pMZCmuKGg2azpmtB72Ty$9AnPDT7 znkNnui^UF>JD8OWm3W#sqNp0>3t5*H&Rd+-N{zMd$zK@CYb$B4(;7w`OGqFI5i)8h zqXG+2+BH&4r06{6;U9ARNpi{LDua<@0ad7w96$IU{O+w;n3{BxLNTEG#kN02fxs@% ztlReYv28a`0RJ;^rM3Ol1~B_cdcCbhj)4Ac;NrTi$$P-%4lwwnONQh~ep*7I0KA{k zH|2nVTcCH%?OW>{rw>4edbNB592^2;Mao|Hcz3X~Z~xY``u77MG;)R{f_1$B008z- zOjJcwGbL3sB~>&fRWv46G$vOyCRjBlST!eDHYZp%DOoosSvM$KI4WE?C|fxwUO6gX zIx1i~DqlM)VLK{fJS${9EM-0{XFo7&K{9JXGHgOKZbLI}Lo{zhG;u^Ua78h3MKyCp zHF8EZb4E6FMmBUuHg!ifc1SmONH=&%IC)7pc}h5XN;rN@JAO?&f=@h!Q9g!IK88|0 zhEhL=Q$L7PKZ#R7j8;O8RzZ$dL5@~Jj#omDS3-|iLy%ZQl2}8LSwxarMUz@Ylv+fT zT1AvwMU`7cm0L!ZTt=5%N0?kkmt9AiUPzl>NSj|sonT3xVM?E2O4P-V>;M1&0b)x> zL;#2d9Y_EG010qNS#tmY3ljhU3ljkVnw%H_000McNliru507P!0 zudO|i$ccorViDLbDNB$JqhQ)z2Ads2+@7a7{B1#E(P^) zCJH>XsDBbPrDF z`IuxB1zpo^?WDpZE_hYDuUX;Q1BqqfS65*rC*k%}BRZsoaCg{Q?Fy)NrOFzBR`_b# zoprMO7(r+DkU))E->Bl&7RO>M8Lqe6#}MSh8?}Pn)PR%}&@1}wln~h;DWn(P-fJHq gpC}hvZnX@k{(TV$d;}EESO5S307*qoM6N<$g4+>M%K!iX delta 227 zcmV<90382~0=@!}V}A*7NLh0L01FcU01FcV0GgZ_00007bV*G`2jC0^7YrfM3r4m8 z005pzL_t&-(-n_Vf&(!KLeotI#5kS%pLXr9@IV%QQ$-Z0lhRUz>ta{zk4dhipkunM zzM5Um5@a diff --git a/moreblocks/textures/moreblocks_empty_shelf.png b/moreblocks/textures/moreblocks_empty_shelf.png index af874d74981ac7cb927f6968801beff4af72db2e..bf29124f204bec0f296a93feec614ca9de059c30 100644 GIT binary patch delta 137 zcmV;40CxY|0nY)D7zqdi0000eEe}(XAvtwmNkls@Fv>$EVt5K#T12*8uK$kCOD1?}7~m@6 ruIn$~j)8{jB0{!bu$+7Ba?Vy}S)c;M9AfV)00000NkvXXu0mjff~q?~ delta 150 zcmV;H0BQfv0owtP7zqRe0002(-QrS_Avu3+NklG+4#Zic1!bL$4kYWf;1A|nC?d7G-#>U272y+g=vG*BQVmp6jbyOs2@MU6=&%F;i(D9EYOU|r00000NkvXXu0jG} Ef)ZjkWdHyG diff --git a/moreblocks/textures/moreblocks_glass_stairsplus.png b/moreblocks/textures/moreblocks_glass_stairsplus.png index b879ec3270dfc39878c79fdaf6af7b1ddbbd0354..8e4cb98dfe1dd38eb93d9ea35c709002f4f54f26 100644 GIT binary patch delta 139 zcmV;60CfM?0jB|wB!3l9OjJdtq{+a*ZKobA} delta 187 zcmV;s07U<%0oMVLB!53pOjJdtq{*hF&Z(x!sHV)SsLi9J)S{x*q@&cWt=hG<-MF~k zy1L)Mz~jWkpM~?i-BvU3`njhvD1!4Kkr91!t002ovPDHLkV1nuKUa9~9 diff --git a/moreblocks/textures/moreblocks_glow_glass_stairsplus.png b/moreblocks/textures/moreblocks_glow_glass_stairsplus.png index cdb804436943280ac37a9e14ade2ea6854be2980..db2831e5281235085696df7b14da9f35eb5d85bd 100644 GIT binary patch delta 105 zcmV-v0G9u$0jB|w7zqdi0000eEe}(XAu&}zNkldRq09L&wba+rUyv$~GHZ?Hu01xSo+@T-hctum7qfN&Nhbh=l0#fK00000 LNkvXXu0mjfAL=Np delta 107 zcmV-x0F?iy0jU9y7zqRe0002(-QrS_Au(4%NklUHrW)R*7!#ZOA$1Y*d#KNSD~ N002ovPDHLkV1j#nFG>Ia diff --git a/moreblocks/textures/moreblocks_iron_checker.png b/moreblocks/textures/moreblocks_iron_checker.png index d27f4df7646c69e299211b8bb8327eaca309fe19..117cac2da6c435ef03450b10b027100751dc3047 100644 GIT binary patch delta 716 zcmV;-0yF*62IB>gBYy&_Nkl%E9^hIYvfCu)e-7_o-Bh9A*c_Vo{36qck-&g^i63?C$PjWn~4)WRkeX>-Cb) z=Ogs>^+BuE$^ey0g?Kzp^?F?nzMr3;$KAVk(b3U?YuB#HfPZqitQ;i@hr@)Po*pbM zEeXon+8VrG|9^yZI!&jir`X=!Mt^@l#>dAIi^S;jr_U4&29+Z~7#kat4-X$c#N6B* z3WXeHG8y{z?Yj(^o}NZ~dppaNBb`k0cScua#z-hJ)m$z|`Fvg)^m;wiYBjdDw!rT_ z9xp|sQ7RM)#D6T$&d$JfGcz*)qo~y?a=M(v!&nY`VltVqxVQ*z^80)u>GkUu0&wfr zEn%~{xe2&jE-IBuBna6ou_rfg-UMGcfp{z~&32nzC?6diiJ>=c+(2h%C-CCw3kroo zG9-~mkb-=LX)^up?r!lUkxYo@pTB-dto!@>xP1At$bZ1_@UX;pcz6hp$0M3~U`mnZ z^La_9)3G1C1Dp~|Qh-uY!^|YUg@pwi92{V9a1ix+P0$<;4{@M#*S2{&$=iy4`LnDmAfqjO-2v!C){*Y$qot zyb~O&Ab(V=Rf&}oVbgBkzKzw@RWzGTvODb*3qATV=A}};L^hjE!dqrNhdZjKb2L=Y%cwT=25z_*JfD)I6 yxR^ikg78no(UnR?VOFcxl-S$?z;Uuvj`ufAH%-V}=Fi{&00001T delta 828 zcmV-C1H=5|1=0qPBYy)KNklLNJ+35JDi;>vhWIGJgP)B;or$pMLqo(o!0b zkY$-hqd~LTq+YKBpsFglTozfDk%Azg+wCHRz%)(X-(4n?3Egg&Xf#SLmt%W-8%0rA zU0ubW`Q&qXhQn8az(tYy-NRq_y@vi`MyIsD2|Bfun_`Z)UM|k}C zh$KnK@&e-G;(sCxf&fKP5JFI?RK(`yCiD56(P+f}{(d+dzM`rzG)<#gt%_7CMW@sG zFpwmPcKavKFVA?MhoUI_H|RJHk|Yt41g`6nPA_8HHnm!f>2yjmnI!u9`pVW;naN~= z5{)t#47k0$Mb~w7UB`KM2*MC=>d|iZ$mjEzrpeRO6MwdCBYoNU!e}%inM~r&W*i~Jw5&C zCzV>lb3KxaNpkrdLI?m1!=O|u5sgHN$Kz-*jbgF*KX|QHqgX5=MIsU2>^Gcuo1r;m zHZ_}3sZ_8m3(K-dBs3hyA&i8W<}<}&kst`jWHKZY3H|~1YdRq09L&wba+rUyv$~GHZ?Hu01xSo+@T-hctum7qfN&Nhbh=l0#fK00000 LNkvXXu0mjfAL=Np delta 107 zcmV-x0F?iy0jU9y7zqRe0002(-QrS_Au(4%NklUHrW)R*7!#ZOA$1Y*d#KNSD~ N002ovPDHLkV1j#nFG>Ia diff --git a/moreblocks/textures/moreblocks_iron_stone.png b/moreblocks/textures/moreblocks_iron_stone.png index 20c42f33e369fcdc38d02accb6528ee912c7a135..5a6e457d9915a42cee7d34c1ad28f79c2220b528 100644 GIT binary patch delta 201 zcmV;)05<>T0p$UZB!8?)L_t(|+9i!KQUp;5L^-gTzcg__Y&t`A*Cb}ve#8sR#2!v? zUqI5Y8v&1lzHi&dUN|I@`MI|3>+x6~kurvvmawk{sF}Pf0l(d*Lse~vm7u=d@kGcr zs(t>3S0Kl|jrPZwb3%TyjEK0dGisMY_?%Q9`KNUEC{I1)^XcG9xm1 zeTS-&WdO{ANH&n9nUQ_#Pq?sC1e;!#cQX|KiURfrM5vAbYd8`X00000NkvXXu0mjf Dn`T`? delta 202 zcmV;*05$*R0poKgbunwEIGbt*H_0zf7wsefTxBC8(1 zMNY=CA(K>QYrS{H&$3ii=lQ5P<*?X$YcFpQIkiF}DWxu%*h7Nstz}Ae@j9Yct>yE( zGSkKulGnvreo`z0unpjRR584krSelsig!R48$e3<14O8e|BYQWy8r+H07*qoM6N<$ Eg5U*Pf&c&j diff --git a/moreblocks/textures/moreblocks_iron_stone_bricks.png b/moreblocks/textures/moreblocks_iron_stone_bricks.png index 1f817f877bcb1bc5a86ae951b55c6bc4a2168299..bc2ef2e549c808920e30b01fe828f8a692d6afd5 100644 GIT binary patch delta 234 zcmVw5TwbzeH;lD{l>5G-QkD4R%vS2_VvahXT!J(T>Y@@NJC0Z9$9nNCz(_@6&!POT9Mr=>j zW7j;)m@U%3t?}+OP2$;?F<(pNr?ca^BqU|02OTg}oBow0LulU1OD*-+`V%VE!D~p8 k{%6LnIEM#>8sdQZAHPsz+eL>Ta{vGU07*qoM6N<$g5!yFMF0Q* delta 236 zcmV42dIpkBJNkq^N3LOFk?VuoZ^8Zgx zE;@CHP!zQ%m879P=k>Z&OIV1;F+(`%@}aAS?1xH{Z`jB!0x^rI(VoG5O7|xt3{vR^ zP^YujNAk+c0kBoG`Z59yW!mqoe%HmVMVq0XfdW2sWk(}{6gy-YL24{c9EnMqo24Ps zl7JJN;_jOPC$$^`2|bU0u&=#t<~aQItIa*JMuG delta 70 zcmXS}njpc+#LU3JkTh5P(?ms86M0V;#}JO_a4%Qt_)5)VFwl()-g?J=fd8%3p6qDKlX)%e7fZd_JA2xOyl^8FinHsc7zFD2-Cc= jL6}Igv#=7>Rsx^^RCx#?5=+aS00000NkvXXu0mjfkA6BQ delta 133 zcmV;00DAx60^|aa=6-2OL_t&-8AZWY0>J+dzjLrq+FnFvXYCxQPjN n2vfH>LYR2G7Q!-+ABdk1RCx#?wSfba00000NkvXXu0mjfmF_uj diff --git a/moreblocks/textures/moreblocks_split_stone_tile.png b/moreblocks/textures/moreblocks_split_stone_tile.png index d7d69af4f81b035094a2a3cd8f98c3d50ddb6c0c..7af4fdda6a02b7be04b9bc5841386a698ba169ed 100644 GIT binary patch delta 244 zcmVIAWvHP{V#aEV!$$rdecXjg(kT2dH*10}Vt zm@x*b>^3A+Dg&2i)f~Fk-ip$a?b~&==lu8fe#AL>h=x1E6K$^yxT;XHi&TZ}ryjFX zmbllVy{fIhR!fHYapbz_!rb$1CinVe)Z1(g&~& u=mZSX-9L}G{Eu(5c;dByCoQ!G9$$+;X7Oz!z3<~E*$$Bo9B(`LdhR2zp1a6)K?|cam&0*76$QsLw z-_$uFUVL-ygVVA-$PCRE=qA*GEx7TiiefQ`W{y20qHmW1?e-d@7?3DbOrnoO`ZP-|L}J-z2SE000000NkvXXu0mjfbI*06 diff --git a/moreblocks/textures/moreblocks_split_stone_tile_top.png b/moreblocks/textures/moreblocks_split_stone_tile_top.png index 3c8eb6d107d0ce115f7fe1131bf404f25f52173e..f3184a86711dbb0ebea989350a7be51a2d3a181f 100644 GIT binary patch delta 250 zcmVoU+i&|oWrC3P5@baVY-Ex=lq^+;FRJL*Eh+TC zo)Rq!CJdem+Z9zRm4Wkj5%yhcKC-Iy*)+B*J*U^k`2kb>fpb}Nr+KnV4X!ZOXaf~w zb0T9>>Xy!Wsj6PHQ_nlo0oShCw3r$yvOI9+T*K61DT-3givyUP&`uuPO!E-lVKdEt z<$9!JVB?alpdEJdrOmg;%YL(O`b_|tZAnUg0aclKbz*OP761SM07*qoM6N<$f~qof AlmGw# delta 251 zcmVYZuCiKF5hE_3v`zK4>rrm^6EPaK^fcb zGbyrrl4~*MgPvz;roD48r#qK`TN?Wb%SbBSg)7&V*MzEuO072+aJ8UcBTkjJCI3Lb zZoALND?I|cP<#U$Fv;1vA>!-Y-;Z;jK{l_&$Ujw?d3AVq42}Q*002ovPDHLkV1myG BbD01D diff --git a/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png b/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png index 9118c781742383aff740a0fca5ca91c1822096ff..c9a2da6ef20bd55caf67e3bcfa7da42c39a2cb49 100644 GIT binary patch delta 107 zcmV-x0F?i$0jU9y7zqdi0000eEe}(XAu(4%NklX`zGmA4 z1y=b`QRjj2jj}KVTpvqIhn5LJH^Z%sR=W1tlmgYl+DU1K_zUT{_5exR0EMfAeW3sV N002ovPDHLkV1n(ODW?Dc delta 109 zcmV-z0FwWy0jmL!7zqRe0002(-QrS_Au(A*NklClr7~9%;({%{dYoILRrI)KzVtA=~(p!OFsl-$hk^w P00000NkvXXu0mjfTM{g^ diff --git a/moreblocks/textures/moreblocks_sweeper.png b/moreblocks/textures/moreblocks_sweeper.png index 34f1cdec3cbe1806683ebf028ca62203bd6f191d..770b988c4a2f8c5372f62d966b9df978cc644dde 100644 GIT binary patch delta 140 zcmV;70CWGg0<{8=v43w#L_t(|+F~FQ0J;_jBZvV22wrS%UNQSG@$DTQkD9dC`UwW1 zOv~GEGigoD`1C8ZWk&_i(~kK>&H<`N(A708L)|9xBQT?)Y5P+Yd#0WgzU%shzHnUE u)iv43z$L_t&-8I8eN5`r)k1i%4hWO0jw3lRiEy#E!o;!^L^Zv5$j zJ5GrB86oU2>&QgnH@Lrln-){nvym8n5)-~%@jt^Io vrGrtBghf__#ex+q)-_@A1y;6PWJsRiY6d?~6Hzb#0000pxYJ@%b2-p43wTQ4>p$Z_Gd-=Ph*l)mgC$wuHuZr zUsJ2i7FU(rLq`81WbtpBy1T?+Z@2PDx`o>M(P3s0??Dxg^gF%;@M$q!!V|(Dr)^lD oI=f{qJ}8><7;Joh($07*qoM6N<$f^dp;5C8xG delta 242 zcmVjq++pm~Fsog$C2OGul zPdI=CgSiem*Zc@qm_%@!_WJYQ?4mAp4mA4EyGK;9@i+-6oolczQdHcXL;e;flawm! zWO@AU6BYmf delta 105 zcma!OXPlst%u?*+8NvYsH5@4&3=9mM1s;*b3=DinK$vl=HlH+5P}9@JF~p)bd5+D^ zANI_u4MNOn{$~HqyG(q`!^5+ftw+iri-E-;Xx3cDiDI0!emXVo(fkD+aR|!b51^9%xPM&NGWO}W=z7|L^l?3?(|7Uo*-M|aTlks$M y45_%4oRE~T;y=6F|AjsO9fWxQwsRR-FfgzfiAi@~VR{Hu$KdJe=d#Wzp$PzD@Eybe delta 143 zcmXS2z&Jsoo`a2nfkFQB|3o0gQtadz!T|&|94Q?@K4*bPWHAE+-w_aIoT|+y4HR_p zba4!^=uMtubMuEiv)F{$)zbv0%Wx@p3CivDd6KoPi(3K+G>RBY_c(0iW;5Yw>tqyB mSLxDSZXwlqYSWKRW(-+OigydGav8UBIUPkq*85Gu=Rn(JB)09xypIh6bU+uzrNHQQeD;-5LB4a@+ zYfUk3OE6?bEJZOPK`|ii0*_b#000?DL_t(|+GAv3gn*w=nuUWA3g{{@Slj^sRBi){ UZbTN-00000Ne4wvM6N<$f-Pxsxc~qF delta 295 zcmV+?0oeYY0=EK?8Gix*005AYXf^-<0RBltK~yNu?a@0@?rz&wUxX}ddlH;vkIuQju`VPHnvszBWpCUof<|RUCuoO tU~l0Jp}~UPULbs?LK{2f{||ri@Cy(0tef|vjR002ovPDHLkV1l1`heiMZ diff --git a/moreblocks/textures/moreblocks_wood_tile.png b/moreblocks/textures/moreblocks_wood_tile.png index d0faa3dce6dd608c37073d9a67bc45681c2bb833..7d9a43c61b11b46928f523a516c9ee44b8a86273 100644 GIT binary patch delta 194 zcmV;z06qVV1A_yQBmtilF_k+N5T#fnoS(|kj(=)hlLQt9MXP~~Si(ei>!UUmm z(jmOAtLvhOAwo>iUy&OSU$J3WNs>T(u!5;+kr6={RaN~XszR9aUAG4i2{S^d@2Lb~ wZry_qAyRT2+hRkQUEf~n%0ELd_jmIS%La{vGU07*qoM6N<$f`M^UXaE2J delta 203 zcmV;+05t!D1B?TZBmt|DC0qhaERldwf1TXgnE(I)0d!JMQvg8b*k%9#0FOyTK~xwS zEx|Dof-n$3(Z6IJ2}T=73k$vf!7ODQApwjb7VLX+Mp#!_5*uxAlg~0fF)mi7nL1=P z%06T%X~r}v*Pn*$76QFND+yCfp%5?x`5@IpDK@ zE9TI{NnRg^k%!yEZc)tK*9+_VQ%u`Q91c|lbIeo%@edIsITI-GHCg}w002ovPDHLk FV1hV;Po)3= diff --git a/moreblocks/textures/moreblocks_wood_tile_center.png b/moreblocks/textures/moreblocks_wood_tile_center.png index 02b0f84ee6596fc47e170df72e96eda7efe1475b..035b1cb685e6f2ac821ec8bcd7d54f7513d069ca 100644 GIT binary patch delta 138 zcmV;50CoSM0+|AkBms4iB|(vCID5N#e~thE00DGTPE!Ct=GbNc002@+L_t(|+O5cg z5dbj|0Km7c*yz8+A6^>Bjsnf44+$u$h`j@db&Gs4*sHbS*pAcVBNdF*F6casCACkIR%U8+=B08 zu*5o|^-00hafIM~4OZEa2ERzKrj{}@#^5I(rJw})m&ens00000NkvXXu0mjfnLs>h diff --git a/moreblocks/textures/moreblocks_wood_tile_full.png b/moreblocks/textures/moreblocks_wood_tile_full.png index 7ec7f05616457bed83316c7937fc69863217dc44..edfd5d2c0b3156fc7963c2f5b86fa3321f64a8d9 100644 GIT binary patch delta 228 zcmVrc@`TP&sQ}ZiT_^RY{p-P3tQnYOPG)U-+IPTP5Ng zg%TYRLx+=Y)uosg_^38rS38jy(0d#Uv0_C^G;0m1(9H!Gj9qO0l*z&c{~>69E%s~b z0mTgSetwhX$sQK4Ji`a|w1_ti&veZHOv89N3|jLLGtcciwH`#G3f{E|qr%2Ek#Ns? etLQnS;Rx?HS7WJCnp3&}0000)ql!KL_t&-83n1~xcn$x*reo@Jo)A-s#y#}d>orWD^IJGon1t-RHU@c^XCWV9r|)R+r)EMSD_W%wv{f^R+{8hg~~ zkR2e5FmB_`K3!L@Ih$_F*~#r}U-!`WyVLe%dvJgH?2O@@R({(|txwe?@g=kYFY!J# hm40GDaBMUJ@gJY&VMK$nTpIuY002ovPDHLkV1jcyaH9YK diff --git a/moreblocks/textures/moreblocks_wood_tile_offset.png b/moreblocks/textures/moreblocks_wood_tile_offset.png index 3f6a2f24c06fcb40814cf4a14ee49ea7c22eba98..43795981bfec82fc11693a85cc30f895ab572695 100644 GIT binary patch delta 139 zcmV;60CfMM0-6GlBms4iB|(vCIDET$e~thE00DGTPE!Ct=GbNc002`-L_t(|+C<2M z6+|%r0I+Ynw!8m^XXH7>(>yQBG>lF0b!D4FWdA5nLXhI^Kakf(g6bDFCJ3q2{$g^@ t7%8`3te7GwMfZzi>$-m5_u{@m1OVKb1lRr97o-3H002ovPDHLkV1j)mJO2Ox delta 147 zcmV;E0Brx70-*wsBmsDlB|!p9ERkh7f3r7NQUCw|0d!JMQvg8b*k%9#09Q#wK~xwS z&B50ZfFKYBz=r{|7{(I=iWum>L&uNn!CiccqAc??i@-X6`0Jh{FwtsF+Y*BbI(KXO z04y9e(e}h(xpUSUQ-f9GM1xr+SW`=xD5dZtFZYiG`Rr!lssI2007*qoM6N<$0fNU@ BI!gcm