diff --git a/diff/boats.diff/README.txt b/diff/boats.diff/README.txt new file mode 100644 index 0000000..1625a5a --- /dev/null +++ b/diff/boats.diff/README.txt @@ -0,0 +1,10 @@ +Boats +===================================================================== +Main: PilzAdam +Lisc: MIT +Text: CC0 + By Tirifto +3Dmo: CC-BY-SA 3.0 + By thetoon & Zeg9 + Modified by PavelS & sofar +Link: https://github.com/minetest/minetest_game diff --git a/diff/boats.diff/README.txt.diff b/diff/boats.diff/README.txt.diff new file mode 100644 index 0000000..badbcb7 --- /dev/null +++ b/diff/boats.diff/README.txt.diff @@ -0,0 +1,27 @@ +1,15c1,10 +< Minetest Game mod: boats +< ======================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by PilzAdam (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures and model) +< ------------------------------------- +< Textures: Zeg9 (CC BY-SA 3.0) +< Model: thetoon and Zeg9 (CC BY-SA 3.0), +< modified by PavelS(SokolovPavel) (CC BY-SA 3.0), +< modified by sofar (CC BY-SA 3.0) +--- +> Boats +> ===================================================================== +> Main: PilzAdam +> Lisc: MIT +> Text: CC0 +> By Tirifto +> 3Dmo: CC-BY-SA 3.0 +> By thetoon & Zeg9 +> Modified by PavelS & sofar +> Link: https://github.com/minetest/minetest_game diff --git a/diff/boats.diff/license.txt b/diff/boats.diff/license.txt new file mode 100644 index 0000000..f0a0107 --- /dev/null +++ b/diff/boats.diff/license.txt @@ -0,0 +1,77 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of model +----------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Zeg9 +Copyright (C) 2012-2016 thetoon +Copyright (C) 2012-2016 PavelS(SokolovPavel) +Copyright (C) 2016 sofar (sofar@foo-projects.org) + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + + +License of textures +------------------- + +CC0 1.0 Universal – Public Domain Dedication +Copyright (C) 2017 Tirifto + +The person who associated a work with this deed has dedicated the work to the public +domain by waiving all of his or her rights to the work worldwide under copyright law, +including all related and neighboring rights, to the extent allowed by law. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/legalcode diff --git a/diff/boats.diff/license.txt.diff b/diff/boats.diff/license.txt.diff new file mode 100644 index 0000000..e19e1b6 --- /dev/null +++ b/diff/boats.diff/license.txt.diff @@ -0,0 +1,21 @@ +28,29c28,29 +< Licenses of media (textures and model) +< -------------------------------------- +--- +> Licenses of model +> ----------------- +63a64,77 +> +> +> License of textures +> ------------------- +> +> CC0 1.0 Universal – Public Domain Dedication +> Copyright (C) 2017 Tirifto +> +> The person who associated a work with this deed has dedicated the work to the public +> domain by waiving all of his or her rights to the work worldwide under copyright law, +> including all related and neighboring rights, to the extent allowed by law. +> +> For more details: +> https://creativecommons.org/publicdomain/zero/1.0/legalcode diff --git a/diff/boats.diff/source.txt b/diff/boats.diff/source.txt new file mode 100644 index 0000000..516ed14 --- /dev/null +++ b/diff/boats.diff/source.txt @@ -0,0 +1 @@ +https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz diff --git a/diff/boats.diff/textures/boats_inventory.png b/diff/boats.diff/textures/boats_inventory.png new file mode 100644 index 0000000..2270803 Binary files /dev/null and b/diff/boats.diff/textures/boats_inventory.png differ diff --git a/diff/boats.diff/textures/boats_wield.png b/diff/boats.diff/textures/boats_wield.png new file mode 100644 index 0000000..2270803 Binary files /dev/null and b/diff/boats.diff/textures/boats_wield.png differ diff --git a/diff/bones.diff/README.txt b/diff/bones.diff/README.txt new file mode 100644 index 0000000..c6ea6e4 --- /dev/null +++ b/diff/bones.diff/README.txt @@ -0,0 +1,9 @@ +Bones +===================================================================== +Main: PilzAdam +Lisc: MIT +Text: MIT + By jadedctrl +3Dmo: MIT + By jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/diff/bones.diff/README.txt.diff b/diff/bones.diff/README.txt.diff new file mode 100644 index 0000000..8c0f270 --- /dev/null +++ b/diff/bones.diff/README.txt.diff @@ -0,0 +1,23 @@ +1,12c1,9 +< Minetest Game mod: bones +< ======================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by PilzAdam (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures) +< --------------------------- +< All textures: paramat (CC BY-SA 3.0) +--- +> Bones +> ===================================================================== +> Main: PilzAdam +> Lisc: MIT +> Text: MIT +> By jadedctrl +> 3Dmo: MIT +> By jadedctrl +> Link: https://github.com/minetest/minetest_game diff --git a/diff/bones.diff/init.lua b/diff/bones.diff/init.lua new file mode 100644 index 0000000..be9f57a --- /dev/null +++ b/diff/bones.diff/init.lua @@ -0,0 +1,286 @@ +-- Minetest 0.4 mod: bones +-- See README.txt for licensing and other information. + +local function is_owner(pos, name) + local owner = minetest.get_meta(pos):get_string("owner") + if owner == "" or owner == name or minetest.check_player_privs(name, "protection_bypass") then + return true + end + return false +end + +local bones_formspec = + "size[8,9]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "list[current_name;main;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_name;main]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + +local share_bones_time = tonumber(minetest.settings:get("share_bones_time")) or 1200 +local share_bones_time_early = tonumber(minetest.settings:get("share_bones_time_early")) or share_bones_time / 4 + +minetest.register_node("bones:bones", { + description = "Bones", + tiles = { + "bones_nonshade.png", + "bones_shade.png", + "bones.png", + "bones.png", + "bones.png", + "bones.png" + }, + paramtype2 = "facedir", + drawtype="nodebox", + node_box= { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.1875, -0.0625, -0.25, 0.1875}, -- NodeBox16 + {-0.0625, -0.5, -0.125, 0, -0.25, 0.1875}, -- NodeBox17 + {0, -0.5, -0.1875, 0.0625, -0.25, 0.1875}, -- NodeBox18 + {0.0625, -0.5, -0.125, 0.125, -0.25, 0.1875}, -- NodeBox19 + {0.125, -0.5, -0.1875, 0.1875, -0.25, 0.1875}, -- NodeBox20 + {-0.1875, -0.25, -0.1875, 0.25, -0.1875, 0.3125}, -- NodeBox22 + {-0.25, -0.1875, -0.25, 0.3125, -0.125, 0.375}, -- NodeBox23 + {-0.3125, -0.125, -0.25, -0.0625, 0, 0.4375}, -- NodeBox24 + {-0.0625, -0.125, -0.0625, 0, 0, 0.4375}, -- NodeBox26 + {0.0625, -0.125, -0.0625, 0.125, 0, 0.4375}, -- NodeBox27 + {0, -0.125, -0.25, 0.0625, 0, 0.4375}, -- NodeBox28 + {0.125, -0.125, -0.25, 0.375, 0, 0.4375}, -- NodeBox29 + {-0.3125, 0, -0.25, 0.375, 0.0625, 0.4375}, -- NodeBox30 + {-0.3125, 0.0625, -0.25, -0.1875, 0.125, 0.4375}, -- NodeBox31 + {-0.0625, 0.0625, -0.25, 0.125, 0.125, 0.4375}, -- NodeBox32 + {0.25, 0.0625, -0.25, 0.375, 0.125, 0.4375}, -- NodeBox33 + {-0.3125, 0.125, -0.25, -0.25, 0.25, 0.4375}, -- NodeBox34 + {-0.25, 0.25, -0.25, -0.1875, 0.3125, 0.4375}, -- NodeBox35 + {-0.1875, 0.3125, -0.25, 0.25, 0.375, 0.4375}, -- NodeBox37 + {-0.0625, 0.25, -0.25, 0.125, 0.3125, 0.4375}, -- NodeBox39 + {0, 0.125, -0.25, 0.0625, 0.25, 0.4375}, -- NodeBox40 + {0.3125, 0.125, -0.25, 0.375, 0.25, 0.4375}, -- NodeBox41 + {0.25, 0.25, -0.25, 0.3125, 0.3125, 0.4375}, -- NodeBox42 + {-0.25, 0.0625, 0.0625, 0.3125, 0.25, 0.4375}, -- NodeBox46 + {-0.1875, 0.25, 0.0625, 0.25, 0.3125, 0.4375}, -- NodeBox47 + {-0.25, -0.0625, 0.4375, 0.3125, 0.1875, 0.5}, -- NodeBox48 + {-0.125, 0.1875, 0.4375, 0.1875, 0.25, 0.5}, -- NodeBox49 + } + }, + groups = {dig_immediate = 2}, + sounds = default.node_sound_gravel_defaults(), + + can_dig = function(pos, player) + local inv = minetest.get_meta(pos):get_inventory() + local name = "" + if player then + name = player:get_player_name() + end + return is_owner(pos, name) and inv:is_empty("main") + end, + + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + if is_owner(pos, player:get_player_name()) then + return count + end + return 0 + end, + + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + return 0 + end, + + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + if is_owner(pos, player:get_player_name()) then + return stack:get_count() + end + return 0 + end, + + on_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if meta:get_inventory():is_empty("main") then + minetest.remove_node(pos) + end + end, + + on_punch = function(pos, node, player) + if not is_owner(pos, player:get_player_name()) then + return + end + + if minetest.get_meta(pos):get_string("infotext") == "" then + return + end + + local inv = minetest.get_meta(pos):get_inventory() + local player_inv = player:get_inventory() + local has_space = true + + for i = 1, inv:get_size("main") do + local stk = inv:get_stack("main", i) + if player_inv:room_for_item("main", stk) then + inv:set_stack("main", i, nil) + player_inv:add_item("main", stk) + else + has_space = false + break + end + end + + -- remove bones if player emptied them + if has_space then + if player_inv:room_for_item("main", {name = "bones:bones"}) then + player_inv:add_item("main", {name = "bones:bones"}) + else + minetest.add_item(pos,"bones:bones") + end + minetest.remove_node(pos) + end + end, + + on_timer = function(pos, elapsed) + local meta = minetest.get_meta(pos) + local time = meta:get_int("time") + elapsed + if time >= share_bones_time then + meta:set_string("infotext", meta:get_string("owner") .. "'s old dreams") + meta:set_string("owner", "") + minetest.chat_send_all("Someone's forsaken the carcass of their dreams.") + minetest.chat_send_all("It can be found at " .. minetest.pos_to_string(pos) .. ".") + else + meta:set_int("time", time) + return true + end + end, + on_blast = function(pos) + end, +}) + +local function may_replace(pos, player) + local node_name = minetest.get_node(pos).name + local node_definition = minetest.registered_nodes[node_name] + + -- if the node is unknown, we return false + if not node_definition then + return false + end + + -- allow replacing air and liquids + if node_name == "air" or node_definition.liquidtype ~= "none" then + return true + end + + -- don't replace filled chests and other nodes that don't allow it + local can_dig_func = node_definition.can_dig + if can_dig_func and not can_dig_func(pos, player) then + return false + end + + -- default to each nodes buildable_to; if a placed block would replace it, why shouldn't bones? + -- flowers being squished by bones are more realistical than a squished stone, too + -- exception are of course any protected buildable_to + return node_definition.buildable_to and not minetest.is_protected(pos, player:get_player_name()) +end + +local drop = function(pos, itemstack) + local obj = minetest.add_item(pos, itemstack:take_item(itemstack:get_count())) + if obj then + obj:setvelocity({ + x = math.random(-10, 10) / 9, + y = 5, + z = math.random(-10, 10) / 9, + }) + end +end + +minetest.register_on_dieplayer(function(player) + + local bones_mode = minetest.settings:get("bones_mode") or "bones" + if bones_mode ~= "bones" and bones_mode ~= "drop" and bones_mode ~= "keep" then + bones_mode = "bones" + end + + -- return if keep inventory set or in creative mode + if bones_mode == "keep" or (creative and creative.is_enabled_for + and creative.is_enabled_for(player:get_player_name())) then + return + end + + local player_inv = player:get_inventory() + if player_inv:is_empty("main") and + player_inv:is_empty("craft") then + return + end + + local pos = vector.round(player:getpos()) + local player_name = player:get_player_name() + + -- check if it's possible to place bones, if not find space near player + if bones_mode == "bones" and not may_replace(pos, player) then + local air = minetest.find_node_near(pos, 1, {"air"}) + if air and not minetest.is_protected(air, player_name) then + pos = air + else + bones_mode = "drop" + end + end + + if bones_mode == "drop" then + + -- drop inventory items + for i = 1, player_inv:get_size("main") do + drop(pos, player_inv:get_stack("main", i)) + end + player_inv:set_list("main", {}) + + -- drop crafting grid items + for i = 1, player_inv:get_size("craft") do + drop(pos, player_inv:get_stack("craft", i)) + end + player_inv:set_list("craft", {}) + + drop(pos, ItemStack("bones:bones")) + return + end + + local param2 = minetest.dir_to_facedir(player:get_look_dir()) + minetest.set_node(pos, {name = "bones:bones", param2 = param2}) + + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size("main", 8 * 4) + inv:set_list("main", player_inv:get_list("main")) + + for i = 1, player_inv:get_size("craft") do + local stack = player_inv:get_stack("craft", i) + if inv:room_for_item("main", stack) then + inv:add_item("main", stack) + else + --drop if no space left + drop(pos, stack) + end + end + + player_inv:set_list("main", {}) + player_inv:set_list("craft", {}) + + meta:set_string("formspec", bones_formspec) + meta:set_string("owner", player_name) + + minetest.chat_send_player(player_name, "Your dreams can be found at " .. minetest.pos_to_string(pos) .. ".") + + if share_bones_time ~= 0 then + meta:set_string("infotext", player_name .. "'s fresh skull") + + if share_bones_time_early == 0 or not minetest.is_protected(pos, player_name) then + meta:set_int("time", 0) + else + meta:set_int("time", (share_bones_time - share_bones_time_early)) + end + + minetest.get_node_timer(pos):start(10) + else + meta:set_string("infotext", player_name.."'s old dreams") + end +end) diff --git a/diff/bones.diff/init.lua.diff b/diff/bones.diff/init.lua.diff new file mode 100644 index 0000000..7c3f1e8 --- /dev/null +++ b/diff/bones.diff/init.lua.diff @@ -0,0 +1,66 @@ +30,35c30,35 +< "bones_top.png^[transform2", +< "bones_bottom.png", +< "bones_side.png", +< "bones_side.png", +< "bones_rear.png", +< "bones_front.png" +--- +> "bones_nonshade.png", +> "bones_shade.png", +> "bones.png", +> "bones.png", +> "bones.png", +> "bones.png" +37a38,70 +> drawtype="nodebox", +> node_box= { +> type = "fixed", +> fixed = { +> {-0.125, -0.5, -0.1875, -0.0625, -0.25, 0.1875}, -- NodeBox16 +> {-0.0625, -0.5, -0.125, 0, -0.25, 0.1875}, -- NodeBox17 +> {0, -0.5, -0.1875, 0.0625, -0.25, 0.1875}, -- NodeBox18 +> {0.0625, -0.5, -0.125, 0.125, -0.25, 0.1875}, -- NodeBox19 +> {0.125, -0.5, -0.1875, 0.1875, -0.25, 0.1875}, -- NodeBox20 +> {-0.1875, -0.25, -0.1875, 0.25, -0.1875, 0.3125}, -- NodeBox22 +> {-0.25, -0.1875, -0.25, 0.3125, -0.125, 0.375}, -- NodeBox23 +> {-0.3125, -0.125, -0.25, -0.0625, 0, 0.4375}, -- NodeBox24 +> {-0.0625, -0.125, -0.0625, 0, 0, 0.4375}, -- NodeBox26 +> {0.0625, -0.125, -0.0625, 0.125, 0, 0.4375}, -- NodeBox27 +> {0, -0.125, -0.25, 0.0625, 0, 0.4375}, -- NodeBox28 +> {0.125, -0.125, -0.25, 0.375, 0, 0.4375}, -- NodeBox29 +> {-0.3125, 0, -0.25, 0.375, 0.0625, 0.4375}, -- NodeBox30 +> {-0.3125, 0.0625, -0.25, -0.1875, 0.125, 0.4375}, -- NodeBox31 +> {-0.0625, 0.0625, -0.25, 0.125, 0.125, 0.4375}, -- NodeBox32 +> {0.25, 0.0625, -0.25, 0.375, 0.125, 0.4375}, -- NodeBox33 +> {-0.3125, 0.125, -0.25, -0.25, 0.25, 0.4375}, -- NodeBox34 +> {-0.25, 0.25, -0.25, -0.1875, 0.3125, 0.4375}, -- NodeBox35 +> {-0.1875, 0.3125, -0.25, 0.25, 0.375, 0.4375}, -- NodeBox37 +> {-0.0625, 0.25, -0.25, 0.125, 0.3125, 0.4375}, -- NodeBox39 +> {0, 0.125, -0.25, 0.0625, 0.25, 0.4375}, -- NodeBox40 +> {0.3125, 0.125, -0.25, 0.375, 0.25, 0.4375}, -- NodeBox41 +> {0.25, 0.25, -0.25, 0.3125, 0.3125, 0.4375}, -- NodeBox42 +> {-0.25, 0.0625, 0.0625, 0.3125, 0.25, 0.4375}, -- NodeBox46 +> {-0.1875, 0.25, 0.0625, 0.25, 0.3125, 0.4375}, -- NodeBox47 +> {-0.25, -0.0625, 0.4375, 0.3125, 0.1875, 0.5}, -- NodeBox48 +> {-0.125, 0.1875, 0.4375, 0.1875, 0.25, 0.5}, -- NodeBox49 +> } +> }, +114c147 +< meta:set_string("infotext", meta:get_string("owner") .. "'s old bones") +--- +> meta:set_string("infotext", meta:get_string("owner") .. "'s old dreams") +115a149,150 +> minetest.chat_send_all("Someone's forsaken the carcass of their dreams.") +> minetest.chat_send_all("It can be found at " .. minetest.pos_to_string(pos) .. ".") +235a271,272 +> minetest.chat_send_player(player_name, "Your dreams can be found at " .. minetest.pos_to_string(pos) .. ".") +> +237c274 +< meta:set_string("infotext", player_name .. "'s fresh bones") +--- +> meta:set_string("infotext", player_name .. "'s fresh skull") +247c284 +< meta:set_string("infotext", player_name.."'s bones") +--- +> meta:set_string("infotext", player_name.."'s old dreams") diff --git a/diff/bones.diff/license.txt b/diff/bones.diff/license.txt new file mode 100644 index 0000000..9d3fd6e --- /dev/null +++ b/diff/bones.diff/license.txt @@ -0,0 +1,51 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures & nodebox) +---------------------------- + +The MIT License (MIT) +Copyright (C) 2017-2018 jadedctrl + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/diff/bones.diff/license.txt.diff b/diff/bones.diff/license.txt.diff new file mode 100644 index 0000000..689283d --- /dev/null +++ b/diff/bones.diff/license.txt.diff @@ -0,0 +1,54 @@ +28c28 +< Licenses of media (textures) +--- +> Licenses of media (textures & nodebox) +31,32c31,32 +< Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +< Copyright (C) 2016 paramat +--- +> The MIT License (MIT) +> Copyright (C) 2017-2018 jadedctrl +34,57c34,48 +< You are free to: +< Share — copy and redistribute the material in any medium or format. +< Adapt — remix, transform, and build upon the material for any purpose, even commercially. +< The licensor cannot revoke these freedoms as long as you follow the license terms. +< +< Under the following terms: +< +< Attribution — You must give appropriate credit, provide a link to the license, and +< indicate if changes were made. You may do so in any reasonable manner, but not in any way +< that suggests the licensor endorses you or your use. +< +< ShareAlike — If you remix, transform, or build upon the material, you must distribute +< your contributions under the same license as the original. +< +< No additional restrictions — You may not apply legal terms or technological measures that +< legally restrict others from doing anything the license permits. +< +< Notices: +< +< You do not have to comply with the license for elements of the material in the public +< domain or where your use is permitted by an applicable exception or limitation. +< No warranties are given. The license may not give you all of the permissions necessary +< for your intended use. For example, other rights such as publicity, privacy, or moral +< rights may limit how you use the material. +--- +> Permission is hereby granted, free of charge, to any person obtaining a copy of this +> software and associated documentation files (the "Software"), to deal in the Software +> without restriction, including without limitation the rights to use, copy, modify, merge, +> publish, distribute, sublicense, and/or sell copies of the Software, and to permit +> persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or +> substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +> INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +> PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +> FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +> OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +> DEALINGS IN THE SOFTWARE. +58a50,51 +> For more details: +> https://opensource.org/licenses/MIT diff --git a/diff/bones.diff/source.txt b/diff/bones.diff/source.txt new file mode 100644 index 0000000..516ed14 --- /dev/null +++ b/diff/bones.diff/source.txt @@ -0,0 +1 @@ +https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz diff --git a/diff/bones.diff/textures/bones.png b/diff/bones.diff/textures/bones.png new file mode 100644 index 0000000..fb49a2c Binary files /dev/null and b/diff/bones.diff/textures/bones.png differ diff --git a/diff/bones.diff/textures/bones_bottom.png b/diff/bones.diff/textures/bones_bottom.png new file mode 100644 index 0000000..859c6bb Binary files /dev/null and b/diff/bones.diff/textures/bones_bottom.png differ diff --git a/diff/bones.diff/textures/bones_nonshade.png b/diff/bones.diff/textures/bones_nonshade.png new file mode 100644 index 0000000..56bfa49 Binary files /dev/null and b/diff/bones.diff/textures/bones_nonshade.png differ diff --git a/diff/bones.diff/textures/bones_shade.png b/diff/bones.diff/textures/bones_shade.png new file mode 100644 index 0000000..eb9a27e Binary files /dev/null and b/diff/bones.diff/textures/bones_shade.png differ diff --git a/diff/bucket.diff/README.txt b/diff/bucket.diff/README.txt new file mode 100644 index 0000000..dbde39e --- /dev/null +++ b/diff/bucket.diff/README.txt @@ -0,0 +1,7 @@ +Bucket +===================================================================== +Main: Kahrl, celeron55, Ahola +Lisc: LGPL 2.1 +Text: CC-BY-SA 3.0 + By ElementW +Link: https://github.com/minetest/minetest_game diff --git a/diff/bucket.diff/README.txt.diff b/diff/bucket.diff/README.txt.diff new file mode 100644 index 0000000..bc6f896 --- /dev/null +++ b/diff/bucket.diff/README.txt.diff @@ -0,0 +1,22 @@ +1,13c1,7 +< Minetest Game mod: bucket +< ========================= +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Kahrl (LGPL 2.1) +< celeron55, Perttu Ahola (LGPL 2.1) +< Various Minetest developers and contributors (LGPL 2.1) +< +< Authors of media (textures) +< --------------------------- +< ElementW (CC BY-SA 3.0) +--- +> Bucket +> ===================================================================== +> Main: Kahrl, celeron55, Ahola +> Lisc: LGPL 2.1 +> Text: CC-BY-SA 3.0 +> By ElementW +> Link: https://github.com/minetest/minetest_game diff --git a/diff/bucket.diff/license.txt b/diff/bucket.diff/license.txt new file mode 100644 index 0000000..a5156ae --- /dev/null +++ b/diff/bucket.diff/license.txt @@ -0,0 +1,51 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2016 Kahrl +Copyright (C) 2011-2016 celeron55, Perttu Ahola +Copyright (C) 2011-2016 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2015-2016 ElementW + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/diff/bucket.diff/license.txt.diff b/diff/bucket.diff/license.txt.diff new file mode 100644 index 0000000..e69de29 diff --git a/diff/bucket.diff/source.txt b/diff/bucket.diff/source.txt new file mode 100644 index 0000000..516ed14 --- /dev/null +++ b/diff/bucket.diff/source.txt @@ -0,0 +1 @@ +https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz diff --git a/diff/bucket.diff/textures/bucket.png b/diff/bucket.diff/textures/bucket.png new file mode 100755 index 0000000..267b3ce Binary files /dev/null and b/diff/bucket.diff/textures/bucket.png differ diff --git a/diff/bucket.diff/textures/bucket_lava.png b/diff/bucket.diff/textures/bucket_lava.png new file mode 100644 index 0000000..e5f8006 Binary files /dev/null and b/diff/bucket.diff/textures/bucket_lava.png differ diff --git a/diff/bucket.diff/textures/bucket_river_water.png b/diff/bucket.diff/textures/bucket_river_water.png new file mode 100644 index 0000000..f038cb5 Binary files /dev/null and b/diff/bucket.diff/textures/bucket_river_water.png differ diff --git a/diff/bucket.diff/textures/bucket_water.png b/diff/bucket.diff/textures/bucket_water.png new file mode 100644 index 0000000..80dd03c Binary files /dev/null and b/diff/bucket.diff/textures/bucket_water.png differ diff --git a/diff/bucket.diff/textures/nohup.out b/diff/bucket.diff/textures/nohup.out new file mode 100644 index 0000000..0adc40d --- /dev/null +++ b/diff/bucket.diff/textures/nohup.out @@ -0,0 +1 @@ +GEGL-geglmodule.c-Message: Module '/usr/lib/gegl-0.2/openraw.so' load error: libopenraw.so.7: cannot open shared object file: No such file or directory diff --git a/diff/carts.diff/README.txt b/diff/carts.diff/README.txt new file mode 100644 index 0000000..4ee2097 --- /dev/null +++ b/diff/carts.diff/README.txt @@ -0,0 +1,20 @@ +Carts +===================================================================== +Main: SmallJoker +Lisc: MIT +Text: CC-0 + Derivative of Gambit + carts_cart_side.png + carts_cart_top.png + carts_cart_front.png + carts_cart.png + Derivative of hexafraction & sofar + carts_rail_*.png +3Dmo: CC-0 + By sofar & stujones11 + carts_card.b3d + carts_card.blend +Audi: CC-BY-SA 3.9 + By YleArkisto + carts_cart_moving*.ogg +Link: https://github.com/minetest/minetest_game diff --git a/diff/carts.diff/README.txt.diff b/diff/carts.diff/README.txt.diff new file mode 100644 index 0000000..7ff380d --- /dev/null +++ b/diff/carts.diff/README.txt.diff @@ -0,0 +1,44 @@ +1,22c1,20 +< Carts (formerly boost_cart) +< ========================== +< +< Carts, based almost entirely on the mod boost_cart [1], which +< itself is based on (and fully compatible with) the carts mod [2]. +< +< The model was originally designed by stujones11 [3] (CC-0). +< +< Cart textures are based on original work from PixelBOX (WTFPL). +< +< +< [1] https://github.com/SmallJoker/boost_cart/ +< [2] https://github.com/PilzAdam/carts/ +< [3] https://github.com/stujones11/railcart/ +< +< +< Features +< ---------- +< - A fast cart for your railway or roller coaster (up to 7 m/s!) +< - Boost and brake rails +< - Rail junction switching with the 'right-left' walking keys +< - Handbrake with the 'back' key +--- +> Carts +> ===================================================================== +> Main: SmallJoker +> Lisc: MIT +> Text: CC-0 +> Derivative of Gambit +> carts_cart_side.png +> carts_cart_top.png +> carts_cart_front.png +> carts_cart.png +> Derivative of hexafraction & sofar +> carts_rail_*.png +> 3Dmo: CC-0 +> By sofar & stujones11 +> carts_card.b3d +> carts_card.blend +> Audi: CC-BY-SA 3.9 +> By YleArkisto +> carts_cart_moving*.ogg +> Link: https://github.com/minetest/minetest_game diff --git a/diff/carts.diff/rails.lua b/diff/carts.diff/rails.lua new file mode 100644 index 0000000..4ac13c7 --- /dev/null +++ b/diff/carts.diff/rails.lua @@ -0,0 +1,59 @@ +carts:register_rail("carts:rail", { + description = "Rail", + tiles = { + "carts_rail_straight.png", "carts_rail_curved.png", + "carts_rail_t_junction.png", "carts_rail_crossing.png" + }, + inventory_image = "carts_rail_straight.png", + wield_image = "carts_rail_straight.png", + groups = carts:get_rail_groups(), +}, {}) + +minetest.register_craft({ + output = "carts:rail 18", + recipe = { + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + } +}) + +minetest.register_alias("default:rail", "carts:rail") + + +carts:register_rail("carts:powerrail", { + description = "Powered Rail", + tiles = { + "carts_rail_straight_pwr.png", "carts_rail_curved_pwr.png", + "carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png" + }, + groups = carts:get_rail_groups(), +}, {acceleration = 20}) + +minetest.register_craft({ + output = "carts:powerrail 18", + recipe = { + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + {"default:steel_ingot", "default:mese_crystal", "default:steel_ingot"}, + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + } +}) + + +carts:register_rail("carts:brakerail", { + description = "Brake Rail", + tiles = { + "carts_rail_straight_brk.png", "carts_rail_curved_brk.png", + "carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png" + }, + groups = carts:get_rail_groups(), +}, {acceleration = -3}) + +minetest.register_craft({ + output = "carts:brakerail 18", + recipe = { + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + {"default:steel_ingot", "default:coal_lump", "default:steel_ingot"}, + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + } +}) diff --git a/diff/carts.diff/rails.lua.diff b/diff/carts.diff/rails.lua.diff new file mode 100644 index 0000000..1b1790b --- /dev/null +++ b/diff/carts.diff/rails.lua.diff @@ -0,0 +1,12 @@ +25c25 +< description = "Powered rail", +--- +> description = "Powered Rail", +31c31 +< }, {acceleration = 5}) +--- +> }, {acceleration = 20}) +44c44 +< description = "Brake rail", +--- +> description = "Brake Rail", diff --git a/diff/carts.diff/source.txt b/diff/carts.diff/source.txt new file mode 100644 index 0000000..516ed14 --- /dev/null +++ b/diff/carts.diff/source.txt @@ -0,0 +1 @@ +https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz diff --git a/diff/carts.diff/textures/carts_cart.png b/diff/carts.diff/textures/carts_cart.png new file mode 100644 index 0000000..190e637 Binary files /dev/null and b/diff/carts.diff/textures/carts_cart.png differ diff --git a/diff/carts.diff/textures/carts_cart_front.png b/diff/carts.diff/textures/carts_cart_front.png new file mode 100644 index 0000000..4e2b3be Binary files /dev/null and b/diff/carts.diff/textures/carts_cart_front.png differ diff --git a/diff/carts.diff/textures/carts_cart_side.png b/diff/carts.diff/textures/carts_cart_side.png new file mode 100644 index 0000000..aba6944 Binary files /dev/null and b/diff/carts.diff/textures/carts_cart_side.png differ diff --git a/diff/carts.diff/textures/carts_cart_top.png b/diff/carts.diff/textures/carts_cart_top.png new file mode 100644 index 0000000..6c277c9 Binary files /dev/null and b/diff/carts.diff/textures/carts_cart_top.png differ diff --git a/diff/carts.diff/textures/carts_rail_crossing.png b/diff/carts.diff/textures/carts_rail_crossing.png new file mode 100644 index 0000000..406ef58 Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_crossing.png differ diff --git a/diff/carts.diff/textures/carts_rail_crossing_brk.png b/diff/carts.diff/textures/carts_rail_crossing_brk.png new file mode 100644 index 0000000..7b2e789 Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_crossing_brk.png differ diff --git a/diff/carts.diff/textures/carts_rail_crossing_pwr.png b/diff/carts.diff/textures/carts_rail_crossing_pwr.png new file mode 100644 index 0000000..0fdb10d Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_crossing_pwr.png differ diff --git a/diff/carts.diff/textures/carts_rail_curved.png b/diff/carts.diff/textures/carts_rail_curved.png new file mode 100644 index 0000000..957048e Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_curved.png differ diff --git a/diff/carts.diff/textures/carts_rail_curved_brk.png b/diff/carts.diff/textures/carts_rail_curved_brk.png new file mode 100644 index 0000000..1f0ac04 Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_curved_brk.png differ diff --git a/diff/carts.diff/textures/carts_rail_curved_pwr.png b/diff/carts.diff/textures/carts_rail_curved_pwr.png new file mode 100644 index 0000000..43016a4 Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_curved_pwr.png differ diff --git a/diff/carts.diff/textures/carts_rail_straight.png b/diff/carts.diff/textures/carts_rail_straight.png new file mode 100644 index 0000000..6bee22f Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_straight.png differ diff --git a/diff/carts.diff/textures/carts_rail_straight_brk.png b/diff/carts.diff/textures/carts_rail_straight_brk.png new file mode 100644 index 0000000..e331755 Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_straight_brk.png differ diff --git a/diff/carts.diff/textures/carts_rail_straight_pwr.png b/diff/carts.diff/textures/carts_rail_straight_pwr.png new file mode 100644 index 0000000..2515d5c Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_straight_pwr.png differ diff --git a/diff/carts.diff/textures/carts_rail_t_junction.png b/diff/carts.diff/textures/carts_rail_t_junction.png new file mode 100644 index 0000000..d96a99a Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_t_junction.png differ diff --git a/diff/carts.diff/textures/carts_rail_t_junction_brk.png b/diff/carts.diff/textures/carts_rail_t_junction_brk.png new file mode 100644 index 0000000..d64dba4 Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_t_junction_brk.png differ diff --git a/diff/carts.diff/textures/carts_rail_t_junction_pwr.png b/diff/carts.diff/textures/carts_rail_t_junction_pwr.png new file mode 100644 index 0000000..7ea04e3 Binary files /dev/null and b/diff/carts.diff/textures/carts_rail_t_junction_pwr.png differ diff --git a/diff/default.diff/TODO b/diff/default.diff/TODO new file mode 100644 index 0000000..91526d8 --- /dev/null +++ b/diff/default.diff/TODO @@ -0,0 +1 @@ +Consolidate torch.lua and nodes.lua diff --git a/diff/default.diff/aliases.lua b/diff/default.diff/aliases.lua new file mode 100644 index 0000000..d482199 --- /dev/null +++ b/diff/default.diff/aliases.lua @@ -0,0 +1,80 @@ +-- mods/default/aliases.lua + +-- Aliases to support loading worlds using nodes following the old naming convention +-- These can also be helpful when using chat commands, for example /giveme +minetest.register_alias("stone", "default:stone") +minetest.register_alias("stone_with_coal", "default:stone_with_coal") +minetest.register_alias("stone_with_iron", "default:stone_with_iron") +minetest.register_alias("dirt_with_grass", "default:dirt_with_grass") +minetest.register_alias("dirt_with_grass_footsteps", "default:dirt_with_grass_footsteps") +minetest.register_alias("dirt", "default:dirt") +minetest.register_alias("sand", "default:sand") +minetest.register_alias("gravel", "default:gravel") +minetest.register_alias("sandstone", "default:sandstone") +minetest.register_alias("clay", "default:clay") +minetest.register_alias("brick", "default:brick") +minetest.register_alias("tree", "default:tree") +minetest.register_alias("jungletree", "default:jungletree") +minetest.register_alias("junglegrass", "default:junglegrass") +minetest.register_alias("leaves", "default:leaves") +minetest.register_alias("cactus", "default:cactus") +minetest.register_alias("papyrus", "default:papyrus") +minetest.register_alias("bookshelf", "default:bookshelf") +minetest.register_alias("glass", "default:glass") +minetest.register_alias("wooden_fence", "default:fence_wood") +minetest.register_alias("rail", "carts:rail") +minetest.register_alias("ladder", "default:ladder_wood") +minetest.register_alias("wood", "default:wood") +minetest.register_alias("mese", "default:mese") +minetest.register_alias("cloud", "default:cloud") +minetest.register_alias("water_flowing", "default:water_flowing") +minetest.register_alias("water_source", "default:water_source") +minetest.register_alias("lava_flowing", "default:lava_flowing") +minetest.register_alias("lava_source", "default:lava_source") +minetest.register_alias("torch", "default:torch") +minetest.register_alias("sign_wall", "default:sign_wall_wood") +minetest.register_alias("furnace", "default:furnace") +minetest.register_alias("chest", "default:chest") +minetest.register_alias("locked_chest", "default:chest_locked") +minetest.register_alias("cobble", "default:cobble") +minetest.register_alias("mossycobble", "default:mossycobble") +minetest.register_alias("steelblock", "default:steelblock") +minetest.register_alias("sapling", "default:sapling") +minetest.register_alias("apple", "default:apple") + +minetest.register_alias("WPick", "default:pick_wood") +minetest.register_alias("STPick", "default:pick_stone") +minetest.register_alias("SteelPick", "default:pick_steel") +minetest.register_alias("MesePick", "default:pick_mese") +minetest.register_alias("WShovel", "default:shovel_wood") +minetest.register_alias("STShovel", "default:shovel_stone") +minetest.register_alias("SteelShovel", "default:shovel_steel") +minetest.register_alias("WAxe", "default:axe_wood") +minetest.register_alias("STAxe", "default:axe_stone") +minetest.register_alias("SteelAxe", "default:axe_steel") +minetest.register_alias("WSword", "default:sword_wood") +minetest.register_alias("STSword", "default:sword_stone") +minetest.register_alias("SteelSword", "default:sword_steel") + +minetest.register_alias("Stick", "default:stick") +minetest.register_alias("paper", "default:paper") +minetest.register_alias("book", "default:book") +minetest.register_alias("lump_of_coal", "default:coal_lump") +minetest.register_alias("lump_of_iron", "default:iron_lump") +minetest.register_alias("lump_of_clay", "default:clay_lump") +minetest.register_alias("steel_ingot", "default:steel_ingot") +minetest.register_alias("clay_brick", "default:clay_brick") +minetest.register_alias("snow", "default:snow") + +-- 'mese_block' was used for a while for the block form of mese +minetest.register_alias("default:mese_block", "default:mese") + +-- Aliases for corrected pine node names +minetest.register_alias("default:pinetree", "default:pine_tree") +minetest.register_alias("default:pinewood", "default:pine_wood") + +minetest.register_alias("default:ladder", "default:ladder_wood") +minetest.register_alias("default:sign_wall", "default:sign_wall_wood") + +-- Etc. +minetest.register_alias("default:torch_out", "default:torch") diff --git a/diff/default.diff/aliases.lua.diff b/diff/default.diff/aliases.lua.diff new file mode 100644 index 0000000..f8e3214 --- /dev/null +++ b/diff/default.diff/aliases.lua.diff @@ -0,0 +1,4 @@ +77a78,80 +> +> -- Etc. +> minetest.register_alias("default:torch_out", "default:torch") diff --git a/diff/default.diff/crafting.lua b/diff/default.diff/crafting.lua new file mode 100644 index 0000000..5d1d3f5 --- /dev/null +++ b/diff/default.diff/crafting.lua @@ -0,0 +1,1178 @@ +-- mods/default/crafting.lua + +minetest.register_craft({ + output = 'default:wood 4', + recipe = { + {'default:tree'}, + } +}) + +minetest.register_craft({ + output = 'default:junglewood 4', + recipe = { + {'default:jungletree'}, + } +}) + +minetest.register_craft({ + output = 'default:pine_wood 4', + recipe = { + {'default:pine_tree'}, + } +}) + +minetest.register_craft({ + output = 'default:acacia_wood 4', + recipe = { + {'default:acacia_tree'}, + } +}) + +minetest.register_craft({ + output = 'default:aspen_wood 4', + recipe = { + {'default:aspen_tree'}, + } +}) + +minetest.register_craft({ + output = 'default:wood', + recipe = { + {'default:bush_stem'}, + } +}) + +minetest.register_craft({ + output = 'default:acacia_wood', + recipe = { + {'default:acacia_bush_stem'}, + } +}) + +minetest.register_craft({ + output = 'default:stick 4', + recipe = { + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:sign_wall_steel 3', + recipe = { + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:sign_wall_wood 3', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:torch 4', + recipe = { + {'default:coal_lump'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:pick_wood', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_stone', + recipe = { + {'group:stone', 'group:stone', 'group:stone'}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_steel', + recipe = { + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_bronze', + recipe = { + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_mese', + recipe = { + {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_diamond', + recipe = { + {'default:diamond', 'default:diamond', 'default:diamond'}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_wood', + recipe = { + {'group:wood'}, + {'group:wood'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_stone', + recipe = { + {'group:stone'}, + {'group:wood'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_steel', + recipe = { + {'default:steel_ingot'}, + {'group:wood'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_bronze', + recipe = { + {'default:bronze_ingot'}, + {'group:wood'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_mese', + recipe = { + {'default:mese_crystal'}, + {'group:wood'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_diamond', + recipe = { + {'default:diamond'}, + {'group:wood'}, + {'group:wood'}, + } +}) + +-- Axes +-- Recipes face left to match appearence in textures and inventory + +minetest.register_craft({ + output = 'default:axe_wood', + recipe = { + {'group:wood', 'group:wood'}, + {'group:wood', 'group:wood'}, + {'', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_stone', + recipe = { + {'group:stone', 'group:stone'}, + {'group:stone', 'group:wood'}, + {'', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_steel', + recipe = { + {'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'group:wood'}, + {'', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_bronze', + recipe = { + {'default:bronze_ingot', 'default:bronze_ingot'}, + {'default:bronze_ingot', 'group:wood'}, + {'', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_mese', + recipe = { + {'default:mese_crystal', 'default:mese_crystal'}, + {'default:mese_crystal', 'group:wood'}, + {'', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_diamond', + recipe = { + {'default:diamond', 'default:diamond'}, + {'default:diamond', 'group:wood'}, + {'', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_wood', + recipe = { + {'group:wood'}, + {'group:wood'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_stone', + recipe = { + {'group:stone'}, + {'group:stone'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_steel', + recipe = { + {'default:steel_ingot'}, + {'default:steel_ingot'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_bronze', + recipe = { + {'default:bronze_ingot'}, + {'default:bronze_ingot'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_mese', + recipe = { + {'default:mese_crystal'}, + {'default:mese_crystal'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_diamond', + recipe = { + {'default:diamond'}, + {'default:diamond'}, + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:skeleton_key', + recipe = { + {'default:gold_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:chest', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', '', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:chest_locked', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'default:steel_ingot', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) + +minetest.register_craft( { + type = "shapeless", + output = "default:chest_locked", + recipe = {"default:chest", "default:steel_ingot"}, +}) + +minetest.register_craft({ + output = 'default:furnace', + recipe = { + {'group:stone', 'group:stone', 'group:stone'}, + {'group:stone', '', 'group:stone'}, + {'group:stone', 'group:stone', 'group:stone'}, + } +}) + +minetest.register_craft({ + output = 'default:coalblock', + recipe = { + {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + } +}) + +minetest.register_craft({ + output = 'default:coal_lump 9', + recipe = { + {'default:coalblock'}, + } +}) + +minetest.register_craft({ + output = 'default:steelblock', + recipe = { + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:steel_ingot 9', + recipe = { + {'default:steelblock'}, + } +}) + +minetest.register_craft({ + output = 'default:copperblock', + recipe = { + {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, + {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, + {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:copper_ingot 9', + recipe = { + {'default:copperblock'}, + } +}) + +minetest.register_craft({ + output = "default:tinblock", + recipe = { + {"default:tin_ingot", "default:tin_ingot", "default:tin_ingot"}, + {"default:tin_ingot", "default:tin_ingot", "default:tin_ingot"}, + {"default:tin_ingot", "default:tin_ingot", "default:tin_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:tin_ingot 9", + recipe = { + {"default:tinblock"}, + } +}) + +minetest.register_craft({ + output = "default:bronze_ingot 9", + recipe = { + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:tin_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + } +}) + +minetest.register_craft({ + output = 'default:bronzeblock', + recipe = { + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:bronze_ingot 9', + recipe = { + {'default:bronzeblock'}, + } +}) + +minetest.register_craft({ + output = 'default:goldblock', + recipe = { + {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, + {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, + {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:gold_ingot 9', + recipe = { + {'default:goldblock'}, + } +}) + +minetest.register_craft({ + output = 'default:diamondblock', + recipe = { + {'default:diamond', 'default:diamond', 'default:diamond'}, + {'default:diamond', 'default:diamond', 'default:diamond'}, + {'default:diamond', 'default:diamond', 'default:diamond'}, + } +}) + +minetest.register_craft({ + output = 'default:diamond 9', + recipe = { + {'default:diamondblock'}, + } +}) + +minetest.register_craft({ + output = "default:sandstone", + recipe = { + {"default:sand", "default:sand"}, + {"default:sand", "default:sand"}, + } +}) + +minetest.register_craft({ + output = "default:sand 4", + recipe = { + {"default:sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:sandstonebrick 4", + recipe = { + {"default:sandstone", "default:sandstone"}, + {"default:sandstone", "default:sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:sandstone_block 9", + recipe = { + {"default:sandstone", "default:sandstone", "default:sandstone"}, + {"default:sandstone", "default:sandstone", "default:sandstone"}, + {"default:sandstone", "default:sandstone", "default:sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sandstone", + recipe = { + {"default:desert_sand", "default:desert_sand"}, + {"default:desert_sand", "default:desert_sand"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sand 4", + recipe = { + {"default:desert_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sandstone_brick 4", + recipe = { + {"default:desert_sandstone", "default:desert_sandstone"}, + {"default:desert_sandstone", "default:desert_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sandstone_block 9", + recipe = { + {"default:desert_sandstone", "default:desert_sandstone", "default:desert_sandstone"}, + {"default:desert_sandstone", "default:desert_sandstone", "default:desert_sandstone"}, + {"default:desert_sandstone", "default:desert_sandstone", "default:desert_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sandstone", + recipe = { + {"default:silver_sand", "default:silver_sand"}, + {"default:silver_sand", "default:silver_sand"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sand 4", + recipe = { + {"default:silver_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sandstone_brick 4", + recipe = { + {"default:silver_sandstone", "default:silver_sandstone"}, + {"default:silver_sandstone", "default:silver_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sandstone_block 9", + recipe = { + {"default:silver_sandstone", "default:silver_sandstone", "default:silver_sandstone"}, + {"default:silver_sandstone", "default:silver_sandstone", "default:silver_sandstone"}, + {"default:silver_sandstone", "default:silver_sandstone", "default:silver_sandstone"}, + } +}) + +minetest.register_craft({ + output = 'default:clay', + recipe = { + {'default:clay_lump', 'default:clay_lump'}, + {'default:clay_lump', 'default:clay_lump'}, + } +}) + +minetest.register_craft({ + output = 'default:clay_lump 4', + recipe = { + {'default:clay'}, + } +}) + +minetest.register_craft({ + output = 'default:brick', + recipe = { + {'default:clay_brick', 'default:clay_brick'}, + {'default:clay_brick', 'default:clay_brick'}, + } +}) + +minetest.register_craft({ + output = 'default:clay_brick 4', + recipe = { + {'default:brick'}, + } +}) + +minetest.register_craft({ + output = 'default:paper', + recipe = { + {'default:papyrus', 'default:papyrus', 'default:papyrus'}, + } +}) + +minetest.register_craft({ + output = 'default:book', + recipe = { + {'default:paper'}, + {'default:paper'}, + {'default:paper'}, + } +}) + +minetest.register_craft({ + output = 'default:bookshelf', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'default:book', 'default:book', 'default:book'}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = "default:ladder_wood 5", + recipe = { + {"group:stick", "", "group:stick"}, + {"group:stick", "group:stick", "group:stick"}, + {"group:stick", "", "group:stick"}, + } +}) + +minetest.register_craft({ + output = 'default:ladder_steel 15', + recipe = { + {'default:steel_ingot', '', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', '', 'default:steel_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:mese', + recipe = { + {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + } +}) + +minetest.register_craft({ + output = 'default:mese_crystal 9', + recipe = { + {'default:mese'}, + } +}) + +minetest.register_craft({ + output = 'default:mese_crystal_fragment 9', + recipe = { + {'default:mese_crystal'}, + } +}) + +minetest.register_craft({ + output = "default:mese_crystal", + recipe = { + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + } +}) + +minetest.register_craft({ + output = 'default:meselamp', + recipe = { + {'default:glass'}, + {'default:mese_crystal'}, + } +}) + +minetest.register_craft({ + output = "default:mese_post_light 3", + recipe = { + {"", "default:glass", ""}, + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + {"", "group:wood", ""}, + } +}) + +minetest.register_craft({ + output = 'default:obsidian_shard 9', + recipe = { + {'default:obsidian'} + } +}) + +minetest.register_craft({ + output = 'default:obsidian', + recipe = { + {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, + {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, + {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, + } +}) + +minetest.register_craft({ + output = 'default:obsidianbrick 4', + recipe = { + {'default:obsidian', 'default:obsidian'}, + {'default:obsidian', 'default:obsidian'} + } +}) + +minetest.register_craft({ + output = 'default:obsidian_block 9', + recipe = { + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + } +}) + +minetest.register_craft({ + output = 'default:stonebrick 4', + recipe = { + {'default:stone', 'default:stone'}, + {'default:stone', 'default:stone'}, + } +}) + +minetest.register_craft({ + output = 'default:stone_block 9', + recipe = { + {'default:stone', 'default:stone', 'default:stone'}, + {'default:stone', 'default:stone', 'default:stone'}, + {'default:stone', 'default:stone', 'default:stone'}, + } +}) + +minetest.register_craft({ + output = 'default:desert_stonebrick 4', + recipe = { + {'default:desert_stone', 'default:desert_stone'}, + {'default:desert_stone', 'default:desert_stone'}, + } +}) + +minetest.register_craft({ + output = 'default:desert_stone_block 9', + recipe = { + {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, + {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, + {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, + } +}) + +minetest.register_craft({ + output = 'default:snowblock', + recipe = { + {'default:snow', 'default:snow', 'default:snow'}, + {'default:snow', 'default:snow', 'default:snow'}, + {'default:snow', 'default:snow', 'default:snow'}, + } +}) + +minetest.register_craft({ + output = 'default:snow 9', + recipe = { + {'default:snowblock'}, + } +}) + +-- +-- Crafting (tool repair) +-- +minetest.register_craft({ + type = "toolrepair", + additional_wear = -0.02, +}) + +-- +-- Cooking recipes +-- + +minetest.register_craft({ + type = "cooking", + output = "default:glass", + recipe = "group:sand", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:obsidian_glass", + recipe = "default:obsidian_shard", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:stone", + recipe = "default:cobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:stone", + recipe = "default:mossycobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:desert_stone", + recipe = "default:desert_cobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:steel_ingot", + recipe = "default:iron_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:copper_ingot", + recipe = "default:copper_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:tin_ingot", + recipe = "default:tin_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:gold_ingot", + recipe = "default:gold_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:clay_brick", + recipe = "default:clay_lump", +}) + +minetest.register_craft({ + type = 'cooking', + output = 'default:gold_ingot', + recipe = 'default:skeleton_key', + cooktime = 5, +}) + +minetest.register_craft({ + type = 'cooking', + output = 'default:gold_ingot', + recipe = 'default:key', + cooktime = 5, +}) + +-- +-- Fuels +-- + +-- Support use of group:tree +minetest.register_craft({ + type = "fuel", + recipe = "group:tree", + burntime = 30, +}) + +-- Burn time for all woods are in order of wood density, +-- which is also the order of wood colour darkness: +-- aspen, pine, apple, acacia, jungle + +minetest.register_craft({ + type = "fuel", + recipe = "default:aspen_tree", + burntime = 22, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_tree", + burntime = 26, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:tree", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_tree", + burntime = 34, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:jungletree", + burntime = 38, +}) + + +-- Support use of group:wood +minetest.register_craft({ + type = "fuel", + recipe = "group:wood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:aspen_wood", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:wood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_wood", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglewood", + burntime = 9, +}) + + +-- Support use of group:sapling +minetest.register_craft({ + type = "fuel", + recipe = "group:sapling", + burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:bush_sapling", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_bush_sapling", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:aspen_sapling", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_sapling", + burntime = 9, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:sapling", + burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_sapling", + burntime = 11, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglesapling", + burntime = 12, +}) + + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_aspen_wood", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_pine_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_wood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_acacia_wood", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_junglewood", + burntime = 9, +}) + + +minetest.register_craft({ + type = "fuel", + recipe = "default:bush_stem", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_bush_stem", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglegrass", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "group:leaves", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:cactus", + burntime = 15, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:papyrus", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:bookshelf", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:ladder_wood", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:lava_source", + burntime = 60, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:torch", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:sign_wall_wood", + burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:chest", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:chest_locked", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:apple", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:coal_lump", + burntime = 40, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:coalblock", + burntime = 370, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:grass_1", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:dry_grass_1", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:paper", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:book", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:book_written", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:dry_shrub", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "group:stick", + burntime = 1, +}) + + +minetest.register_craft({ + type = "fuel", + recipe = "default:pick_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:shovel_wood", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:axe_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:sword_wood", + burntime = 5, +}) diff --git a/diff/default.diff/crafting.lua.diff b/diff/default.diff/crafting.lua.diff new file mode 100644 index 0000000..3efcfc2 --- /dev/null +++ b/diff/default.diff/crafting.lua.diff @@ -0,0 +1,193 @@ +81c81 +< {'group:stick'}, +--- +> {'group:wood'}, +89,90c89,90 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +98,99c98,99 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +107,108c107,108 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +116,117c116,117 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +125,126c125,126 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +134,135c134,135 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +143,144c143,144 +< {'group:stick'}, +< {'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +152,153c152,153 +< {'group:stick'}, +< {'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +161,162c161,162 +< {'group:stick'}, +< {'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +170,171c170,171 +< {'group:stick'}, +< {'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +179,180c179,180 +< {'group:stick'}, +< {'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +188,234c188,189 +< {'group:stick'}, +< {'group:stick'}, +< } +< }) +< +< minetest.register_craft({ +< output = 'default:axe_wood', +< recipe = { +< {'group:wood', 'group:wood'}, +< {'group:wood', 'group:stick'}, +< {'', 'group:stick'}, +< } +< }) +< +< minetest.register_craft({ +< output = 'default:axe_stone', +< recipe = { +< {'group:stone', 'group:stone'}, +< {'group:stone', 'group:stick'}, +< {'', 'group:stick'}, +< } +< }) +< +< minetest.register_craft({ +< output = 'default:axe_steel', +< recipe = { +< {'default:steel_ingot', 'default:steel_ingot'}, +< {'default:steel_ingot', 'group:stick'}, +< {'', 'group:stick'}, +< } +< }) +< +< minetest.register_craft({ +< output = 'default:axe_bronze', +< recipe = { +< {'default:bronze_ingot', 'default:bronze_ingot'}, +< {'default:bronze_ingot', 'group:stick'}, +< {'', 'group:stick'}, +< } +< }) +< +< minetest.register_craft({ +< output = 'default:axe_mese', +< recipe = { +< {'default:mese_crystal', 'default:mese_crystal'}, +< {'default:mese_crystal', 'group:stick'}, +< {'', 'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +238,245c193,194 +< minetest.register_craft({ +< output = 'default:axe_diamond', +< recipe = { +< {'default:diamond', 'default:diamond'}, +< {'default:diamond', 'group:stick'}, +< {'', 'group:stick'}, +< } +< }) +--- +> -- Axes +> -- Recipes face left to match appearence in textures and inventory +251,252c200,201 +< {'group:stick', 'group:wood'}, +< {'group:stick',''}, +--- +> {'group:wood', 'group:wood'}, +> {'', 'group:wood'}, +260,261c209,210 +< {'group:stick', 'group:stone'}, +< {'group:stick', ''}, +--- +> {'group:stone', 'group:wood'}, +> {'', 'group:wood'}, +269,270c218,219 +< {'group:stick', 'default:steel_ingot'}, +< {'group:stick', ''}, +--- +> {'default:steel_ingot', 'group:wood'}, +> {'', 'group:wood'}, +278,279c227,228 +< {'group:stick', 'default:bronze_ingot'}, +< {'group:stick', ''}, +--- +> {'default:bronze_ingot', 'group:wood'}, +> {'', 'group:wood'}, +287,288c236,237 +< {'group:stick', 'default:mese_crystal'}, +< {'group:stick', ''}, +--- +> {'default:mese_crystal', 'group:wood'}, +> {'', 'group:wood'}, +296,297c245,246 +< {'group:stick', 'default:diamond'}, +< {'group:stick', ''}, +--- +> {'default:diamond', 'group:wood'}, +> {'', 'group:wood'}, +306c255 +< {'group:stick'}, +--- +> {'group:wood'}, +315c264 +< {'group:stick'}, +--- +> {'group:wood'}, +324c273 +< {'group:stick'}, +--- +> {'group:wood'}, +333c282 +< {'group:stick'}, +--- +> {'group:wood'}, +342c291 +< {'group:stick'}, +--- +> {'group:wood'}, +351c300 +< {'group:stick'}, +--- +> {'group:wood'}, diff --git a/diff/default.diff/depends.txt b/diff/default.diff/depends.txt new file mode 100644 index 0000000..e1c3818 --- /dev/null +++ b/diff/default.diff/depends.txt @@ -0,0 +1 @@ +player_api? diff --git a/diff/default.diff/functions.lua b/diff/default.diff/functions.lua new file mode 100644 index 0000000..bdc3015 --- /dev/null +++ b/diff/default.diff/functions.lua @@ -0,0 +1,580 @@ +-- mods/default/functions.lua + +-- +-- Sounds +-- + +function default.node_sound_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "", gain = 1.0} + table.dug = table.dug or + {name = "default_dug_node", gain = 0.25} + table.place = table.place or + {name = "default_place_node_hard", gain = 1.0} + return table +end + +function default.node_sound_stone_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_hard_footstep", gain = 0.3} + table.dug = table.dug or + {name = "default_hard_footstep", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_dirt_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_dirt_footstep", gain = 0.4} + table.dug = table.dug or + {name = "default_dirt_footstep", gain = 1.0} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_sand_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_sand_footstep", gain = 0.12} + table.dug = table.dug or + {name = "default_sand_footstep", gain = 0.24} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_gravel_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_gravel_footstep", gain = 0.4} + table.dug = table.dug or + {name = "default_gravel_footstep", gain = 1.0} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_wood_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_wood_footstep", gain = 0.3} + table.dug = table.dug or + {name = "default_wood_footstep", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_leaves_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_grass_footstep", gain = 0.45} + table.dug = table.dug or + {name = "default_grass_footstep", gain = 0.7} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_glass_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_glass_footstep", gain = 0.3} + table.dig = table.dig or + {name = "default_glass_footstep", gain = 0.5} + table.dug = table.dug or + {name = "default_break_glass", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_metal_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_metal_footstep", gain = 0.4} + table.dig = table.dig or + {name = "default_dig_metal", gain = 0.5} + table.dug = table.dug or + {name = "default_dug_metal", gain = 0.5} + table.place = table.place or + {name = "default_place_node_metal", gain = 0.5} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_water_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_water_footstep", gain = 0.2} + default.node_sound_defaults(table) + return table +end + +-- +-- Lavacooling +-- + +default.cool_lava = function(pos, node) + if node.name == "default:lava_source" then + minetest.set_node(pos, {name = "default:obsidian"}) + else -- Lava flowing + minetest.set_node(pos, {name = "default:stone"}) + end + minetest.sound_play("default_cool_lava", + {pos = pos, max_hear_distance = 16, gain = 0.25}) +end + +if minetest.settings:get_bool("enable_lavacooling") ~= false then + minetest.register_abm({ + label = "Lava cooling", + nodenames = {"default:lava_source", "default:lava_flowing"}, + neighbors = {"group:cools_lava", "group:water"}, + interval = 2, + chance = 2, + catch_up = false, + action = function(...) + default.cool_lava(...) + end, + }) +end + +-- +-- optimized helper to put all items in an inventory into a drops list +-- + +function default.get_inventory_drops(pos, inventory, drops) + local inv = minetest.get_meta(pos):get_inventory() + local n = #drops + for i = 1, inv:get_size(inventory) do + local stack = inv:get_stack(inventory, i) + if stack:get_count() > 0 then + drops[n+1] = stack:to_table() + n = n + 1 + end + end +end + +-- +-- Papyrus and cactus growing +-- + +-- wrapping the functions in abm action is necessary to make overriding them possible + +function default.grow_cactus(pos, node) + if node.param2 >= 4 then + return + end + pos.y = pos.y - 1 + if minetest.get_item_group(minetest.get_node(pos).name, "sand") == 0 then + return + end + pos.y = pos.y + 1 + local height = 0 + while node.name == "default:cactus" and height < 4 do + height = height + 1 + pos.y = pos.y + 1 + node = minetest.get_node(pos) + end + if height == 4 or node.name ~= "air" then + return + end + if minetest.get_node_light(pos) < 13 then + return + end + minetest.set_node(pos, {name = "default:cactus"}) + return true +end + +function default.grow_papyrus(pos, node) + pos.y = pos.y - 1 + local name = minetest.get_node(pos).name + if name ~= "default:dirt_with_grass" and name ~= "default:dirt" then + return + end + if not minetest.find_node_near(pos, 3, {"group:water"}) then + return + end + pos.y = pos.y + 1 + local height = 0 + while node.name == "default:papyrus" and height < 4 do + height = height + 1 + pos.y = pos.y + 1 + node = minetest.get_node(pos) + end + if height == 4 or node.name ~= "air" then + return + end + if minetest.get_node_light(pos) < 13 then + return + end + minetest.set_node(pos, {name = "default:papyrus"}) + return true +end + +minetest.register_abm({ + label = "Grow cactus", + nodenames = {"default:cactus"}, + neighbors = {"group:sand"}, + interval = 12, + chance = 83, + action = function(...) + default.grow_cactus(...) + end +}) + +minetest.register_abm({ + label = "Grow papyrus", + nodenames = {"default:papyrus"}, + neighbors = {"default:dirt", "default:dirt_with_grass"}, + interval = 14, + chance = 71, + action = function(...) + default.grow_papyrus(...) + end +}) + + +-- +-- dig upwards +-- + +function default.dig_up(pos, node, digger) + if digger == nil then return end + local np = {x = pos.x, y = pos.y + 1, z = pos.z} + local nn = minetest.get_node(np) + if nn.name == node.name then + minetest.node_dig(np, nn, digger) + end +end + + +-- +-- Fence registration helper +-- + +function default.register_fence(name, def) + minetest.register_craft({ + output = name .. " 4", + recipe = { + { def.material, 'group:stick', def.material }, + { def.material, 'group:stick', def.material }, + } + }) + + local fence_texture = "default_fence_overlay.png^" .. def.texture .. + "^default_fence_overlay.png^[makealpha:255,126,126" + -- Allow almost everything to be overridden + local default_fields = { + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "connected", + fixed = {{-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}}, + -- connect_top = + -- connect_bottom = + connect_front = {{-1/16,3/16,-1/2,1/16,5/16,-1/8}, + {-1/16,-5/16,-1/2,1/16,-3/16,-1/8}}, + connect_left = {{-1/2,3/16,-1/16,-1/8,5/16,1/16}, + {-1/2,-5/16,-1/16,-1/8,-3/16,1/16}}, + connect_back = {{-1/16,3/16,1/8,1/16,5/16,1/2}, + {-1/16,-5/16,1/8,1/16,-3/16,1/2}}, + connect_right = {{1/8,3/16,-1/16,1/2,5/16,1/16}, + {1/8,-5/16,-1/16,1/2,-3/16,1/16}}, + }, + connects_to = {"group:fence", "group:wood", "group:tree"}, + inventory_image = fence_texture, + wield_image = fence_texture, + tiles = {def.texture}, + sunlight_propagates = true, + is_ground_content = false, + groups = {}, + } + for k, v in pairs(default_fields) do + if not def[k] then + def[k] = v + end + end + + -- Always add to the fence group, even if no group provided + def.groups.fence = 1 + + def.texture = nil + def.material = nil + + minetest.register_node(name, def) +end + + +-- +-- Leafdecay +-- + +-- Prevent decay of placed leaves + +default.after_place_leaves = function(pos, placer, itemstack, pointed_thing) + if placer and not placer:get_player_control().sneak then + local node = minetest.get_node(pos) + node.param2 = 1 + minetest.set_node(pos, node) + end +end + +-- Leafdecay +local function leafdecay_after_destruct(pos, oldnode, def) + for _, v in pairs(minetest.find_nodes_in_area(vector.subtract(pos, def.radius), + vector.add(pos, def.radius), def.leaves)) do + local node = minetest.get_node(v) + local timer = minetest.get_node_timer(v) + if node.param2 == 0 and not timer:is_started() then + timer:start(math.random(20, 120) / 10) + end + end +end + +local function leafdecay_on_timer(pos, def) + if minetest.find_node_near(pos, def.radius, def.trunks) then + return false + end + + local node = minetest.get_node(pos) + local drops = minetest.get_node_drops(node.name) + for _, item in ipairs(drops) do + local is_leaf + for _, v in pairs(def.leaves) do + if v == item then + is_leaf = true + end + end + if minetest.get_item_group(item, "leafdecay_drop") ~= 0 or + not is_leaf then + minetest.add_item({ + x = pos.x - 0.5 + math.random(), + y = pos.y - 0.5 + math.random(), + z = pos.z - 0.5 + math.random(), + }, item) + end + end + + minetest.remove_node(pos) + minetest.check_for_falling(pos) +end + +function default.register_leafdecay(def) + assert(def.leaves) + assert(def.trunks) + assert(def.radius) + for _, v in pairs(def.trunks) do + minetest.override_item(v, { + after_destruct = function(pos, oldnode) + leafdecay_after_destruct(pos, oldnode, def) + end, + }) + end + for _, v in pairs(def.leaves) do + minetest.override_item(v, { + on_timer = function(pos) + leafdecay_on_timer(pos, def) + end, + }) + end +end + +-- +-- Convert dirt to something that fits the environment +-- + +minetest.register_abm({ + label = "Grass spread", + nodenames = {"default:dirt"}, + neighbors = { + "air", + "group:grass", + "group:dry_grass", + "default:snow", + }, + interval = 6, + chance = 50, + catch_up = false, + action = function(pos, node) + -- Check for darkness: night, shadow or under a light-blocking node + -- Returns if ignore above + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node_light(above) or 0) < 13 then + return + end + + -- Look for spreading dirt-type neighbours + local p2 = minetest.find_node_near(pos, 1, "group:spreading_dirt_type") + if p2 then + local n3 = minetest.get_node(p2) + minetest.set_node(pos, {name = n3.name}) + return + end + + -- Else, any seeding nodes on top? + local name = minetest.get_node(above).name + -- Snow check is cheapest, so comes first + if name == "default:snow" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + -- Most likely case first + elseif minetest.get_item_group(name, "grass") ~= 0 then + minetest.set_node(pos, {name = "default:dirt_with_grass"}) + elseif minetest.get_item_group(name, "dry_grass") ~= 0 then + minetest.set_node(pos, {name = "default:dirt_with_dry_grass"}) + end + end +}) + + +-- +-- Grass and dry grass removed in darkness +-- + +minetest.register_abm({ + label = "Grass covered", + nodenames = {"group:spreading_dirt_type"}, + interval = 8, + chance = 50, + catch_up = false, + action = function(pos, node) + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local name = minetest.get_node(above).name + local nodedef = minetest.registered_nodes[name] + if name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or + nodedef.paramtype == "light") and + nodedef.liquidtype == "none") then + minetest.set_node(pos, {name = "default:dirt"}) + end + end +}) + + +-- +-- Moss growth on cobble near water +-- + +minetest.register_abm({ + label = "Moss growth", + nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble", "walls:cobble"}, + neighbors = {"group:water"}, + interval = 16, + chance = 200, + catch_up = false, + action = function(pos, node) + if node.name == "default:cobble" then + minetest.set_node(pos, {name = "default:mossycobble"}) + elseif node.name == "stairs:slab_cobble" then + minetest.set_node(pos, {name = "stairs:slab_mossycobble", param2 = node.param2}) + elseif node.name == "stairs:stair_cobble" then + minetest.set_node(pos, {name = "stairs:stair_mossycobble", param2 = node.param2}) + elseif node.name == "walls:cobble" then + minetest.set_node(pos, {name = "walls:mossycobble", param2 = node.param2}) + end + end +}) + + +-- +-- Checks if specified volume intersects a protected volume +-- + +function default.intersects_protection(minp, maxp, player_name, interval) + -- 'interval' is the largest allowed interval for the 3D lattice of checks + + -- Compute the optimal float step 'd' for each axis so that all corners and + -- borders are checked. 'd' will be smaller or equal to 'interval'. + -- Subtracting 1e-4 ensures that the max co-ordinate will be reached by the + -- for loop (which might otherwise not be the case due to rounding errors). + local d = {} + for _, c in pairs({"x", "y", "z"}) do + if maxp[c] > minp[c] then + d[c] = (maxp[c] - minp[c]) / math.ceil((maxp[c] - minp[c]) / interval) - 1e-4 + elseif maxp[c] == minp[c] then + d[c] = 1 -- Any value larger than 0 to avoid division by zero + else -- maxp[c] < minp[c], print error and treat as protection intersected + minetest.log("error", "maxp < minp in 'default.intersects_protection()'") + return true + end + end + + for zf = minp.z, maxp.z, d.z do + local z = math.floor(zf + 0.5) + for yf = minp.y, maxp.y, d.y do + local y = math.floor(yf + 0.5) + for xf = minp.x, maxp.x, d.x do + local x = math.floor(xf + 0.5) + if minetest.is_protected({x = x, y = y, z = z}, player_name) then + return true + end + end + end + end + + return false +end + + +-- +-- Coral death near air +-- + +minetest.register_abm({ + nodenames = {"default:coral_brown", "default:coral_orange"}, + neighbors = {"air"}, + interval = 17, + chance = 5, + catch_up = false, + action = function(pos, node) + minetest.set_node(pos, {name = "default:coral_skeleton"}) + end, +}) + + +-- +-- NOTICE: This method is not an official part of the API yet! +-- This method may change in future. +-- + +function default.can_interact_with_node(player, pos) + if player then + if minetest.check_player_privs(player, "protection_bypass") then + return true + end + else + return false + end + + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + + if not owner or owner == "" or owner == player:get_player_name() then + return true + end + + -- is player wielding the right key? + local item = player:get_wielded_item() + if item:get_name() == "default:key" then + local key_meta = item:get_meta() + + if key_meta:get_string("secret") == "" then + local key_oldmeta = item:get_metadata() + if key_oldmeta == "" or not minetest.parse_json(key_oldmeta) then + return false + end + + key_meta:set_string("secret", minetest.parse_json(key_oldmeta).secret) + item:set_metadata("") + end + + return meta:get_string("key_lock_secret") == key_meta:get_string("secret") + end + + return false +end diff --git a/diff/default.diff/functions.lua.diff b/diff/default.diff/functions.lua.diff new file mode 100644 index 0000000..694ee89 --- /dev/null +++ b/diff/default.diff/functions.lua.diff @@ -0,0 +1,22 @@ +139c139 +< interval = 1, +--- +> interval = 2, +142c142,144 +< action = default.cool_lava, +--- +> action = function(...) +> default.cool_lava(...) +> end, +225c227,229 +< action = default.grow_cactus +--- +> action = function(...) +> default.grow_cactus(...) +> end +234c238,240 +< action = default.grow_papyrus +--- +> action = function(...) +> default.grow_papyrus(...) +> end diff --git a/diff/default.diff/legacy.lua b/diff/default.diff/legacy.lua new file mode 100644 index 0000000..37f0321 --- /dev/null +++ b/diff/default.diff/legacy.lua @@ -0,0 +1,36 @@ +-- mods/default/legacy.lua + +-- Horrible stuff to support old code registering falling nodes +-- Don't use this and never do what this does, it's completely wrong! +-- (More specifically, the client and the C++ code doesn't get the group) +function default.register_falling_node(nodename, texture) + minetest.log("error", debug.traceback()) + minetest.log('error', "WARNING: default.register_falling_node is deprecated") + if minetest.registered_nodes[nodename] then + minetest.registered_nodes[nodename].groups.falling_node = 1 + end +end + +function default.spawn_falling_node(p, nodename) + spawn_falling_node(p, nodename) +end + +-- Liquids +WATER_ALPHA = minetest.registered_nodes["default:water_source"].alpha +WATER_VISC = minetest.registered_nodes["default:water_source"].liquid_viscosity +LAVA_VISC = minetest.registered_nodes["default:lava_source"].liquid_viscosity +LIGHT_MAX = default.LIGHT_MAX + +-- Formspecs +default.gui_suvival_form = default.gui_survival_form + +-- Players +if minetest.get_modpath("player_api") then + default.registered_player_models = player_api.registered_models + default.player_register_model = player_api.register_model + default.player_attached = player_api.player_attached + default.player_get_animation = player_api.get_animation + default.player_set_model = player_api.set_model + default.player_set_textures = player_api.set_textures + default.player_set_animation = player_api.set_animation +end diff --git a/diff/default.diff/legacy.lua.diff b/diff/default.diff/legacy.lua.diff new file mode 100644 index 0000000..bb76e0d --- /dev/null +++ b/diff/default.diff/legacy.lua.diff @@ -0,0 +1,12 @@ +25a26,36 +> +> -- Players +> if minetest.get_modpath("player_api") then +> default.registered_player_models = player_api.registered_models +> default.player_register_model = player_api.register_model +> default.player_attached = player_api.player_attached +> default.player_get_animation = player_api.get_animation +> default.player_set_model = player_api.set_model +> default.player_set_textures = player_api.set_textures +> default.player_set_animation = player_api.set_animation +> end diff --git a/diff/default.diff/mapgen.lua b/diff/default.diff/mapgen.lua new file mode 100644 index 0000000..1fc2dc3 --- /dev/null +++ b/diff/default.diff/mapgen.lua @@ -0,0 +1,2058 @@ +-- +-- Aliases for map generators +-- + +minetest.register_alias("mapgen_stone", "default:stone") +minetest.register_alias("mapgen_dirt", "default:dirt") +minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") +minetest.register_alias("mapgen_sand", "default:sand") +minetest.register_alias("mapgen_water_source", "default:water_source") +minetest.register_alias("mapgen_river_water_source", "default:river_water_source") +minetest.register_alias("mapgen_lava_source", "default:lava_source") +minetest.register_alias("mapgen_gravel", "default:gravel") +minetest.register_alias("mapgen_desert_stone", "default:desert_stone") +minetest.register_alias("mapgen_desert_sand", "default:desert_sand") +minetest.register_alias("mapgen_dirt_with_snow", "default:dirt_with_snow") +minetest.register_alias("mapgen_snowblock", "default:snowblock") +minetest.register_alias("mapgen_snow", "default:snow") +minetest.register_alias("mapgen_ice", "default:ice") +minetest.register_alias("mapgen_sandstone", "default:sandstone") + +-- Flora + +minetest.register_alias("mapgen_tree", "default:tree") +minetest.register_alias("mapgen_leaves", "default:leaves") +minetest.register_alias("mapgen_apple", "default:apple") +minetest.register_alias("mapgen_jungletree", "default:jungletree") +minetest.register_alias("mapgen_jungleleaves", "default:jungleleaves") +minetest.register_alias("mapgen_junglegrass", "default:junglegrass") +minetest.register_alias("mapgen_pine_tree", "default:pine_tree") +minetest.register_alias("mapgen_pine_needles", "default:pine_needles") + +-- Dungeons + +minetest.register_alias("mapgen_cobble", "default:cobble") +minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") +minetest.register_alias("mapgen_mossycobble", "default:mossycobble") +minetest.register_alias("mapgen_stair_desert_stone", "stairs:stair_desert_stone") +minetest.register_alias("mapgen_sandstonebrick", "default:sandstonebrick") +minetest.register_alias("mapgen_stair_sandstone_block", "stairs:stair_sandstone_block") + + +-- +-- Register ores +-- + +-- Mgv6 + +function default.register_mgv6_ores() + + -- Blob ore + -- These first to avoid other ores in blobs + + -- Clay + -- This first to avoid clay in sand blobs + + minetest.register_ore({ + ore_type = "blob", + ore = "default:clay", + wherein = {"default:sand"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -15, + y_max = 0, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -316, + octaves = 1, + persist = 0.0 + }, + }) + + -- Sand + + minetest.register_ore({ + ore_type = "blob", + ore = "default:sand", + wherein = {"default:stone", "default:desert_stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31, + y_max = 0, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 2316, + octaves = 1, + persist = 0.0 + }, + }) + + -- Dirt + + minetest.register_ore({ + ore_type = "blob", + ore = "default:dirt", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 17676, + octaves = 1, + persist = 0.0 + }, + }) + + -- Gravel + + minetest.register_ore({ + ore_type = "blob", + ore = "default:gravel", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31000, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 766, + octaves = 1, + persist = 0.0 + }, + }) + + -- Scatter ores + + -- Coal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 9, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 8, + clust_size = 3, + y_min = -31000, + y_max = 64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_min = -31000, + y_max = 0, + }) + + -- Iron + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 12, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 7 * 7 * 7, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = 0, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_min = -31000, + y_max = -64, + }) + + -- Copper + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 12 * 12 * 12, + clust_num_ores = 4, + clust_size = 3, + y_min = -63, + y_max = -16, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -64, + }) + + -- Tin + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 4, + clust_size = 3, + y_min = -127, + y_max = -32, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -128, + }) + + -- Gold + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 3, + clust_size = 2, + y_min = -255, + y_max = -64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Mese crystal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 18 * 18 * 18, + clust_num_ores = 3, + clust_size = 2, + y_min = -255, + y_max = -64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Diamond + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 17 * 17 * 17, + clust_num_ores = 4, + clust_size = 3, + y_min = -255, + y_max = -128, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Mese block + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_min = -31000, + y_max = -1024, + }) +end + + +-- All mapgens except mgv6 + +function default.register_ores() + + -- Blob ore + -- These first to avoid other ores in blobs + + -- Clay + -- This first to avoid clay in sand blobs + + minetest.register_ore({ + ore_type = "blob", + ore = "default:clay", + wherein = {"default:sand"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -15, + y_max = 0, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -316, + octaves = 1, + persist = 0.0 + }, + }) + + -- Silver sand + + minetest.register_ore({ + ore_type = "blob", + ore = "default:silver_sand", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31000, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 2316, + octaves = 1, + persist = 0.0 + }, + biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean", + "taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean", + "grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest", + "coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest", + "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert", + "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean", + "rainforest", "rainforest_swamp", "rainforest_ocean", "underground", + "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} + }) + + -- Dirt + + minetest.register_ore({ + ore_type = "blob", + ore = "default:dirt", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 17676, + octaves = 1, + persist = 0.0 + }, + biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest", + "deciduous_forest", "deciduous_forest_shore", "savanna", "savanna_shore", + "rainforest", "rainforest_swamp", "floatland_coniferous_forest"} + }) + + -- Gravel + + minetest.register_ore({ + ore_type = "blob", + ore = "default:gravel", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31000, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 766, + octaves = 1, + persist = 0.0 + }, + biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean", + "taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean", + "grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest", + "coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest", + "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert", + "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean", + "rainforest", "rainforest_swamp", "rainforest_ocean", "underground", + "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} + }) + + -- Scatter ores + + -- Coal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 9, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 8, + clust_size = 3, + y_min = -31000, + y_max = 64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_min = -31000, + y_max = 0, + }) + + -- Iron + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 12, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 7 * 7 * 7, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = 0, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_min = -31000, + y_max = -64, + }) + + -- Copper + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 12 * 12 * 12, + clust_num_ores = 4, + clust_size = 3, + y_min = -63, + y_max = -16, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -64, + }) + + -- Tin + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 4, + clust_size = 3, + y_min = -127, + y_max = -32, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -128, + }) + + -- Gold + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 3, + clust_size = 2, + y_min = -255, + y_max = -64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Mese crystal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 18 * 18 * 18, + clust_num_ores = 3, + clust_size = 2, + y_min = -255, + y_max = -64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Diamond + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 17 * 17 * 17, + clust_num_ores = 4, + clust_size = 3, + y_min = -255, + y_max = -128, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Mese block + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_min = -31000, + y_max = -1024, + }) +end + + +-- +-- Register biomes +-- + +-- All mapgens except mgv6 + +function default.register_biomes(upper_limit) + + -- Icesheet + + minetest.register_biome({ + name = "icesheet", + node_dust = "default:snowblock", + node_top = "default:snowblock", + depth_top = 1, + node_filler = "default:snowblock", + depth_filler = 3, + node_stone = "default:ice", + node_water_top = "default:ice", + depth_water_top = 10, + --node_water = "", + node_river_water = "default:ice", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = -8, + y_max = upper_limit, + heat_point = 0, + humidity_point = 73, + }) + + minetest.register_biome({ + name = "icesheet_ocean", + node_dust = "default:snowblock", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + node_water_top = "default:ice", + depth_water_top = 10, + --node_water = "", + --node_river_water = "", + y_min = -112, + y_max = -9, + heat_point = 0, + humidity_point = 73, + }) + + -- Tundra + + minetest.register_biome({ + name = "tundra", + node_dust = "default:snowblock", + --node_top = , + --depth_top = , + --node_filler = , + --depth_filler = , + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = 2, + y_max = upper_limit, + heat_point = 0, + humidity_point = 40, + }) + + minetest.register_biome({ + name = "tundra_beach", + --node_dust = "", + node_top = "default:gravel", + depth_top = 1, + node_filler = "default:gravel", + depth_filler = 2, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = -3, + y_max = 1, + heat_point = 0, + humidity_point = 40, + }) + + minetest.register_biome({ + name = "tundra_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = -112, + y_max = -4, + heat_point = 0, + humidity_point = 40, + }) + + -- Taiga + + minetest.register_biome({ + name = "taiga", + node_dust = "default:snow", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 2, + y_max = upper_limit, + heat_point = 25, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "taiga_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 1, + heat_point = 25, + humidity_point = 70, + }) + + -- Snowy grassland + + minetest.register_biome({ + name = "snowy_grassland", + node_dust = "default:snow", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = upper_limit, + heat_point = 20, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "snowy_grassland_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 20, + humidity_point = 35, + }) + + -- Grassland + + minetest.register_biome({ + name = "grassland", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 6, + y_max = upper_limit, + heat_point = 50, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "grassland_dunes", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 2, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = 5, + heat_point = 50, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "grassland_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 50, + humidity_point = 35, + }) + + -- Coniferous forest + + minetest.register_biome({ + name = "coniferous_forest", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 6, + y_max = upper_limit, + heat_point = 45, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "coniferous_forest_dunes", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = 5, + heat_point = 45, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "coniferous_forest_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 45, + humidity_point = 70, + }) + + -- Deciduous forest + + minetest.register_biome({ + name = "deciduous_forest", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 1, + y_max = upper_limit, + heat_point = 60, + humidity_point = 68, + }) + + minetest.register_biome({ + name = "deciduous_forest_shore", + --node_dust = "", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -1, + y_max = 0, + heat_point = 60, + humidity_point = 68, + }) + + minetest.register_biome({ + name = "deciduous_forest_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = -2, + heat_point = 60, + humidity_point = 68, + }) + + -- Desert + + minetest.register_biome({ + name = "desert", + --node_dust = "", + node_top = "default:desert_sand", + depth_top = 1, + node_filler = "default:desert_sand", + depth_filler = 1, + node_stone = "default:desert_stone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = upper_limit, + heat_point = 92, + humidity_point = 16, + }) + + minetest.register_biome({ + name = "desert_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_stone = "default:desert_stone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 92, + humidity_point = 16, + }) + + -- Sandstone desert + + minetest.register_biome({ + name = "sandstone_desert", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 1, + node_stone = "default:sandstone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = upper_limit, + heat_point = 60, + humidity_point = 0, + }) + + minetest.register_biome({ + name = "sandstone_desert_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_stone = "default:sandstone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 60, + humidity_point = 0, + }) + + -- Cold desert + + minetest.register_biome({ + name = "cold_desert", + --node_dust = "", + node_top = "default:silver_sand", + depth_top = 1, + node_filler = "default:silver_sand", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = upper_limit, + heat_point = 40, + humidity_point = 0, + }) + + minetest.register_biome({ + name = "cold_desert_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 40, + humidity_point = 0, + }) + + -- Savanna + + minetest.register_biome({ + name = "savanna", + --node_dust = "", + node_top = "default:dirt_with_dry_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 1, + y_max = upper_limit, + heat_point = 89, + humidity_point = 42, + }) + + minetest.register_biome({ + name = "savanna_shore", + --node_dust = "", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -1, + y_max = 0, + heat_point = 89, + humidity_point = 42, + }) + + minetest.register_biome({ + name = "savanna_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = -2, + heat_point = 89, + humidity_point = 42, + }) + + -- Rainforest + + minetest.register_biome({ + name = "rainforest", + --node_dust = "", + node_top = "default:dirt_with_rainforest_litter", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 1, + y_max = upper_limit, + heat_point = 86, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "rainforest_swamp", + --node_dust = "", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -1, + y_max = 0, + heat_point = 86, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "rainforest_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = -2, + heat_point = 86, + humidity_point = 65, + }) + + -- Underground + + minetest.register_biome({ + name = "underground", + --node_dust = "", + --node_top = "", + --depth_top = , + --node_filler = "", + --depth_filler = , + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + y_min = -31000, + y_max = -113, + heat_point = 50, + humidity_point = 50, + }) +end + + +-- Biomes for floatlands +-- Used when mgv7 'biomerepeat' flag is false + +-- TODO Temporary simple biomes to be replaced by special floatland biomes later. + +function default.register_floatland_biomes(floatland_level, shadow_limit) + + minetest.register_biome({ + name = "floatland_grassland", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + --node_riverbed = "", + --depth_riverbed = , + y_min = floatland_level + 4, + y_max = 31000, + heat_point = 50, + humidity_point = 50, + }) + + minetest.register_biome({ + name = "floatland_grassland_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + --node_riverbed = "", + --depth_riverbed = , + y_min = shadow_limit, + y_max = floatland_level + 3, + heat_point = 50, + humidity_point = 50, + }) +end + + +-- +-- Register decorations +-- + +-- Mgv6 + +function default.register_mgv6_decorations() + + -- Papyrus + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.3, + scale = 0.7, + spread = {x = 100, y = 100, z = 100}, + seed = 354, + octaves = 3, + persist = 0.7 + }, + y_min = 1, + y_max = 1, + decoration = "default:papyrus", + height = 2, + height_max = 4, + spawn_by = "default:water_source", + num_spawn_by = 1, + }) + + -- Cacti + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.012, + scale = 0.024, + spread = {x = 100, y = 100, z = 100}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "default:cactus", + height = 3, + height_max = 4, + }) + + -- Long grasses + + for length = 1, 5 do + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.007, + spread = {x = 100, y = 100, z = 100}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "default:grass_"..length, + }) + end + + -- Dry shrubs + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand", "default:dirt_with_snow"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.035, + spread = {x = 100, y = 100, z = 100}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "default:dry_shrub", + }) +end + + +-- All mapgens except mgv6 + +local function register_grass_decoration(offset, scale, length) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass", "default:sand"}, + sidelen = 16, + noise_params = { + offset = offset, + scale = scale, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland", "grassland_dunes", "deciduous_forest", + "coniferous_forest", "coniferous_forest_dunes", + "floatland_grassland"}, + y_min = 1, + y_max = 31000, + decoration = "default:grass_" .. length, + }) +end + +local function register_dry_grass_decoration(offset, scale, length) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = offset, + scale = scale, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + decoration = "default:dry_grass_" .. length, + }) +end + + +function default.register_decorations() + + -- Apple tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.036, + scale = 0.022, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/apple_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0018, + scale = 0.0011, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/apple_log.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Jungle tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_rainforest_litter", "default:dirt"}, + sidelen = 16, + fill_ratio = 0.1, + biomes = {"rainforest", "rainforest_swamp"}, + y_min = -1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/jungle_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_rainforest_litter", "default:dirt"}, + sidelen = 16, + fill_ratio = 0.005, + biomes = {"rainforest", "rainforest_swamp"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/jungle_log.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Taiga and temperate coniferous forest pine tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.036, + scale = 0.022, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"taiga", "coniferous_forest"}, + y_min = 2, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts", + flags = "place_center_x, place_center_z", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, + sidelen = 80, + noise_params = { + offset = 0.0018, + scale = 0.0011, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"taiga", "coniferous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/pine_log.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Acacia tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/acacia_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.001, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/acacia_log.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Aspen tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0, + scale = -0.015, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/aspen_tree.mts", + flags = "place_center_x, place_center_z", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0, + scale = -0.0008, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/aspen_log.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Large cactus + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.0003, + scale = 0.0009, + spread = {x = 200, y = 200, z = 200}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert"}, + y_min = 5, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/large_cactus.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Cactus + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.0003, + scale = 0.0009, + spread = {x = 200, y = 200, z = 200}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert"}, + y_min = 5, + y_max = 31000, + decoration = "default:cactus", + height = 2, + height_max = 5, + }) + + -- Papyrus + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.3, + scale = 0.7, + spread = {x = 200, y = 200, z = 200}, + seed = 354, + octaves = 3, + persist = 0.7 + }, + biomes = {"savanna_shore"}, + y_min = 0, + y_max = 0, + schematic = minetest.get_modpath("default") .. "/schematics/papyrus.mts", + }) + + -- Bush + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass", "default:dirt_with_snow"}, + sidelen = 16, + noise_params = { + offset = -0.004, + scale = 0.01, + spread = {x = 100, y = 100, z = 100}, + seed = 137, + octaves = 3, + persist = 0.7, + }, + biomes = {"snowy_grassland", "grassland", "deciduous_forest", + "floatland_grassland"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/bush.mts", + flags = "place_center_x, place_center_z", + }) + + -- Acacia bush + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = -0.004, + scale = 0.01, + spread = {x = 100, y = 100, z = 100}, + seed = 90155, + octaves = 3, + persist = 0.7, + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/acacia_bush.mts", + flags = "place_center_x, place_center_z", + }) + + -- Grasses + + register_grass_decoration(-0.03, 0.09, 5) + register_grass_decoration(-0.015, 0.075, 4) + register_grass_decoration(0, 0.06, 3) + register_grass_decoration(0.015, 0.045, 2) + register_grass_decoration(0.03, 0.03, 1) + + -- Dry grasses + + register_dry_grass_decoration(0.01, 0.05, 5) + register_dry_grass_decoration(0.03, 0.03, 4) + register_dry_grass_decoration(0.05, 0.01, 3) + register_dry_grass_decoration(0.07, -0.01, 2) + register_dry_grass_decoration(0.09, -0.03, 1) + + -- Junglegrass + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_rainforest_litter"}, + sidelen = 16, + fill_ratio = 0.1, + biomes = {"rainforest"}, + y_min = 1, + y_max = 31000, + decoration = "default:junglegrass", + }) + + -- Dry shrub + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand", + "default:sand", "default:silver_sand"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.02, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert", "sandstone_desert", "cold_desert"}, + y_min = 2, + y_max = 31000, + decoration = "default:dry_shrub", + }) + + -- Coral reef + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:sand"}, + noise_params = { + offset = -0.15, + scale = 0.1, + spread = {x = 100, y = 100, z = 100}, + seed = 7013, + octaves = 3, + persist = 1, + }, + biomes = { + "desert_ocean", + "savanna_ocean", + "rainforest_ocean", + }, + y_min = -8, + y_max = -2, + schematic = minetest.get_modpath("default") .. "/schematics/corals.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) +end + + +-- +-- Detect mapgen, flags and parameters to select functions +-- + +-- Get setting or default +local mgv7_spflags = minetest.get_mapgen_setting("mgv7_spflags") or + "mountains, ridges, nofloatlands, caverns, biomerepeat" +local captures_float = string.match(mgv7_spflags, "floatlands") +local captures_nofloat = string.match(mgv7_spflags, "nofloatlands") +local captures_nobiorep = string.match(mgv7_spflags, "nobiomerepeat") + +-- Get setting or default +-- Make global for mods to use to register floatland biomes +default.mgv7_floatland_level = + minetest.get_mapgen_setting("mgv7_floatland_level") or 1280 +default.mgv7_shadow_limit = + minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024 + +minetest.clear_registered_biomes() +minetest.clear_registered_ores() +minetest.clear_registered_decorations() + +local mg_name = minetest.get_mapgen_setting("mg_name") + +if mg_name == "v6" then + default.register_mgv6_ores() + default.register_mgv6_decorations() +elseif mg_name == "v7" and + captures_float == "floatlands" and + -- Need to check for 'nofloatlands' because that contains + -- 'floatlands' which makes the second condition true. + captures_nofloat ~= "nofloatlands" and + captures_nobiorep == "nobiomerepeat" then + -- Mgv7 with floatlands and floatland biomes + default.register_biomes(default.mgv7_shadow_limit - 1) + default.register_floatland_biomes( + default.mgv7_floatland_level, default.mgv7_shadow_limit) + default.register_ores() + default.register_decorations() +else + default.register_biomes(31000) + default.register_ores() + default.register_decorations() +end diff --git a/diff/default.diff/mapgen.lua.diff b/diff/default.diff/mapgen.lua.diff new file mode 100644 index 0000000..80b7b2b --- /dev/null +++ b/diff/default.diff/mapgen.lua.diff @@ -0,0 +1,439 @@ +46,48d45 +< -- Blob ores +< -- These first to avoid other ores in blobs +< +51c48,51 +< function default.register_mgv6_blob_ores() +--- +> function default.register_mgv6_ores() +> +> -- Blob ore +> -- These first to avoid other ores in blobs +136a137,407 +> +> -- Scatter ores +> +> -- Coal +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_coal", +> wherein = "default:stone", +> clust_scarcity = 8 * 8 * 8, +> clust_num_ores = 9, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_coal", +> wherein = "default:stone", +> clust_scarcity = 8 * 8 * 8, +> clust_num_ores = 8, +> clust_size = 3, +> y_min = -31000, +> y_max = 64, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_coal", +> wherein = "default:stone", +> clust_scarcity = 24 * 24 * 24, +> clust_num_ores = 27, +> clust_size = 6, +> y_min = -31000, +> y_max = 0, +> }) +> +> -- Iron +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_iron", +> wherein = "default:stone", +> clust_scarcity = 9 * 9 * 9, +> clust_num_ores = 12, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_iron", +> wherein = "default:stone", +> clust_scarcity = 7 * 7 * 7, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = -31000, +> y_max = 0, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_iron", +> wherein = "default:stone", +> clust_scarcity = 24 * 24 * 24, +> clust_num_ores = 27, +> clust_size = 6, +> y_min = -31000, +> y_max = -64, +> }) +> +> -- Copper +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_copper", +> wherein = "default:stone", +> clust_scarcity = 9 * 9 * 9, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_copper", +> wherein = "default:stone", +> clust_scarcity = 12 * 12 * 12, +> clust_num_ores = 4, +> clust_size = 3, +> y_min = -63, +> y_max = -16, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_copper", +> wherein = "default:stone", +> clust_scarcity = 9 * 9 * 9, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = -31000, +> y_max = -64, +> }) +> +> -- Tin +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_tin", +> wherein = "default:stone", +> clust_scarcity = 10 * 10 * 10, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_tin", +> wherein = "default:stone", +> clust_scarcity = 13 * 13 * 13, +> clust_num_ores = 4, +> clust_size = 3, +> y_min = -127, +> y_max = -32, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_tin", +> wherein = "default:stone", +> clust_scarcity = 10 * 10 * 10, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = -31000, +> y_max = -128, +> }) +> +> -- Gold +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_gold", +> wherein = "default:stone", +> clust_scarcity = 13 * 13 * 13, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_gold", +> wherein = "default:stone", +> clust_scarcity = 15 * 15 * 15, +> clust_num_ores = 3, +> clust_size = 2, +> y_min = -255, +> y_max = -64, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_gold", +> wherein = "default:stone", +> clust_scarcity = 13 * 13 * 13, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = -31000, +> y_max = -256, +> }) +> +> -- Mese crystal +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_mese", +> wherein = "default:stone", +> clust_scarcity = 14 * 14 * 14, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_mese", +> wherein = "default:stone", +> clust_scarcity = 18 * 18 * 18, +> clust_num_ores = 3, +> clust_size = 2, +> y_min = -255, +> y_max = -64, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_mese", +> wherein = "default:stone", +> clust_scarcity = 14 * 14 * 14, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = -31000, +> y_max = -256, +> }) +> +> -- Diamond +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_diamond", +> wherein = "default:stone", +> clust_scarcity = 15 * 15 * 15, +> clust_num_ores = 4, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_diamond", +> wherein = "default:stone", +> clust_scarcity = 17 * 17 * 17, +> clust_num_ores = 4, +> clust_size = 3, +> y_min = -255, +> y_max = -128, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_diamond", +> wherein = "default:stone", +> clust_scarcity = 15 * 15 * 15, +> clust_num_ores = 4, +> clust_size = 3, +> y_min = -31000, +> y_max = -256, +> }) +> +> -- Mese block +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:mese", +> wherein = "default:stone", +> clust_scarcity = 36 * 36 * 36, +> clust_num_ores = 3, +> clust_size = 2, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:mese", +> wherein = "default:stone", +> clust_scarcity = 36 * 36 * 36, +> clust_num_ores = 3, +> clust_size = 2, +> y_min = -31000, +> y_max = -1024, +> }) +142c413,416 +< function default.register_blob_ores() +--- +> function default.register_ores() +> +> -- Blob ore +> -- These first to avoid other ores in blobs +144a419 +> -- This first to avoid clay in sand blobs +191c466 +< "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"} +--- +> "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} +215,216c490 +< "rainforest", "rainforest_swamp", "floatland_grassland", +< "floatland_coniferous_forest"} +--- +> "rainforest", "rainforest_swamp", "floatland_coniferous_forest"} +245c519 +< "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"} +--- +> "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} +247,248d520 +< end +< +250,253c522 +< -- Scatter ores +< -- All mapgens +< +< function default.register_ores() +--- +> -- Scatter ores +1178a1448 +> -- Used when mgv7 'biomerepeat' flag is false +1180,1202c1450 +< function default.register_floatland_biomes(floatland_level, shadow_limit) +< +< -- Coniferous forest +< +< minetest.register_biome({ +< name = "floatland_coniferous_forest", +< --node_dust = "", +< node_top = "default:dirt_with_grass", +< depth_top = 1, +< node_filler = "default:dirt", +< depth_filler = 3, +< --node_stone = "", +< --node_water_top = "", +< --depth_water_top = , +< --node_water = "", +< --node_river_water = "", +< --node_riverbed = "", +< --depth_riverbed = , +< y_min = floatland_level + 2, +< y_max = 31000, +< heat_point = 50, +< humidity_point = 70, +< }) +--- +> -- TODO Temporary simple biomes to be replaced by special floatland biomes later. +1204c1452 +< -- Grassland +--- +> function default.register_floatland_biomes(floatland_level, shadow_limit) +1220c1468 +< y_min = floatland_level + 2, +--- +> y_min = floatland_level + 4, +1223,1245c1471 +< humidity_point = 35, +< }) +< +< -- Sandstone desert +< +< minetest.register_biome({ +< name = "floatland_sandstone_desert", +< --node_dust = "", +< node_top = "default:sand", +< depth_top = 1, +< node_filler = "default:sand", +< depth_filler = 1, +< node_stone = "default:sandstone", +< --node_water_top = "", +< --depth_water_top = , +< --node_water = "", +< --node_river_water = "", +< --node_riverbed = "", +< --depth_riverbed = , +< y_min = floatland_level + 2, +< y_max = 31000, +< heat_point = 50, +< humidity_point = 0, +--- +> humidity_point = 50, +1248,1249d1473 +< -- Floatland ocean / underground +< +1251c1475 +< name = "floatland_ocean", +--- +> name = "floatland_grassland_ocean", +1265c1489 +< y_max = floatland_level + 1, +--- +> y_max = floatland_level + 3, +1383c1607 +< "floatland_grassland", "floatland_coniferous_forest"}, +--- +> "floatland_grassland"}, +1497c1721 +< biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"}, +--- +> biomes = {"taiga", "coniferous_forest"}, +1797c2021 +< "mountains, ridges, nofloatlands" +--- +> "mountains, ridges, nofloatlands, caverns, biomerepeat" +1799a2024 +> local captures_nobiorep = string.match(mgv7_spflags, "nobiomerepeat") +1801,1802c2026,2031 +< local mgv7_floatland_level = minetest.get_mapgen_setting("mgv7_floatland_level") or 1280 +< local mgv7_shadow_limit = minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024 +--- +> -- Get setting or default +> -- Make global for mods to use to register floatland biomes +> default.mgv7_floatland_level = +> minetest.get_mapgen_setting("mgv7_floatland_level") or 1280 +> default.mgv7_shadow_limit = +> minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024 +1808a2038 +> +1810,1811c2040 +< default.register_mgv6_blob_ores() +< default.register_ores() +--- +> default.register_mgv6_ores() +1813,1818c2042,2051 +< elseif mg_name == "v7" and captures_float == "floatlands" and +< captures_nofloat ~= "nofloatlands" then +< -- Mgv7 with floatlands +< default.register_biomes(mgv7_shadow_limit - 1) +< default.register_floatland_biomes(mgv7_floatland_level, mgv7_shadow_limit) +< default.register_blob_ores() +--- +> elseif mg_name == "v7" and +> captures_float == "floatlands" and +> -- Need to check for 'nofloatlands' because that contains +> -- 'floatlands' which makes the second condition true. +> captures_nofloat ~= "nofloatlands" and +> captures_nobiorep == "nobiomerepeat" then +> -- Mgv7 with floatlands and floatland biomes +> default.register_biomes(default.mgv7_shadow_limit - 1) +> default.register_floatland_biomes( +> default.mgv7_floatland_level, default.mgv7_shadow_limit) +1823d2055 +< default.register_blob_ores() diff --git a/diff/default.diff/nodes.lua b/diff/default.diff/nodes.lua new file mode 100644 index 0000000..7346c1d --- /dev/null +++ b/diff/default.diff/nodes.lua @@ -0,0 +1,2692 @@ +-- mods/default/nodes.lua + + +--[[ Node name convention: + +Although many node names are in combined-word form, the required form for new +node names is words separated by underscores. If both forms are used in written +language (for example pinewood and pine wood) the underscore form should be used. + +--]] + + +--[[ Index: + +Stone +----- +(1. Material 2. Cobble variant 3. Brick variant 4. Modified forms) + +default:stone +default:cobble +default:stonebrick +default:stone_block +default:mossycobble + +default:desert_stone +default:desert_cobble +default:desert_stonebrick +default:desert_stone_block + +default:sandstone +default:sandstonebrick +default:sandstone_block +default:desert_sandstone +default:desert_sandstone_brick +default:desert_sandstone_block +default:silver_sandstone +default:silver_sandstone_brick +default:silver_sandstone_block + +default:obsidian +default:obsidianbrick +default:obsidian_block + +Soft / Non-Stone +---------------- +(1. Material 2. Modified forms) + +default:dirt +default:dirt_with_grass +default:dirt_with_grass_footsteps +default:dirt_with_dry_grass +default:dirt_with_snow +default:dirt_with_rainforest_litter + +default:sand +default:desert_sand +default:silver_sand + +default:gravel + +default:clay + +default:snow +default:snowblock + +default:ice + +Trees +----- +(1. Trunk 2. Fabricated trunk 3. Leaves 4. Sapling 5. Fruits) + +default:tree +default:wood +default:leaves +default:sapling +default:apple + +default:jungle_tree +default:jungle_wood +default:jungle_leaves +default:jungle_sapling + +default:pine_tree +default:pine_wood +default:pine_needles +default:pine_sapling + +default:acacia_tree +default:acacia_wood +default:acacia_leaves +default:acacia_sapling + +default:aspen_tree +default:aspen_wood +default:aspen_leaves +default:aspen_sapling + +Ores +---- +(1. In stone 2. Blocks) + +default:stone_with_coal +default:coalblock + +default:stone_with_iron +default:steelblock + +default:stone_with_copper +default:copperblock + +default:stone_with_tin +default:tinblock + +default:bronzeblock + +default:stone_with_gold +default:goldblock + +default:stone_with_mese +default:mese + +default:stone_with_diamond +default:diamondblock + +Plantlife +--------- + +default:cactus +default:papyrus +default:dry_shrub +default:jungle_grass + +default:grass_1 +default:grass_2 +default:grass_3 +default:grass_4 +default:grass_5 + +default:dry_grass_1 +default:dry_grass_2 +default:dry_grass_3 +default:dry_grass_4 +default:dry_grass_5 + +default:bush_stem +default:bush_leaves +default:bush_sapling +default:acacia_bush_stem +default:acacia_bush_leaves +default:acacia_bush_sapling + +Corals +------ + +default:coral_brown +default:coral_orange +default:coral_skeleton + +Liquids +------- +(1. Source 2. Flowing) + +default:water_source +default:water_flowing + +default:river_water_source +default:river_water_flowing + +default:lava_source +default:lava_flowing + +Tools / "Advanced" crafting / Non-"natural" +------------------------------------------- + +default:chest +default:chest_locked + +default:bookshelf + +default:sign_wall_wood +default:sign_wall_steel + +default:ladder_wood +default:ladder_steel + +default:fence_wood +default:fence_acacia_wood +default:fence_jungle_wood +default:fence_pine_wood +default:fence_aspen_wood + +default:glass +default:obsidian_glass + +default:brick + +default:meselamp +default:mese_post_light + +Misc +---- + +default:cloud + +--]] + +-- +-- Stone +-- + +minetest.register_node("default:stone", { + description = "Stone", + tiles = {"default_stone.png"}, + groups = {cracky = 3, stone = 1}, + drop = 'default:cobble', + legacy_mineral = true, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:cobble", { + description = "Cobblestone", + tiles = {"default_cobble.png"}, + is_ground_content = false, + groups = {cracky = 3, stone = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stonebrick", { + description = "Stone Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_stone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_block", { + description = "Stone Block", + tiles = {"default_stone_block.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mossycobble", { + description = "Mossy Cobblestone", + tiles = {"default_mossycobble.png"}, + is_ground_content = false, + groups = {cracky = 3, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:desert_stone", { + description = "Desert Stone", + tiles = {"default_desert_stone.png"}, + groups = {cracky = 3, stone = 1}, + drop = 'default:desert_cobble', + legacy_mineral = true, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_cobble", { + description = "Desert Cobblestone", + tiles = {"default_desert_cobble.png"}, + is_ground_content = false, + groups = {cracky = 3, stone = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stonebrick", { + description = "Desert Stone Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_desert_stone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stone_block", { + description = "Desert Stone Block", + tiles = {"default_desert_stone_block.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstone", { + description = "Sandstone", + tiles = {"default_sandstone.png"}, + groups = {crumbly = 1, cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstonebrick", { + description = "Sandstone Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_sandstone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstone_block", { + description = "Sandstone Block", + tiles = {"default_sandstone_block.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_sandstone", { + description = "Desert Sandstone", + tiles = {"default_desert_sandstone.png"}, + groups = {crumbly = 1, cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_sandstone_brick", { + description = "Desert Sandstone Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_desert_sandstone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_sandstone_block", { + description = "Desert Sandstone Block", + tiles = {"default_desert_sandstone_block.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:silver_sandstone", { + description = "Silver Sandstone", + tiles = {"default_silver_sandstone.png"}, + groups = {crumbly = 1, cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:silver_sandstone_brick", { + description = "Silver Sandstone Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_silver_sandstone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:silver_sandstone_block", { + description = "Silver Sandstone Block", + tiles = {"default_silver_sandstone_block.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:obsidian", { + description = "Obsidian", + tiles = {"default_obsidian.png"}, + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +minetest.register_node("default:obsidianbrick", { + description = "Obsidian Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_obsidian_brick.png"}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +minetest.register_node("default:obsidian_block", { + description = "Obsidian Block", + tiles = {"default_obsidian_block.png"}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +-- +-- Soft / Non-Stone +-- + +minetest.register_node("default:dirt", { + description = "Dirt", + tiles = {"default_dirt.png"}, + groups = {crumbly = 3, soil = 1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("default:dirt_with_grass", { + description = "Dirt with Grass", + tiles = {"default_grass.png", "default_dirt.png", + {name = "default_dirt.png^default_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.25}, + }), +}) + +minetest.register_node("default:dirt_with_grass_footsteps", { + description = "Dirt with Grass and Footsteps", + tiles = {"default_grass.png^default_footprint.png", "default_dirt.png", + {name = "default_dirt.png^default_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, not_in_creative_inventory = 1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.25}, + }), +}) + +minetest.register_node("default:dirt_with_dry_grass", { + description = "Dirt with Dry Grass", + tiles = {"default_dry_grass.png", + "default_dirt.png", + {name = "default_dirt.png^default_dry_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.4}, + }), +}) + +minetest.register_node("default:dirt_with_snow", { + description = "Dirt with Snow", + tiles = {"default_snow.png", "default_dirt.png", + {name = "default_dirt.png^default_snow_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, spreading_dirt_type = 1, snowy = 1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_snow_footstep", gain = 0.15}, + }), +}) + +minetest.register_node("default:dirt_with_rainforest_litter", { + description = "Dirt with Rainforest Litter", + tiles = { + "default_rainforest_litter.png", + "default_dirt.png", + {name = "default_dirt.png^default_rainforest_litter_side.png", + tileable_vertical = false} + }, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = "default:dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.4}, + }), +}) + +minetest.register_node("default:sand", { + description = "Sand", + tiles = {"default_sand.png"}, + groups = {crumbly = 3, falling_node = 1, sand = 1}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("default:desert_sand", { + description = "Desert Sand", + tiles = {"default_desert_sand.png"}, + groups = {crumbly = 3, falling_node = 1, sand = 1}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("default:silver_sand", { + description = "Silver Sand", + tiles = {"default_silver_sand.png"}, + groups = {crumbly = 3, falling_node = 1, sand = 1}, + sounds = default.node_sound_sand_defaults(), +}) + + +minetest.register_node("default:gravel", { + description = "Gravel", + tiles = {"default_gravel.png"}, + groups = {crumbly = 2, falling_node = 1}, + sounds = default.node_sound_gravel_defaults(), + drop = { + max_items = 1, + items = { + {items = {'default:flint'}, rarity = 16}, + {items = {'default:gravel'}} + } + } +}) + +minetest.register_node("default:clay", { + description = "Clay", + tiles = {"default_clay.png"}, + groups = {crumbly = 3}, + drop = 'default:clay_lump 4', + sounds = default.node_sound_dirt_defaults(), +}) + + +minetest.register_node("default:snow", { + description = "Snow", + tiles = {"default_snow.png"}, + inventory_image = "default_snowball.png", + wield_image = "default_snowball.png", + paramtype = "light", + buildable_to = true, + floodable = true, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + }, + }, + groups = {crumbly = 3, falling_node = 1, puts_out_fire = 1, snowy = 1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_snow_footstep", gain = 0.15}, + dug = {name = "default_snow_footstep", gain = 0.2}, + dig = {name = "default_snow_footstep", gain = 0.2} + }), + + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + end + end, +}) + +minetest.register_node("default:snowblock", { + description = "Snow Block", + tiles = {"default_snow.png"}, + groups = {crumbly = 3, puts_out_fire = 1, cools_lava = 1, snowy = 1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_snow_footstep", gain = 0.15}, + dug = {name = "default_snow_footstep", gain = 0.2}, + dig = {name = "default_snow_footstep", gain = 0.2} + }), + + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + end + end, +}) + +minetest.register_node("default:ice", { + description = "Ice", + tiles = {"default_ice.png"}, + is_ground_content = false, + paramtype = "light", + groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1}, + sounds = default.node_sound_glass_defaults(), +}) + +-- +-- Trees +-- + +minetest.register_node("default:tree", { + description = "Apple Tree", + tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:wood", { + description = "Apple Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_wood.png"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:sapling", { + description = "Apple Tree Sapling", + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 + {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 + {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 + } + }, + tiles = {"default_sapling_top.png", + "default_sapling_bottom.png", + "default_sapling_side.png", + "default_sapling_side.png", + "default_sapling_side.png", + "default_sapling_side.png" + }, + inventory_image = "default_sapling.png", + wield_image = "default_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = true, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 6, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +minetest.register_node("default:leaves", { + description = "Apple Tree Leaves", + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_leaves.png"}, + special_tiles = {"default_leaves_simple.png"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + { + -- player will get sapling with 1/20 chance + items = {'default:sapling'}, + rarity = 20, + }, + { + -- player will get leaves only if he get no saplings, + -- this is because max_items is 1 + items = {'default:leaves'}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:apple", { + description = "Apple", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0.0625, 0.25}, -- NodeBox1 + {-0.0625, 0.0625, -0.0625, 0.0625, 0.25, 0.0625}, -- NodeBox2 + } + }, + tiles = {"default_apple.png"}, + inventory_image = "default_apple.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + is_ground_content = false, + selection_box = { + type = "fixed", + fixed = {-3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16} + }, + groups = {fleshy = 3, dig_immediate = 3, flammable = 2, + leafdecay = 3, leafdecay_drop = 1}, + on_use = minetest.item_eat(2), + sounds = default.node_sound_leaves_defaults(), + + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name = "default:apple", param2 = 1}) + end + end, +}) + + +minetest.register_node("default:jungle_tree", { + description = "Jungle Tree", + tiles = {"default_jungle_tree_top.png", "default_jungle_tree_top.png", + "default_jungle_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:jungle_wood", { + description = "Jungle Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_jungle_wood.png"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:jungle_leaves", { + description = "Jungle Tree Leaves", + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_jungle_leaves.png"}, + special_tiles = {"default_jungle_leaves_simple.png"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {'default:jungle_sapling'}, rarity = 20}, + {items = {'default:jungle_leaves'}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:jungle_sapling", { + description = "Jungle Tree Sapling", + tiles = { + "default_jungle_sapling_top.png", + "default_jungle_sapling_bottom.png", + "default_jungle_sapling_side.png", + "default_jungle_sapling_side.png", + "default_jungle_sapling_side.png", + "default_jungle_sapling_side.png" + }, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 + {-0.25, -0.3125, -0.25, 0.25, 0, 0.25}, -- NodeBox3 + {-0.125, -0.0625, -0.125, 0.1875, 0.125, 0.1875}, -- NodeBox4 + } + }, + inventory_image = "default_jungle_sapling.png", + wield_image = "default_jungle_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = true, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:junglesapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 15, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + + +minetest.register_node("default:pine_tree", { + description = "Pine Tree", + tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", + "default_pine_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:pine_wood", { + description = "Pine Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_pine_wood.png"}, + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:pine_needles",{ + description = "Pine Needles", + drawtype = "allfaces_optional", + tiles = {"default_pine_needles.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:pine_sapling"}, rarity = 20}, + {items = {"default:pine_needles"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:pine_sapling", { + description = "Pine Tree Sapling", + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 + {-0.3125, -0.375, -0.3125, 0.3125, -0.3125, 0.3125}, -- NodeBox2 + {-0.25, -0.3125, -0.25, 0.25, -0.25, 0.25}, -- NodeBox3 + {-0.1875, -0.25, -0.1875, 0.1875, -0.125, 0.1875}, -- NodeBox4 + {-0.125, -0.1875, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox5 + {-0.0625, -0.0625, -0.0625, 0.0625, 0.0625, 0.0625}, -- NodeBox6 + } + }, + tiles = { + "default_pine_sapling_top.png", + "default_pine_sapling_bottom.png", + "default_pine_sapling_side.png", + "default_pine_sapling_side.png", + "default_pine_sapling_side.png", + "default_pine_sapling_side.png" + }, + inventory_image = "default_pine_sapling.png", + wield_image = "default_pine_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 3, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:pine_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 12, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + + +minetest.register_node("default:acacia_tree", { + description = "Acacia Tree", + tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png", + "default_acacia_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:acacia_wood", { + description = "Acacia Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_acacia_wood.png"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:acacia_leaves", { + description = "Acacia Tree Leaves", + drawtype = "allfaces_optional", + tiles = {"default_acacia_leaves.png"}, + special_tiles = {"default_acacia_leaves_simple.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:acacia_sapling"}, rarity = 20}, + {items = {"default:acacia_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:acacia_sapling", { + description = "Acacia Tree Sapling", + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 + {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 + {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 + } + }, + tiles = {"default_acacia_sapling_top.png", + "default_acacia_sapling_bottom.png", + "default_acacia_sapling_side.png", + "default_acacia_sapling_side.png", + "default_acacia_sapling_side.png", + "default_acacia_sapling_side.png" + }, + inventory_image = "default_acacia_sapling.png", + wield_image = "default_acacia_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = true, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:acacia_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -4, y = 1, z = -4}, + {x = 4, y = 6, z = 4}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +minetest.register_node("default:aspen_tree", { + description = "Aspen Tree", + tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png", + "default_aspen_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:aspen_wood", { + description = "Aspen Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_aspen_wood.png"}, + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:aspen_leaves", { + description = "Aspen Tree Leaves", + drawtype = "allfaces_optional", + tiles = {"default_aspen_leaves.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:aspen_sapling"}, rarity = 20}, + {items = {"default:aspen_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:aspen_sapling", { + description = "Aspen Tree Sapling", + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 + {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 + {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 + } + }, + tiles = {"default_aspen_sapling_top.png", + "default_aspen_sapling_bottom.png", + "default_aspen_sapling_side.png", + "default_aspen_sapling_side.png", + "default_aspen_sapling_side.png", + "default_aspen_sapling_side.png" + }, + inventory_image = "default_aspen_sapling.png", + wield_image = "default_aspen_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = true, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 0.5, 3 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 3, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:aspen_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 12, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +-- +-- Ores +-- + +minetest.register_node("default:stone_with_coal", { + description = "Coal Ore", + tiles = {"default_stone.png^default_mineral_coal.png"}, + groups = {cracky = 3}, + drop = 'default:coal_lump', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coalblock", { + description = "Coal Block", + tiles = {"default_coal_block.png"}, + is_ground_content = false, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:stone_with_iron", { + description = "Iron Ore", + tiles = {"default_stone.png^default_mineral_iron.png"}, + groups = {cracky = 2}, + drop = 'default:iron_lump', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:steelblock", { + description = "Steel Block", + tiles = {"default_steel_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_copper", { + description = "Copper Ore", + tiles = {"default_stone.png^default_mineral_copper.png"}, + groups = {cracky = 2}, + drop = 'default:copper_lump', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:copperblock", { + description = "Copper Block", + tiles = {"default_copper_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_tin", { + description = "Tin Ore", + tiles = {"default_stone.png^default_mineral_tin.png"}, + groups = {cracky = 2}, + drop = "default:tin_lump", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:tinblock", { + description = "Tin Block", + tiles = {"default_tin_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:bronzeblock", { + description = "Bronze Block", + tiles = {"default_bronze_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_mese", { + description = "Mese Ore", + tiles = {"default_stone.png^default_mineral_mese.png"}, + groups = {cracky = 1}, + drop = "default:mese_crystal", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mese", { + description = "Mese Block", + tiles = {"default_mese_block.png"}, + paramtype = "light", + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_stone_defaults(), + light_source = 3, +}) + + +minetest.register_node("default:stone_with_gold", { + description = "Gold Ore", + tiles = {"default_stone.png^default_mineral_gold.png"}, + groups = {cracky = 2}, + drop = "default:gold_lump", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:goldblock", { + description = "Gold Block", + tiles = {"default_gold_block.png"}, + is_ground_content = false, + groups = {cracky = 1}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_diamond", { + description = "Diamond Ore", + tiles = {"default_stone.png^default_mineral_diamond.png"}, + groups = {cracky = 1}, + drop = "default:diamond", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:diamondblock", { + description = "Diamond Block", + tiles = {"default_diamond_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +-- +-- Plantlife (non-cubic) +-- + +minetest.register_node("default:cactus", { + description = "Cactus", + tiles = {"default_cactus_top.png", "default_cactus_top.png", + "default_cactus_side.png"}, + paramtype2 = "facedir", + groups = {choppy = 3}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node, +}) + +minetest.register_node("default:papyrus", { + description = "Papyrus", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {0.1875, -0.5, 0.1875, 0.4375, 0.5, 0.4375}, -- NodeBox1 + {0.1875, -0.5, -0.4375, 0.4375, 0.5, -0.1875}, -- NodeBox2 + {-0.4375, -0.5, -0.4375, -0.1875, 0.5, -0.1875}, -- NodeBox3 + {-0.4375, -0.5, 0.1875, -0.1875, 0.5, 0.4375}, -- NodeBox4 + } + }, + tiles = {"default_papyrus.png"}, + inventory_image = "default_inv_papyrus.png", + wield_image = "default_inv_papyrus.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16}, + }, + groups = {snappy = 3, flammable = 2}, + sounds = default.node_sound_leaves_defaults(), + + after_dig_node = function(pos, node, metadata, digger) + default.dig_up(pos, node, digger) + end, +}) + +minetest.register_node("default:dry_shrub", { + description = "Dry Shrub", + drawtype = "plantlike", + waving = 1, + tiles = {"default_dry_shrub.png"}, + inventory_image = "default_dry_shrub.png", + wield_image = "default_dry_shrub.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 4 / 16, 5 / 16}, + }, +}) + +minetest.register_node("default:jungle_grass", { + description = "Jungle Grass", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.125, 0.125, 0.25, 0.125}, -- NodeBox18 + {0.125, 0.25, -0.125, 0.375, 0.5, 0.125}, -- NodeBox19 + {0.25, -0.5, 0.25, 0.5, -0.125, 0.5}, -- NodeBox20 + {-0.5, -0.5, 0.25, -0.25, -0.25, 0.5}, -- NodeBox21 + {0.25, -0.5, -0.5, 0.5, -0.1875, -0.25}, -- NodeBox22 + {-0.5, -0.5, -0.5, -0.25, -0.0625, -0.25}, -- NodeBox23 + } + }, + tiles = {"default_grass.png"}, + inventory_image = "default_jungle_grass.png", + wield_image = "default_jungle_grass.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 1.19, 7 / 16}, + }, +}) + + +minetest.register_node("default:grass_1", { + description = "Grass", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, 0.125, -0.125, -0.25, 0.375}, -- NodeBox9 + {0.125, -0.5, 0.125, 0.375, -0.25, 0.375}, -- NodeBox11 + {-0.375, -0.5, -0.375, -0.125, -0.25, -0.125}, -- NodeBox12 + } + }, + waving = 1, + tiles = {"default_grass.png"}, + -- Use texture of a taller grass stage in inventory + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -5 / 16, 6 / 16}, + }, +}) + +minetest.register_node("default:grass_2", { + description = "Grass", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.125, 0.125, -0.1875, 0.125}, -- NodeBox8 + {-0.375, -0.5, 0.125, -0.125, 0.0625, 0.375}, -- NodeBox9 + {0.125, -0.5, 0.125, 0.375, 0.0625, 0.375}, -- NodeBox11 + {-0.375, -0.5, -0.375, -0.125, 0.0625, -0.125}, -- NodeBox12 + {0.125, -0.5, -0.375, 0.375, 0.0625, -0.125}, -- NodeBox13 + } + }, + waving = 1, + tiles = {"default_grass.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "default:grass_2", + groups = {snappy = 3, flora = 1, attached_node = 1, + not_in_creative_inventory = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, +}) + +minetest.register_node("default:grass_3", { + description = "Grass", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.125, 0.125, -0.1875, 0.125}, -- NodeBox8 + {-0.375, -0.5, 0.125, -0.125, 0.3125, 0.375}, -- NodeBox9 + {0.125, -0.5, 0.125, 0.375, 0.3125, 0.375}, -- NodeBox11 + {-0.375, -0.5, -0.375, -0.125, 0.3125, -0.125}, -- NodeBox12 + {0.125, -0.5, -0.375, 0.375, 0.3125, -0.125}, -- NodeBox13 + } + }, + waving = 1, + tiles = {"default_grass.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "default:grass_3", + groups = {snappy = 3, flora = 1, attached_node = 1, + not_in_creative_inventory = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, +}) + +minetest.register_node("default:grass_4", { + description = "Grass", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {0.125, -0.5, 0.125, 0.4375, 0.5, 0.4375}, -- NodeBox1 + {0.125, -0.5, -0.4375, 0.4375, 0.5, -0.125}, -- NodeBox2 + {-0.4375, -0.5, -0.4375, -0.125, 0.5, -0.125}, -- NodeBox3 + {-0.4375, -0.5, 0.125, -0.125, 0.5, 0.4375}, -- NodeBox4 + {-0.125, -0.5, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox7 + } + }, + waving = 1, + tiles = {"default_grass.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "default:grass_3", + groups = {snappy = 3, flora = 1, attached_node = 1, + not_in_creative_inventory = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, +}) + +minetest.register_node("default:grass_5", { + description = "Grass", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {0.125, -0.5, 0.125, 0.4375, 0.5, 0.4375}, -- NodeBox1 + {0.125, -0.5, -0.4375, 0.4375, 0.5, -0.125}, -- NodeBox2 + {-0.4375, -0.5, -0.4375, -0.125, 0.5, -0.125}, -- NodeBox3 + {-0.4375, -0.5, 0.125, -0.125, 0.5, 0.4375}, -- NodeBox4 + {-0.125, -0.5, -0.125, 0.125, 0.125, 0.125}, -- NodeBox7 + } + }, + waving = 1, + tiles = {"default_grass.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "default:grass_3", + groups = {snappy = 3, flora = 1, attached_node = 1, + not_in_creative_inventory = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, +}) + +minetest.register_node("default:dry_grass_1", { + description = "Dry Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"default_dry_grass_1.png"}, + inventory_image = "default_dry_grass_3.png", + wield_image = "default_dry_grass_3.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, flora = 1, + attached_node = 1, dry_grass = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, + + on_place = function(itemstack, placer, pointed_thing) + -- place a random dry grass node + local stack = ItemStack("default:dry_grass_" .. math.random(1, 5)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("default:dry_grass_1 " .. + itemstack:get_count() - (1 - ret:get_count())) + end, +}) + +for i = 2, 5 do + minetest.register_node("default:dry_grass_" .. i, { + description = "Dry Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"default_dry_grass_" .. i .. ".png"}, + inventory_image = "default_dry_grass_" .. i .. ".png", + wield_image = "default_dry_grass_" .. i .. ".png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1, + not_in_creative_inventory=1, dry_grass = 1}, + drop = "default:dry_grass_1", + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -1 / 16, 6 / 16}, + }, + }) +end + + +minetest.register_node("default:bush_stem", { + description = "Bush Stem", + drawtype = "plantlike", + visual_scale = 1.41, + tiles = {"default_bush_stem.png"}, + inventory_image = "default_bush_stem.png", + wield_image = "default_bush_stem.png", + paramtype = "light", + sunlight_propagates = true, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.5, 7 / 16}, + }, +}) + +minetest.register_node("default:bush_leaves", { + description = "Bush Leaves", + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_leaves_simple.png"}, + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:bush_sapling"}, rarity = 5}, + {items = {"default:bush_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:bush_sapling", { + description = "Bush Sapling", + drawtype = "plantlike", + tiles = {"default_bush_sapling.png"}, + inventory_image = "default_bush_sapling.png", + wield_image = "default_bush_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:bush_sapling", + -- minp, maxp to be checked, relative to sapling pos + {x = -1, y = 0, z = -1}, + {x = 1, y = 1, z = 1}, + -- maximum interval of interior volume check + 2) + + return itemstack + end, +}) + +minetest.register_node("default:acacia_bush_stem", { + description = "Acacia Bush Stem", + drawtype = "plantlike", + visual_scale = 1.41, + tiles = {"default_acacia_bush_stem.png"}, + inventory_image = "default_acacia_bush_stem.png", + wield_image = "default_acacia_bush_stem.png", + paramtype = "light", + sunlight_propagates = true, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.5, 7 / 16}, + }, +}) + +minetest.register_node("default:acacia_bush_leaves", { + description = "Acacia Bush Leaves", + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_acacia_leaves_simple.png"}, + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:acacia_bush_sapling"}, rarity = 5}, + {items = {"default:acacia_bush_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:acacia_bush_sapling", { + description = "Acacia Bush Sapling", + drawtype = "plantlike", + tiles = {"default_acacia_bush_sapling.png"}, + inventory_image = "default_acacia_bush_sapling.png", + wield_image = "default_acacia_bush_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 2 / 16, 3 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:acacia_bush_sapling", + -- minp, maxp to be checked, relative to sapling pos + {x = -1, y = 0, z = -1}, + {x = 1, y = 1, z = 1}, + -- maximum interval of interior volume check + 2) + + return itemstack + end, +}) + + +-- +-- Corals +-- + +minetest.register_node("default:coral_brown", { + description = "Brown Coral", + tiles = {"default_coral_brown.png"}, + groups = {cracky = 3}, + drop = "default:coral_skeleton", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coral_orange", { + description = "Orange Coral", + tiles = {"default_coral_orange.png"}, + groups = {cracky = 3}, + drop = "default:coral_skeleton", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coral_skeleton", { + description = "Coral Skeleton", + tiles = {"default_coral_skeleton.png"}, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + + +-- +-- Liquids +-- + +minetest.register_node("default:water_source", { + description = "Water Source", + drawtype = "liquid", + tiles = { + { + name = "default_water_source_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + }, + special_tiles = { + -- New-style water source material (mostly unused) + { + name = "default_water_source_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + backface_culling = false, + }, + }, + alpha = 160, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:water_flowing", + liquid_alternative_source = "default:water_source", + liquid_viscosity = 1, + post_effect_color = {a = 103, r = 30, g = 60, b = 90}, + groups = {water = 3, liquid = 3, puts_out_fire = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + +minetest.register_node("default:water_flowing", { + description = "Flowing Water", + drawtype = "flowingliquid", + tiles = {"default_water.png"}, + special_tiles = { + { + name = "default_water_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, + }, + { + name = "default_water_flowing_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, + }, + }, + alpha = 160, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:water_flowing", + liquid_alternative_source = "default:water_source", + liquid_viscosity = 1, + post_effect_color = {a = 103, r = 30, g = 60, b = 90}, + groups = {water = 3, liquid = 3, puts_out_fire = 1, + not_in_creative_inventory = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + + +minetest.register_node("default:river_water_source", { + description = "River Water Source", + drawtype = "liquid", + tiles = { + { + name = "default_river_water_source_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + }, + special_tiles = { + { + name = "default_river_water_source_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + backface_culling = false, + }, + }, + alpha = 160, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:river_water_flowing", + liquid_alternative_source = "default:river_water_source", + liquid_viscosity = 1, + liquid_renewable = false, + liquid_range = 2, + post_effect_color = {a = 103, r = 30, g = 76, b = 90}, + groups = {water = 3, liquid = 3, puts_out_fire = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + +minetest.register_node("default:river_water_flowing", { + description = "Flowing River Water", + drawtype = "flowingliquid", + tiles = {"default_river_water.png"}, + special_tiles = { + { + name = "default_river_water_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, + }, + { + name = "default_river_water_flowing_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, + }, + }, + alpha = 160, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:river_water_flowing", + liquid_alternative_source = "default:river_water_source", + liquid_viscosity = 1, + liquid_renewable = false, + liquid_range = 2, + post_effect_color = {a = 103, r = 30, g = 76, b = 90}, + groups = {water = 3, liquid = 3, puts_out_fire = 1, + not_in_creative_inventory = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + + +minetest.register_node("default:lava_source", { + description = "Lava Source", + drawtype = "liquid", + tiles = { + { + name = "default_lava_source_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.0, + }, + }, + }, + special_tiles = { + -- New-style lava source material (mostly unused) + { + name = "default_lava_source_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.0, + }, + backface_culling = false, + }, + }, + paramtype = "light", + light_source = default.LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = 7, + liquid_renewable = true, + damage_per_second = 4 * 2, + post_effect_color = {a = 191, r = 255, g = 64, b = 0}, + groups = {lava = 3, liquid = 2, igniter = 1}, +}) + +minetest.register_node("default:lava_flowing", { + description = "Flowing Lava", + drawtype = "flowingliquid", + tiles = {"default_lava.png"}, + special_tiles = { + { + name = "default_lava_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.3, + }, + }, + { + name = "default_lava_flowing_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.3, + }, + }, + }, + paramtype = "light", + paramtype2 = "flowingliquid", + light_source = default.LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = 7, + liquid_renewable = true, + damage_per_second = 4 * 2, + post_effect_color = {a = 191, r = 255, g = 64, b = 0}, + groups = {lava = 3, liquid = 2, igniter = 1, + not_in_creative_inventory = 1}, +}) + +-- +-- Tools / "Advanced" crafting / Non-"natural" +-- + +function default.get_chest_formspec(pos) + local spos = pos.x .. "," .. pos.y .. "," .. pos.z + local formspec = + "size[8,9]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "list[nodemeta:" .. spos .. ";main;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[nodemeta:" .. spos .. ";main]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end + +local function chest_lid_obstructed(pos) + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local def = minetest.registered_nodes[minetest.get_node(above).name] + -- allow ladders, signs, wallmounted things and torches to not obstruct + if def and + (def.drawtype == "airlike" or + def.drawtype == "signlike" or + def.drawtype == "torchlike" or + (def.drawtype == "nodebox" and def.paramtype2 == "wallmounted")) then + return false + end + return true +end + +local open_chests = {} + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "default:chest" then + return + end + if not player or not fields.quit then + return + end + local pn = player:get_player_name() + + if not open_chests[pn] then + return + end + + local pos = open_chests[pn].pos + local sound = open_chests[pn].sound + local swap = open_chests[pn].swap + local node = minetest.get_node(pos) + + open_chests[pn] = nil + for k, v in pairs(open_chests) do + if v.pos.x == pos.x and v.pos.y == pos.y and v.pos.z == pos.z then + return true + end + end + minetest.after(0.2, minetest.swap_node, pos, { name = "default:" .. swap, + param2 = node.param2 }) + minetest.sound_play(sound, {gain = 0.3, pos = pos, max_hear_distance = 10}) + return true +end) + +function default.register_chest(name, d) + local def = table.copy(d) + def.drawtype = "mesh" + def.visual = "mesh" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.legacy_facedir_simple = true + def.is_ground_content = false + + if def.protected then + def.on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Locked Chest") + meta:set_string("owner", "") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end + def.after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", "Locked Chest (owned by " .. + meta:get_string("owner") .. ")") + end + def.can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") and + default.can_interact_with_node(player, pos) + end + def.allow_metadata_inventory_move = function(pos, from_list, from_index, + to_list, to_index, count, player) + if not default.can_interact_with_node(player, pos) then + return 0 + end + return count + end + def.allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if not default.can_interact_with_node(player, pos) then + return 0 + end + return stack:get_count() + end + def.allow_metadata_inventory_take = function(pos, listname, index, stack, player) + if not default.can_interact_with_node(player, pos) then + return 0 + end + return stack:get_count() + end + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + if not default.can_interact_with_node(clicker, pos) then + return itemstack + end + + minetest.sound_play(def.sound_open, {gain = 0.3, + pos = pos, max_hear_distance = 10}) + if not chest_lid_obstructed(pos) then + minetest.swap_node(pos, + { name = "default:" .. name .. "_open", + param2 = node.param2 }) + end + minetest.after(0.2, minetest.show_formspec, + clicker:get_player_name(), + "default:chest", default.get_chest_formspec(pos)) + open_chests[clicker:get_player_name()] = { pos = pos, + sound = def.sound_close, swap = name } + end + def.on_blast = function() end + def.on_key_use = function(pos, player) + local secret = minetest.get_meta(pos):get_string("key_lock_secret") + local itemstack = player:get_wielded_item() + local key_meta = itemstack:get_meta() + + if key_meta:get_string("secret") == "" then + key_meta:set_string("secret", minetest.parse_json(itemstack:get_metadata()).secret) + itemstack:set_metadata("") + end + + if secret ~= key_meta:get_string("secret") then + return + end + + minetest.show_formspec( + player:get_player_name(), + "default:chest_locked", + default.get_chest_formspec(pos) + ) + end + def.on_skeleton_key_use = function(pos, player, newsecret) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local pn = player:get_player_name() + + -- verify placer is owner of lockable chest + if owner ~= pn then + minetest.record_protection_violation(pos, pn) + minetest.chat_send_player(pn, "You do not own this chest.") + return nil + end + + local secret = meta:get_string("key_lock_secret") + if secret == "" then + secret = newsecret + meta:set_string("key_lock_secret", secret) + end + + return secret, "a locked chest", owner + end + else + def.on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Chest") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end + def.can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end + def.on_rightclick = function(pos, node, clicker) + minetest.sound_play(def.sound_open, {gain = 0.3, pos = pos, + max_hear_distance = 10}) + if not chest_lid_obstructed(pos) then + minetest.swap_node(pos, { + name = "default:" .. name .. "_open", + param2 = node.param2 }) + end + minetest.after(0.2, minetest.show_formspec, + clicker:get_player_name(), + "default:chest", default.get_chest_formspec(pos)) + open_chests[clicker:get_player_name()] = { pos = pos, + sound = def.sound_close, swap = name } + end + end + + def.on_metadata_inventory_move = function(pos, from_list, from_index, + to_list, to_index, count, player) + minetest.log("action", player:get_player_name() .. + " moves stuff in chest at " .. minetest.pos_to_string(pos)) + end + def.on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " moves " .. stack:get_name() .. + " to chest at " .. minetest.pos_to_string(pos)) + end + def.on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " takes " .. stack:get_name() .. + " from chest at " .. minetest.pos_to_string(pos)) + end + def.on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "main", drops) + drops[#drops+1] = "default:chest" + minetest.remove_node(pos) + return drops + end + + local def_opened = table.copy(def) + local def_closed = table.copy(def) + + def_opened.mesh = "chest_open.obj" + for i = 1, #def_opened.tiles do + if type(def_opened.tiles[i]) == "string" then + def_opened.tiles[i] = {name = def_opened.tiles[i], backface_culling = true} + elseif def_opened.tiles[i].backface_culling == nil then + def_opened.tiles[i].backface_culling = true + end + end + def_opened.drop = "default:" .. name + def_opened.groups.not_in_creative_inventory = 1 + def_opened.selection_box = { + type = "fixed", + fixed = { -1/2, -1/2, -1/2, 1/2, 3/16, 1/2 }, + } + def_opened.can_dig = function() + return false + end + + def_closed.mesh = nil + def_closed.drawtype = nil + def_closed.tiles[6] = def.tiles[5] -- swap textures around for "normal" + def_closed.tiles[5] = def.tiles[3] -- drawtype to make them match the mesh + def_closed.tiles[3] = def.tiles[3].."^[transformFX" + + minetest.register_node("default:" .. name, def_closed) + minetest.register_node("default:" .. name .. "_open", def_opened) + + -- convert old chests to this new variant + minetest.register_lbm({ + label = "update chests to opening chests", + name = "default:upgrade_" .. name .. "_v2", + nodenames = {"default:" .. name}, + action = function(pos, node) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", nil) + local inv = meta:get_inventory() + local list = inv:get_list("default:chest") + if list then + inv:set_size("main", 8*4) + inv:set_list("main", list) + inv:set_list("default:chest", nil) + end + end + }) +end + + +default.register_chest("chest", { + description = "Chest", + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_side.png", + "default_chest_front.png", + "default_chest_inside.png" + }, + sounds = default.node_sound_wood_defaults(), + sound_open = "default_chest_open", + sound_close = "default_chest_close", + groups = {choppy = 2, oddly_breakable_by_hand = 2}, +}) + +default.register_chest("chest_locked", { + description = "Locked Chest", + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_side.png", + "default_chest_lock.png", + "default_chest_inside.png" + }, + sounds = default.node_sound_wood_defaults(), + sound_open = "default_chest_open", + sound_close = "default_chest_close", + groups = {choppy = 2, oddly_breakable_by_hand = 2}, + protected = true, +}) + +local bookshelf_formspec = + "size[8,7;]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "list[context;books;0,0.3;8,2;]" .. + "list[current_player;main;0,2.85;8,1;]" .. + "list[current_player;main;0,4.08;8,3;8]" .. + "listring[context;books]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,2.85) + +local function get_bookshelf_formspec(inv) + local formspec = bookshelf_formspec + local invlist = inv and inv:get_list("books") + -- Inventory slots overlay + local bx, by = 0, 0.3 + for i = 1, 16 do + if i == 9 then + bx = 0 + by = by + 1 + end + if not invlist or invlist[i]:is_empty() then + formspec = formspec .. + "image[" .. bx .. "," .. by .. ";1,1;default_bookshelf_slot.png]" + end + bx = bx + 1 + end + return formspec +end + +minetest.register_node("default:bookshelf", { + description = "Bookshelf", + tiles = {"default_wood.png", "default_wood.png", "default_wood.png", + "default_wood.png", "default_bookshelf.png", "default_bookshelf.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_bookshelf_formspec(nil)) + local inv = meta:get_inventory() + inv:set_size("books", 8 * 2) + end, + can_dig = function(pos,player) + local inv = minetest.get_meta(pos):get_inventory() + return inv:is_empty("books") + end, + allow_metadata_inventory_put = function(pos, listname, index, stack) + if minetest.get_item_group(stack:get_name(), "book") ~= 0 then + return stack:get_count() + end + return 0 + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name() .. + " moves stuff in bookshelf at " .. minetest.pos_to_string(pos)) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_bookshelf_formspec(meta:get_inventory())) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " moves stuff to bookshelf at " .. minetest.pos_to_string(pos)) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_bookshelf_formspec(meta:get_inventory())) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " takes stuff from bookshelf at " .. minetest.pos_to_string(pos)) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_bookshelf_formspec(meta:get_inventory())) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "books", drops) + drops[#drops+1] = "default:bookshelf" + minetest.remove_node(pos) + return drops + end, +}) + +torch_box = { + type = "wallmounted", + wall_top = {-0.5/3, -0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}, + wall_bottom = {-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3}, + wall_side = {-1.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3}, +} + +minetest.register_node("default:torch", { + drawtype = "nodebox", + description = "Torch", + tiles = {"default_torch.png"}, + inventory_image = "default_torch_inventory.png", + wield_image = "default_torch_inventory.png", + paramtype = "light", + paramtype2 = "wallmounted", + legacy_wallmounted = true, + sunlight_propagates = true, + walkable = false, + light_source = default.LIGHT_MAX-2, + node_box = torch_box, + groups = {attached_node=1, dig_immediate=3,not_in_creative_inventory=1}, + drop='"default:torch" 1', + sounds = default.node_sound_wood_defaults(), +-- on_construct = function(pos) +-- local tmr = minetest.env:get_node_timer(pos) +-- tmr:start(torch_time) +-- end, +-- on_rightclick = function(pos, node) +-- local tmr = minetest.env:get_node_timer(pos) +-- local meta = minetest.get_meta(pos) +-- local proc = math.floor(tmr:get_elapsed()/(torch_time/100)) +-- meta:set_string("infotext", proc.."%") +-- end, +-- on_timer = function(pos,elapsed) +-- local node = minetest.get_node(pos) +-- minetest.set_node(pos, {name="default:torch_out", param2 = node.param2}) +-- end, +}) + +local function register_sign(material, desc, def) + minetest.register_node("default:sign_wall_" .. material, { + description = desc .. " Sign", + drawtype = "nodebox", + tiles = {"default_sign_wall_" .. material .. ".png"}, + inventory_image = "default_sign_" .. material .. ".png", + wield_image = "default_sign_" .. material .. ".png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + node_box = { + type = "wallmounted", + wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125}, + wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125}, + wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375}, + }, + groups = def.groups, + legacy_wallmounted = true, + sounds = def.sounds, + + on_construct = function(pos) + --local n = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", "field[text;;${text}]") + end, + on_receive_fields = function(pos, formname, fields, sender) + --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) + local player_name = sender:get_player_name() + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + return + end + local meta = minetest.get_meta(pos) + if not fields.text then return end + minetest.log("action", (player_name or "") .. " wrote \"" .. + fields.text .. "\" to sign at " .. minetest.pos_to_string(pos)) + meta:set_string("text", fields.text) + meta:set_string("infotext", '"' .. fields.text .. '"') + end, + }) +end + +register_sign("wood", "Wooden", { + sounds = default.node_sound_wood_defaults(), + groups = {choppy = 2, attached_node = 1, flammable = 2, oddly_breakable_by_hand = 3} +}) + +register_sign("steel", "Steel", { + sounds = default.node_sound_metal_defaults(), + groups = {cracky = 2, attached_node = 1} +}) + +minetest.register_node("default:ladder_wood", { + description = "Wooden Ladder", + drawtype = "signlike", + tiles = {"default_ladder_wood.png"}, + inventory_image = "default_ladder_wood.png", + wield_image = "default_ladder_wood.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + }, + groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2}, + legacy_wallmounted = true, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:ladder_steel", { + description = "Steel Ladder", + drawtype = "signlike", + tiles = {"default_ladder_steel.png"}, + inventory_image = "default_ladder_steel.png", + wield_image = "default_ladder_steel.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + }, + groups = {cracky = 2}, + sounds = default.node_sound_metal_defaults(), +}) + +default.register_fence("default:fence_wood", { + description = "Apple Wood Fence", + texture = "default_fence_wood.png", + inventory_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_acacia_wood", { + description = "Acacia Wood Fence", + texture = "default_fence_acacia_wood.png", + inventory_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:acacia_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_jungle_wood", { + description = "Jungle Wood Fence", + texture = "default_fence_jungle_wood.png", + inventory_image = "default_fence_overlay.png^default_jungle_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_jungle_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:jungle_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_pine_wood", { + description = "Pine Wood Fence", + texture = "default_fence_pine_wood.png", + inventory_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:pine_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_aspen_wood", { + description = "Aspen Wood Fence", + texture = "default_fence_aspen_wood.png", + inventory_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:aspen_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_node("default:glass", { + description = "Glass", + drawtype = "glasslike_framed_optional", + tiles = {"default_glass.png", "default_glass_detail.png"}, + paramtype = "light", + -- paramtype2 = "glasslikeliquidlevel", + sunlight_propagates = true, + is_ground_content = false, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("default:obsidian_glass", { + description = "Obsidian Glass", + drawtype = "glasslike_framed_optional", + tiles = {"default_obsidian_glass.png", "default_obsidian_glass_detail.png"}, + paramtype = "light", + paramtype2 = "glasslikeliquidlevel", + is_ground_content = false, + sunlight_propagates = true, + sounds = default.node_sound_glass_defaults(), + groups = {cracky = 3}, +}) + + +minetest.register_node("default:brick", { + description = "Brick Block", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_brick.png"}, + is_ground_content = false, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:meselamp", { + description = "Mese Lamp", + drawtype = "glasslike", + tiles = {"default_meselamp.png"}, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_glass_defaults(), + light_source = default.LIGHT_MAX, +}) + +minetest.register_node("default:mese_post_light", { + description = "Mese Post Light", + tiles = {"default_mese_post_light_top.png", "default_mese_post_light_top.png", + "default_mese_post_light_side_dark.png", "default_mese_post_light_side_dark.png", + "default_mese_post_light_side.png", "default_mese_post_light_side.png"}, + wield_image = "default_mese_post_light_side.png", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-2 / 16, -8 / 16, -2 / 16, 2 / 16, 8 / 16, 2 / 16}, + }, + }, + paramtype = "light", + light_source = default.LIGHT_MAX, + sunlight_propagates = true, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), +}) + +-- +-- Misc +-- + +minetest.register_node("default:cloud", { + description = "Cloud", + tiles = {"default_cloud.png"}, + is_ground_content = false, + sounds = default.node_sound_defaults(), + groups = {not_in_creative_inventory = 1}, +}) + +-- +-- register trees for leafdecay +-- + +if minetest.get_mapgen_setting("mg_name") == "v6" then + default.register_leafdecay({ + trunks = {"default:tree"}, + leaves = {"default:apple", "default:leaves"}, + radius = 2, + }) + + default.register_leafdecay({ + trunks = {"default:jungle_tree"}, + leaves = {"default:jungle_leaves"}, + radius = 3, + }) + + default.register_leafdecay({ + trunks = {"default:pine_tree"}, + leaves = {"default:pine_needles"}, + radius = 3, + }) +else + default.register_leafdecay({ + trunks = {"default:tree"}, + leaves = {"default:apple", "default:leaves"}, + radius = 3, + }) + + default.register_leafdecay({ + trunks = {"default:jungle_tree"}, + leaves = {"default:jungle_leaves"}, + radius = 2, + }) + + default.register_leafdecay({ + trunks = {"default:pine_tree"}, + leaves = {"default:pine_needles"}, + radius = 2, + }) +end + +default.register_leafdecay({ + trunks = {"default:acacia_tree"}, + leaves = {"default:acacia_leaves"}, + radius = 2, +}) + +default.register_leafdecay({ + trunks = {"default:aspen_tree"}, + leaves = {"default:aspen_leaves"}, + radius = 3, +}) + +default.register_leafdecay({ + trunks = {"default:bush_stem"}, + leaves = {"default:bush_leaves"}, + radius = 1, +}) + +default.register_leafdecay({ + trunks = {"default:acacia_bush_stem"}, + leaves = {"default:acacia_bush_leaves"}, + radius = 1, +}) + +minetest.register_alias("default:jungleleaves", "default:jungle_leaves") +minetest.register_alias("default:junglewood", "default:jungle_wood") +minetest.register_alias("default:junglesapling", "default:jungle_sapling") +minetest.register_alias("default:jungletree", "default:jungle_tree") +minetest.register_alias("default:junglegrass", "default:jungle_grass") + +minetest.register_alias("default:fence_junglewood", "default:fence_jungle_wood") diff --git a/diff/default.diff/nodes.lua.diff b/diff/default.diff/nodes.lua.diff new file mode 100644 index 0000000..bc1a3fe --- /dev/null +++ b/diff/default.diff/nodes.lua.diff @@ -0,0 +1,610 @@ +78,81c78,81 +< default:jungletree +< default:junglewood +< default:jungleleaves +< default:junglesapling +--- +> default:jungle_tree +> default:jungle_wood +> default:jungle_leaves +> default:jungle_sapling +131c131 +< default:junglegrass +--- +> default:jungle_grass +188c188 +< default:fence_junglewood +--- +> default:fence_jungle_wood +572c572 +< description = "Tree", +--- +> description = "Apple Tree", +583c583 +< description = "Wooden Planks", +--- +> description = "Apple Wood Planks", +593,595c593,610 +< description = "Sapling", +< drawtype = "plantlike", +< tiles = {"default_sapling.png"}, +--- +> description = "Apple Tree Sapling", +> drawtype = "nodebox", +> paramtype = "light", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 +> {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 +> {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 +> } +> }, +> tiles = {"default_sapling_top.png", +> "default_sapling_bottom.png", +> "default_sapling_side.png", +> "default_sapling_side.png", +> "default_sapling_side.png", +> "default_sapling_side.png" +> }, +600c615 +< walkable = false, +--- +> walkable = true, +611c626 +< minetest.get_node_timer(pos):start(math.random(2400,4800)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +629c644 +< description = "Leaves", +--- +> description = "Apple Tree Leaves", +659c674,681 +< drawtype = "plantlike", +--- +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.25, -0.5, -0.25, 0.25, 0.0625, 0.25}, -- NodeBox1 +> {-0.0625, 0.0625, -0.0625, 0.0625, 0.25, 0.0625}, -- NodeBox2 +> } +> }, +683c705 +< minetest.register_node("default:jungletree", { +--- +> minetest.register_node("default:jungle_tree", { +685,686c707,708 +< tiles = {"default_jungletree_top.png", "default_jungletree_top.png", +< "default_jungletree.png"}, +--- +> tiles = {"default_jungle_tree_top.png", "default_jungle_tree_top.png", +> "default_jungle_tree.png"}, +695c717 +< minetest.register_node("default:junglewood", { +--- +> minetest.register_node("default:jungle_wood", { +699c721 +< tiles = {"default_junglewood.png"}, +--- +> tiles = {"default_jungle_wood.png"}, +705,706c727,728 +< minetest.register_node("default:jungleleaves", { +< description = "Jungle Leaves", +--- +> minetest.register_node("default:jungle_leaves", { +> description = "Jungle Tree Leaves", +709,710c731,732 +< tiles = {"default_jungleleaves.png"}, +< special_tiles = {"default_jungleleaves_simple.png"}, +--- +> tiles = {"default_jungle_leaves.png"}, +> special_tiles = {"default_jungle_leaves_simple.png"}, +717,718c739,740 +< {items = {'default:junglesapling'}, rarity = 20}, +< {items = {'default:jungleleaves'}} +--- +> {items = {'default:jungle_sapling'}, rarity = 20}, +> {items = {'default:jungle_leaves'}} +726,731c748,769 +< minetest.register_node("default:junglesapling", { +< description = "Jungle Sapling", +< drawtype = "plantlike", +< tiles = {"default_junglesapling.png"}, +< inventory_image = "default_junglesapling.png", +< wield_image = "default_junglesapling.png", +--- +> minetest.register_node("default:jungle_sapling", { +> description = "Jungle Tree Sapling", +> tiles = { +> "default_jungle_sapling_top.png", +> "default_jungle_sapling_bottom.png", +> "default_jungle_sapling_side.png", +> "default_jungle_sapling_side.png", +> "default_jungle_sapling_side.png", +> "default_jungle_sapling_side.png" +> }, +> drawtype = "nodebox", +> paramtype = "light", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 +> {-0.25, -0.3125, -0.25, 0.25, 0, 0.25}, -- NodeBox3 +> {-0.125, -0.0625, -0.125, 0.1875, 0.125, 0.1875}, -- NodeBox4 +> } +> }, +> inventory_image = "default_jungle_sapling.png", +> wield_image = "default_jungle_sapling.png", +734c772 +< walkable = false, +--- +> walkable = true, +745c783 +< minetest.get_node_timer(pos):start(math.random(2400,4800)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +806,808c844,865 +< description = "Pine Sapling", +< drawtype = "plantlike", +< tiles = {"default_pine_sapling.png"}, +--- +> description = "Pine Tree Sapling", +> drawtype = "nodebox", +> paramtype = "light", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 +> {-0.3125, -0.375, -0.3125, 0.3125, -0.3125, 0.3125}, -- NodeBox2 +> {-0.25, -0.3125, -0.25, 0.25, -0.25, 0.25}, -- NodeBox3 +> {-0.1875, -0.25, -0.1875, 0.1875, -0.125, 0.1875}, -- NodeBox4 +> {-0.125, -0.1875, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox5 +> {-0.0625, -0.0625, -0.0625, 0.0625, 0.0625, 0.0625}, -- NodeBox6 +> } +> }, +> tiles = { +> "default_pine_sapling_top.png", +> "default_pine_sapling_bottom.png", +> "default_pine_sapling_side.png", +> "default_pine_sapling_side.png", +> "default_pine_sapling_side.png", +> "default_pine_sapling_side.png" +> }, +824c881 +< minetest.get_node_timer(pos):start(math.random(2400,4800)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +865c922 +< description = "Acacia Leaves", +--- +> description = "Acacia Tree Leaves", +887,888c944,960 +< drawtype = "plantlike", +< tiles = {"default_acacia_sapling.png"}, +--- +> drawtype = "nodebox", +> paramtype = "light", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 +> {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 +> {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 +> } +> }, +> tiles = {"default_acacia_sapling_top.png", +> "default_acacia_sapling_bottom.png", +> "default_acacia_sapling_side.png", +> "default_acacia_sapling_side.png", +> "default_acacia_sapling_side.png", +> "default_acacia_sapling_side.png" +> }, +893c965 +< walkable = false, +--- +> walkable = true, +904c976 +< minetest.get_node_timer(pos):start(math.random(2400,4800)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +944c1016 +< description = "Aspen Leaves", +--- +> description = "Aspen Tree Leaves", +965,966c1037,1053 +< drawtype = "plantlike", +< tiles = {"default_aspen_sapling.png"}, +--- +> drawtype = "nodebox", +> paramtype = "light", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 +> {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 +> {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 +> } +> }, +> tiles = {"default_aspen_sapling_top.png", +> "default_aspen_sapling_bottom.png", +> "default_aspen_sapling_side.png", +> "default_aspen_sapling_side.png", +> "default_aspen_sapling_side.png", +> "default_aspen_sapling_side.png" +> }, +971c1058 +< walkable = false, +--- +> walkable = true, +982c1069 +< minetest.get_node_timer(pos):start(math.random(2400,4800)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +1147c1234,1243 +< drawtype = "plantlike", +--- +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {0.1875, -0.5, 0.1875, 0.4375, 0.5, 0.4375}, -- NodeBox1 +> {0.1875, -0.5, -0.4375, 0.4375, 0.5, -0.1875}, -- NodeBox2 +> {-0.4375, -0.5, -0.4375, -0.1875, 0.5, -0.1875}, -- NodeBox3 +> {-0.4375, -0.5, 0.1875, -0.1875, 0.5, 0.4375}, -- NodeBox4 +> } +> }, +1149,1150c1245,1246 +< inventory_image = "default_papyrus.png", +< wield_image = "default_papyrus.png", +--- +> inventory_image = "default_inv_papyrus.png", +> wield_image = "default_inv_papyrus.png", +1185c1281 +< minetest.register_node("default:junglegrass", { +--- +> minetest.register_node("default:jungle_grass", { +1187,1192c1283,1297 +< drawtype = "plantlike", +< waving = 1, +< visual_scale = 1.69, +< tiles = {"default_junglegrass.png"}, +< inventory_image = "default_junglegrass.png", +< wield_image = "default_junglegrass.png", +--- +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.125, -0.5, -0.125, 0.125, 0.25, 0.125}, -- NodeBox18 +> {0.125, 0.25, -0.125, 0.375, 0.5, 0.125}, -- NodeBox19 +> {0.25, -0.5, 0.25, 0.5, -0.125, 0.5}, -- NodeBox20 +> {-0.5, -0.5, 0.25, -0.25, -0.25, 0.5}, -- NodeBox21 +> {0.25, -0.5, -0.5, 0.5, -0.1875, -0.25}, -- NodeBox22 +> {-0.5, -0.5, -0.5, -0.25, -0.0625, -0.25}, -- NodeBox23 +> } +> }, +> tiles = {"default_grass.png"}, +> inventory_image = "default_jungle_grass.png", +> wield_image = "default_jungle_grass.png", +1193a1299 +> paramtype2 = "facedir", +1208c1314,1322 +< drawtype = "plantlike", +--- +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.375, -0.5, 0.125, -0.125, -0.25, 0.375}, -- NodeBox9 +> {0.125, -0.5, 0.125, 0.375, -0.25, 0.375}, -- NodeBox11 +> {-0.375, -0.5, -0.375, -0.125, -0.25, -0.125}, -- NodeBox12 +> } +> }, +1210c1324 +< tiles = {"default_grass_1.png"}, +--- +> tiles = {"default_grass.png"}, +1212,1213d1325 +< inventory_image = "default_grass_3.png", +< wield_image = "default_grass_3.png", +1223a1336 +> }) +1225,1231c1338,1364 +< on_place = function(itemstack, placer, pointed_thing) +< -- place a random grass node +< local stack = ItemStack("default:grass_" .. math.random(1,5)) +< local ret = minetest.item_place(stack, placer, pointed_thing) +< return ItemStack("default:grass_1 " .. +< itemstack:get_count() - (1 - ret:get_count())) +< end, +--- +> minetest.register_node("default:grass_2", { +> description = "Grass", +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.125, -0.5, -0.125, 0.125, -0.1875, 0.125}, -- NodeBox8 +> {-0.375, -0.5, 0.125, -0.125, 0.0625, 0.375}, -- NodeBox9 +> {0.125, -0.5, 0.125, 0.375, 0.0625, 0.375}, -- NodeBox11 +> {-0.375, -0.5, -0.375, -0.125, 0.0625, -0.125}, -- NodeBox12 +> {0.125, -0.5, -0.375, 0.375, 0.0625, -0.125}, -- NodeBox13 +> } +> }, +> waving = 1, +> tiles = {"default_grass.png"}, +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> drop = "default:grass_2", +> groups = {snappy = 3, flora = 1, attached_node = 1, +> not_in_creative_inventory = 1, grass = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> selection_box = { +> type = "fixed", +> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, +> }, +1234,1248c1367,1388 +< for i = 2, 5 do +< minetest.register_node("default:grass_" .. i, { +< description = "Grass", +< drawtype = "plantlike", +< waving = 1, +< tiles = {"default_grass_" .. i .. ".png"}, +< inventory_image = "default_grass_" .. i .. ".png", +< wield_image = "default_grass_" .. i .. ".png", +< paramtype = "light", +< sunlight_propagates = true, +< walkable = false, +< buildable_to = true, +< drop = "default:grass_1", +< groups = {snappy = 3, flora = 1, attached_node = 1, +< not_in_creative_inventory = 1, grass = 1, flammable = 1}, +--- +> minetest.register_node("default:grass_3", { +> description = "Grass", +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.125, -0.5, -0.125, 0.125, -0.1875, 0.125}, -- NodeBox8 +> {-0.375, -0.5, 0.125, -0.125, 0.3125, 0.375}, -- NodeBox9 +> {0.125, -0.5, 0.125, 0.375, 0.3125, 0.375}, -- NodeBox11 +> {-0.375, -0.5, -0.375, -0.125, 0.3125, -0.125}, -- NodeBox12 +> {0.125, -0.5, -0.375, 0.375, 0.3125, -0.125}, -- NodeBox13 +> } +> }, +> waving = 1, +> tiles = {"default_grass.png"}, +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> drop = "default:grass_3", +> groups = {snappy = 3, flora = 1, attached_node = 1, +> not_in_creative_inventory = 1, grass = 1, flammable = 1}, +1250,1255c1390,1423 +< selection_box = { +< type = "fixed", +< fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, +< }, +< }) +< end +--- +> selection_box = { +> type = "fixed", +> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, +> }, +> }) +> +> minetest.register_node("default:grass_4", { +> description = "Grass", +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {0.125, -0.5, 0.125, 0.4375, 0.5, 0.4375}, -- NodeBox1 +> {0.125, -0.5, -0.4375, 0.4375, 0.5, -0.125}, -- NodeBox2 +> {-0.4375, -0.5, -0.4375, -0.125, 0.5, -0.125}, -- NodeBox3 +> {-0.4375, -0.5, 0.125, -0.125, 0.5, 0.4375}, -- NodeBox4 +> {-0.125, -0.5, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox7 +> } +> }, +> waving = 1, +> tiles = {"default_grass.png"}, +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> drop = "default:grass_3", +> groups = {snappy = 3, flora = 1, attached_node = 1, +> not_in_creative_inventory = 1, grass = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> selection_box = { +> type = "fixed", +> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, +> }, +> }) +1256a1425,1452 +> minetest.register_node("default:grass_5", { +> description = "Grass", +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {0.125, -0.5, 0.125, 0.4375, 0.5, 0.4375}, -- NodeBox1 +> {0.125, -0.5, -0.4375, 0.4375, 0.5, -0.125}, -- NodeBox2 +> {-0.4375, -0.5, -0.4375, -0.125, 0.5, -0.125}, -- NodeBox3 +> {-0.4375, -0.5, 0.125, -0.125, 0.5, 0.4375}, -- NodeBox4 +> {-0.125, -0.5, -0.125, 0.125, 0.125, 0.125}, -- NodeBox7 +> } +> }, +> waving = 1, +> tiles = {"default_grass.png"}, +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> drop = "default:grass_3", +> groups = {snappy = 3, flora = 1, attached_node = 1, +> not_in_creative_inventory = 1, grass = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> selection_box = { +> type = "fixed", +> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, +> }, +> }) +1365c1561 +< minetest.get_node_timer(pos):start(math.random(1200, 2400)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +1436c1632 +< minetest.get_node_timer(pos):start(math.random(1200, 2400)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +1712c1908 +< liquid_renewable = false, +--- +> liquid_renewable = true, +1758c1954 +< liquid_renewable = false, +--- +> liquid_renewable = true, +1769c1965 +< local function get_chest_formspec(pos) +--- +> function default.get_chest_formspec(pos) +1786c1982 +< local above = { x = pos.x, y = pos.y + 1, z = pos.z } +--- +> local above = {x = pos.x, y = pos.y + 1, z = pos.z} +1789c1985,1986 +< if def.drawtype == "airlike" or +--- +> if def and +> (def.drawtype == "airlike" or +1792c1989 +< (def.drawtype == "nodebox" and def.paramtype2 == "wallmounted") then +--- +> (def.drawtype == "nodebox" and def.paramtype2 == "wallmounted")) then +1892c2089 +< "default:chest", get_chest_formspec(pos)) +--- +> "default:chest", default.get_chest_formspec(pos)) +1914c2111 +< get_chest_formspec(pos) +--- +> default.get_chest_formspec(pos) +1959c2156 +< "default:chest", get_chest_formspec(pos)) +--- +> "default:chest", default.get_chest_formspec(pos)) +1991a2189,2195 +> for i = 1, #def_opened.tiles do +> if type(def_opened.tiles[i]) == "string" then +> def_opened.tiles[i] = {name = def_opened.tiles[i], backface_culling = true} +> elseif def_opened.tiles[i].backface_culling == nil then +> def_opened.tiles[i].backface_culling = true +> end +> end +1997c2201 +< } +--- +> } +2146a2351,2389 +> torch_box = { +> type = "wallmounted", +> wall_top = {-0.5/3, -0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}, +> wall_bottom = {-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3}, +> wall_side = {-1.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3}, +> } +> +> minetest.register_node("default:torch", { +> drawtype = "nodebox", +> description = "Torch", +> tiles = {"default_torch.png"}, +> inventory_image = "default_torch_inventory.png", +> wield_image = "default_torch_inventory.png", +> paramtype = "light", +> paramtype2 = "wallmounted", +> legacy_wallmounted = true, +> sunlight_propagates = true, +> walkable = false, +> light_source = default.LIGHT_MAX-2, +> node_box = torch_box, +> groups = {attached_node=1, dig_immediate=3,not_in_creative_inventory=1}, +> drop='"default:torch" 1', +> sounds = default.node_sound_wood_defaults(), +> -- on_construct = function(pos) +> -- local tmr = minetest.env:get_node_timer(pos) +> -- tmr:start(torch_time) +> -- end, +> -- on_rightclick = function(pos, node) +> -- local tmr = minetest.env:get_node_timer(pos) +> -- local meta = minetest.get_meta(pos) +> -- local proc = math.floor(tmr:get_elapsed()/(torch_time/100)) +> -- meta:set_string("infotext", proc.."%") +> -- end, +> -- on_timer = function(pos,elapsed) +> -- local node = minetest.get_node(pos) +> -- minetest.set_node(pos, {name="default:torch_out", param2 = node.param2}) +> -- end, +> }) +> +2247c2490 +< description = "Wooden Fence", +--- +> description = "Apple Wood Fence", +2257c2500 +< description = "Acacia Fence", +--- +> description = "Acacia Wood Fence", +2266c2509 +< default.register_fence("default:fence_junglewood", { +--- +> default.register_fence("default:fence_jungle_wood", { +2268,2271c2511,2514 +< texture = "default_fence_junglewood.png", +< inventory_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", +< wield_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", +< material = "default:junglewood", +--- +> texture = "default_fence_jungle_wood.png", +> inventory_image = "default_fence_overlay.png^default_jungle_wood.png^default_fence_overlay.png^[makealpha:255,126,126", +> wield_image = "default_fence_overlay.png^default_jungle_wood.png^default_fence_overlay.png^[makealpha:255,126,126", +> material = "default:jungle_wood", +2277c2520 +< description = "Pine Fence", +--- +> description = "Pine Wood Fence", +2287c2530 +< description = "Aspen Fence", +--- +> description = "Aspen Wood Fence", +2301c2544 +< paramtype2 = "glasslikeliquidlevel", +--- +> -- paramtype2 = "glasslikeliquidlevel", +2389,2390c2632,2633 +< trunks = {"default:jungletree"}, +< leaves = {"default:jungleleaves"}, +--- +> trunks = {"default:jungle_tree"}, +> leaves = {"default:jungle_leaves"}, +2407,2408c2650,2651 +< trunks = {"default:jungletree"}, +< leaves = {"default:jungleleaves"}, +--- +> trunks = {"default:jungle_tree"}, +> leaves = {"default:jungle_leaves"}, +2441a2685,2692 +> +> minetest.register_alias("default:jungleleaves", "default:jungle_leaves") +> minetest.register_alias("default:junglewood", "default:jungle_wood") +> minetest.register_alias("default:junglesapling", "default:jungle_sapling") +> minetest.register_alias("default:jungletree", "default:jungle_tree") +> minetest.register_alias("default:junglegrass", "default:jungle_grass") +> +> minetest.register_alias("default:fence_junglewood", "default:fence_jungle_wood") diff --git a/diff/default.diff/source.txt b/diff/default.diff/source.txt new file mode 100644 index 0000000..516ed14 --- /dev/null +++ b/diff/default.diff/source.txt @@ -0,0 +1 @@ +https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz diff --git a/diff/default.diff/textures/Untitled.png b/diff/default.diff/textures/Untitled.png new file mode 100644 index 0000000..3151482 Binary files /dev/null and b/diff/default.diff/textures/Untitled.png differ diff --git a/diff/default.diff/textures/bubble.png b/diff/default.diff/textures/bubble.png new file mode 100644 index 0000000..66010c5 Binary files /dev/null and b/diff/default.diff/textures/bubble.png differ diff --git a/diff/default.diff/textures/crack_anylength.png b/diff/default.diff/textures/crack_anylength.png new file mode 100644 index 0000000..f6c0fa5 Binary files /dev/null and b/diff/default.diff/textures/crack_anylength.png differ diff --git a/diff/default.diff/textures/default_acacia_bush_sapling.png b/diff/default.diff/textures/default_acacia_bush_sapling.png new file mode 100644 index 0000000..37ad4bb Binary files /dev/null and b/diff/default.diff/textures/default_acacia_bush_sapling.png differ diff --git a/diff/default.diff/textures/default_acacia_bush_stem.png b/diff/default.diff/textures/default_acacia_bush_stem.png new file mode 100644 index 0000000..b96e96a Binary files /dev/null and b/diff/default.diff/textures/default_acacia_bush_stem.png differ diff --git a/diff/default.diff/textures/default_acacia_leaves.png b/diff/default.diff/textures/default_acacia_leaves.png new file mode 100644 index 0000000..1220129 Binary files /dev/null and b/diff/default.diff/textures/default_acacia_leaves.png differ diff --git a/diff/default.diff/textures/default_acacia_leaves_simple.png b/diff/default.diff/textures/default_acacia_leaves_simple.png new file mode 100644 index 0000000..54a7bf2 Binary files /dev/null and b/diff/default.diff/textures/default_acacia_leaves_simple.png differ diff --git a/diff/default.diff/textures/default_acacia_sapling.png b/diff/default.diff/textures/default_acacia_sapling.png new file mode 100644 index 0000000..870a068 Binary files /dev/null and b/diff/default.diff/textures/default_acacia_sapling.png differ diff --git a/diff/default.diff/textures/default_acacia_sapling_bottom.png b/diff/default.diff/textures/default_acacia_sapling_bottom.png new file mode 100644 index 0000000..bca78fc Binary files /dev/null and b/diff/default.diff/textures/default_acacia_sapling_bottom.png differ diff --git a/diff/default.diff/textures/default_acacia_sapling_side.png b/diff/default.diff/textures/default_acacia_sapling_side.png new file mode 100644 index 0000000..475d4f1 Binary files /dev/null and b/diff/default.diff/textures/default_acacia_sapling_side.png differ diff --git a/diff/default.diff/textures/default_acacia_sapling_top.png b/diff/default.diff/textures/default_acacia_sapling_top.png new file mode 100644 index 0000000..9e46dfb Binary files /dev/null and b/diff/default.diff/textures/default_acacia_sapling_top.png differ diff --git a/diff/default.diff/textures/default_acacia_tree.png b/diff/default.diff/textures/default_acacia_tree.png new file mode 100644 index 0000000..02c12e5 Binary files /dev/null and b/diff/default.diff/textures/default_acacia_tree.png differ diff --git a/diff/default.diff/textures/default_acacia_tree_top.png b/diff/default.diff/textures/default_acacia_tree_top.png new file mode 100644 index 0000000..951ec17 Binary files /dev/null and b/diff/default.diff/textures/default_acacia_tree_top.png differ diff --git a/diff/default.diff/textures/default_acacia_wood.png b/diff/default.diff/textures/default_acacia_wood.png new file mode 100644 index 0000000..8317bce Binary files /dev/null and b/diff/default.diff/textures/default_acacia_wood.png differ diff --git a/diff/default.diff/textures/default_apple.png b/diff/default.diff/textures/default_apple.png new file mode 100644 index 0000000..b06d381 Binary files /dev/null and b/diff/default.diff/textures/default_apple.png differ diff --git a/diff/default.diff/textures/default_aspen_leaves.png b/diff/default.diff/textures/default_aspen_leaves.png new file mode 100644 index 0000000..aecfea3 Binary files /dev/null and b/diff/default.diff/textures/default_aspen_leaves.png differ diff --git a/diff/default.diff/textures/default_aspen_sapling.png b/diff/default.diff/textures/default_aspen_sapling.png new file mode 100644 index 0000000..a202e70 Binary files /dev/null and b/diff/default.diff/textures/default_aspen_sapling.png differ diff --git a/diff/default.diff/textures/default_aspen_sapling_bottom.png b/diff/default.diff/textures/default_aspen_sapling_bottom.png new file mode 100644 index 0000000..9085cea Binary files /dev/null and b/diff/default.diff/textures/default_aspen_sapling_bottom.png differ diff --git a/diff/default.diff/textures/default_aspen_sapling_side.png b/diff/default.diff/textures/default_aspen_sapling_side.png new file mode 100644 index 0000000..6113c50 Binary files /dev/null and b/diff/default.diff/textures/default_aspen_sapling_side.png differ diff --git a/diff/default.diff/textures/default_aspen_sapling_top.png b/diff/default.diff/textures/default_aspen_sapling_top.png new file mode 100644 index 0000000..ffe9fad Binary files /dev/null and b/diff/default.diff/textures/default_aspen_sapling_top.png differ diff --git a/diff/default.diff/textures/default_aspen_tree.png b/diff/default.diff/textures/default_aspen_tree.png new file mode 100644 index 0000000..90d1fe4 Binary files /dev/null and b/diff/default.diff/textures/default_aspen_tree.png differ diff --git a/diff/default.diff/textures/default_aspen_tree_top.png b/diff/default.diff/textures/default_aspen_tree_top.png new file mode 100644 index 0000000..477c93a Binary files /dev/null and b/diff/default.diff/textures/default_aspen_tree_top.png differ diff --git a/diff/default.diff/textures/default_aspen_wood.png b/diff/default.diff/textures/default_aspen_wood.png new file mode 100644 index 0000000..cdde75f Binary files /dev/null and b/diff/default.diff/textures/default_aspen_wood.png differ diff --git a/diff/default.diff/textures/default_book.png b/diff/default.diff/textures/default_book.png new file mode 100644 index 0000000..f701c65 Binary files /dev/null and b/diff/default.diff/textures/default_book.png differ diff --git a/diff/default.diff/textures/default_book_written.png b/diff/default.diff/textures/default_book_written.png new file mode 100644 index 0000000..9955251 Binary files /dev/null and b/diff/default.diff/textures/default_book_written.png differ diff --git a/diff/default.diff/textures/default_bookshelf.png b/diff/default.diff/textures/default_bookshelf.png new file mode 100644 index 0000000..5d6437d Binary files /dev/null and b/diff/default.diff/textures/default_bookshelf.png differ diff --git a/diff/default.diff/textures/default_bookshelf_end.png b/diff/default.diff/textures/default_bookshelf_end.png new file mode 100644 index 0000000..197e0f9 Binary files /dev/null and b/diff/default.diff/textures/default_bookshelf_end.png differ diff --git a/diff/default.diff/textures/default_bookshelf_end_reverse.png b/diff/default.diff/textures/default_bookshelf_end_reverse.png new file mode 100644 index 0000000..a287102 Binary files /dev/null and b/diff/default.diff/textures/default_bookshelf_end_reverse.png differ diff --git a/diff/default.diff/textures/default_bookshelf_middle.png b/diff/default.diff/textures/default_bookshelf_middle.png new file mode 100644 index 0000000..53a5e66 Binary files /dev/null and b/diff/default.diff/textures/default_bookshelf_middle.png differ diff --git a/diff/default.diff/textures/default_bookshelf_slot.png b/diff/default.diff/textures/default_bookshelf_slot.png new file mode 100644 index 0000000..0b364de Binary files /dev/null and b/diff/default.diff/textures/default_bookshelf_slot.png differ diff --git a/diff/default.diff/textures/default_brick.png b/diff/default.diff/textures/default_brick.png new file mode 100644 index 0000000..4993b0f Binary files /dev/null and b/diff/default.diff/textures/default_brick.png differ diff --git a/diff/default.diff/textures/default_bronze_block.png b/diff/default.diff/textures/default_bronze_block.png new file mode 100644 index 0000000..132f923 Binary files /dev/null and b/diff/default.diff/textures/default_bronze_block.png differ diff --git a/diff/default.diff/textures/default_bronze_ingot.png b/diff/default.diff/textures/default_bronze_ingot.png new file mode 100644 index 0000000..80d3812 Binary files /dev/null and b/diff/default.diff/textures/default_bronze_ingot.png differ diff --git a/diff/default.diff/textures/default_bush_sapling.png b/diff/default.diff/textures/default_bush_sapling.png new file mode 100644 index 0000000..905ba4b Binary files /dev/null and b/diff/default.diff/textures/default_bush_sapling.png differ diff --git a/diff/default.diff/textures/default_bush_stem.png b/diff/default.diff/textures/default_bush_stem.png new file mode 100644 index 0000000..18b615f Binary files /dev/null and b/diff/default.diff/textures/default_bush_stem.png differ diff --git a/diff/default.diff/textures/default_cactus_side.png b/diff/default.diff/textures/default_cactus_side.png new file mode 100644 index 0000000..f9cfc8d Binary files /dev/null and b/diff/default.diff/textures/default_cactus_side.png differ diff --git a/diff/default.diff/textures/default_cactus_top.png b/diff/default.diff/textures/default_cactus_top.png new file mode 100644 index 0000000..b132578 Binary files /dev/null and b/diff/default.diff/textures/default_cactus_top.png differ diff --git a/diff/default.diff/textures/default_chest_front.png b/diff/default.diff/textures/default_chest_front.png new file mode 100644 index 0000000..5fe430a Binary files /dev/null and b/diff/default.diff/textures/default_chest_front.png differ diff --git a/diff/default.diff/textures/default_chest_inside.png b/diff/default.diff/textures/default_chest_inside.png new file mode 100644 index 0000000..5f7b6b1 Binary files /dev/null and b/diff/default.diff/textures/default_chest_inside.png differ diff --git a/diff/default.diff/textures/default_chest_lock.png b/diff/default.diff/textures/default_chest_lock.png new file mode 100644 index 0000000..fe7ab58 Binary files /dev/null and b/diff/default.diff/textures/default_chest_lock.png differ diff --git a/diff/default.diff/textures/default_chest_side.png b/diff/default.diff/textures/default_chest_side.png new file mode 100644 index 0000000..c66fa7e Binary files /dev/null and b/diff/default.diff/textures/default_chest_side.png differ diff --git a/diff/default.diff/textures/default_chest_top.png b/diff/default.diff/textures/default_chest_top.png new file mode 100644 index 0000000..1a3c787 Binary files /dev/null and b/diff/default.diff/textures/default_chest_top.png differ diff --git a/diff/default.diff/textures/default_clay.png b/diff/default.diff/textures/default_clay.png new file mode 100644 index 0000000..f7600e2 Binary files /dev/null and b/diff/default.diff/textures/default_clay.png differ diff --git a/diff/default.diff/textures/default_clay_brick.png b/diff/default.diff/textures/default_clay_brick.png new file mode 100644 index 0000000..70f5c50 Binary files /dev/null and b/diff/default.diff/textures/default_clay_brick.png differ diff --git a/diff/default.diff/textures/default_clay_lump.png b/diff/default.diff/textures/default_clay_lump.png new file mode 100644 index 0000000..88fdb89 Binary files /dev/null and b/diff/default.diff/textures/default_clay_lump.png differ diff --git a/diff/default.diff/textures/default_cloud.png b/diff/default.diff/textures/default_cloud.png new file mode 100644 index 0000000..574bc1c Binary files /dev/null and b/diff/default.diff/textures/default_cloud.png differ diff --git a/diff/default.diff/textures/default_coal_block.png b/diff/default.diff/textures/default_coal_block.png new file mode 100644 index 0000000..1b8e224 Binary files /dev/null and b/diff/default.diff/textures/default_coal_block.png differ diff --git a/diff/default.diff/textures/default_coal_lump.png b/diff/default.diff/textures/default_coal_lump.png new file mode 100644 index 0000000..1be6370 Binary files /dev/null and b/diff/default.diff/textures/default_coal_lump.png differ diff --git a/diff/default.diff/textures/default_cobble.png b/diff/default.diff/textures/default_cobble.png new file mode 100644 index 0000000..07c5ab7 Binary files /dev/null and b/diff/default.diff/textures/default_cobble.png differ diff --git a/diff/default.diff/textures/default_copper_block.png b/diff/default.diff/textures/default_copper_block.png new file mode 100644 index 0000000..645732b Binary files /dev/null and b/diff/default.diff/textures/default_copper_block.png differ diff --git a/diff/default.diff/textures/default_copper_ingot.png b/diff/default.diff/textures/default_copper_ingot.png new file mode 100644 index 0000000..37974b6 Binary files /dev/null and b/diff/default.diff/textures/default_copper_ingot.png differ diff --git a/diff/default.diff/textures/default_copper_lump.png b/diff/default.diff/textures/default_copper_lump.png new file mode 100644 index 0000000..f51a4e3 Binary files /dev/null and b/diff/default.diff/textures/default_copper_lump.png differ diff --git a/diff/default.diff/textures/default_coral_brown.png b/diff/default.diff/textures/default_coral_brown.png new file mode 100644 index 0000000..0e4c696 Binary files /dev/null and b/diff/default.diff/textures/default_coral_brown.png differ diff --git a/diff/default.diff/textures/default_coral_orange.png b/diff/default.diff/textures/default_coral_orange.png new file mode 100644 index 0000000..035651d Binary files /dev/null and b/diff/default.diff/textures/default_coral_orange.png differ diff --git a/diff/default.diff/textures/default_coral_skeleton.png b/diff/default.diff/textures/default_coral_skeleton.png new file mode 100644 index 0000000..a0e0148 Binary files /dev/null and b/diff/default.diff/textures/default_coral_skeleton.png differ diff --git a/diff/default.diff/textures/default_desert_cobble.png b/diff/default.diff/textures/default_desert_cobble.png new file mode 100644 index 0000000..171068e Binary files /dev/null and b/diff/default.diff/textures/default_desert_cobble.png differ diff --git a/diff/default.diff/textures/default_desert_sand.png b/diff/default.diff/textures/default_desert_sand.png new file mode 100644 index 0000000..c15088c Binary files /dev/null and b/diff/default.diff/textures/default_desert_sand.png differ diff --git a/diff/default.diff/textures/default_desert_sandstone.png b/diff/default.diff/textures/default_desert_sandstone.png new file mode 100644 index 0000000..5234b59 Binary files /dev/null and b/diff/default.diff/textures/default_desert_sandstone.png differ diff --git a/diff/default.diff/textures/default_desert_sandstone_block.png b/diff/default.diff/textures/default_desert_sandstone_block.png new file mode 100644 index 0000000..829661a Binary files /dev/null and b/diff/default.diff/textures/default_desert_sandstone_block.png differ diff --git a/diff/default.diff/textures/default_desert_sandstone_brick.png b/diff/default.diff/textures/default_desert_sandstone_brick.png new file mode 100644 index 0000000..552d96f Binary files /dev/null and b/diff/default.diff/textures/default_desert_sandstone_brick.png differ diff --git a/diff/default.diff/textures/default_desert_stone.png b/diff/default.diff/textures/default_desert_stone.png new file mode 100644 index 0000000..5e1a6b8 Binary files /dev/null and b/diff/default.diff/textures/default_desert_stone.png differ diff --git a/diff/default.diff/textures/default_desert_stone_block.png b/diff/default.diff/textures/default_desert_stone_block.png new file mode 100644 index 0000000..9eb8e92 Binary files /dev/null and b/diff/default.diff/textures/default_desert_stone_block.png differ diff --git a/diff/default.diff/textures/default_desert_stone_brick.png b/diff/default.diff/textures/default_desert_stone_brick.png new file mode 100644 index 0000000..45b88eb Binary files /dev/null and b/diff/default.diff/textures/default_desert_stone_brick.png differ diff --git a/diff/default.diff/textures/default_diamond.png b/diff/default.diff/textures/default_diamond.png new file mode 100644 index 0000000..b8304e0 Binary files /dev/null and b/diff/default.diff/textures/default_diamond.png differ diff --git a/diff/default.diff/textures/default_diamond_block.png b/diff/default.diff/textures/default_diamond_block.png new file mode 100644 index 0000000..2a1964a Binary files /dev/null and b/diff/default.diff/textures/default_diamond_block.png differ diff --git a/diff/default.diff/textures/default_dirt.png b/diff/default.diff/textures/default_dirt.png new file mode 100644 index 0000000..e1491c0 Binary files /dev/null and b/diff/default.diff/textures/default_dirt.png differ diff --git a/diff/default.diff/textures/default_dirt2.png b/diff/default.diff/textures/default_dirt2.png new file mode 100644 index 0000000..45d9807 Binary files /dev/null and b/diff/default.diff/textures/default_dirt2.png differ diff --git a/diff/default.diff/textures/default_dry_grass.png b/diff/default.diff/textures/default_dry_grass.png new file mode 100644 index 0000000..03455c3 Binary files /dev/null and b/diff/default.diff/textures/default_dry_grass.png differ diff --git a/diff/default.diff/textures/default_dry_grass_1.png b/diff/default.diff/textures/default_dry_grass_1.png new file mode 100644 index 0000000..5cf68a3 Binary files /dev/null and b/diff/default.diff/textures/default_dry_grass_1.png differ diff --git a/diff/default.diff/textures/default_dry_grass_2.png b/diff/default.diff/textures/default_dry_grass_2.png new file mode 100644 index 0000000..c925ace Binary files /dev/null and b/diff/default.diff/textures/default_dry_grass_2.png differ diff --git a/diff/default.diff/textures/default_dry_grass_3.png b/diff/default.diff/textures/default_dry_grass_3.png new file mode 100644 index 0000000..4e4d84e Binary files /dev/null and b/diff/default.diff/textures/default_dry_grass_3.png differ diff --git a/diff/default.diff/textures/default_dry_grass_4.png b/diff/default.diff/textures/default_dry_grass_4.png new file mode 100644 index 0000000..d315849 Binary files /dev/null and b/diff/default.diff/textures/default_dry_grass_4.png differ diff --git a/diff/default.diff/textures/default_dry_grass_5.png b/diff/default.diff/textures/default_dry_grass_5.png new file mode 100644 index 0000000..871d04c Binary files /dev/null and b/diff/default.diff/textures/default_dry_grass_5.png differ diff --git a/diff/default.diff/textures/default_dry_grass_side.png b/diff/default.diff/textures/default_dry_grass_side.png new file mode 100644 index 0000000..ef375b7 Binary files /dev/null and b/diff/default.diff/textures/default_dry_grass_side.png differ diff --git a/diff/default.diff/textures/default_dry_shrub.png b/diff/default.diff/textures/default_dry_shrub.png new file mode 100644 index 0000000..6935115 Binary files /dev/null and b/diff/default.diff/textures/default_dry_shrub.png differ diff --git a/diff/default.diff/textures/default_fence.png b/diff/default.diff/textures/default_fence.png new file mode 100644 index 0000000..6fc7c29 Binary files /dev/null and b/diff/default.diff/textures/default_fence.png differ diff --git a/diff/default.diff/textures/default_fence_acacia_wood.png b/diff/default.diff/textures/default_fence_acacia_wood.png new file mode 100644 index 0000000..8317bce Binary files /dev/null and b/diff/default.diff/textures/default_fence_acacia_wood.png differ diff --git a/diff/default.diff/textures/default_fence_aspen_wood.png b/diff/default.diff/textures/default_fence_aspen_wood.png new file mode 100644 index 0000000..cdde75f Binary files /dev/null and b/diff/default.diff/textures/default_fence_aspen_wood.png differ diff --git a/diff/default.diff/textures/default_fence_junglewood.png b/diff/default.diff/textures/default_fence_junglewood.png new file mode 100644 index 0000000..670e23c Binary files /dev/null and b/diff/default.diff/textures/default_fence_junglewood.png differ diff --git a/diff/default.diff/textures/default_fence_overlay.png b/diff/default.diff/textures/default_fence_overlay.png new file mode 100644 index 0000000..463de05 Binary files /dev/null and b/diff/default.diff/textures/default_fence_overlay.png differ diff --git a/diff/default.diff/textures/default_fence_pine_wood.png b/diff/default.diff/textures/default_fence_pine_wood.png new file mode 100644 index 0000000..81df66e Binary files /dev/null and b/diff/default.diff/textures/default_fence_pine_wood.png differ diff --git a/diff/default.diff/textures/default_fence_tile.png b/diff/default.diff/textures/default_fence_tile.png new file mode 100644 index 0000000..aa33381 Binary files /dev/null and b/diff/default.diff/textures/default_fence_tile.png differ diff --git a/diff/default.diff/textures/default_fence_wood.png b/diff/default.diff/textures/default_fence_wood.png new file mode 100644 index 0000000..1e1660d Binary files /dev/null and b/diff/default.diff/textures/default_fence_wood.png differ diff --git a/diff/default.diff/textures/default_flint.png b/diff/default.diff/textures/default_flint.png new file mode 100644 index 0000000..4c63ca8 Binary files /dev/null and b/diff/default.diff/textures/default_flint.png differ diff --git a/diff/default.diff/textures/default_footprint.png b/diff/default.diff/textures/default_footprint.png new file mode 100644 index 0000000..41d9546 Binary files /dev/null and b/diff/default.diff/textures/default_footprint.png differ diff --git a/diff/default.diff/textures/default_furnace_bottom.png b/diff/default.diff/textures/default_furnace_bottom.png new file mode 100644 index 0000000..2ec6fd0 Binary files /dev/null and b/diff/default.diff/textures/default_furnace_bottom.png differ diff --git a/diff/default.diff/textures/default_furnace_fire_bg.png b/diff/default.diff/textures/default_furnace_fire_bg.png new file mode 100644 index 0000000..73a64b2 Binary files /dev/null and b/diff/default.diff/textures/default_furnace_fire_bg.png differ diff --git a/diff/default.diff/textures/default_furnace_fire_fg.png b/diff/default.diff/textures/default_furnace_fire_fg.png new file mode 100644 index 0000000..5f9b765 Binary files /dev/null and b/diff/default.diff/textures/default_furnace_fire_fg.png differ diff --git a/diff/default.diff/textures/default_furnace_front.png b/diff/default.diff/textures/default_furnace_front.png new file mode 100644 index 0000000..5743298 Binary files /dev/null and b/diff/default.diff/textures/default_furnace_front.png differ diff --git a/diff/default.diff/textures/default_furnace_front_active.png b/diff/default.diff/textures/default_furnace_front_active.png new file mode 100644 index 0000000..8c73f91 Binary files /dev/null and b/diff/default.diff/textures/default_furnace_front_active.png differ diff --git a/diff/default.diff/textures/default_furnace_side.png b/diff/default.diff/textures/default_furnace_side.png new file mode 100644 index 0000000..bb816ee Binary files /dev/null and b/diff/default.diff/textures/default_furnace_side.png differ diff --git a/diff/default.diff/textures/default_furnace_top.png b/diff/default.diff/textures/default_furnace_top.png new file mode 100644 index 0000000..53de716 Binary files /dev/null and b/diff/default.diff/textures/default_furnace_top.png differ diff --git a/diff/default.diff/textures/default_glass.png b/diff/default.diff/textures/default_glass.png new file mode 100644 index 0000000..d1ac295 Binary files /dev/null and b/diff/default.diff/textures/default_glass.png differ diff --git a/diff/default.diff/textures/default_glass_detail.png b/diff/default.diff/textures/default_glass_detail.png new file mode 100644 index 0000000..e1f0ea8 Binary files /dev/null and b/diff/default.diff/textures/default_glass_detail.png differ diff --git a/diff/default.diff/textures/default_gold_block.png b/diff/default.diff/textures/default_gold_block.png new file mode 100644 index 0000000..1f6c9f0 Binary files /dev/null and b/diff/default.diff/textures/default_gold_block.png differ diff --git a/diff/default.diff/textures/default_gold_ingot.png b/diff/default.diff/textures/default_gold_ingot.png new file mode 100644 index 0000000..913e7a4 Binary files /dev/null and b/diff/default.diff/textures/default_gold_ingot.png differ diff --git a/diff/default.diff/textures/default_gold_lump.png b/diff/default.diff/textures/default_gold_lump.png new file mode 100644 index 0000000..cef1af7 Binary files /dev/null and b/diff/default.diff/textures/default_gold_lump.png differ diff --git a/diff/default.diff/textures/default_grass.png b/diff/default.diff/textures/default_grass.png new file mode 100644 index 0000000..a8f6971 Binary files /dev/null and b/diff/default.diff/textures/default_grass.png differ diff --git a/diff/default.diff/textures/default_grass_1.png b/diff/default.diff/textures/default_grass_1.png new file mode 100644 index 0000000..7220795 Binary files /dev/null and b/diff/default.diff/textures/default_grass_1.png differ diff --git a/diff/default.diff/textures/default_grass_2.png b/diff/default.diff/textures/default_grass_2.png new file mode 100644 index 0000000..5fffddf Binary files /dev/null and b/diff/default.diff/textures/default_grass_2.png differ diff --git a/diff/default.diff/textures/default_grass_3.png b/diff/default.diff/textures/default_grass_3.png new file mode 100644 index 0000000..0b2f76e Binary files /dev/null and b/diff/default.diff/textures/default_grass_3.png differ diff --git a/diff/default.diff/textures/default_grass_4.png b/diff/default.diff/textures/default_grass_4.png new file mode 100644 index 0000000..c3e0d8b Binary files /dev/null and b/diff/default.diff/textures/default_grass_4.png differ diff --git a/diff/default.diff/textures/default_grass_5.png b/diff/default.diff/textures/default_grass_5.png new file mode 100644 index 0000000..21e532f Binary files /dev/null and b/diff/default.diff/textures/default_grass_5.png differ diff --git a/diff/default.diff/textures/default_grass_footsteps.png b/diff/default.diff/textures/default_grass_footsteps.png new file mode 100644 index 0000000..06d1a01 Binary files /dev/null and b/diff/default.diff/textures/default_grass_footsteps.png differ diff --git a/diff/default.diff/textures/default_grass_side.png b/diff/default.diff/textures/default_grass_side.png new file mode 100644 index 0000000..3cb330c Binary files /dev/null and b/diff/default.diff/textures/default_grass_side.png differ diff --git a/diff/default.diff/textures/default_gravel.png b/diff/default.diff/textures/default_gravel.png new file mode 100644 index 0000000..7178e70 Binary files /dev/null and b/diff/default.diff/textures/default_gravel.png differ diff --git a/diff/default.diff/textures/default_ice.png b/diff/default.diff/textures/default_ice.png new file mode 100644 index 0000000..a8b3409 Binary files /dev/null and b/diff/default.diff/textures/default_ice.png differ diff --git a/diff/default.diff/textures/default_iron_lump.png b/diff/default.diff/textures/default_iron_lump.png new file mode 100644 index 0000000..713a9c9 Binary files /dev/null and b/diff/default.diff/textures/default_iron_lump.png differ diff --git a/diff/default.diff/textures/default_item_smoke.png b/diff/default.diff/textures/default_item_smoke.png new file mode 100644 index 0000000..d62fb3b Binary files /dev/null and b/diff/default.diff/textures/default_item_smoke.png differ diff --git a/diff/default.diff/textures/default_jungle_grass.png b/diff/default.diff/textures/default_jungle_grass.png new file mode 100644 index 0000000..037e60b Binary files /dev/null and b/diff/default.diff/textures/default_jungle_grass.png differ diff --git a/diff/default.diff/textures/default_jungle_leaves.png b/diff/default.diff/textures/default_jungle_leaves.png new file mode 100644 index 0000000..e231247 Binary files /dev/null and b/diff/default.diff/textures/default_jungle_leaves.png differ diff --git a/diff/default.diff/textures/default_jungle_leaves_simple.png b/diff/default.diff/textures/default_jungle_leaves_simple.png new file mode 100644 index 0000000..b1b42fa Binary files /dev/null and b/diff/default.diff/textures/default_jungle_leaves_simple.png differ diff --git a/diff/default.diff/textures/default_jungle_sapling.png b/diff/default.diff/textures/default_jungle_sapling.png new file mode 100644 index 0000000..d84147d Binary files /dev/null and b/diff/default.diff/textures/default_jungle_sapling.png differ diff --git a/diff/default.diff/textures/default_jungle_sapling_bottom.png b/diff/default.diff/textures/default_jungle_sapling_bottom.png new file mode 100644 index 0000000..f6613a9 Binary files /dev/null and b/diff/default.diff/textures/default_jungle_sapling_bottom.png differ diff --git a/diff/default.diff/textures/default_jungle_sapling_side.png b/diff/default.diff/textures/default_jungle_sapling_side.png new file mode 100644 index 0000000..5f5c6b2 Binary files /dev/null and b/diff/default.diff/textures/default_jungle_sapling_side.png differ diff --git a/diff/default.diff/textures/default_jungle_sapling_top.png b/diff/default.diff/textures/default_jungle_sapling_top.png new file mode 100644 index 0000000..3048180 Binary files /dev/null and b/diff/default.diff/textures/default_jungle_sapling_top.png differ diff --git a/diff/default.diff/textures/default_jungle_tree.png b/diff/default.diff/textures/default_jungle_tree.png new file mode 100644 index 0000000..4e25d65 Binary files /dev/null and b/diff/default.diff/textures/default_jungle_tree.png differ diff --git a/diff/default.diff/textures/default_jungle_tree_top.png b/diff/default.diff/textures/default_jungle_tree_top.png new file mode 100644 index 0000000..0a75804 Binary files /dev/null and b/diff/default.diff/textures/default_jungle_tree_top.png differ diff --git a/diff/default.diff/textures/default_jungle_wood.png b/diff/default.diff/textures/default_jungle_wood.png new file mode 100644 index 0000000..670e23c Binary files /dev/null and b/diff/default.diff/textures/default_jungle_wood.png differ diff --git a/diff/default.diff/textures/default_junglegrass.png b/diff/default.diff/textures/default_junglegrass.png new file mode 100644 index 0000000..037e60b Binary files /dev/null and b/diff/default.diff/textures/default_junglegrass.png differ diff --git a/diff/default.diff/textures/default_jungleleaves.png b/diff/default.diff/textures/default_jungleleaves.png new file mode 100644 index 0000000..e231247 Binary files /dev/null and b/diff/default.diff/textures/default_jungleleaves.png differ diff --git a/diff/default.diff/textures/default_jungleleaves_simple.png b/diff/default.diff/textures/default_jungleleaves_simple.png new file mode 100644 index 0000000..b1b42fa Binary files /dev/null and b/diff/default.diff/textures/default_jungleleaves_simple.png differ diff --git a/diff/default.diff/textures/default_junglesapling.png b/diff/default.diff/textures/default_junglesapling.png new file mode 100644 index 0000000..d84147d Binary files /dev/null and b/diff/default.diff/textures/default_junglesapling.png differ diff --git a/diff/default.diff/textures/default_jungletree.png b/diff/default.diff/textures/default_jungletree.png new file mode 100644 index 0000000..4e25d65 Binary files /dev/null and b/diff/default.diff/textures/default_jungletree.png differ diff --git a/diff/default.diff/textures/default_jungletree_top.png b/diff/default.diff/textures/default_jungletree_top.png new file mode 100644 index 0000000..0a75804 Binary files /dev/null and b/diff/default.diff/textures/default_jungletree_top.png differ diff --git a/diff/default.diff/textures/default_junglewood.png b/diff/default.diff/textures/default_junglewood.png new file mode 100644 index 0000000..670e23c Binary files /dev/null and b/diff/default.diff/textures/default_junglewood.png differ diff --git a/diff/default.diff/textures/default_key.png b/diff/default.diff/textures/default_key.png new file mode 100644 index 0000000..783d313 Binary files /dev/null and b/diff/default.diff/textures/default_key.png differ diff --git a/diff/default.diff/textures/default_key_skeleton.png b/diff/default.diff/textures/default_key_skeleton.png new file mode 100644 index 0000000..2b3497d Binary files /dev/null and b/diff/default.diff/textures/default_key_skeleton.png differ diff --git a/diff/default.diff/textures/default_ladder.png b/diff/default.diff/textures/default_ladder.png new file mode 100644 index 0000000..1e65583 Binary files /dev/null and b/diff/default.diff/textures/default_ladder.png differ diff --git a/diff/default.diff/textures/default_ladder_steel.png b/diff/default.diff/textures/default_ladder_steel.png new file mode 100644 index 0000000..a312f3e Binary files /dev/null and b/diff/default.diff/textures/default_ladder_steel.png differ diff --git a/diff/default.diff/textures/default_ladder_wood.png b/diff/default.diff/textures/default_ladder_wood.png new file mode 100644 index 0000000..1e65583 Binary files /dev/null and b/diff/default.diff/textures/default_ladder_wood.png differ diff --git a/diff/default.diff/textures/default_lava.png b/diff/default.diff/textures/default_lava.png new file mode 100644 index 0000000..31f14f5 Binary files /dev/null and b/diff/default.diff/textures/default_lava.png differ diff --git a/diff/default.diff/textures/default_lava_flowing_animated.png b/diff/default.diff/textures/default_lava_flowing_animated.png new file mode 100644 index 0000000..e5eb8e8 Binary files /dev/null and b/diff/default.diff/textures/default_lava_flowing_animated.png differ diff --git a/diff/default.diff/textures/default_lava_source_animated.png b/diff/default.diff/textures/default_lava_source_animated.png new file mode 100644 index 0000000..2dc48ec Binary files /dev/null and b/diff/default.diff/textures/default_lava_source_animated.png differ diff --git a/diff/default.diff/textures/default_leaves.png b/diff/default.diff/textures/default_leaves.png new file mode 100644 index 0000000..56c86c4 Binary files /dev/null and b/diff/default.diff/textures/default_leaves.png differ diff --git a/diff/default.diff/textures/default_leaves_simple.png b/diff/default.diff/textures/default_leaves_simple.png new file mode 100644 index 0000000..8c3d82a Binary files /dev/null and b/diff/default.diff/textures/default_leaves_simple.png differ diff --git a/diff/default.diff/textures/default_mese_block.png b/diff/default.diff/textures/default_mese_block.png new file mode 100644 index 0000000..4d52849 Binary files /dev/null and b/diff/default.diff/textures/default_mese_block.png differ diff --git a/diff/default.diff/textures/default_mese_crystal.png b/diff/default.diff/textures/default_mese_crystal.png new file mode 100644 index 0000000..bc246ed Binary files /dev/null and b/diff/default.diff/textures/default_mese_crystal.png differ diff --git a/diff/default.diff/textures/default_mese_crystal_fragment.png b/diff/default.diff/textures/default_mese_crystal_fragment.png new file mode 100644 index 0000000..0384bd8 Binary files /dev/null and b/diff/default.diff/textures/default_mese_crystal_fragment.png differ diff --git a/diff/default.diff/textures/default_mese_post_light_side.png b/diff/default.diff/textures/default_mese_post_light_side.png new file mode 100644 index 0000000..c23b551 Binary files /dev/null and b/diff/default.diff/textures/default_mese_post_light_side.png differ diff --git a/diff/default.diff/textures/default_mese_post_light_side_dark.png b/diff/default.diff/textures/default_mese_post_light_side_dark.png new file mode 100644 index 0000000..c4fc7ce Binary files /dev/null and b/diff/default.diff/textures/default_mese_post_light_side_dark.png differ diff --git a/diff/default.diff/textures/default_mese_post_light_top.png b/diff/default.diff/textures/default_mese_post_light_top.png new file mode 100644 index 0000000..365c1a7 Binary files /dev/null and b/diff/default.diff/textures/default_mese_post_light_top.png differ diff --git a/diff/default.diff/textures/default_meselamp.png b/diff/default.diff/textures/default_meselamp.png new file mode 100644 index 0000000..0c3a1a1 Binary files /dev/null and b/diff/default.diff/textures/default_meselamp.png differ diff --git a/diff/default.diff/textures/default_mineral_coal.png b/diff/default.diff/textures/default_mineral_coal.png new file mode 100644 index 0000000..570760d Binary files /dev/null and b/diff/default.diff/textures/default_mineral_coal.png differ diff --git a/diff/default.diff/textures/default_mineral_copper.png b/diff/default.diff/textures/default_mineral_copper.png new file mode 100644 index 0000000..3322b94 Binary files /dev/null and b/diff/default.diff/textures/default_mineral_copper.png differ diff --git a/diff/default.diff/textures/default_mineral_diamond.png b/diff/default.diff/textures/default_mineral_diamond.png new file mode 100644 index 0000000..0559c5c Binary files /dev/null and b/diff/default.diff/textures/default_mineral_diamond.png differ diff --git a/diff/default.diff/textures/default_mineral_gold.png b/diff/default.diff/textures/default_mineral_gold.png new file mode 100644 index 0000000..aabfcce Binary files /dev/null and b/diff/default.diff/textures/default_mineral_gold.png differ diff --git a/diff/default.diff/textures/default_mineral_iron.png b/diff/default.diff/textures/default_mineral_iron.png new file mode 100644 index 0000000..c0b5abe Binary files /dev/null and b/diff/default.diff/textures/default_mineral_iron.png differ diff --git a/diff/default.diff/textures/default_mineral_mese.png b/diff/default.diff/textures/default_mineral_mese.png new file mode 100644 index 0000000..d698837 Binary files /dev/null and b/diff/default.diff/textures/default_mineral_mese.png differ diff --git a/diff/default.diff/textures/default_mineral_tin.png b/diff/default.diff/textures/default_mineral_tin.png new file mode 100644 index 0000000..232d4b5 Binary files /dev/null and b/diff/default.diff/textures/default_mineral_tin.png differ diff --git a/diff/default.diff/textures/default_mossycobble.png b/diff/default.diff/textures/default_mossycobble.png new file mode 100644 index 0000000..789558b Binary files /dev/null and b/diff/default.diff/textures/default_mossycobble.png differ diff --git a/diff/default.diff/textures/default_nc_back.png b/diff/default.diff/textures/default_nc_back.png new file mode 100644 index 0000000..4e71615 Binary files /dev/null and b/diff/default.diff/textures/default_nc_back.png differ diff --git a/diff/default.diff/textures/default_nc_front.png b/diff/default.diff/textures/default_nc_front.png new file mode 100644 index 0000000..f551021 Binary files /dev/null and b/diff/default.diff/textures/default_nc_front.png differ diff --git a/diff/default.diff/textures/default_nc_rb.png b/diff/default.diff/textures/default_nc_rb.png new file mode 100644 index 0000000..5b327ac Binary files /dev/null and b/diff/default.diff/textures/default_nc_rb.png differ diff --git a/diff/default.diff/textures/default_nc_side.png b/diff/default.diff/textures/default_nc_side.png new file mode 100644 index 0000000..e86c7e2 Binary files /dev/null and b/diff/default.diff/textures/default_nc_side.png differ diff --git a/diff/default.diff/textures/default_obsidian.png b/diff/default.diff/textures/default_obsidian.png new file mode 100644 index 0000000..bbc4713 Binary files /dev/null and b/diff/default.diff/textures/default_obsidian.png differ diff --git a/diff/default.diff/textures/default_obsidian_block.png b/diff/default.diff/textures/default_obsidian_block.png new file mode 100644 index 0000000..7e1d4d3 Binary files /dev/null and b/diff/default.diff/textures/default_obsidian_block.png differ diff --git a/diff/default.diff/textures/default_obsidian_brick.png b/diff/default.diff/textures/default_obsidian_brick.png new file mode 100644 index 0000000..30c67ca Binary files /dev/null and b/diff/default.diff/textures/default_obsidian_brick.png differ diff --git a/diff/default.diff/textures/default_obsidian_glass.png b/diff/default.diff/textures/default_obsidian_glass.png new file mode 100644 index 0000000..937a740 Binary files /dev/null and b/diff/default.diff/textures/default_obsidian_glass.png differ diff --git a/diff/default.diff/textures/default_obsidian_glass_detail.png b/diff/default.diff/textures/default_obsidian_glass_detail.png new file mode 100644 index 0000000..a8bbec9 Binary files /dev/null and b/diff/default.diff/textures/default_obsidian_glass_detail.png differ diff --git a/diff/default.diff/textures/default_obsidian_shard.png b/diff/default.diff/textures/default_obsidian_shard.png new file mode 100644 index 0000000..dc529ca Binary files /dev/null and b/diff/default.diff/textures/default_obsidian_shard.png differ diff --git a/diff/default.diff/textures/default_paper.png b/diff/default.diff/textures/default_paper.png new file mode 100644 index 0000000..420c49a Binary files /dev/null and b/diff/default.diff/textures/default_paper.png differ diff --git a/diff/default.diff/textures/default_papyrus.png b/diff/default.diff/textures/default_papyrus.png new file mode 100644 index 0000000..83cd837 Binary files /dev/null and b/diff/default.diff/textures/default_papyrus.png differ diff --git a/diff/default.diff/textures/default_pine_needles.png b/diff/default.diff/textures/default_pine_needles.png new file mode 100644 index 0000000..feb547f Binary files /dev/null and b/diff/default.diff/textures/default_pine_needles.png differ diff --git a/diff/default.diff/textures/default_pine_sapling.png b/diff/default.diff/textures/default_pine_sapling.png new file mode 100644 index 0000000..e86590c Binary files /dev/null and b/diff/default.diff/textures/default_pine_sapling.png differ diff --git a/diff/default.diff/textures/default_pine_sapling_bottom.png b/diff/default.diff/textures/default_pine_sapling_bottom.png new file mode 100644 index 0000000..f3efad6 Binary files /dev/null and b/diff/default.diff/textures/default_pine_sapling_bottom.png differ diff --git a/diff/default.diff/textures/default_pine_sapling_side.png b/diff/default.diff/textures/default_pine_sapling_side.png new file mode 100644 index 0000000..e5767e0 Binary files /dev/null and b/diff/default.diff/textures/default_pine_sapling_side.png differ diff --git a/diff/default.diff/textures/default_pine_sapling_top.png b/diff/default.diff/textures/default_pine_sapling_top.png new file mode 100644 index 0000000..658d3bc Binary files /dev/null and b/diff/default.diff/textures/default_pine_sapling_top.png differ diff --git a/diff/default.diff/textures/default_pine_tree.png b/diff/default.diff/textures/default_pine_tree.png new file mode 100644 index 0000000..9178327 Binary files /dev/null and b/diff/default.diff/textures/default_pine_tree.png differ diff --git a/diff/default.diff/textures/default_pine_tree_top.png b/diff/default.diff/textures/default_pine_tree_top.png new file mode 100644 index 0000000..37f3f28 Binary files /dev/null and b/diff/default.diff/textures/default_pine_tree_top.png differ diff --git a/diff/default.diff/textures/default_pine_wood.png b/diff/default.diff/textures/default_pine_wood.png new file mode 100644 index 0000000..81df66e Binary files /dev/null and b/diff/default.diff/textures/default_pine_wood.png differ diff --git a/diff/default.diff/textures/default_rail.png b/diff/default.diff/textures/default_rail.png new file mode 100644 index 0000000..18176d9 Binary files /dev/null and b/diff/default.diff/textures/default_rail.png differ diff --git a/diff/default.diff/textures/default_rail_crossing.png b/diff/default.diff/textures/default_rail_crossing.png new file mode 100644 index 0000000..9846405 Binary files /dev/null and b/diff/default.diff/textures/default_rail_crossing.png differ diff --git a/diff/default.diff/textures/default_rail_curved.png b/diff/default.diff/textures/default_rail_curved.png new file mode 100644 index 0000000..62afa3d Binary files /dev/null and b/diff/default.diff/textures/default_rail_curved.png differ diff --git a/diff/default.diff/textures/default_rail_t_junction.png b/diff/default.diff/textures/default_rail_t_junction.png new file mode 100644 index 0000000..9985f63 Binary files /dev/null and b/diff/default.diff/textures/default_rail_t_junction.png differ diff --git a/diff/default.diff/textures/default_rainforest_litter.png b/diff/default.diff/textures/default_rainforest_litter.png new file mode 100644 index 0000000..d762deb Binary files /dev/null and b/diff/default.diff/textures/default_rainforest_litter.png differ diff --git a/diff/default.diff/textures/default_rainforest_litter_side.png b/diff/default.diff/textures/default_rainforest_litter_side.png new file mode 100644 index 0000000..7ccb11d Binary files /dev/null and b/diff/default.diff/textures/default_rainforest_litter_side.png differ diff --git a/diff/default.diff/textures/default_river_water.png b/diff/default.diff/textures/default_river_water.png new file mode 100644 index 0000000..3b55c5f Binary files /dev/null and b/diff/default.diff/textures/default_river_water.png differ diff --git a/diff/default.diff/textures/default_river_water_flowing_animated.png b/diff/default.diff/textures/default_river_water_flowing_animated.png new file mode 100644 index 0000000..536acc5 Binary files /dev/null and b/diff/default.diff/textures/default_river_water_flowing_animated.png differ diff --git a/diff/default.diff/textures/default_river_water_source_animated.png b/diff/default.diff/textures/default_river_water_source_animated.png new file mode 100644 index 0000000..daa5653 Binary files /dev/null and b/diff/default.diff/textures/default_river_water_source_animated.png differ diff --git a/diff/default.diff/textures/default_sand.png b/diff/default.diff/textures/default_sand.png new file mode 100644 index 0000000..c0747ae Binary files /dev/null and b/diff/default.diff/textures/default_sand.png differ diff --git a/diff/default.diff/textures/default_sandstone.png b/diff/default.diff/textures/default_sandstone.png new file mode 100644 index 0000000..c46bfb9 Binary files /dev/null and b/diff/default.diff/textures/default_sandstone.png differ diff --git a/diff/default.diff/textures/default_sandstone_block.png b/diff/default.diff/textures/default_sandstone_block.png new file mode 100644 index 0000000..2e06491 Binary files /dev/null and b/diff/default.diff/textures/default_sandstone_block.png differ diff --git a/diff/default.diff/textures/default_sandstone_brick.png b/diff/default.diff/textures/default_sandstone_brick.png new file mode 100644 index 0000000..2d6574f Binary files /dev/null and b/diff/default.diff/textures/default_sandstone_brick.png differ diff --git a/diff/default.diff/textures/default_sapling.png b/diff/default.diff/textures/default_sapling.png new file mode 100644 index 0000000..73cd631 Binary files /dev/null and b/diff/default.diff/textures/default_sapling.png differ diff --git a/diff/default.diff/textures/default_sapling_bottom.png b/diff/default.diff/textures/default_sapling_bottom.png new file mode 100644 index 0000000..af96907 Binary files /dev/null and b/diff/default.diff/textures/default_sapling_bottom.png differ diff --git a/diff/default.diff/textures/default_sapling_side.png b/diff/default.diff/textures/default_sapling_side.png new file mode 100644 index 0000000..be8653c Binary files /dev/null and b/diff/default.diff/textures/default_sapling_side.png differ diff --git a/diff/default.diff/textures/default_sapling_top.png b/diff/default.diff/textures/default_sapling_top.png new file mode 100644 index 0000000..aa6a981 Binary files /dev/null and b/diff/default.diff/textures/default_sapling_top.png differ diff --git a/diff/default.diff/textures/default_scorched_stuff.png b/diff/default.diff/textures/default_scorched_stuff.png new file mode 100644 index 0000000..81dc477 Binary files /dev/null and b/diff/default.diff/textures/default_scorched_stuff.png differ diff --git a/diff/default.diff/textures/default_sign.png b/diff/default.diff/textures/default_sign.png new file mode 100644 index 0000000..27db080 Binary files /dev/null and b/diff/default.diff/textures/default_sign.png differ diff --git a/diff/default.diff/textures/default_sign_steel.png b/diff/default.diff/textures/default_sign_steel.png new file mode 100644 index 0000000..fd602c1 Binary files /dev/null and b/diff/default.diff/textures/default_sign_steel.png differ diff --git a/diff/default.diff/textures/default_sign_wall.png b/diff/default.diff/textures/default_sign_wall.png new file mode 100644 index 0000000..413bacd Binary files /dev/null and b/diff/default.diff/textures/default_sign_wall.png differ diff --git a/diff/default.diff/textures/default_sign_wall_steel.png b/diff/default.diff/textures/default_sign_wall_steel.png new file mode 100644 index 0000000..fd602c1 Binary files /dev/null and b/diff/default.diff/textures/default_sign_wall_steel.png differ diff --git a/diff/default.diff/textures/default_sign_wall_wood.png b/diff/default.diff/textures/default_sign_wall_wood.png new file mode 100644 index 0000000..413bacd Binary files /dev/null and b/diff/default.diff/textures/default_sign_wall_wood.png differ diff --git a/diff/default.diff/textures/default_sign_wood.png b/diff/default.diff/textures/default_sign_wood.png new file mode 100644 index 0000000..8951d2c Binary files /dev/null and b/diff/default.diff/textures/default_sign_wood.png differ diff --git a/diff/default.diff/textures/default_silver_sand.png b/diff/default.diff/textures/default_silver_sand.png new file mode 100644 index 0000000..c4a8f73 Binary files /dev/null and b/diff/default.diff/textures/default_silver_sand.png differ diff --git a/diff/default.diff/textures/default_silver_sandstone.png b/diff/default.diff/textures/default_silver_sandstone.png new file mode 100644 index 0000000..eac62cb Binary files /dev/null and b/diff/default.diff/textures/default_silver_sandstone.png differ diff --git a/diff/default.diff/textures/default_silver_sandstone_block.png b/diff/default.diff/textures/default_silver_sandstone_block.png new file mode 100644 index 0000000..9997461 Binary files /dev/null and b/diff/default.diff/textures/default_silver_sandstone_block.png differ diff --git a/diff/default.diff/textures/default_silver_sandstone_brick.png b/diff/default.diff/textures/default_silver_sandstone_brick.png new file mode 100644 index 0000000..93d87a5 Binary files /dev/null and b/diff/default.diff/textures/default_silver_sandstone_brick.png differ diff --git a/diff/default.diff/textures/default_snow.png b/diff/default.diff/textures/default_snow.png new file mode 100644 index 0000000..ee0b927 Binary files /dev/null and b/diff/default.diff/textures/default_snow.png differ diff --git a/diff/default.diff/textures/default_snow_side.png b/diff/default.diff/textures/default_snow_side.png new file mode 100644 index 0000000..d550097 Binary files /dev/null and b/diff/default.diff/textures/default_snow_side.png differ diff --git a/diff/default.diff/textures/default_snowball.png b/diff/default.diff/textures/default_snowball.png new file mode 100644 index 0000000..3e6e670 Binary files /dev/null and b/diff/default.diff/textures/default_snowball.png differ diff --git a/diff/default.diff/textures/default_steel_block.png b/diff/default.diff/textures/default_steel_block.png new file mode 100644 index 0000000..8a5c885 Binary files /dev/null and b/diff/default.diff/textures/default_steel_block.png differ diff --git a/diff/default.diff/textures/default_steel_ingot.png b/diff/default.diff/textures/default_steel_ingot.png new file mode 100644 index 0000000..c6992f0 Binary files /dev/null and b/diff/default.diff/textures/default_steel_ingot.png differ diff --git a/diff/default.diff/textures/default_stick.png b/diff/default.diff/textures/default_stick.png new file mode 100644 index 0000000..0442b79 Binary files /dev/null and b/diff/default.diff/textures/default_stick.png differ diff --git a/diff/default.diff/textures/default_stone.png b/diff/default.diff/textures/default_stone.png new file mode 100644 index 0000000..ed854b3 Binary files /dev/null and b/diff/default.diff/textures/default_stone.png differ diff --git a/diff/default.diff/textures/default_stone_block.png b/diff/default.diff/textures/default_stone_block.png new file mode 100644 index 0000000..c21eac1 Binary files /dev/null and b/diff/default.diff/textures/default_stone_block.png differ diff --git a/diff/default.diff/textures/default_stone_brick.png b/diff/default.diff/textures/default_stone_brick.png new file mode 100644 index 0000000..efddd7d Binary files /dev/null and b/diff/default.diff/textures/default_stone_brick.png differ diff --git a/diff/default.diff/textures/default_stone_normal.png b/diff/default.diff/textures/default_stone_normal.png new file mode 100644 index 0000000..278e3b6 Binary files /dev/null and b/diff/default.diff/textures/default_stone_normal.png differ diff --git a/diff/default.diff/textures/default_tin_block.png b/diff/default.diff/textures/default_tin_block.png new file mode 100644 index 0000000..7d3eeda Binary files /dev/null and b/diff/default.diff/textures/default_tin_block.png differ diff --git a/diff/default.diff/textures/default_tin_ingot.png b/diff/default.diff/textures/default_tin_ingot.png new file mode 100644 index 0000000..4f11a4e Binary files /dev/null and b/diff/default.diff/textures/default_tin_ingot.png differ diff --git a/diff/default.diff/textures/default_tin_lump.png b/diff/default.diff/textures/default_tin_lump.png new file mode 100644 index 0000000..68398db Binary files /dev/null and b/diff/default.diff/textures/default_tin_lump.png differ diff --git a/diff/default.diff/textures/default_tnt_bottom.png b/diff/default.diff/textures/default_tnt_bottom.png new file mode 100644 index 0000000..1bfaa43 Binary files /dev/null and b/diff/default.diff/textures/default_tnt_bottom.png differ diff --git a/diff/default.diff/textures/default_tnt_side.png b/diff/default.diff/textures/default_tnt_side.png new file mode 100644 index 0000000..2774d7e Binary files /dev/null and b/diff/default.diff/textures/default_tnt_side.png differ diff --git a/diff/default.diff/textures/default_tnt_top.png b/diff/default.diff/textures/default_tnt_top.png new file mode 100644 index 0000000..409df73 Binary files /dev/null and b/diff/default.diff/textures/default_tnt_top.png differ diff --git a/diff/default.diff/textures/default_tool_bronzeaxe.png b/diff/default.diff/textures/default_tool_bronzeaxe.png new file mode 100644 index 0000000..df8e3c1 Binary files /dev/null and b/diff/default.diff/textures/default_tool_bronzeaxe.png differ diff --git a/diff/default.diff/textures/default_tool_bronzepick.png b/diff/default.diff/textures/default_tool_bronzepick.png new file mode 100644 index 0000000..1ca3881 Binary files /dev/null and b/diff/default.diff/textures/default_tool_bronzepick.png differ diff --git a/diff/default.diff/textures/default_tool_bronzeshovel.png b/diff/default.diff/textures/default_tool_bronzeshovel.png new file mode 100644 index 0000000..5073571 Binary files /dev/null and b/diff/default.diff/textures/default_tool_bronzeshovel.png differ diff --git a/diff/default.diff/textures/default_tool_bronzesword.png b/diff/default.diff/textures/default_tool_bronzesword.png new file mode 100644 index 0000000..cc80a56 Binary files /dev/null and b/diff/default.diff/textures/default_tool_bronzesword.png differ diff --git a/diff/default.diff/textures/default_tool_diamondaxe.png b/diff/default.diff/textures/default_tool_diamondaxe.png new file mode 100644 index 0000000..603c884 Binary files /dev/null and b/diff/default.diff/textures/default_tool_diamondaxe.png differ diff --git a/diff/default.diff/textures/default_tool_diamondpick.png b/diff/default.diff/textures/default_tool_diamondpick.png new file mode 100644 index 0000000..85800ac Binary files /dev/null and b/diff/default.diff/textures/default_tool_diamondpick.png differ diff --git a/diff/default.diff/textures/default_tool_diamondshovel.png b/diff/default.diff/textures/default_tool_diamondshovel.png new file mode 100644 index 0000000..f2112ba Binary files /dev/null and b/diff/default.diff/textures/default_tool_diamondshovel.png differ diff --git a/diff/default.diff/textures/default_tool_diamondsword.png b/diff/default.diff/textures/default_tool_diamondsword.png new file mode 100644 index 0000000..af5d739 Binary files /dev/null and b/diff/default.diff/textures/default_tool_diamondsword.png differ diff --git a/diff/default.diff/textures/default_tool_meseaxe.png b/diff/default.diff/textures/default_tool_meseaxe.png new file mode 100644 index 0000000..4b75155 Binary files /dev/null and b/diff/default.diff/textures/default_tool_meseaxe.png differ diff --git a/diff/default.diff/textures/default_tool_mesepick.png b/diff/default.diff/textures/default_tool_mesepick.png new file mode 100644 index 0000000..9af5c18 Binary files /dev/null and b/diff/default.diff/textures/default_tool_mesepick.png differ diff --git a/diff/default.diff/textures/default_tool_meseshovel.png b/diff/default.diff/textures/default_tool_meseshovel.png new file mode 100644 index 0000000..ee93058 Binary files /dev/null and b/diff/default.diff/textures/default_tool_meseshovel.png differ diff --git a/diff/default.diff/textures/default_tool_mesesword.png b/diff/default.diff/textures/default_tool_mesesword.png new file mode 100644 index 0000000..36f1a27 Binary files /dev/null and b/diff/default.diff/textures/default_tool_mesesword.png differ diff --git a/diff/default.diff/textures/default_tool_steelaxe.png b/diff/default.diff/textures/default_tool_steelaxe.png new file mode 100644 index 0000000..377ea9a Binary files /dev/null and b/diff/default.diff/textures/default_tool_steelaxe.png differ diff --git a/diff/default.diff/textures/default_tool_steelpick.png b/diff/default.diff/textures/default_tool_steelpick.png new file mode 100644 index 0000000..44e1ca1 Binary files /dev/null and b/diff/default.diff/textures/default_tool_steelpick.png differ diff --git a/diff/default.diff/textures/default_tool_steelpick.png.png b/diff/default.diff/textures/default_tool_steelpick.png.png new file mode 100644 index 0000000..27a304f Binary files /dev/null and b/diff/default.diff/textures/default_tool_steelpick.png.png differ diff --git a/diff/default.diff/textures/default_tool_steelshovel.png b/diff/default.diff/textures/default_tool_steelshovel.png new file mode 100644 index 0000000..4b03b68 Binary files /dev/null and b/diff/default.diff/textures/default_tool_steelshovel.png differ diff --git a/diff/default.diff/textures/default_tool_steelsword.png b/diff/default.diff/textures/default_tool_steelsword.png new file mode 100644 index 0000000..3a38ec8 Binary files /dev/null and b/diff/default.diff/textures/default_tool_steelsword.png differ diff --git a/diff/default.diff/textures/default_tool_stoneaxe.png b/diff/default.diff/textures/default_tool_stoneaxe.png new file mode 100644 index 0000000..61f9c6d Binary files /dev/null and b/diff/default.diff/textures/default_tool_stoneaxe.png differ diff --git a/diff/default.diff/textures/default_tool_stonepick.png b/diff/default.diff/textures/default_tool_stonepick.png new file mode 100644 index 0000000..8aee15f Binary files /dev/null and b/diff/default.diff/textures/default_tool_stonepick.png differ diff --git a/diff/default.diff/textures/default_tool_stoneshovel.png b/diff/default.diff/textures/default_tool_stoneshovel.png new file mode 100644 index 0000000..1f6dc4d Binary files /dev/null and b/diff/default.diff/textures/default_tool_stoneshovel.png differ diff --git a/diff/default.diff/textures/default_tool_stonesword.png b/diff/default.diff/textures/default_tool_stonesword.png new file mode 100644 index 0000000..27e0eda Binary files /dev/null and b/diff/default.diff/textures/default_tool_stonesword.png differ diff --git a/diff/default.diff/textures/default_tool_woodaxe.png b/diff/default.diff/textures/default_tool_woodaxe.png new file mode 100644 index 0000000..f8ef949 Binary files /dev/null and b/diff/default.diff/textures/default_tool_woodaxe.png differ diff --git a/diff/default.diff/textures/default_tool_woodpick.png b/diff/default.diff/textures/default_tool_woodpick.png new file mode 100644 index 0000000..00bb026 Binary files /dev/null and b/diff/default.diff/textures/default_tool_woodpick.png differ diff --git a/diff/default.diff/textures/default_tool_woodshovel.png b/diff/default.diff/textures/default_tool_woodshovel.png new file mode 100644 index 0000000..cd7f246 Binary files /dev/null and b/diff/default.diff/textures/default_tool_woodshovel.png differ diff --git a/diff/default.diff/textures/default_tool_woodsword.png b/diff/default.diff/textures/default_tool_woodsword.png new file mode 100644 index 0000000..8c08b2f Binary files /dev/null and b/diff/default.diff/textures/default_tool_woodsword.png differ diff --git a/diff/default.diff/textures/default_torch.png b/diff/default.diff/textures/default_torch.png new file mode 100644 index 0000000..c4690e1 Binary files /dev/null and b/diff/default.diff/textures/default_torch.png differ diff --git a/diff/default.diff/textures/default_torch_inventory.png b/diff/default.diff/textures/default_torch_inventory.png new file mode 100644 index 0000000..0b3486b Binary files /dev/null and b/diff/default.diff/textures/default_torch_inventory.png differ diff --git a/diff/default.diff/textures/default_torch_out.png b/diff/default.diff/textures/default_torch_out.png new file mode 100644 index 0000000..d23e565 Binary files /dev/null and b/diff/default.diff/textures/default_torch_out.png differ diff --git a/diff/default.diff/textures/default_tree.png b/diff/default.diff/textures/default_tree.png new file mode 100644 index 0000000..35e072a Binary files /dev/null and b/diff/default.diff/textures/default_tree.png differ diff --git a/diff/default.diff/textures/default_tree_top.png b/diff/default.diff/textures/default_tree_top.png new file mode 100644 index 0000000..a02e332 Binary files /dev/null and b/diff/default.diff/textures/default_tree_top.png differ diff --git a/diff/default.diff/textures/default_water.png b/diff/default.diff/textures/default_water.png new file mode 100644 index 0000000..040b817 Binary files /dev/null and b/diff/default.diff/textures/default_water.png differ diff --git a/diff/default.diff/textures/default_water_flowing_animated.png b/diff/default.diff/textures/default_water_flowing_animated.png new file mode 100644 index 0000000..aae8366 Binary files /dev/null and b/diff/default.diff/textures/default_water_flowing_animated.png differ diff --git a/diff/default.diff/textures/default_water_source_animated.png b/diff/default.diff/textures/default_water_source_animated.png new file mode 100644 index 0000000..040b817 Binary files /dev/null and b/diff/default.diff/textures/default_water_source_animated.png differ diff --git a/diff/default.diff/textures/default_wood.png b/diff/default.diff/textures/default_wood.png new file mode 100644 index 0000000..1e1660d Binary files /dev/null and b/diff/default.diff/textures/default_wood.png differ diff --git a/diff/default.diff/textures/gui_formbg.png b/diff/default.diff/textures/gui_formbg.png new file mode 100644 index 0000000..b7d69da Binary files /dev/null and b/diff/default.diff/textures/gui_formbg.png differ diff --git a/diff/default.diff/textures/gui_furnace_arrow_bg.png b/diff/default.diff/textures/gui_furnace_arrow_bg.png new file mode 100644 index 0000000..a4a4f11 Binary files /dev/null and b/diff/default.diff/textures/gui_furnace_arrow_bg.png differ diff --git a/diff/default.diff/textures/gui_furnace_arrow_fg.png b/diff/default.diff/textures/gui_furnace_arrow_fg.png new file mode 100644 index 0000000..a5a18a9 Binary files /dev/null and b/diff/default.diff/textures/gui_furnace_arrow_fg.png differ diff --git a/diff/default.diff/textures/gui_hb_bg.png b/diff/default.diff/textures/gui_hb_bg.png new file mode 100644 index 0000000..99248e1 Binary files /dev/null and b/diff/default.diff/textures/gui_hb_bg.png differ diff --git a/diff/default.diff/textures/heart.png b/diff/default.diff/textures/heart.png new file mode 100644 index 0000000..8f9ec05 Binary files /dev/null and b/diff/default.diff/textures/heart.png differ diff --git a/diff/default.diff/textures/player.png b/diff/default.diff/textures/player.png new file mode 100644 index 0000000..3e6fb67 Binary files /dev/null and b/diff/default.diff/textures/player.png differ diff --git a/diff/default.diff/textures/player_back.png b/diff/default.diff/textures/player_back.png new file mode 100644 index 0000000..d66acb6 Binary files /dev/null and b/diff/default.diff/textures/player_back.png differ diff --git a/diff/default.diff/textures/treeprop.png b/diff/default.diff/textures/treeprop.png new file mode 100644 index 0000000..e0093b3 Binary files /dev/null and b/diff/default.diff/textures/treeprop.png differ diff --git a/diff/default.diff/textures/trees_jungletree_sapling.png b/diff/default.diff/textures/trees_jungletree_sapling.png new file mode 100644 index 0000000..e86590c Binary files /dev/null and b/diff/default.diff/textures/trees_jungletree_sapling.png differ diff --git a/diff/default.diff/textures/trees_leaves_green.png b/diff/default.diff/textures/trees_leaves_green.png new file mode 100644 index 0000000..5378e22 Binary files /dev/null and b/diff/default.diff/textures/trees_leaves_green.png differ diff --git a/diff/default.diff/textures/trees_leaves_palm.png b/diff/default.diff/textures/trees_leaves_palm.png new file mode 100644 index 0000000..fa922c8 Binary files /dev/null and b/diff/default.diff/textures/trees_leaves_palm.png differ diff --git a/diff/default.diff/textures/trees_leaves_red.png b/diff/default.diff/textures/trees_leaves_red.png new file mode 100644 index 0000000..92411f7 Binary files /dev/null and b/diff/default.diff/textures/trees_leaves_red.png differ diff --git a/diff/default.diff/textures/trees_leaves_yellow.png b/diff/default.diff/textures/trees_leaves_yellow.png new file mode 100644 index 0000000..b61d697 Binary files /dev/null and b/diff/default.diff/textures/trees_leaves_yellow.png differ diff --git a/diff/default.diff/textures/trees_sapling_palm.png b/diff/default.diff/textures/trees_sapling_palm.png new file mode 100644 index 0000000..e86590c Binary files /dev/null and b/diff/default.diff/textures/trees_sapling_palm.png differ diff --git a/diff/default.diff/textures/trees_tree_palm.png b/diff/default.diff/textures/trees_tree_palm.png new file mode 100644 index 0000000..c4db26d Binary files /dev/null and b/diff/default.diff/textures/trees_tree_palm.png differ diff --git a/diff/default.diff/textures/trees_tree_top_palm.png b/diff/default.diff/textures/trees_tree_top_palm.png new file mode 100644 index 0000000..9261bc1 Binary files /dev/null and b/diff/default.diff/textures/trees_tree_top_palm.png differ diff --git a/diff/default.diff/textures/trees_tree_top_palm2.png b/diff/default.diff/textures/trees_tree_top_palm2.png new file mode 100644 index 0000000..38bb451 Binary files /dev/null and b/diff/default.diff/textures/trees_tree_top_palm2.png differ diff --git a/diff/default.diff/textures/trees_wood_palm.png b/diff/default.diff/textures/trees_wood_palm.png new file mode 100644 index 0000000..51533a2 Binary files /dev/null and b/diff/default.diff/textures/trees_wood_palm.png differ diff --git a/diff/default.diff/textures/wieldhand.png b/diff/default.diff/textures/wieldhand.png new file mode 100644 index 0000000..54ffb5d Binary files /dev/null and b/diff/default.diff/textures/wieldhand.png differ diff --git a/diff/default.diff/tools.lua b/diff/default.diff/tools.lua new file mode 100644 index 0000000..37e126b --- /dev/null +++ b/diff/default.diff/tools.lua @@ -0,0 +1,810 @@ +-- mods/default/tools.lua + +local place_tool = function(itemstack, direction, meta1, meta2, pt, tool) +-- minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:" .. tool .. "_deco", param2=direction}) +-- meta1:set_int("wear", itemstack:get_wear()) +-- meta2:set_int("wear", itemstack:get_wear()) +-- itemstack:take_item() + return itemstack +end + + +-- The hand +minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + wield_scale = {x=1,y=1,z=2.5}, + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 0, + groupcaps = { + crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1}, + snappy = {times={[3]=0.40}, uses=0, maxlevel=1}, + oddly_breakable_by_hand = {times={[1]=3.50,[2]=2.00,[3]=0.70}, uses=0} + }, + damage_groups = {fleshy=1}, + } +}) + +-- +-- Picks +-- + +minetest.register_tool("default:pick_wood", { + description = "Wooden Pickaxe", + inventory_image = "default_tool_woodpick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + cracky = {times={[3]=1.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_wood_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:pick_stone", { + description = "Stone Pickaxe", + inventory_image = "default_tool_stonepick.png", + tool_capabilities = { + full_punch_interval = 1.3, + max_drop_level=0, + groupcaps={ + cracky = {times={[2]=2.0, [3]=1.00}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_stone_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:pick_steel", { + description = "Steel Pickaxe", + inventory_image = "default_tool_steelpick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=20, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_steel_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:pick_bronze", { + description = "Bronze Pickaxe", + inventory_image = "default_tool_bronzepick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_bronze_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:pick_mese", { + description = "Mese Pickaxe", + inventory_image = "default_tool_mesepick.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=2.4, [2]=1.2, [3]=0.60}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_mese_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:pick_diamond", { + description = "Diamond Pickaxe", + inventory_image = "default_tool_diamondpick.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=2.0, [2]=1.0, [3]=0.50}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_diamond_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +-- +-- Shovels +-- + +minetest.register_tool("default:shovel_wood", { + description = "Wooden Shovel", + inventory_image = "default_tool_woodshovel.png", + wield_image = "default_tool_woodshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + groups = {flammable = 2}, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_wood_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:shovel_stone", { + description = "Stone Shovel", + inventory_image = "default_tool_stoneshovel.png", + wield_image = "default_tool_stoneshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.4, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_stone_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:shovel_steel", { + description = "Steel Shovel", + inventory_image = "default_tool_steelshovel.png", + wield_image = "default_tool_steelshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_stone_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, + on_place = function(itemstack, placer, pointed_thing) + place_tool(itemstack, minetest.dir_to_facedir(placer:get_look_dir()), + minetest.env:get_meta({x=pointed_thing.under.x, y=pointed_thing.under.y , z=pointed_thing.under.z}), + minetest.env:get_meta({x=pointed_thing.under.x, y=pointed_thing.under.y+1, z=pointed_thing.under.z}), + pointed_thing, "shovel_steel"); + end, +}) + +minetest.register_tool("default:shovel_bronze", { + description = "Bronze Shovel", + inventory_image = "default_tool_bronzeshovel.png", + wield_image = "default_tool_bronzeshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=40, maxlevel=2}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_bronze_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:shovel_mese", { + description = "Mese Shovel", + inventory_image = "default_tool_meseshovel.png", + wield_image = "default_tool_meseshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=3, + groupcaps={ + crumbly = {times={[1]=1.20, [2]=0.60, [3]=0.30}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_mese_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:shovel_diamond", { + description = "Diamond Shovel", + inventory_image = "default_tool_diamondshovel.png", + wield_image = "default_tool_diamondshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.10, [2]=0.50, [3]=0.30}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_diamond_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +-- +-- Axes +-- + +minetest.register_tool("default:axe_wood", { + description = "Wooden Axe", + inventory_image = "default_tool_woodaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=0, + groupcaps={ + choppy = {times={[2]=3.00, [3]=1.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + groups = {flammable = 2}, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_wood_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:axe_stone", { + description = "Stone Axe", + inventory_image = "default_tool_stoneaxe.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + choppy={times={[1]=3.00, [2]=2.00, [3]=1.30}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_stone_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:axe_steel", { + description = "Steel Axe", + inventory_image = "default_tool_steelaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=20, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_steel_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:axe_bronze", { + description = "Bronze Axe", + inventory_image = "default_tool_bronzeaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_bronze_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:axe_mese", { + description = "Mese Axe", + inventory_image = "default_tool_meseaxe.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.20, [2]=1.00, [3]=0.60}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=6}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_mese_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:axe_diamond", { + description = "Diamond Axe", + inventory_image = "default_tool_diamondaxe.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=7}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_diamond_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +-- +-- Swords +-- + +minetest.register_tool("default:sword_wood", { + description = "Wooden Sword", + inventory_image = "default_tool_woodsword.png", + tool_capabilities = { + full_punch_interval = 1, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + groups = {flammable = 2}, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_wood_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:sword_stone", { + description = "Stone Sword", + inventory_image = "default_tool_stonesword.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_stone_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:sword_steel", { + description = "Steel Sword", + inventory_image = "default_tool_steelsword.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=6}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_steel_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:sword_bronze", { + description = "Bronze Sword", + inventory_image = "default_tool_bronzesword.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=40, maxlevel=2}, + }, + damage_groups = {fleshy=6}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_bronze_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:sword_mese", { + description = "Mese Sword", + inventory_image = "default_tool_mesesword.png", + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.0, [2]=1.00, [3]=0.35}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=7}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_mese_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:sword_diamond", { + description = "Diamond Sword", + inventory_image = "default_tool_diamondsword.png", + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=40, maxlevel=3}, + }, + damage_groups = {fleshy=8}, + }, + sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_diamond_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, +}) + +minetest.register_tool("default:key", { + description = "Key", + inventory_image = "default_key.png", + groups = {key = 1, not_in_creative_inventory = 1}, + stack_max = 1, + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local def = minetest.registered_nodes[node.name] + if def and def.on_rightclick and + not (placer and placer:get_player_control().sneak) then + return def.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + if pointed_thing.type ~= "node" then + return itemstack + end + + local pos = pointed_thing.under + node = minetest.get_node(pos) + + if not node or node.name == "ignore" then + return itemstack + end + + local ndef = minetest.registered_nodes[node.name] + if not ndef then + return itemstack + end + + local on_key_use = ndef.on_key_use + if on_key_use then + on_key_use(pos, placer) + end + + return nil + end +}) + + +local register_deco_block = function(tool_name, tool_tiles, tool_nodebox) + minetest.register_node(tool_name.."_deco", { + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = tool_tiles, + groups = { + snappy=3, + flammable=2, + not_in_creative_inventory=1 + }, + node_box = { + type = "fixed", + fixed = tool_nodebox, + }, + sounds = default.node_sound_wood_defaults(), + on_dig = function(pos, node, digger) + if digger:is_player() and digger:get_inventory() then + local meta = minetest.env:get_meta(pos) + local wear_out = meta:get_int("wear") + digger:get_inventory():add_item("main", {name=tool_name, count=1, wear=wear_out, metadata=""}) + end + minetest.remove_node(pos) + end, +}) +end + +local register_deco_block_materials = function(material, top) + register_deco_block("default:pick_"..material, {top, "default_tool_"..material.."pick.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-0.5/3, 0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3}}) + register_deco_block("default:shovel_"..material, {top, "default_tool_"..material.."shovel.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}}) + register_deco_block("default:axe_"..material, {top, top, "default_tool_"..material.."axe.png^[transformFX", "default_tool_"..material.."axe.png", "default_tool_"..material.."axe.png^[combine:6x6:2,0=".."default_tool_"..material.."axe.png", "default_tool_"..material.."axe.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-0.5/3, 0.5/3, -0.5/3, 0.5/3, 1.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3}}) + register_deco_block("default:sword_"..material, {top, "default_tool_"..material.."sword.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}}) +end +register_deco_block_materials("stone", "default_cobble.png") +register_deco_block_materials("wood", "default_wood.png") +register_deco_block_materials("steel", "default_steel_block.png") +register_deco_block_materials("bronze", "default_bronze_block.png") +register_deco_block_materials("mese", "default_mese_block.png") +register_deco_block_materials("diamond", "default_diamond_block.png") diff --git a/diff/default.diff/tools.lua.diff b/diff/default.diff/tools.lua.diff new file mode 100644 index 0000000..fa5b90a --- /dev/null +++ b/diff/default.diff/tools.lua.diff @@ -0,0 +1,424 @@ +2a3,11 +> local place_tool = function(itemstack, direction, meta1, meta2, pt, tool) +> -- minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:" .. tool .. "_deco", param2=direction}) +> -- meta1:set_int("wear", itemstack:get_wear()) +> -- meta2:set_int("wear", itemstack:get_wear()) +> -- itemstack:take_item() +> return itemstack +> end +> +> +35d43 +< groups = {flammable = 2}, +36a45,58 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_wood_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +50a73,86 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_stone_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +64a101,114 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_steel_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +78a129,142 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_bronze_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +92a157,170 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_mese_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +106a185,198 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_diamond_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +126a219,232 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_wood_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +141a248,261 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_stone_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +156a277,296 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_stone_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +> on_place = function(itemstack, placer, pointed_thing) +> place_tool(itemstack, minetest.dir_to_facedir(placer:get_look_dir()), +> minetest.env:get_meta({x=pointed_thing.under.x, y=pointed_thing.under.y , z=pointed_thing.under.z}), +> minetest.env:get_meta({x=pointed_thing.under.x, y=pointed_thing.under.y+1, z=pointed_thing.under.z}), +> pointed_thing, "shovel_steel"); +> end, +171a312,325 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_bronze_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +186a341,354 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_mese_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +201a370,383 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_diamond_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +220a403,416 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_wood_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +234a431,444 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_stone_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +248a459,472 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_steel_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +262a487,500 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_bronze_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +276a515,528 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_mese_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +286c538 +< choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2}, +--- +> choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=3}, +290a543,556 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_diamond_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +309a576,589 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_wood_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +323a604,617 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_stone_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +337a632,645 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_steel_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +351a660,673 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_bronze_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +365a688,701 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_mese_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +379a716,729 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_diamond_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +419a770,810 +> +> +> local register_deco_block = function(tool_name, tool_tiles, tool_nodebox) +> minetest.register_node(tool_name.."_deco", { +> drawtype = "nodebox", +> paramtype = "light", +> paramtype2 = "facedir", +> tiles = tool_tiles, +> groups = { +> snappy=3, +> flammable=2, +> not_in_creative_inventory=1 +> }, +> node_box = { +> type = "fixed", +> fixed = tool_nodebox, +> }, +> sounds = default.node_sound_wood_defaults(), +> on_dig = function(pos, node, digger) +> if digger:is_player() and digger:get_inventory() then +> local meta = minetest.env:get_meta(pos) +> local wear_out = meta:get_int("wear") +> digger:get_inventory():add_item("main", {name=tool_name, count=1, wear=wear_out, metadata=""}) +> end +> minetest.remove_node(pos) +> end, +> }) +> end +> +> local register_deco_block_materials = function(material, top) +> register_deco_block("default:pick_"..material, {top, "default_tool_"..material.."pick.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-0.5/3, 0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3}}) +> register_deco_block("default:shovel_"..material, {top, "default_tool_"..material.."shovel.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}}) +> register_deco_block("default:axe_"..material, {top, top, "default_tool_"..material.."axe.png^[transformFX", "default_tool_"..material.."axe.png", "default_tool_"..material.."axe.png^[combine:6x6:2,0=".."default_tool_"..material.."axe.png", "default_tool_"..material.."axe.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-0.5/3, 0.5/3, -0.5/3, 0.5/3, 1.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3}}) +> register_deco_block("default:sword_"..material, {top, "default_tool_"..material.."sword.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}}) +> end +> register_deco_block_materials("stone", "default_cobble.png") +> register_deco_block_materials("wood", "default_wood.png") +> register_deco_block_materials("steel", "default_steel_block.png") +> register_deco_block_materials("bronze", "default_bronze_block.png") +> register_deco_block_materials("mese", "default_mese_block.png") +> register_deco_block_materials("diamond", "default_diamond_block.png") diff --git a/diff/default.diff/torch.lua b/diff/default.diff/torch.lua new file mode 100644 index 0000000..3c3ae96 --- /dev/null +++ b/diff/default.diff/torch.lua @@ -0,0 +1,146 @@ + +--[[ + +Torch mod - formerly mod "Torches" +====================== + +(c) Copyright BlockMen (2013-2015) +(C) Copyright sofar (2016) + +This mod changes the default torch drawtype from "torchlike" to "mesh", +giving the torch a three dimensional appearance. The mesh contains the +proper pixel mapping to make the animation appear as a particle above +the torch, while in fact the animation is just the texture of the mesh. + + +License: +~~~~~~~~ +(c) Copyright BlockMen (2013-2015) + +Textures and Meshes/Models: +CC-BY 3.0 BlockMen +Note that the models were entirely done from scratch by sofar. + +Code: +Licensed under the GNU LGPL version 2.1 or higher. +You can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License +as published by the Free Software Foundation; + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +See LICENSE.txt and http://www.gnu.org/licenses/lgpl-2.1.txt + +--]] + +minetest.register_node("default:torch", { + description = "Torch", + drawtype = "mesh", + mesh = "torch_floor.obj", + inventory_image = "default_torch_on_floor.png", + wield_image = "default_torch_on_floor.png", + tiles = {{ + name = "default_torch_on_floor_animated.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + }}, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + liquids_pointable = false, + light_source = 12, + groups = {choppy=2, dig_immediate=3, flammable=1, attached_node=1, torch=1}, + drop = "default:torch", + selection_box = { + type = "wallmounted", + wall_bottom = {-1/8, -1/2, -1/8, 1/8, 2/16, 1/8}, + }, + sounds = default.node_sound_wood_defaults(), + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local def = minetest.registered_nodes[node.name] + if def and def.on_rightclick and + ((not placer) or (placer and not placer:get_player_control().sneak)) then + return def.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + local above = pointed_thing.above + local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above)) + local fakestack = itemstack + if wdir == 0 then + fakestack:set_name("default:torch_ceiling") + elseif wdir == 1 then + fakestack:set_name("default:torch") + else + fakestack:set_name("default:torch_wall") + end + + itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir) + itemstack:set_name("default:torch") + + return itemstack + end +}) + +minetest.register_node("default:torch_wall", { + drawtype = "mesh", + mesh = "torch_wall.obj", + tiles = {{ + name = "default_torch_on_floor_animated.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + }}, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 12, + groups = {choppy=2, dig_immediate=3, flammable=1, not_in_creative_inventory=1, attached_node=1, torch=1}, + drop = "default:torch", + selection_box = { + type = "wallmounted", + wall_side = {-1/2, -1/2, -1/8, -1/8, 1/8, 1/8}, + }, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:torch_ceiling", { + drawtype = "mesh", + mesh = "torch_ceiling.obj", + tiles = {{ + name = "default_torch_on_floor_animated.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + }}, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 12, + groups = {choppy=2, dig_immediate=3, flammable=1, not_in_creative_inventory=1, attached_node=1, torch=1}, + drop = "default:torch", + selection_box = { + type = "wallmounted", + wall_top = {-1/8, -1/16, -5/16, 1/8, 1/2, 1/8}, + }, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_lbm({ + name = "default:3dtorch", + nodenames = {"default:torch", "torches:floor", "torches:wall"}, + action = function(pos, node) + if node.param2 == 0 then + minetest.set_node(pos, {name = "default:torch_ceiling", + param2 = node.param2}) + elseif node.param2 == 1 then + minetest.set_node(pos, {name = "default:torch", + param2 = node.param2}) + else + minetest.set_node(pos, {name = "default:torch_wall", + param2 = node.param2}) + end + end +}) diff --git a/diff/default.diff/trees.lua b/diff/default.diff/trees.lua new file mode 100644 index 0000000..b2687c9 --- /dev/null +++ b/diff/default.diff/trees.lua @@ -0,0 +1,557 @@ +local random = math.random + +-- +-- Grow trees from saplings +-- + +-- 'can grow' function + +function default.can_grow(pos) + local node_under = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) + if not node_under then + return false + end + local name_under = node_under.name + local is_soil = minetest.get_item_group(name_under, "soil") + if is_soil == 0 then + return false + end + local light_level = minetest.get_node_light(pos) + if not light_level or light_level < 10 then + return false + end + return true +end + + +-- 'is snow nearby' function + +local function is_snow_nearby(pos) + return minetest.find_node_near(pos, 1, {"group:snowy"}) +end + + +-- Grow sapling + +function default.grow_sapling(pos) + if not default.can_grow(pos) then + -- try again 5 min later + minetest.get_node_timer(pos):start(1) + return + end + + local mg_name = minetest.get_mapgen_setting("mg_name") + local node = minetest.get_node(pos) + if node.name == "default:sapling" then + minetest.log("action", "A sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + if mg_name == "v6" then + default.grow_tree(pos, random(1, 4) == 1) + else + default.grow_new_apple_tree(pos) + end + elseif node.name == "default:junglesapling" then + minetest.log("action", "A jungle sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + if mg_name == "v6" then + default.grow_jungle_tree(pos) + else + default.grow_new_jungle_tree(pos) + end + elseif node.name == "default:pine_sapling" then + minetest.log("action", "A pine sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + local snow = is_snow_nearby(pos) + if mg_name == "v6" then + default.grow_pine_tree(pos, snow) + elseif snow then + default.grow_new_snowy_pine_tree(pos) + else + default.grow_new_pine_tree(pos) + end + elseif node.name == "default:acacia_sapling" then + minetest.log("action", "An acacia sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + default.grow_new_acacia_tree(pos) + elseif node.name == "default:aspen_sapling" then + minetest.log("action", "An aspen sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + default.grow_new_aspen_tree(pos) + elseif node.name == "default:bush_sapling" then + minetest.log("action", "A bush sapling grows into a bush at ".. + minetest.pos_to_string(pos)) + default.grow_bush(pos) + elseif node.name == "default:acacia_bush_sapling" then + minetest.log("action", "An acacia bush sapling grows into a bush at ".. + minetest.pos_to_string(pos)) + default.grow_acacia_bush(pos) + end +end + +minetest.register_lbm({ + name = "default:convert_saplings_to_node_timer", + nodenames = {"default:sapling", "default:junglesapling", + "default:pine_sapling", "default:acacia_sapling", + "default:aspen_sapling"}, + action = function(pos) + minetest.get_node_timer(pos):start(math.random(10, 11)) + end +}) + +-- +-- Tree generation +-- + +-- Apple tree and jungle tree trunk and leaves function + +local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid, + height, size, iters, is_apple_tree) + local x, y, z = pos.x, pos.y, pos.z + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_apple = minetest.get_content_id("default:apple") + + -- Trunk + data[a:index(x, y, z)] = tree_cid -- Force-place lowest trunk node to replace sapling + for yy = y + 1, y + height - 1 do + local vi = a:index(x, yy, z) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or node_id == leaves_cid then + data[vi] = tree_cid + end + end + + -- Force leaves near the trunk + for z_dist = -1, 1 do + for y_dist = -size, 1 do + local vi = a:index(x - 1, y + height + y_dist, z + z_dist) + for x_dist = -1, 1 do + if data[vi] == c_air or data[vi] == c_ignore then + if is_apple_tree and random(1, 8) == 1 then + data[vi] = c_apple + else + data[vi] = leaves_cid + end + end + vi = vi + 1 + end + end + end + + -- Randomly add leaves in 2x2x2 clusters. + for i = 1, iters do + local clust_x = x + random(-size, size - 1) + local clust_y = y + height + random(-size, 0) + local clust_z = z + random(-size, size - 1) + + for xi = 0, 1 do + for yi = 0, 1 do + for zi = 0, 1 do + local vi = a:index(clust_x + xi, clust_y + yi, clust_z + zi) + if data[vi] == c_air or data[vi] == c_ignore then + if is_apple_tree and random(1, 8) == 1 then + data[vi] = c_apple + else + data[vi] = leaves_cid + end + end + end + end + end + end +end + + +-- Apple tree + +function default.grow_tree(pos, is_apple_tree, bad) + --[[ + NOTE: Tree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + --]] + if bad then + error("Deprecated use of default.grow_tree") + end + + local x, y, z = pos.x, pos.y, pos.z + local height = random(4, 5) + local c_tree = minetest.get_content_id("default:tree") + local c_leaves = minetest.get_content_id("default:leaves") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 2, y = y, z = z - 2}, + {x = x + 2, y = y + height + 1, z = z + 2} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + add_trunk_and_leaves(data, a, pos, c_tree, c_leaves, height, 2, 8, is_apple_tree) + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- Jungle tree + +function default.grow_jungle_tree(pos, bad) + --[[ + NOTE: Jungletree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + --]] + if bad then + error("Deprecated use of default.grow_jungle_tree") + end + + local x, y, z = pos.x, pos.y, pos.z + local height = random(8, 12) + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_jungletree = minetest.get_content_id("default:jungletree") + local c_jungleleaves = minetest.get_content_id("default:jungleleaves") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 3, y = y - 1, z = z - 3}, + {x = x + 3, y = y + height + 1, z = z + 3} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + add_trunk_and_leaves(data, a, pos, c_jungletree, c_jungleleaves, + height, 3, 30, false) + + -- Roots + for z_dist = -1, 1 do + local vi_1 = a:index(x - 1, y - 1, z + z_dist) + local vi_2 = a:index(x - 1, y, z + z_dist) + for x_dist = -1, 1 do + if random(1, 3) >= 2 then + if data[vi_1] == c_air or data[vi_1] == c_ignore then + data[vi_1] = c_jungletree + elseif data[vi_2] == c_air or data[vi_2] == c_ignore then + data[vi_2] = c_jungletree + end + end + vi_1 = vi_1 + 1 + vi_2 = vi_2 + 1 + end + end + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- Pine tree from mg mapgen mod, design by sfan5, pointy top added by paramat + +local function add_pine_needles(data, vi, c_air, c_ignore, c_snow, c_pine_needles) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or node_id == c_snow then + data[vi] = c_pine_needles + end +end + +local function add_snow(data, vi, c_air, c_ignore, c_snow) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore then + data[vi] = c_snow + end +end + +function default.grow_pine_tree(pos, snow) + local x, y, z = pos.x, pos.y, pos.z + local maxy = y + random(9, 13) -- Trunk top + + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_pine_tree = minetest.get_content_id("default:pine_tree") + local c_pine_needles = minetest.get_content_id("default:pine_needles") + local c_snow = minetest.get_content_id("default:snow") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 3, y = y, z = z - 3}, + {x = x + 3, y = maxy + 3, z = z + 3} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + -- Upper branches layer + local dev = 3 + for yy = maxy - 1, maxy + 1 do + for zz = z - dev, z + dev do + local vi = a:index(x - dev, yy, zz) + local via = a:index(x - dev, yy + 1, zz) + for xx = x - dev, x + dev do + if random() < 0.95 - dev * 0.05 then + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + end + vi = vi + 1 + via = via + 1 + end + end + dev = dev - 1 + end + + -- Centre top nodes + add_pine_needles(data, a:index(x, maxy + 1, z), c_air, c_ignore, c_snow, + c_pine_needles) + add_pine_needles(data, a:index(x, maxy + 2, z), c_air, c_ignore, c_snow, + c_pine_needles) -- Paramat added a pointy top node + if snow then + add_snow(data, a:index(x, maxy + 3, z), c_air, c_ignore, c_snow) + end + + -- Lower branches layer + local my = 0 + for i = 1, 20 do -- Random 2x2 squares of needles + local xi = x + random(-3, 2) + local yy = maxy + random(-6, -5) + local zi = z + random(-3, 2) + if yy > my then + my = yy + end + for zz = zi, zi+1 do + local vi = a:index(xi, yy, zz) + local via = a:index(xi, yy + 1, zz) + for xx = xi, xi + 1 do + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + vi = vi + 1 + via = via + 1 + end + end + end + + dev = 2 + for yy = my + 1, my + 2 do + for zz = z - dev, z + dev do + local vi = a:index(x - dev, yy, zz) + local via = a:index(x - dev, yy + 1, zz) + for xx = x - dev, x + dev do + if random() < 0.95 - dev * 0.05 then + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + end + vi = vi + 1 + via = via + 1 + end + end + dev = dev - 1 + end + + -- Trunk + -- Force-place lowest trunk node to replace sapling + data[a:index(x, y, z)] = c_pine_tree + for yy = y + 1, maxy do + local vi = a:index(x, yy, z) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or + node_id == c_pine_needles or node_id == c_snow then + data[vi] = c_pine_tree + end + end + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- New apple tree + +function default.grow_new_apple_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/apple_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "random", nil, false) +end + + +-- New jungle tree + +function default.grow_new_jungle_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/jungle_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "random", nil, false) +end + + +-- New pine tree + +function default.grow_new_pine_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/pine_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "0", nil, false) +end + + +-- New snowy pine tree + +function default.grow_new_snowy_pine_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/snowy_pine_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "random", nil, false) +end + + +-- New acacia tree + +function default.grow_new_acacia_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/acacia_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 4, y = pos.y - 1, z = pos.z - 4}, + path, "random", nil, false) +end + + +-- New aspen tree + +function default.grow_new_aspen_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/aspen_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "0", nil, false) +end + + +-- Bushes do not need 'from sapling' schematic variants because +-- only the stem node is force-placed in the schematic. + +-- Bush + +function default.grow_bush(pos) + local path = minetest.get_modpath("default") .. + "/schematics/bush.mts" + minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1}, + path, "0", nil, false) +end + + +-- Acacia bush + +function default.grow_acacia_bush(pos) + local path = minetest.get_modpath("default") .. + "/schematics/acacia_bush.mts" + minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1}, + path, "0", nil, false) +end + + +-- +-- Sapling 'on place' function to check protection of node and resulting tree volume +-- + +function default.sapling_on_place(itemstack, placer, pointed_thing, + sapling_name, minp_relative, maxp_relative, interval) + -- Position of sapling + local pos = pointed_thing.under + local node = minetest.get_node_or_nil(pos) + local pdef = node and minetest.registered_nodes[node.name] + + if pdef and pdef.on_rightclick and not placer:get_player_control().sneak then + return pdef.on_rightclick(pos, node, placer, itemstack, pointed_thing) + end + + if not pdef or not pdef.buildable_to then + pos = pointed_thing.above + node = minetest.get_node_or_nil(pos) + pdef = node and minetest.registered_nodes[node.name] + if not pdef or not pdef.buildable_to then + return itemstack + end + end + + local player_name = placer:get_player_name() + -- Check sapling position for protection + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + return itemstack + end + -- Check tree volume for protection + if default.intersects_protection( + vector.add(pos, minp_relative), + vector.add(pos, maxp_relative), + player_name, + interval) then + minetest.record_protection_violation(pos, player_name) + -- Print extra information to explain + minetest.chat_send_player(player_name, "Tree will intersect protection") + return itemstack + end + + minetest.log("action", player_name .. " places node " + .. sapling_name .. " at " .. minetest.pos_to_string(pos)) + + local take_item = not (creative and creative.is_enabled_for + and creative.is_enabled_for(player_name)) + local newnode = {name = sapling_name} + local ndef = minetest.registered_nodes[sapling_name] + minetest.set_node(pos, newnode) + + -- Run callback + if ndef and ndef.after_place_node then + -- Deepcopy place_to and pointed_thing because callback can modify it + if ndef.after_place_node(table.copy(pos), placer, + itemstack, table.copy(pointed_thing)) then + take_item = false + end + end + + -- Run script hook + for _, callback in ipairs(minetest.registered_on_placenodes) do + -- Deepcopy pos, node and pointed_thing because callback can modify them + if callback(table.copy(pos), table.copy(newnode), + placer, table.copy(node or {}), + itemstack, table.copy(pointed_thing)) then + take_item = false + end + end + + if take_item then + itemstack:take_item() + end + + return itemstack +end + + +-- Important bloody aliases + +minetest.register_alias("trees:tree_conifer", "default:pine_tree") +minetest.register_alias("trees:wood_conifer", "default:pine_wood") +minetest.register_alias("trees:sapling_conifer", "default:pine_sapling") +minetest.register_alias("trees:leaves_conifer", "default:pine_needles") + +minetest.register_alias("trees:tree_palm", "default:jungletree") +minetest.register_alias("trees:leaves_palm", "default:jungleleaves") +minetest.register_alias("trees:sapling_palm", "default:junglesapling") +minetest.register_alias("trees:wood_palm", "default:junglewood") + +minetest.register_alias("trees:tree_mangrove", "default:aspen_tree") +minetest.register_alias("trees:leaves_mangrove", "default:aspen_leaves") +minetest.register_alias("trees:sapling_mangrove", "default:aspen_sapling") +minetest.register_alias("trees:wood_mangrove", "default:aspen_wood") + +minetest.register_alias("trees:leaves_red", "default:jungleleaves") +minetest.register_alias("trees:leaves_yellow", "default:jungleleaves") +minetest.register_alias("trees:leaves_green", "default:jungleleaves") diff --git a/diff/default.diff/trees.lua.diff b/diff/default.diff/trees.lua.diff new file mode 100644 index 0000000..b165a47 --- /dev/null +++ b/diff/default.diff/trees.lua.diff @@ -0,0 +1,41 @@ +20c20 +< if not light_level or light_level < 13 then +--- +> if not light_level or light_level < 10 then +34c34 +< -- Sapling ABM +--- +> -- Grow sapling +38,39c38,39 +< -- try a bit later again +< minetest.get_node_timer(pos):start(math.random(240, 600)) +--- +> -- try again 5 min later +> minetest.get_node_timer(pos):start(1) +97c97 +< minetest.get_node_timer(pos):start(math.random(1200, 2400)) +--- +> minetest.get_node_timer(pos):start(math.random(10, 11)) +535a536,557 +> +> +> -- Important bloody aliases +> +> minetest.register_alias("trees:tree_conifer", "default:pine_tree") +> minetest.register_alias("trees:wood_conifer", "default:pine_wood") +> minetest.register_alias("trees:sapling_conifer", "default:pine_sapling") +> minetest.register_alias("trees:leaves_conifer", "default:pine_needles") +> +> minetest.register_alias("trees:tree_palm", "default:jungletree") +> minetest.register_alias("trees:leaves_palm", "default:jungleleaves") +> minetest.register_alias("trees:sapling_palm", "default:junglesapling") +> minetest.register_alias("trees:wood_palm", "default:junglewood") +> +> minetest.register_alias("trees:tree_mangrove", "default:aspen_tree") +> minetest.register_alias("trees:leaves_mangrove", "default:aspen_leaves") +> minetest.register_alias("trees:sapling_mangrove", "default:aspen_sapling") +> minetest.register_alias("trees:wood_mangrove", "default:aspen_wood") +> +> minetest.register_alias("trees:leaves_red", "default:jungleleaves") +> minetest.register_alias("trees:leaves_yellow", "default:jungleleaves") +> minetest.register_alias("trees:leaves_green", "default:jungleleaves") diff --git a/diff/doors.diff/README.txt b/diff/doors.diff/README.txt new file mode 100644 index 0000000..37337b2 --- /dev/null +++ b/diff/doors.diff/README.txt @@ -0,0 +1,26 @@ +Doors +===================================================================== +Main: PilzAdam, BlockMen +Lisc: MIT +Text: CC-0 + Derivative of bas080 by jadedctrl +3Dmo: MIT + By sofar +Audi: CC-BY-3.0 + Derivative of CGEffect by BlockMen + door_open.ogg + By bennstir + door_close.ogg + By BarkersPinhead + By rivernile7 + fencegate_close.ogg + By HazMatt + doors_steel_door_open.ogg + doors_steel_door_close.ogg +Audi: CC0 + By mhtaylor67 + fencegate_open.ogg + By SkeetMasterFunk69 + doors_glass_door_open.ogg + doors_glass_door_close.ogg +Link: https://github.com/minetest/minetest_game diff --git a/diff/doors.diff/README.txt.diff b/diff/doors.diff/README.txt.diff new file mode 100644 index 0000000..008e510 --- /dev/null +++ b/diff/doors.diff/README.txt.diff @@ -0,0 +1,112 @@ +1,84c1,26 +< Minetest Game mod: doors +< ======================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by PilzAdam (MIT) +< +< Modified by BlockMen (MIT): Added sounds, glass doors (glass, obsidian glass) and trapdoor. +< +< Modified by sofar (sofar@foo-projects.org) (MIT): +< Added Steel trapdoor. +< Re-implemented most of the door algorithms, added meshes, UV wrapped texture. +< Added doors API to facilitate coding mods accessing and operating doors. +< Added Fence Gate model, code, and sounds. +< +< Various Minetest developers and contributors (MIT) +< +< +< Authors of media (textures) +< --------------------------- +< Following textures created by Fernando Zapata (CC BY-SA 3.0): +< door_wood.png +< door_wood_a.png +< door_wood_a_r.png +< door_wood_b.png +< door_wood_b_r.png +< +< Following textures created by BlockMen (CC BY-SA 3.0): +< door_trapdoor.png +< door_obsidian_glass_side.png +< +< Following textures created by celeron55 (CC BY-SA 3.0): +< door_glass_a.png +< door_glass_b.png +< +< Following textures created by PenguinDad (CC BY-SA 4.0): +< door_glass.png +< door_obsidian_glass.png +< +< Following textures created by sofar (CC-BY-SA-3.0): +< doors_trapdoor_steel.png +< doors_trapdoor_steel_side.png +< door_trapdoor_side.png +< +< Obsidian door textures by red-001 based on textures by Pilzadam and BlockMen (CC BY-SA 3.0): +< door_obsidian_glass.png +< +< Glass door textures by red-001 based on textures by celeron55 (CC BY-SA 3.0): +< door_glass.png +< +< All other textures (created by PilzAdam) (CC BY-SA 3.0): +< +< Door textures were converted to the new texture map by sofar, paramat and +< red-001, under the same license as the originals. +< +< +< Authors of media (models) +< ------------------------- +< Door 3d models by sofar (CC-BY-SA-3.0) +< - door_a.obj +< - door_b.obj +< Fence gate models by sofar (CC-BY-SA-3.0) +< - fencegate_open.obj +< - fencegate_closed.obj +< +< +< Authors of media (sounds) +< ------------------------- +< Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen +< door_open.ogg +< Closing-Sound created by bennstir (CC BY 3.0) +< door_close.ogg +< fencegate_open.ogg: +< http://www.freesound.org/people/mhtaylor67/sounds/126041/ - (CC0 1.0) +< fencegate_close.ogg: +< http://www.freesound.org/people/BarkersPinhead/sounds/274807/ - (CC-BY-3.0) +< http://www.freesound.org/people/rivernile7/sounds/249573/ - (CC-BY-3.0) +< Steel door sounds open & close (CC-BY-3.0) by HazMatt +< - http://www.freesound.org/people/HazMattt/sounds/187283/ +< doors_steel_door_open.ogg +< doors_steel_door_close.ogg +< doors_glass_door_open.ogg, doors_glass_door_close.ogg: +< https://www.freesound.org/people/SkeetMasterFunk69/sounds/235546/ (CC0 1.0) +--- +> Doors +> ===================================================================== +> Main: PilzAdam, BlockMen +> Lisc: MIT +> Text: CC-0 +> Derivative of bas080 by jadedctrl +> 3Dmo: MIT +> By sofar +> Audi: CC-BY-3.0 +> Derivative of CGEffect by BlockMen +> door_open.ogg +> By bennstir +> door_close.ogg +> By BarkersPinhead +> By rivernile7 +> fencegate_close.ogg +> By HazMatt +> doors_steel_door_open.ogg +> doors_steel_door_close.ogg +> Audi: CC0 +> By mhtaylor67 +> fencegate_open.ogg +> By SkeetMasterFunk69 +> doors_glass_door_open.ogg +> doors_glass_door_close.ogg +> Link: https://github.com/minetest/minetest_game diff --git a/diff/doors.diff/license.txt b/diff/doors.diff/license.txt new file mode 100644 index 0000000..cb4e2dc --- /dev/null +++ b/diff/doors.diff/license.txt @@ -0,0 +1,165 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2015-2016 sofar (sofar@foo-projects.org) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (models and sounds) +----------------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2011-2016 Fernando Zapata +Copyright (C) 2014-2016 celeron55 +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2015-2016 sofar +Copyright (C) 2016 red-001 +Copyright (C) 2016 paramat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) +Copyright (C) 2014-2016 PenguinDad + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/4.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2014 CGEffex +Copyright (C) 2014 bennstir +Copyright (C) 2016 BarkersPinhead +Copyright (C) 2016 rivernile7 +Copyright (C) 2016 HazMatt + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ + +----------------------- + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication +mhtaylor67 +SkeetMasterFunk69 +bas080 + +No Copyright + +The person who associated a work with this deed has dedicated the work to the public +domain by waiving all of his or her rights to the work worldwide under copyright law, +including all related and neighboring rights, to the extent allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial purposes, all +without asking permission. See Other Information below. + +Other Information + +In no way are the patent or trademark rights of any person affected by CC0, nor are the +rights that other persons may have in the work or in how the work is used, such as +publicity or privacy rights. +Unless expressly stated otherwise, the person who associated a work with this deed makes +no warranties about the work, and disclaims liability for all uses of the work, to the +fullest extent permitted by applicable law. +When using or citing the work, you should not imply endorsement by the author or the +affirmer. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/diff/doors.diff/license.txt.diff b/diff/doors.diff/license.txt.diff new file mode 100644 index 0000000..5b4326d --- /dev/null +++ b/diff/doors.diff/license.txt.diff @@ -0,0 +1,6 @@ +30c30 +< Licenses of media (textures, models and sounds) +--- +> Licenses of media (models and sounds) +141a142 +> bas080 diff --git a/diff/doors.diff/textures/doors_blank.png b/diff/doors.diff/textures/doors_blank.png new file mode 100644 index 0000000..1914264 Binary files /dev/null and b/diff/doors.diff/textures/doors_blank.png differ diff --git a/diff/doors.diff/textures/doors_door_glass.png b/diff/doors.diff/textures/doors_door_glass.png new file mode 100644 index 0000000..3a37af2 Binary files /dev/null and b/diff/doors.diff/textures/doors_door_glass.png differ diff --git a/diff/doors.diff/textures/doors_door_obsidian_glass.png b/diff/doors.diff/textures/doors_door_obsidian_glass.png new file mode 100644 index 0000000..f0e4ae6 Binary files /dev/null and b/diff/doors.diff/textures/doors_door_obsidian_glass.png differ diff --git a/diff/doors.diff/textures/doors_door_steel.png b/diff/doors.diff/textures/doors_door_steel.png new file mode 100644 index 0000000..a54b4d5 Binary files /dev/null and b/diff/doors.diff/textures/doors_door_steel.png differ diff --git a/diff/doors.diff/textures/doors_door_wood.png b/diff/doors.diff/textures/doors_door_wood.png new file mode 100644 index 0000000..7a1e74c Binary files /dev/null and b/diff/doors.diff/textures/doors_door_wood.png differ diff --git a/diff/doors.diff/textures/doors_item_glass.png b/diff/doors.diff/textures/doors_item_glass.png new file mode 100644 index 0000000..79e9daa Binary files /dev/null and b/diff/doors.diff/textures/doors_item_glass.png differ diff --git a/diff/doors.diff/textures/doors_item_obsidian_glass.png b/diff/doors.diff/textures/doors_item_obsidian_glass.png new file mode 100644 index 0000000..1026d43 Binary files /dev/null and b/diff/doors.diff/textures/doors_item_obsidian_glass.png differ diff --git a/diff/doors.diff/textures/doors_item_steel.png b/diff/doors.diff/textures/doors_item_steel.png new file mode 100644 index 0000000..30a435d Binary files /dev/null and b/diff/doors.diff/textures/doors_item_steel.png differ diff --git a/diff/doors.diff/textures/doors_item_wood.png b/diff/doors.diff/textures/doors_item_wood.png new file mode 100644 index 0000000..94ef3ae Binary files /dev/null and b/diff/doors.diff/textures/doors_item_wood.png differ diff --git a/diff/doors.diff/textures/doors_trapdoor.png b/diff/doors.diff/textures/doors_trapdoor.png new file mode 100644 index 0000000..9a74a12 Binary files /dev/null and b/diff/doors.diff/textures/doors_trapdoor.png differ diff --git a/diff/doors.diff/textures/doors_trapdoor_side.png b/diff/doors.diff/textures/doors_trapdoor_side.png new file mode 100644 index 0000000..e19aea0 Binary files /dev/null and b/diff/doors.diff/textures/doors_trapdoor_side.png differ diff --git a/diff/doors.diff/textures/doors_trapdoor_steel.png b/diff/doors.diff/textures/doors_trapdoor_steel.png new file mode 100644 index 0000000..61d9108 Binary files /dev/null and b/diff/doors.diff/textures/doors_trapdoor_steel.png differ diff --git a/diff/doors.diff/textures/doors_trapdoor_steel_side.png b/diff/doors.diff/textures/doors_trapdoor_steel_side.png new file mode 100644 index 0000000..e5782ae Binary files /dev/null and b/diff/doors.diff/textures/doors_trapdoor_steel_side.png differ diff --git a/diff/dye.diff/README.txt b/diff/dye.diff/README.txt new file mode 100644 index 0000000..d810b6c --- /dev/null +++ b/diff/dye.diff/README.txt @@ -0,0 +1,7 @@ +Dye +===================================================================== +Main: celeron55, various +Lisc: MIT +Text: MIT + By jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/diff/dye.diff/depends.txt b/diff/dye.diff/depends.txt new file mode 100644 index 0000000..e69de29 diff --git a/diff/dye.diff/init.lua b/diff/dye.diff/init.lua new file mode 100644 index 0000000..8f26fed --- /dev/null +++ b/diff/dye.diff/init.lua @@ -0,0 +1,112 @@ +-- Other mods can use these for looping through available colors + +dye = {} +dye.basecolors = {"white", "grey", "black", "red", "yellow", "green", "cyan", "blue", "magenta"} +dye.excolors = {"white", "lightgrey", "grey", "darkgrey", "black", "red", "orange", "yellow", + "lime", "green", "aqua", "cyan", "sky_blue", "blue", "violet", "magenta", "red_violet"} + +-- Make dye names and descriptions available globally + +dye.dyes = { + {"white", "White"}, + {"grey", "Grey"}, + {"dark_grey", "Dark grey"}, + {"black", "Black"}, + {"violet", "Violet"}, + {"blue", "Blue"}, + {"cyan", "Cyan"}, + {"dark_green", "Dark green"}, + {"green", "Green"}, + {"yellow", "Yellow"}, + {"brown", "Brown"}, + {"orange", "Orange"}, + {"red", "Red"}, + {"magenta", "Magenta"}, + {"pink", "Pink"}, +} + +-- This collection of colors is partly a historic thing, partly something else + +local dyes = { + {"white", "White Dye", {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1}}, + {"grey", "Grey Dye", {dye=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1}}, + {"dark_grey", "Dark Grey Dye", {dye=1, basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}}, + {"black", "Black Dye", {dye=1, basecolor_black=1, excolor_black=1, unicolor_black=1}}, + {"violet", "Violet Dye", {dye=1, basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}}, + {"blue", "Blue Dye", {dye=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1}}, + {"cyan", "Cyan Dye", {dye=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}}, + {"dark_green", "Dark Green Dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_dark_green=1}}, + {"green", "Green Dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_green=1}}, + {"yellow", "Yellow Dye", {dye=1, basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}}, + {"brown", "Brown Dye", {dye=1, basecolor_brown=1, excolor_orange=1, unicolor_dark_orange=1}}, + {"orange", "Orange Dye", {dye=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1}}, + {"red", "Red Dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_red=1}}, + {"magenta", "Magenta Dye", {dye=1, basecolor_magenta=1, excolor_red_violet=1, unicolor_red_violet=1}}, + {"pink", "Pink Dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_light_red=1}}, +} + +-- Define items + +for _, row in ipairs(dyes) do + local name = row[1] + local description = row[2] + local groups = row[3] + local item_name = "dye:" .. name + local item_image = "dye_" .. name .. ".png" + minetest.register_craftitem(item_name, { + inventory_image = item_image, + description = description, + groups = groups + }) + minetest.register_craft({ + type = "shapeless", + output = item_name .. " 4", + recipe = {"group:flower,color_" .. name}, + }) +end + +-- Manually add coal->black dye + +minetest.register_craft({ + type = "shapeless", + output = "dye:black 4", + recipe = {"group:coal"}, +}) + +-- Mix recipes +local dye_recipes = { + -- src1, src2, dst + -- RYB mixes + {"red", "blue", "violet"}, -- "purple" + {"yellow", "red", "orange"}, + {"yellow", "blue", "green"}, + -- RYB complementary mixes + {"yellow", "violet", "dark_grey"}, + {"blue", "orange", "dark_grey"}, + -- CMY mixes - approximation + {"cyan", "yellow", "green"}, + {"cyan", "magenta", "blue"}, + {"yellow", "magenta", "red"}, + -- other mixes that result in a color we have + {"red", "green", "brown"}, + {"magenta", "blue", "violet"}, + {"green", "blue", "cyan"}, + {"pink", "violet", "magenta"}, + -- mixes with black + {"white", "black", "grey"}, + {"grey", "black", "dark_grey"}, + {"green", "black", "dark_green"}, + {"orange", "black", "brown"}, + -- mixes with white + {"white", "red", "pink"}, + {"white", "dark_grey", "grey"}, + {"white", "dark_green", "green"}, +} + +for _, mix in pairs(dye_recipes) do + minetest.register_craft({ + type = "shapeless", + output = 'dye:' .. mix[3] .. ' 2', + recipe = {'dye:' .. mix[1], 'dye:' .. mix[2]}, + }) +end diff --git a/diff/dye.diff/license.txt b/diff/dye.diff/license.txt new file mode 100644 index 0000000..8134c92 --- /dev/null +++ b/diff/dye.diff/license.txt @@ -0,0 +1,25 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/diff/dye.diff/textures/dye_black.png b/diff/dye.diff/textures/dye_black.png new file mode 100644 index 0000000..268ec33 Binary files /dev/null and b/diff/dye.diff/textures/dye_black.png differ diff --git a/diff/dye.diff/textures/dye_blue.png b/diff/dye.diff/textures/dye_blue.png new file mode 100644 index 0000000..b1da6a1 Binary files /dev/null and b/diff/dye.diff/textures/dye_blue.png differ diff --git a/diff/dye.diff/textures/dye_brown.png b/diff/dye.diff/textures/dye_brown.png new file mode 100644 index 0000000..69d65e2 Binary files /dev/null and b/diff/dye.diff/textures/dye_brown.png differ diff --git a/diff/dye.diff/textures/dye_cyan.png b/diff/dye.diff/textures/dye_cyan.png new file mode 100644 index 0000000..5826132 Binary files /dev/null and b/diff/dye.diff/textures/dye_cyan.png differ diff --git a/diff/dye.diff/textures/dye_dark_green.png b/diff/dye.diff/textures/dye_dark_green.png new file mode 100644 index 0000000..2db2e22 Binary files /dev/null and b/diff/dye.diff/textures/dye_dark_green.png differ diff --git a/diff/dye.diff/textures/dye_dark_grey.png b/diff/dye.diff/textures/dye_dark_grey.png new file mode 100644 index 0000000..16951d7 Binary files /dev/null and b/diff/dye.diff/textures/dye_dark_grey.png differ diff --git a/diff/dye.diff/textures/dye_green.png b/diff/dye.diff/textures/dye_green.png new file mode 100644 index 0000000..dde975d Binary files /dev/null and b/diff/dye.diff/textures/dye_green.png differ diff --git a/diff/dye.diff/textures/dye_grey.png b/diff/dye.diff/textures/dye_grey.png new file mode 100644 index 0000000..1722205 Binary files /dev/null and b/diff/dye.diff/textures/dye_grey.png differ diff --git a/diff/dye.diff/textures/dye_magenta.png b/diff/dye.diff/textures/dye_magenta.png new file mode 100644 index 0000000..413dfa3 Binary files /dev/null and b/diff/dye.diff/textures/dye_magenta.png differ diff --git a/diff/dye.diff/textures/dye_orange.png b/diff/dye.diff/textures/dye_orange.png new file mode 100644 index 0000000..1a9a1fe Binary files /dev/null and b/diff/dye.diff/textures/dye_orange.png differ diff --git a/diff/dye.diff/textures/dye_pink.png b/diff/dye.diff/textures/dye_pink.png new file mode 100644 index 0000000..a7c3818 Binary files /dev/null and b/diff/dye.diff/textures/dye_pink.png differ diff --git a/diff/dye.diff/textures/dye_red.png b/diff/dye.diff/textures/dye_red.png new file mode 100644 index 0000000..5ed5f34 Binary files /dev/null and b/diff/dye.diff/textures/dye_red.png differ diff --git a/diff/dye.diff/textures/dye_violet.png b/diff/dye.diff/textures/dye_violet.png new file mode 100644 index 0000000..17770bc Binary files /dev/null and b/diff/dye.diff/textures/dye_violet.png differ diff --git a/diff/dye.diff/textures/dye_white.png b/diff/dye.diff/textures/dye_white.png new file mode 100644 index 0000000..a692f29 Binary files /dev/null and b/diff/dye.diff/textures/dye_white.png differ diff --git a/diff/dye.diff/textures/dye_yellow.png b/diff/dye.diff/textures/dye_yellow.png new file mode 100644 index 0000000..2adaccb Binary files /dev/null and b/diff/dye.diff/textures/dye_yellow.png differ diff --git a/diff/fire.diff/README.txt b/diff/fire.diff/README.txt new file mode 100644 index 0000000..30e91d0 --- /dev/null +++ b/diff/fire.diff/README.txt @@ -0,0 +1,19 @@ +Fire +===================================================================== +Main: celeron55, various +Lisc: LGPL 2.1 +Text: CC0 + By bas080 + fire_basic_flame_animated.png + fire_basic_flame.png + By jadedctrl + fire_basic_lighter.png +Audi: CC-BY 3.0 + By dobroide + fire_small.ogg + By Dynamicell + fire_large.ogg + fire_fire*.ogg + By Benboncan + fire_flint_and_steel.ogg +Link: https://github.com/minetest/minetest_game diff --git a/diff/fire.diff/README.txt.diff b/diff/fire.diff/README.txt.diff new file mode 100644 index 0000000..47b53f1 --- /dev/null +++ b/diff/fire.diff/README.txt.diff @@ -0,0 +1,56 @@ +1,35c1,19 +< Minetest Game mod: fire +< ======================= +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by Perttu Ahola (celeron55) (LGPL 2.1) +< Various Minetest developers and contributors (LGPL 2.1) +< +< Authors of media (textures and sounds) +< -------------------------------------- +< Everything not listed in here: +< Copyright (C) 2012 Perttu Ahola (celeron55) (CC BY-SA 3.0) +< +< Muadtralk (CC BY-SA 3.0) +< fire_basic_flame_animated.png +< +< Gambit (CC BY-SA 3.0) +< fire_flint_steel.png +< +< dobroide (CC BY 3.0) +< http://www.freesound.org/people/dobroide/sounds/4211/ +< fire_small.ogg +< +< Dynamicell (CC BY 3.0) +< http://www.freesound.org/people/Dynamicell/sounds/17548/ +< fire_large.ogg +< fire_fire.*.ogg +< +< fire_small.ogg and fire_large.ogg are unused but kept temporarily to not break +< other mods that may use them. +< +< Benboncan (CC BY 3.0) +< https://www.freesound.org/people/Benboncan/sounds/66457/ +< fire_flint_and_steel.ogg +--- +> Fire +> ===================================================================== +> Main: celeron55, various +> Lisc: LGPL 2.1 +> Text: CC0 +> By bas080 +> fire_basic_flame_animated.png +> fire_basic_flame.png +> By jadedctrl +> fire_basic_lighter.png +> Audi: CC-BY 3.0 +> By dobroide +> fire_small.ogg +> By Dynamicell +> fire_large.ogg +> fire_fire*.ogg +> By Benboncan +> fire_flint_and_steel.ogg +> Link: https://github.com/minetest/minetest_game diff --git a/diff/fire.diff/init.lua b/diff/fire.diff/init.lua new file mode 100644 index 0000000..a79b1fe --- /dev/null +++ b/diff/fire.diff/init.lua @@ -0,0 +1,367 @@ +-- Global namespace for functions + +fire = {} + + +-- +-- Items +-- + +-- Flame nodes + +minetest.register_node("fire:basic_flame", { + drawtype = "firelike", + tiles = { + { + name = "fire_basic_flame_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1 + }, + }, + }, + inventory_image = "fire_basic_flame.png", + paramtype = "light", + light_source = 13, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + damage_per_second = 4, + groups = {igniter = 2, dig_immediate = 3, not_in_creative_inventory = 1}, + on_timer = function(pos) + local f = minetest.find_node_near(pos, 1, {"group:flammable"}) + if not f then + minetest.remove_node(pos) + return + end + -- Restart timer + return true + end, + drop = "", + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(30, 60)) + end, +}) + +minetest.register_node("fire:permanent_flame", { + description = "Permanent Flame", + drawtype = "firelike", + tiles = { + { + name = "fire_basic_flame_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1 + }, + }, + }, + inventory_image = "fire_basic_flame.png", + paramtype = "light", + light_source = 13, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + damage_per_second = 4, + groups = {igniter = 2, dig_immediate = 3}, + drop = "", +}) + + +-- Flint and steel + +minetest.register_alias("firestone:lighter", "fire:flint_and_steel") + +minetest.register_tool("fire:flint_and_steel", { + description = "Lighter", + inventory_image = "fire_flint_steel.png", + sound = {breaks = "default_tool_breaks"}, + + on_use = function(itemstack, user, pointed_thing) + local sound_pos = pointed_thing.above or user:get_pos() + minetest.sound_play( + "fire_flint_and_steel", + {pos = sound_pos, gain = 0.5, max_hear_distance = 8} + ) + local player_name = user:get_player_name() + if pointed_thing.type == "node" then + local node_under = minetest.get_node(pointed_thing.under).name + local nodedef = minetest.registered_nodes[node_under] + if not nodedef then + return + end + if minetest.is_protected(pointed_thing.under, player_name) then + minetest.chat_send_player(player_name, "This area is protected") + return + end + if nodedef.on_ignite then + nodedef.on_ignite(pointed_thing.under, user) + elseif minetest.get_item_group(node_under, "flammable") >= 1 + and minetest.get_node(pointed_thing.above).name == "air" then + minetest.set_node(pointed_thing.above, {name = "fire:basic_flame"}) + end + end + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(player_name)) then + -- Wear tool + local wdef = itemstack:get_definition() + itemstack:add_wear(1000) + -- Tool break sound + if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then + minetest.sound_play(wdef.sound.breaks, {pos = sound_pos, gain = 0.5}) + end + return itemstack + end + end +}) + +minetest.register_craft({ + output = "fire:flint_and_steel", + recipe = { + {"default:flint", "default:steel_ingot"} + } +}) + + +-- Override coalblock to enable permanent flame above +-- Coalblock is non-flammable to avoid unwanted basic_flame nodes + +minetest.override_item("default:coalblock", { + after_destruct = function(pos, oldnode) + pos.y = pos.y + 1 + if minetest.get_node(pos).name == "fire:permanent_flame" then + minetest.remove_node(pos) + end + end, + on_ignite = function(pos, igniter) + local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z} + if minetest.get_node(flame_pos).name == "air" then + minetest.set_node(flame_pos, {name = "fire:permanent_flame"}) + end + end, +}) + + +-- +-- Sound +-- + +local flame_sound = minetest.settings:get_bool("flame_sound") +if flame_sound == nil then + -- Enable if no setting present + flame_sound = true +end + +if flame_sound then + + local handles = {} + local timer = 0 + + -- Parameters + + local radius = 8 -- Flame node search radius around player + local cycle = 3 -- Cycle time for sound updates + + -- Update sound for player + + function fire.update_player_sound(player) + local player_name = player:get_player_name() + -- Search for flame nodes in radius around player + local ppos = player:getpos() + local areamin = vector.subtract(ppos, radius) + local areamax = vector.add(ppos, radius) + local fpos, num = minetest.find_nodes_in_area( + areamin, + areamax, + {"fire:basic_flame", "fire:permanent_flame"} + ) + -- Total number of flames in radius + local flames = (num["fire:basic_flame"] or 0) + + (num["fire:permanent_flame"] or 0) + -- Stop previous sound + if handles[player_name] then + minetest.sound_stop(handles[player_name]) + handles[player_name] = nil + end + -- If flames + if flames > 0 then + -- Find centre of flame positions + local fposmid = fpos[1] + -- If more than 1 flame + if #fpos > 1 then + local fposmin = areamax + local fposmax = areamin + for i = 1, #fpos do + local fposi = fpos[i] + if fposi.x > fposmax.x then + fposmax.x = fposi.x + end + if fposi.y > fposmax.y then + fposmax.y = fposi.y + end + if fposi.z > fposmax.z then + fposmax.z = fposi.z + end + if fposi.x < fposmin.x then + fposmin.x = fposi.x + end + if fposi.y < fposmin.y then + fposmin.y = fposi.y + end + if fposi.z < fposmin.z then + fposmin.z = fposi.z + end + end + fposmid = vector.divide(vector.add(fposmin, fposmax), 2) + end + -- Play sound + local handle = minetest.sound_play( + "fire_fire", + { + pos = fposmid, + to_player = player_name, + gain = math.min(0.06 * (1 + flames * 0.125), 0.18), + max_hear_distance = 32, + loop = true, -- In case of lag + } + ) + -- Store sound handle for this player + if handle then + handles[player_name] = handle + end + end + end + + -- Cycle for updating players sounds + + minetest.register_globalstep(function(dtime) + timer = timer + dtime + if timer < cycle then + return + end + + timer = 0 + local players = minetest.get_connected_players() + for n = 1, #players do + fire.update_player_sound(players[n]) + end + end) + + -- Stop sound and clear handle on player leave + + minetest.register_on_leaveplayer(function(player) + local player_name = player:get_player_name() + if handles[player_name] then + minetest.sound_stop(handles[player_name]) + handles[player_name] = nil + end + end) +end + + +-- Deprecated function kept temporarily to avoid crashes if mod fire nodes call it + +function fire.update_sounds_around(pos) +end + + +-- +-- ABMs +-- + +-- Extinguish all flames quickly with water, snow, ice + +minetest.register_abm({ + label = "Extinguish flame", + nodenames = {"fire:basic_flame", "fire:permanent_flame"}, + neighbors = {"group:puts_out_fire"}, + interval = 3, + chance = 1, + catch_up = false, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.remove_node(pos) + minetest.sound_play("fire_extinguish_flame", + {pos = pos, max_hear_distance = 16, gain = 0.15}) + end, +}) + + +-- Enable the following ABMs according to 'enable fire' setting + +local fire_enabled = minetest.settings:get_bool("enable_fire") +if fire_enabled == nil then + -- enable_fire setting not specified, check for disable_fire + local fire_disabled = minetest.settings:get_bool("disable_fire") + if fire_disabled == nil then + -- Neither setting specified, check whether singleplayer + fire_enabled = minetest.is_singleplayer() + else + fire_enabled = not fire_disabled + end +end + +if not fire_enabled then + + -- Remove basic flames only if fire disabled + + minetest.register_abm({ + label = "Remove disabled fire", + nodenames = {"fire:basic_flame"}, + interval = 7, + chance = 1, + catch_up = false, + action = minetest.remove_node, + }) + +else -- Fire enabled + + -- Ignite neighboring nodes, add basic flames + + minetest.register_abm({ + label = "Ignite flame", + nodenames = {"group:flammable"}, + neighbors = {"group:igniter"}, + interval = 1, + chance = 5, + catch_up = false, + action = function(pos, node, active_object_count, active_object_count_wider) + -- If there is water or stuff like that around node, don't ignite + if minetest.find_node_near(pos, 1, {"group:puts_out_fire"}) then + return + end + local p = minetest.find_node_near(pos, 1, {"air"}) + if p then + minetest.set_node(p, {name = "fire:basic_flame"}) + end + end, + }) + + -- Remove flammable nodes around basic flame + + minetest.register_abm({ + label = "Remove flammable nodes", + nodenames = {"fire:basic_flame"}, + neighbors = "group:flammable", + interval = 5, + chance = 18, + catch_up = false, + action = function(pos, node, active_object_count, active_object_count_wider) + local p = minetest.find_node_near(pos, 1, {"group:flammable"}) + if p then + local flammable_node = minetest.get_node(p) + local def = minetest.registered_nodes[flammable_node.name] + if def.on_burn then + def.on_burn(p) + else + minetest.remove_node(p) + minetest.check_for_falling(p) + end + end + end, + }) + +end diff --git a/diff/fire.diff/init.lua.diff b/diff/fire.diff/init.lua.diff new file mode 100644 index 0000000..8cd4baa --- /dev/null +++ b/diff/fire.diff/init.lua.diff @@ -0,0 +1,13 @@ +76a77,78 +> minetest.register_alias("firestone:lighter", "fire:flint_and_steel") +> +78c80 +< description = "Flint and Steel", +--- +> description = "Lighter", +326,327c328,329 +< interval = 7, +< chance = 12, +--- +> interval = 1, +> chance = 5, diff --git a/diff/fire.diff/license.txt b/diff/fire.diff/license.txt new file mode 100644 index 0000000..9ce079f --- /dev/null +++ b/diff/fire.diff/license.txt @@ -0,0 +1,84 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2012-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (sounds) +--------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Muadtralk +Copyright (C) 2013-2016 Gambit + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2005 dobroide +Copyright (C) 2006 Dynamicell +Copyright (C) 2009 Benboncan + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ diff --git a/diff/fire.diff/license.txt.diff b/diff/fire.diff/license.txt.diff new file mode 100644 index 0000000..7eab10b --- /dev/null +++ b/diff/fire.diff/license.txt.diff @@ -0,0 +1,4 @@ +18c18 +< Licenses of media (textures and sounds) +--- +> Licenses of media (sounds) diff --git a/diff/fire.diff/textures/fire_basic_flame.png b/diff/fire.diff/textures/fire_basic_flame.png new file mode 100644 index 0000000..9f5a059 Binary files /dev/null and b/diff/fire.diff/textures/fire_basic_flame.png differ diff --git a/diff/fire.diff/textures/fire_basic_flame_animated.png b/diff/fire.diff/textures/fire_basic_flame_animated.png new file mode 100644 index 0000000..46906d3 Binary files /dev/null and b/diff/fire.diff/textures/fire_basic_flame_animated.png differ diff --git a/diff/fire.diff/textures/fire_flint_steel.png b/diff/fire.diff/textures/fire_flint_steel.png new file mode 100644 index 0000000..4ba181f Binary files /dev/null and b/diff/fire.diff/textures/fire_flint_steel.png differ diff --git a/diff/flowers.diff/README.txt b/diff/flowers.diff/README.txt new file mode 100644 index 0000000..83b539f --- /dev/null +++ b/diff/flowers.diff/README.txt @@ -0,0 +1,20 @@ +Flowers +===================================================================== +Main: Ironzorg & VanessaE, various +Lisc: MIT +Text: CC0 + By bas08 +Text: CC BY-SA 3.0 + By Tirifto + flowers_mushroom_brown.png + flowers_mushroom_red.png + flowers_mushroom_jade.png + flowers_mushroom_french.png + flowers_mushroom_lemon.png + flowers_mushroom_sleepy.png +Text: MIT + By jadedctrl + flowers_waterlily*.png +3Dmo: + By bas080 +Link: https://github.com/minetest/minetest_game diff --git a/diff/flowers.diff/README.txt.diff b/diff/flowers.diff/README.txt.diff new file mode 100644 index 0000000..9120037 --- /dev/null +++ b/diff/flowers.diff/README.txt.diff @@ -0,0 +1,48 @@ +1,26c1,20 +< Minetest Game mod: flowers +< ========================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by Ironzorg (MIT) and VanessaE (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures) +< --------------------------- +< RHRhino (CC BY-SA 3.0): +< flowers_dandelion_white.png +< flowers_dandelion_yellow.png +< flowers_geranium.png +< flowers_rose.png +< flowers_tulip.png +< flowers_viola.png +< +< Gambit (CC BY-SA 3.0): +< flowers_mushroom_brown.png +< flowers_mushroom_red.png +< flowers_waterlily.png +< +< yyt16384 (CC BY-SA 3.0): +< flowers_waterlily_bottom.png, derived from Gambit's texture +--- +> Flowers +> ===================================================================== +> Main: Ironzorg & VanessaE, various +> Lisc: MIT +> Text: CC0 +> By bas08 +> Text: CC BY-SA 3.0 +> By Tirifto +> flowers_mushroom_brown.png +> flowers_mushroom_red.png +> flowers_mushroom_jade.png +> flowers_mushroom_french.png +> flowers_mushroom_lemon.png +> flowers_mushroom_sleepy.png +> Text: MIT +> By jadedctrl +> flowers_waterlily*.png +> 3Dmo: +> By bas080 +> Link: https://github.com/minetest/minetest_game diff --git a/diff/flowers.diff/init.lua b/diff/flowers.diff/init.lua new file mode 100644 index 0000000..4464da8 --- /dev/null +++ b/diff/flowers.diff/init.lua @@ -0,0 +1,420 @@ +-- Minetest 0.4 mod: default +-- See README.txt for licensing and other information. + + +-- Namespace for functions + +flowers = {} + + +-- Map Generation + +dofile(minetest.get_modpath("flowers") .. "/mapgen.lua") + + +-- +-- Flowers +-- + +-- Aliases for original flowers mod + +minetest.register_alias("flowers:flower_rose", "flowers:rose") +minetest.register_alias("flowers:flower_tulip", "flowers:tulip") +minetest.register_alias("flowers:flower_dandelion_yellow", "flowers:dandelion_yellow") +minetest.register_alias("flowers:flower_geranium", "flowers:geranium") +minetest.register_alias("flowers:flower_viola", "flowers:viola") +minetest.register_alias("flowers:flower_dandelion_white", "flowers:dandelion_white") + +-- And now for the tulips mod + +minetest.register_alias("tulips:white_seeds", "flowers:dandelion_white") +minetest.register_alias("tulips:white_sprout", "flowers:dandelion_white") +minetest.register_alias("tulips:white", "flowers:dandelion_white") +minetest.register_alias("tulips:grey_seeds", "flowers:dandelion_white") +minetest.register_alias("tulips:grey_sprout", "flowers:dandelion_white") +minetest.register_alias("tulips:grey", "flowers:dandelion_white") +minetest.register_alias("tulips:black_seeds", "flowers:rose") +minetest.register_alias("tulips:black_sprout", "flowers:rose") +minetest.register_alias("tulips:black", "flowers:rose") +minetest.register_alias("tulips:red_seeds", "flowers:rose") +minetest.register_alias("tulips:red_sprout", "flowers:rose") +minetest.register_alias("tulips:red", "flowers:rose") +minetest.register_alias("tulips:yellow_seeds", "flowers:dandelion_yellow") +minetest.register_alias("tulips:yellow_sprout", "flowers:dandelion_yellow") +minetest.register_alias("tulips:yellow", "flowers:dandelion_yellow") +minetest.register_alias("tulips:green_seeds", "flowers:tulip") +minetest.register_alias("tulips:green_sprout", "flowers:tulip") +minetest.register_alias("tulips:green", "flowers:tulip") +minetest.register_alias("tulips:cyan_seeds", "flowers:geranium") +minetest.register_alias("tulips:cyan_sprout", "flowers:geranium") +minetest.register_alias("tulips:cyan", "flowers:geranium") +minetest.register_alias("tulips:blue_seeds", "flowers:geranium") +minetest.register_alias("tulips:blue_sprout", "flowers:geranium") +minetest.register_alias("tulips:magenta_seeds", "flowers:viola") +minetest.register_alias("tulips:magenta_sprout", "flowers:viola") +minetest.register_alias("tulips:magenta", "flowers:viola") + +-- Flower registration + +local function add_simple_flower(name, desc, box, f_groups) + -- Common flowers' groups + f_groups.snappy = 3 + f_groups.flower = 1 + f_groups.flora = 1 + f_groups.attached_node = 1 + + minetest.register_node("flowers:" .. name, { + description = desc, + drawtype = "plantlike", + waving = 1, + tiles = {"flowers_" .. name .. ".png"}, + inventory_image = "flowers_" .. name .. ".png", + wield_image = "flowers_" .. name .. ".png", + sunlight_propagates = true, + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5/5, -2.5/5, -0.5/5, 0.5/5, 0.5/5, 0.5/5}, + {-1.5/5, -0.5/5, -1.5/5, -0.5/5, 1.5/5, -0.5/5}, + {0.5/5, -0.5/5, -1.5/5, 1.5/5, 1.5/5, -0.5/5}, + {0.5/5, -0.5/5, 0.5/5, 1.5/5, 1.5/5, 1.5/5}, + {-1.5/5, -0.5/5, 0.5/5, -0.5/5, 1.5/5, 1.5/5}, + } + }, + walkable = false, + buildable_to = true, + stack_max = 99, + groups = f_groups, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = box + } + }) +end + +flowers.datas = { + { + "rose", + "Red Rose", + {-2 / 16, -0.5, -2 / 16, 2 / 16, 5 / 16, 2 / 16}, + {color_red = 1, flammable = 1} + }, + { + "tulip", + "Orange Tulip", + {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, + {color_orange = 1, flammable = 1} + }, + { + "dandelion_yellow", + "Yellow Dandelion", + {-4 / 16, -0.5, -4 / 16, 4 / 16, -2 / 16, 4 / 16}, + {color_yellow = 1, flammable = 1} + }, + { + "geranium", + "Blue Geranium", + {-2 / 16, -0.5, -2 / 16, 2 / 16, 2 / 16, 2 / 16}, + {color_blue = 1, flammable = 1} + }, + { + "viola", + "Viola", + {-5 / 16, -0.5, -5 / 16, 5 / 16, -1 / 16, 5 / 16}, + {color_violet = 1, flammable = 1} + }, + { + "dandelion_white", + "White Dandelion", + {-5 / 16, -0.5, -5 / 16, 5 / 16, -2 / 16, 5 / 16}, + {color_white = 1, flammable = 1} + }, +} + +for _,item in pairs(flowers.datas) do + add_simple_flower(unpack(item)) +end + + +-- Flower spread +-- Public function to enable override by mods + +function flowers.flower_spread(pos, node) + pos.y = pos.y - 1 + local under = minetest.get_node(pos) + pos.y = pos.y + 1 + -- Replace flora with dry shrub in desert sand and silver sand, + -- as this is the only way to generate them. + -- However, preserve grasses in sand dune biomes. + if minetest.get_item_group(under.name, "sand") == 1 and + under.name ~= "default:sand" then + minetest.set_node(pos, {name = "default:dry_shrub"}) + return + end + + if minetest.get_item_group(under.name, "soil") == 0 then + return + end + + local light = minetest.get_node_light(pos) + if not light or light < 13 then + return + end + + local pos0 = vector.subtract(pos, 4) + local pos1 = vector.add(pos, 4) + if #minetest.find_nodes_in_area(pos0, pos1, "group:flora") > 3 then + return + end + + local soils = minetest.find_nodes_in_area_under_air( + pos0, pos1, "group:soil") + if #soils > 0 then + local seedling = soils[math.random(#soils)] + local seedling_above = + {x = seedling.x, y = seedling.y + 1, z = seedling.z} + light = minetest.get_node_light(seedling_above) + if not light or light < 13 or + -- Desert sand is in the soil group + minetest.get_node(seedling).name == "default:desert_sand" then + return + end + + minetest.set_node(seedling_above, {name = node.name}) + end +end + +minetest.register_abm({ + label = "Flower spread", + nodenames = {"group:flora"}, + interval = 13, + chance = 96, + action = function(...) + flowers.flower_spread(...) + end, +}) + + +-- +-- Mushrooms +-- + +minetest.register_node("flowers:mushroom_red", { + description = "Red Mushroom", + tiles = {"flowers_mushroom_red.png"}, + inventory_image = "flowers_mushroom_red.png", + wield_image = "flowers_mushroom_red.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(-5), + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, -1 / 16, 4 / 16}, + } +}) + +minetest.register_node("flowers:mushroom_brown", { + description = "Brown Mushroom", + tiles = {"flowers_mushroom_brown.png"}, + inventory_image = "flowers_mushroom_brown.png", + wield_image = "flowers_mushroom_brown.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(1), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + +minetest.register_node("flowers:mushroom_jade", { + description = "Jade Mushroom", + tiles = {"flowers_mushroom_jade.png"}, + inventory_image = "flowers_mushroom_jade.png", + wield_image = "flowers_mushroom_jade.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(3), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + +minetest.register_node("flowers:mushroom_french", { + description = "French Mushroom", + tiles = {"flowers_mushroom_french.png"}, + inventory_image = "flowers_mushroom_french.png", + wield_image = "flowers_mushroom_french.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(1), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + +minetest.register_node("flowers:mushroom_lemon", { + description = "Lemon Mushroom", + tiles = {"flowers_mushroom_lemon.png"}, + inventory_image = "flowers_mushroom_lemon.png", + wield_image = "flowers_mushroom_lemon.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(0), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + +minetest.register_node("flowers:mushroom_sleepy", { + description = "Sleepy Mushroom", + tiles = {"flowers_mushroom_sleepy.png"}, + inventory_image = "flowers_mushroom_sleepy.png", + wield_image = "flowers_mushroom_sleepy.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(-18), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + + +-- Mushroom spread and death + +minetest.register_abm({ + label = "Mushroom spread", + nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red", "flowers:mushroom_jade", + "flowers:mushroom_french", "flowers:mushroom_lemon", "flowers:mushroom_sleepy"}, + interval = 11, + chance = 50, + action = function(pos, node) + if minetest.get_node_light(pos, nil) == 15 then + minetest.remove_node(pos) + return + end + local random = { + x = pos.x + math.random(-2, 2), + y = pos.y + math.random(-1, 1), + z = pos.z + math.random(-2, 2) + } + local random_node = minetest.get_node_or_nil(random) + if not random_node or random_node.name ~= "air" then + return + end + local node_under = minetest.get_node_or_nil({x = random.x, + y = random.y - 1, z = random.z}) + if not node_under then + return + end + + if (minetest.get_item_group(node_under.name, "soil") ~= 0 or + minetest.get_item_group(node_under.name, "tree") ~= 0) and + minetest.get_node_light(pos, 0.5) <= 3 and + minetest.get_node_light(random, 0.5) <= 3 then + minetest.set_node(random, {name = node.name}) + end + end +}) + + +-- These old mushroom related nodes can be simplified now + +minetest.register_alias("flowers:mushroom_spores_brown", "flowers:mushroom_brown") +minetest.register_alias("flowers:mushroom_spores_red", "flowers:mushroom_red") +minetest.register_alias("flowers:mushroom_fertile_brown", "flowers:mushroom_brown") +minetest.register_alias("flowers:mushroom_fertile_red", "flowers:mushroom_red") +minetest.register_alias("mushroom:brown_natural", "flowers:mushroom_brown") +minetest.register_alias("mushroom:red_natural", "flowers:mushroom_red") + + +-- +-- Waterlily +-- + +minetest.register_node("flowers:waterlily", { + description = "Waterlily", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"flowers_waterlily.png", "flowers_waterlily_bottom.png"}, + inventory_image = "flowers_waterlily.png", + wield_image = "flowers_waterlily.png", + liquids_pointable = true, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + floodable = true, + groups = {snappy = 3, flower = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + node_placement_prediction = "", + node_box = { + type = "fixed", + fixed = {-0.5, -31 / 64, -0.5, 0.5, -15 / 32, 0.5} + }, + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, -15 / 32, 7 / 16} + }, + + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above + local node = minetest.get_node(pointed_thing.under).name + local def = minetest.registered_nodes[node] + local player_name = placer:get_player_name() + + if def and def.liquidtype == "source" and + minetest.get_item_group(node, "water") > 0 then + if not minetest.is_protected(pos, player_name) then + minetest.set_node(pos, {name = "flowers:waterlily", + param2 = math.random(0, 3)}) + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + else + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos, player_name) + end + end + + return itemstack + end +}) diff --git a/diff/flowers.diff/init.lua.diff b/diff/flowers.diff/init.lua.diff new file mode 100644 index 0000000..828e9c8 --- /dev/null +++ b/diff/flowers.diff/init.lua.diff @@ -0,0 +1,135 @@ +27a28,55 +> -- And now for the tulips mod +> +> minetest.register_alias("tulips:white_seeds", "flowers:dandelion_white") +> minetest.register_alias("tulips:white_sprout", "flowers:dandelion_white") +> minetest.register_alias("tulips:white", "flowers:dandelion_white") +> minetest.register_alias("tulips:grey_seeds", "flowers:dandelion_white") +> minetest.register_alias("tulips:grey_sprout", "flowers:dandelion_white") +> minetest.register_alias("tulips:grey", "flowers:dandelion_white") +> minetest.register_alias("tulips:black_seeds", "flowers:rose") +> minetest.register_alias("tulips:black_sprout", "flowers:rose") +> minetest.register_alias("tulips:black", "flowers:rose") +> minetest.register_alias("tulips:red_seeds", "flowers:rose") +> minetest.register_alias("tulips:red_sprout", "flowers:rose") +> minetest.register_alias("tulips:red", "flowers:rose") +> minetest.register_alias("tulips:yellow_seeds", "flowers:dandelion_yellow") +> minetest.register_alias("tulips:yellow_sprout", "flowers:dandelion_yellow") +> minetest.register_alias("tulips:yellow", "flowers:dandelion_yellow") +> minetest.register_alias("tulips:green_seeds", "flowers:tulip") +> minetest.register_alias("tulips:green_sprout", "flowers:tulip") +> minetest.register_alias("tulips:green", "flowers:tulip") +> minetest.register_alias("tulips:cyan_seeds", "flowers:geranium") +> minetest.register_alias("tulips:cyan_sprout", "flowers:geranium") +> minetest.register_alias("tulips:cyan", "flowers:geranium") +> minetest.register_alias("tulips:blue_seeds", "flowers:geranium") +> minetest.register_alias("tulips:blue_sprout", "flowers:geranium") +> minetest.register_alias("tulips:magenta_seeds", "flowers:viola") +> minetest.register_alias("tulips:magenta_sprout", "flowers:viola") +> minetest.register_alias("tulips:magenta", "flowers:viola") +46a75,85 +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.5/5, -2.5/5, -0.5/5, 0.5/5, 0.5/5, 0.5/5}, +> {-1.5/5, -0.5/5, -1.5/5, -0.5/5, 1.5/5, -0.5/5}, +> {0.5/5, -0.5/5, -1.5/5, 1.5/5, 1.5/5, -0.5/5}, +> {0.5/5, -0.5/5, 0.5/5, 1.5/5, 1.5/5, 1.5/5}, +> {-1.5/5, -0.5/5, 0.5/5, -0.5/5, 1.5/5, 1.5/5}, +> } +> }, +62c101 +< "Rose", +--- +> "Red Rose", +75c114 +< {-2 / 16, -0.5, -2 / 16, 2 / 16, 4 / 16, 2 / 16}, +--- +> {-4 / 16, -0.5, -4 / 16, 4 / 16, -2 / 16, 4 / 16}, +92c131 +< "White dandelion", +--- +> "White Dandelion", +203a243,318 +> minetest.register_node("flowers:mushroom_jade", { +> description = "Jade Mushroom", +> tiles = {"flowers_mushroom_jade.png"}, +> inventory_image = "flowers_mushroom_jade.png", +> wield_image = "flowers_mushroom_jade.png", +> drawtype = "plantlike", +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> groups = {snappy = 3, attached_node = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> on_use = minetest.item_eat(3), +> selection_box = { +> type = "fixed", +> fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, +> } +> }) +> +> minetest.register_node("flowers:mushroom_french", { +> description = "French Mushroom", +> tiles = {"flowers_mushroom_french.png"}, +> inventory_image = "flowers_mushroom_french.png", +> wield_image = "flowers_mushroom_french.png", +> drawtype = "plantlike", +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> groups = {snappy = 3, attached_node = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> on_use = minetest.item_eat(1), +> selection_box = { +> type = "fixed", +> fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, +> } +> }) +> +> minetest.register_node("flowers:mushroom_lemon", { +> description = "Lemon Mushroom", +> tiles = {"flowers_mushroom_lemon.png"}, +> inventory_image = "flowers_mushroom_lemon.png", +> wield_image = "flowers_mushroom_lemon.png", +> drawtype = "plantlike", +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> groups = {snappy = 3, attached_node = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> on_use = minetest.item_eat(0), +> selection_box = { +> type = "fixed", +> fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, +> } +> }) +> +> minetest.register_node("flowers:mushroom_sleepy", { +> description = "Sleepy Mushroom", +> tiles = {"flowers_mushroom_sleepy.png"}, +> inventory_image = "flowers_mushroom_sleepy.png", +> wield_image = "flowers_mushroom_sleepy.png", +> drawtype = "plantlike", +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> groups = {snappy = 3, attached_node = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> on_use = minetest.item_eat(-18), +> selection_box = { +> type = "fixed", +> fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, +> } +> }) +> +209c324,325 +< nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red"}, +--- +> nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red", "flowers:mushroom_jade", +> "flowers:mushroom_french", "flowers:mushroom_lemon", "flowers:mushroom_sleepy"}, diff --git a/diff/flowers.diff/mapgen.lua b/diff/flowers.diff/mapgen.lua new file mode 100644 index 0000000..74461d8 --- /dev/null +++ b/diff/flowers.diff/mapgen.lua @@ -0,0 +1,178 @@ +-- +-- Mgv6 +-- + +local function register_mgv6_flower(name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x = 100, y = 100, z = 100}, + seed = 436, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "flowers:"..name, + }) +end + +local function register_mgv6_mushroom(name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.04, + spread = {x = 100, y = 100, z = 100}, + seed = 7133, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "flowers:"..name, + spawn_by = "default:tree", + num_spawn_by = 1, + }) +end + +local function register_mgv6_waterlily() + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.12, + scale = 0.3, + spread = {x = 100, y = 100, z = 100}, + seed = 33, + octaves = 3, + persist = 0.7 + }, + y_min = 0, + y_max = 0, + schematic = minetest.get_modpath("flowers").."/schematics/waterlily.mts", + rotation = "random", + }) +end + +function flowers.register_mgv6_decorations() + register_mgv6_flower("rose") + register_mgv6_flower("tulip") + register_mgv6_flower("dandelion_yellow") + register_mgv6_flower("geranium") + register_mgv6_flower("viola") + register_mgv6_flower("dandelion_white") + + register_mgv6_mushroom("mushroom_brown") + register_mgv6_mushroom("mushroom_red") + register_mgv6_mushroom("mushroom_jade") + register_mgv6_mushroom("mushroom_french") + register_mgv6_mushroom("mushroom_lemon") + register_mgv6_mushroom("mushroom_sleepy") + + register_mgv6_waterlily() +end + + +-- +-- All other biome API mapgens +-- + +local function register_flower(seed, name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.02, + scale = 0.04, + spread = {x = 200, y = 200, z = 200}, + seed = seed, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland", "deciduous_forest", "coniferous_forest", + "floatland_grassland"}, + y_min = 1, + y_max = 31000, + decoration = "flowers:"..name, + }) +end + +local function register_mushroom(name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest", "coniferous_forest"}, + y_min = 1, + y_max = 31000, + decoration = "flowers:"..name, + }) +end + +local function register_waterlily() + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.12, + scale = 0.3, + spread = {x = 200, y = 200, z = 200}, + seed = 33, + octaves = 3, + persist = 0.7 + }, + biomes = {"rainforest_swamp", "savanna_shore", "deciduous_forest_shore"}, + y_min = 0, + y_max = 0, + schematic = minetest.get_modpath("flowers") .. "/schematics/waterlily.mts", + rotation = "random", + }) +end + +function flowers.register_decorations() + register_flower(436, "rose") + register_flower(19822, "tulip") + register_flower(1220999, "dandelion_yellow") + register_flower(36662, "geranium") + register_flower(1133, "viola") + register_flower(73133, "dandelion_white") + + register_mushroom("mushroom_brown") + register_mushroom("mushroom_red") + register_mgv6_mushroom("mushroom_jade") + register_mgv6_mushroom("mushroom_french") + register_mgv6_mushroom("mushroom_lemon") + register_mgv6_mushroom("mushroom_sleepy") + + register_waterlily() +end + + +-- +-- Detect mapgen to select functions +-- + +local mg_name = minetest.get_mapgen_setting("mg_name") +if mg_name == "v6" then + flowers.register_mgv6_decorations() +else + flowers.register_decorations() +end diff --git a/diff/flowers.diff/mapgen.lua.diff b/diff/flowers.diff/mapgen.lua.diff new file mode 100644 index 0000000..6b52ebd --- /dev/null +++ b/diff/flowers.diff/mapgen.lua.diff @@ -0,0 +1,25 @@ +74a75,78 +> register_mgv6_mushroom("mushroom_jade") +> register_mgv6_mushroom("mushroom_french") +> register_mgv6_mushroom("mushroom_lemon") +> register_mgv6_mushroom("mushroom_sleepy") +90,91c94,95 +< offset = -0.015, +< scale = 0.025, +--- +> offset = -0.02, +> scale = 0.04, +98c102 +< "floatland_grassland", "floatland_coniferous_forest"}, +--- +> "floatland_grassland"}, +118,119c122 +< biomes = {"deciduous_forest", "coniferous_forest", +< "floatland_coniferous_forest"}, +--- +> biomes = {"deciduous_forest", "coniferous_forest"}, +156a160,163 +> register_mgv6_mushroom("mushroom_jade") +> register_mgv6_mushroom("mushroom_french") +> register_mgv6_mushroom("mushroom_lemon") +> register_mgv6_mushroom("mushroom_sleepy") diff --git a/diff/flowers.diff/textures/flowers_dandelion_white.png b/diff/flowers.diff/textures/flowers_dandelion_white.png new file mode 100644 index 0000000..4dc5e65 Binary files /dev/null and b/diff/flowers.diff/textures/flowers_dandelion_white.png differ diff --git a/diff/flowers.diff/textures/flowers_dandelion_yellow.png b/diff/flowers.diff/textures/flowers_dandelion_yellow.png new file mode 100644 index 0000000..5a5d9ec Binary files /dev/null and b/diff/flowers.diff/textures/flowers_dandelion_yellow.png differ diff --git a/diff/flowers.diff/textures/flowers_geranium.png b/diff/flowers.diff/textures/flowers_geranium.png new file mode 100644 index 0000000..d2660ff Binary files /dev/null and b/diff/flowers.diff/textures/flowers_geranium.png differ diff --git a/diff/flowers.diff/textures/flowers_mushroom_brown.png b/diff/flowers.diff/textures/flowers_mushroom_brown.png new file mode 100644 index 0000000..9e292e4 Binary files /dev/null and b/diff/flowers.diff/textures/flowers_mushroom_brown.png differ diff --git a/diff/flowers.diff/textures/flowers_mushroom_french.png b/diff/flowers.diff/textures/flowers_mushroom_french.png new file mode 100644 index 0000000..f71b164 Binary files /dev/null and b/diff/flowers.diff/textures/flowers_mushroom_french.png differ diff --git a/diff/flowers.diff/textures/flowers_mushroom_jade.png b/diff/flowers.diff/textures/flowers_mushroom_jade.png new file mode 100644 index 0000000..8dab85e Binary files /dev/null and b/diff/flowers.diff/textures/flowers_mushroom_jade.png differ diff --git a/diff/flowers.diff/textures/flowers_mushroom_lemon.png b/diff/flowers.diff/textures/flowers_mushroom_lemon.png new file mode 100644 index 0000000..a62d4d7 Binary files /dev/null and b/diff/flowers.diff/textures/flowers_mushroom_lemon.png differ diff --git a/diff/flowers.diff/textures/flowers_mushroom_red.png b/diff/flowers.diff/textures/flowers_mushroom_red.png new file mode 100644 index 0000000..39917f8 Binary files /dev/null and b/diff/flowers.diff/textures/flowers_mushroom_red.png differ diff --git a/diff/flowers.diff/textures/flowers_mushroom_sleepy.png b/diff/flowers.diff/textures/flowers_mushroom_sleepy.png new file mode 100644 index 0000000..888f9ac Binary files /dev/null and b/diff/flowers.diff/textures/flowers_mushroom_sleepy.png differ diff --git a/diff/flowers.diff/textures/flowers_rose.png b/diff/flowers.diff/textures/flowers_rose.png new file mode 100644 index 0000000..d7e1047 Binary files /dev/null and b/diff/flowers.diff/textures/flowers_rose.png differ diff --git a/diff/flowers.diff/textures/flowers_tulip.png b/diff/flowers.diff/textures/flowers_tulip.png new file mode 100644 index 0000000..c6d3949 Binary files /dev/null and b/diff/flowers.diff/textures/flowers_tulip.png differ diff --git a/diff/flowers.diff/textures/flowers_viola.png b/diff/flowers.diff/textures/flowers_viola.png new file mode 100644 index 0000000..1956563 Binary files /dev/null and b/diff/flowers.diff/textures/flowers_viola.png differ diff --git a/diff/flowers.diff/textures/flowers_waterlily.png b/diff/flowers.diff/textures/flowers_waterlily.png new file mode 100644 index 0000000..ea43202 Binary files /dev/null and b/diff/flowers.diff/textures/flowers_waterlily.png differ diff --git a/diff/flowers.diff/textures/flowers_waterlily_bottom.png b/diff/flowers.diff/textures/flowers_waterlily_bottom.png new file mode 100644 index 0000000..5005a7c Binary files /dev/null and b/diff/flowers.diff/textures/flowers_waterlily_bottom.png differ diff --git a/diff/flowers.diff/textures/tulips_red.png b/diff/flowers.diff/textures/tulips_red.png new file mode 100644 index 0000000..4c7ffa5 Binary files /dev/null and b/diff/flowers.diff/textures/tulips_red.png differ diff --git a/diff/give_initial_stuff.diff/README.txt b/diff/give_initial_stuff.diff/README.txt new file mode 100644 index 0000000..35feb60 --- /dev/null +++ b/diff/give_initial_stuff.diff/README.txt @@ -0,0 +1,5 @@ +Give_initial_stuff +===================================================================== +Main: celeron55, various +Lisc: MIT +Link: https://github.com/minetest/minetest_game diff --git a/diff/give_initial_stuff.diff/README.txt.diff b/diff/give_initial_stuff.diff/README.txt.diff new file mode 100644 index 0000000..82cdbbf --- /dev/null +++ b/diff/give_initial_stuff.diff/README.txt.diff @@ -0,0 +1,15 @@ +1,8c1,5 +< Minetest Game mod: give_initial_stuff +< ===================================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Perttu Ahola (celeron55) (MIT) +< Various Minetest developers and contributors (MIT) +--- +> Give_initial_stuff +> ===================================================================== +> Main: celeron55, various +> Lisc: MIT +> Link: https://github.com/minetest/minetest_game diff --git a/diff/killme.diff/depends.txt b/diff/killme.diff/depends.txt new file mode 100644 index 0000000..c0605af --- /dev/null +++ b/diff/killme.diff/depends.txt @@ -0,0 +1 @@ +lightning diff --git a/diff/killme.diff/init.lua b/diff/killme.diff/init.lua new file mode 100644 index 0000000..71bc2eb --- /dev/null +++ b/diff/killme.diff/init.lua @@ -0,0 +1,26 @@ +minetest.register_chatcommand("killme", { + description = "Kill yourself to respawn", + func = function(name) + local player = minetest.get_player_by_name(name) + local pos = vector.round(player:getpos()) + if player then + if minetest.settings:get_bool("enable_damage") then + player:set_hp(0) + lightning.strike(pos) + return true + else + for _, callback in pairs(core.registered_on_respawnplayers) do + if callback(player) then + return true + end + end + + -- There doesn't seem to be a way to get a default spawn pos from the lua API + return false, "No static_spawnpoint defined" + end + else + -- Show error message if used when not logged in, eg: from IRC mod + return false, "You need to be online to be killed!" + end + end +}) diff --git a/diff/killme.diff/init.lua.diff b/diff/killme.diff/init.lua.diff new file mode 100644 index 0000000..a2ed050 --- /dev/null +++ b/diff/killme.diff/init.lua.diff @@ -0,0 +1,4 @@ +4a5 +> local pos = vector.round(player:getpos()) +7a9 +> lightning.strike(pos) diff --git a/diff/screwdriver.diff/README.txt b/diff/screwdriver.diff/README.txt new file mode 100644 index 0000000..f5ed753 --- /dev/null +++ b/diff/screwdriver.diff/README.txt @@ -0,0 +1,7 @@ +Screwdriver +===================================================================== +Main: RealBadAngel & Maciej Kasatkin, various +Lisc: LGPL v2.1 +Text: LGPL v2.0 + By jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/diff/screwdriver.diff/README.txt.diff b/diff/screwdriver.diff/README.txt.diff new file mode 100644 index 0000000..20ca010 --- /dev/null +++ b/diff/screwdriver.diff/README.txt.diff @@ -0,0 +1,22 @@ +1,13c1,7 +< Minetest Game mod: screwdriver +< ============================== +< See license.txt for license information. +< +< License of source code +< ---------------------- +< Originally by RealBadAngel, Maciej Kasatkin (LGPL 2.1) +< Various Minetest developers and contributors (LGPL 2.1) +< +< License of media (textures) +< --------------------------- +< Created by Gambit (CC BY-SA 3.0): +< screwdriver.png +--- +> Screwdriver +> ===================================================================== +> Main: RealBadAngel & Maciej Kasatkin, various +> Lisc: LGPL v2.1 +> Text: LGPL v2.0 +> By jadedctrl +> Link: https://github.com/minetest/minetest_game diff --git a/diff/screwdriver.diff/license.txt b/diff/screwdriver.diff/license.txt new file mode 100644 index 0000000..098c6e7 --- /dev/null +++ b/diff/screwdriver.diff/license.txt @@ -0,0 +1,15 @@ +License of source code & media +------------------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2013-2016 RealBadAngel, Maciej Kasatkin +Copyright (C) 2013-2016 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html diff --git a/diff/screwdriver.diff/license.txt.diff b/diff/screwdriver.diff/license.txt.diff new file mode 100644 index 0000000..d3c7a2e --- /dev/null +++ b/diff/screwdriver.diff/license.txt.diff @@ -0,0 +1,42 @@ +1,2c1,2 +< License of source code +< ---------------------- +--- +> License of source code & media +> ------------------------------- +16,50d15 +< +< +< Licenses of media (textures) +< ---------------------------- +< +< Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +< Copyright (C) 2013-2016 Gambit +< +< You are free to: +< Share — copy and redistribute the material in any medium or format. +< Adapt — remix, transform, and build upon the material for any purpose, even commercially. +< The licensor cannot revoke these freedoms as long as you follow the license terms. +< +< Under the following terms: +< +< Attribution — You must give appropriate credit, provide a link to the license, and +< indicate if changes were made. You may do so in any reasonable manner, but not in any way +< that suggests the licensor endorses you or your use. +< +< ShareAlike — If you remix, transform, or build upon the material, you must distribute +< your contributions under the same license as the original. +< +< No additional restrictions — You may not apply legal terms or technological measures that +< legally restrict others from doing anything the license permits. +< +< Notices: +< +< You do not have to comply with the license for elements of the material in the public +< domain or where your use is permitted by an applicable exception or limitation. +< No warranties are given. The license may not give you all of the permissions necessary +< for your intended use. For example, other rights such as publicity, privacy, or moral +< rights may limit how you use the material. +< +< For more details: +< http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/diff/screwdriver.diff/textures/screwdriver.png b/diff/screwdriver.diff/textures/screwdriver.png new file mode 100644 index 0000000..607bca8 Binary files /dev/null and b/diff/screwdriver.diff/textures/screwdriver.png differ diff --git a/diff/screwdriver.diff/textures/tool_mode1.png b/diff/screwdriver.diff/textures/tool_mode1.png new file mode 100644 index 0000000..bef8637 Binary files /dev/null and b/diff/screwdriver.diff/textures/tool_mode1.png differ diff --git a/diff/screwdriver.diff/textures/tool_mode2.png b/diff/screwdriver.diff/textures/tool_mode2.png new file mode 100644 index 0000000..4429a5d Binary files /dev/null and b/diff/screwdriver.diff/textures/tool_mode2.png differ diff --git a/diff/screwdriver.diff/textures/tool_mode3.png b/diff/screwdriver.diff/textures/tool_mode3.png new file mode 100644 index 0000000..5635e41 Binary files /dev/null and b/diff/screwdriver.diff/textures/tool_mode3.png differ diff --git a/diff/screwdriver.diff/textures/tool_mode4.png b/diff/screwdriver.diff/textures/tool_mode4.png new file mode 100644 index 0000000..da21e05 Binary files /dev/null and b/diff/screwdriver.diff/textures/tool_mode4.png differ diff --git a/diff/sethome.diff/README.txt b/diff/sethome.diff/README.txt new file mode 100644 index 0000000..c676672 --- /dev/null +++ b/diff/sethome.diff/README.txt @@ -0,0 +1,5 @@ +Sethome +===================================================================== +Main: sfan5 +Lisc: MIT +Link: https://github.com/minetest/minetest_game diff --git a/diff/sethome.diff/README.txt.diff b/diff/sethome.diff/README.txt.diff new file mode 100644 index 0000000..af251ce --- /dev/null +++ b/diff/sethome.diff/README.txt.diff @@ -0,0 +1,14 @@ +1,7c1,5 +< Minetest Game mod: sethome +< ========================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< sfan5 (MIT) +--- +> Sethome +> ===================================================================== +> Main: sfan5 +> Lisc: MIT +> Link: https://github.com/minetest/minetest_game diff --git a/diff/sfinv.diff/README.md b/diff/sfinv.diff/README.md new file mode 100644 index 0000000..cacf0a3 --- /dev/null +++ b/diff/sfinv.diff/README.md @@ -0,0 +1,5 @@ +Simple Fast Inventory +===================================================================== +Main: rubenwardy +Lisc: MIT +Link: https://github.com/minetest/minetest_game diff --git a/diff/sfinv.diff/README.md.diff b/diff/sfinv.diff/README.md.diff new file mode 100644 index 0000000..cd71efb --- /dev/null +++ b/diff/sfinv.diff/README.md.diff @@ -0,0 +1,26 @@ +2,21c2,5 +< ==================== +< +< ![SFINV Screeny](https://cdn.pbrd.co/images/1yQhd1TI.png) +< +< A cleaner, simpler, solution to having an advanced inventory in Minetest. +< +< Written by rubenwardy. +< License: MIT +< +< See game_api.txt for this mod's API +< +< License of source code and media files: +< --------------------------------------- +< Copyright (C) 2016 rubenwardy +< +< Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +< +< The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +< +< THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +--- +> ===================================================================== +> Main: rubenwardy +> Lisc: MIT +> Link: https://github.com/minetest/minetest_game diff --git a/diff/stairs.diff/README.txt b/diff/stairs.diff/README.txt new file mode 100644 index 0000000..425c514 --- /dev/null +++ b/diff/stairs.diff/README.txt @@ -0,0 +1,11 @@ +Stairs +===================================================================== +Main: Kahrl & celeron55, various +Lisc: LGPL 2.1 +3Dmo: CC BY-SA 3.0 + killbith + stairs_stair.obj + GreenXenith + stairs_stair_inner.obj + stairs_stair_outer.obj +Link: https://github.com/minetest/minetest_game diff --git a/diff/stairs.diff/README.txt.diff b/diff/stairs.diff/README.txt.diff new file mode 100644 index 0000000..96fab35 --- /dev/null +++ b/diff/stairs.diff/README.txt.diff @@ -0,0 +1,29 @@ +1,16c1,11 +< Minetest Game mod: stairs +< ========================= +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by Kahrl (LGPL 2.1) and +< celeron55, Perttu Ahola (LGPL 2.1) +< Various Minetest developers and contributors (LGPL 2.1) +< +< Authors of media (models) +< ------------------------- +< Jean-Patrick G. (kilbith) (CC BY-SA 3.0): +< stairs_stair.obj +< +< +--- +> Stairs +> ===================================================================== +> Main: Kahrl & celeron55, various +> Lisc: LGPL 2.1 +> 3Dmo: CC BY-SA 3.0 +> killbith +> stairs_stair.obj +> GreenXenith +> stairs_stair_inner.obj +> stairs_stair_outer.obj +> Link: https://github.com/minetest/minetest_game diff --git a/diff/tnt.diff/README.txt b/diff/tnt.diff/README.txt new file mode 100644 index 0000000..8208c76 --- /dev/null +++ b/diff/tnt.diff/README.txt @@ -0,0 +1,7 @@ +TNT +===================================================================== +Main: PilzAdam & ShadowNinja & sofar, various +Lisc: MIT +Text: CC0 + Derivative of bas080 by jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/diff/tnt.diff/README.txt.diff b/diff/tnt.diff/README.txt.diff new file mode 100644 index 0000000..f667dac --- /dev/null +++ b/diff/tnt.diff/README.txt.diff @@ -0,0 +1,53 @@ +1,44c1,7 +< Minetest Game mod: tnt +< ====================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< PilzAdam (MIT) +< ShadowNinja (MIT) +< sofar (sofar@foo-projects.org) (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures) +< --------------------------- +< BlockMen (CC BY-SA 3.0): +< All textures not mentioned below. +< +< ShadowNinja (CC BY-SA 3.0): +< tnt_smoke.png +< +< Wuzzy (CC BY-SA 3.0): +< All gunpowder textures except tnt_gunpowder_inventory.png. +< +< sofar (sofar@foo-projects.org) (CC BY-SA 3.0): +< tnt_blast.png +< +< Introduction +< ------------ +< This mod adds TNT to Minetest. TNT is a tool to help the player +< in mining. +< +< How to use the mod: +< Craft gunpowder by placing coal and gravel in the crafting area. +< The gunpowder can be used to craft TNT or as fuse for TNT. +< To craft TNT place items like this: +< -- wood - gunpowder -- wood - +< gunpowder gunpowder gunpowder +< -- wood - gunpowder -- wood - +< +< There are different ways to blow up TNT: +< 1. Hit it with a torch. +< 2. Hit a gunpowder fuse that leads to a TNT block with a torch or flint-and-steel. +< 3. Activate it with mesecons (fastest way). +< +< Be aware of the damage radius of 6 blocks! +--- +> TNT +> ===================================================================== +> Main: PilzAdam & ShadowNinja & sofar, various +> Lisc: MIT +> Text: CC0 +> Derivative of bas080 by jadedctrl +> Link: https://github.com/minetest/minetest_game diff --git a/diff/tnt.diff/license.txt b/diff/tnt.diff/license.txt new file mode 100644 index 0000000..5dec7a8 --- /dev/null +++ b/diff/tnt.diff/license.txt @@ -0,0 +1,27 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2014-2016 PilzAdam +Copyright (C) 2014-2016 ShadowNinja +Copyright (C) 2016 sofar (sofar@foo-projects.org) +Copyright (C) 2014-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/diff/tnt.diff/license.txt.diff b/diff/tnt.diff/license.txt.diff new file mode 100644 index 0000000..10e3270 --- /dev/null +++ b/diff/tnt.diff/license.txt.diff @@ -0,0 +1,39 @@ +28,65d27 +< +< +< Licenses of media (textures) +< ---------------------------- +< +< Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +< Copyright (C) 2014-2016 BlockMen +< Copyright (C) 2014-2016 ShadowNinja +< Copyright (C) 2015-2016 Wuzzy +< Copyright (C) 2016 sofar (sofar@foo-projects.org) +< +< You are free to: +< Share — copy and redistribute the material in any medium or format. +< Adapt — remix, transform, and build upon the material for any purpose, even commercially. +< The licensor cannot revoke these freedoms as long as you follow the license terms. +< +< Under the following terms: +< +< Attribution — You must give appropriate credit, provide a link to the license, and +< indicate if changes were made. You may do so in any reasonable manner, but not in any way +< that suggests the licensor endorses you or your use. +< +< ShareAlike — If you remix, transform, or build upon the material, you must distribute +< your contributions under the same license as the original. +< +< No additional restrictions — You may not apply legal terms or technological measures that +< legally restrict others from doing anything the license permits. +< +< Notices: +< +< You do not have to comply with the license for elements of the material in the public +< domain or where your use is permitted by an applicable exception or limitation. +< No warranties are given. The license may not give you all of the permissions necessary +< for your intended use. For example, other rights such as publicity, privacy, or moral +< rights may limit how you use the material. +< +< For more details: +< http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/diff/tnt.diff/textures/tnt_blast.png b/diff/tnt.diff/textures/tnt_blast.png new file mode 100644 index 0000000..8358b0b Binary files /dev/null and b/diff/tnt.diff/textures/tnt_blast.png differ diff --git a/diff/tnt.diff/textures/tnt_boom.png b/diff/tnt.diff/textures/tnt_boom.png new file mode 100644 index 0000000..7a22d46 Binary files /dev/null and b/diff/tnt.diff/textures/tnt_boom.png differ diff --git a/diff/tnt.diff/textures/tnt_bottom.png b/diff/tnt.diff/textures/tnt_bottom.png new file mode 100644 index 0000000..47816dd Binary files /dev/null and b/diff/tnt.diff/textures/tnt_bottom.png differ diff --git a/diff/tnt.diff/textures/tnt_gunpowder_burning_crossing_animated.png b/diff/tnt.diff/textures/tnt_gunpowder_burning_crossing_animated.png new file mode 100644 index 0000000..bd6bb7c Binary files /dev/null and b/diff/tnt.diff/textures/tnt_gunpowder_burning_crossing_animated.png differ diff --git a/diff/tnt.diff/textures/tnt_gunpowder_burning_curved_animated.png b/diff/tnt.diff/textures/tnt_gunpowder_burning_curved_animated.png new file mode 100644 index 0000000..0af531a Binary files /dev/null and b/diff/tnt.diff/textures/tnt_gunpowder_burning_curved_animated.png differ diff --git a/diff/tnt.diff/textures/tnt_gunpowder_burning_straight_animated.png b/diff/tnt.diff/textures/tnt_gunpowder_burning_straight_animated.png new file mode 100644 index 0000000..36e145c Binary files /dev/null and b/diff/tnt.diff/textures/tnt_gunpowder_burning_straight_animated.png differ diff --git a/diff/tnt.diff/textures/tnt_gunpowder_burning_t_junction_animated.png b/diff/tnt.diff/textures/tnt_gunpowder_burning_t_junction_animated.png new file mode 100644 index 0000000..ad1dbbc Binary files /dev/null and b/diff/tnt.diff/textures/tnt_gunpowder_burning_t_junction_animated.png differ diff --git a/diff/tnt.diff/textures/tnt_gunpowder_crossing.png b/diff/tnt.diff/textures/tnt_gunpowder_crossing.png new file mode 100644 index 0000000..c8da5fb Binary files /dev/null and b/diff/tnt.diff/textures/tnt_gunpowder_crossing.png differ diff --git a/diff/tnt.diff/textures/tnt_gunpowder_curved.png b/diff/tnt.diff/textures/tnt_gunpowder_curved.png new file mode 100644 index 0000000..c36ff26 Binary files /dev/null and b/diff/tnt.diff/textures/tnt_gunpowder_curved.png differ diff --git a/diff/tnt.diff/textures/tnt_gunpowder_inventory.png b/diff/tnt.diff/textures/tnt_gunpowder_inventory.png new file mode 100644 index 0000000..f6239ee Binary files /dev/null and b/diff/tnt.diff/textures/tnt_gunpowder_inventory.png differ diff --git a/diff/tnt.diff/textures/tnt_gunpowder_straight.png b/diff/tnt.diff/textures/tnt_gunpowder_straight.png new file mode 100644 index 0000000..d615a9c Binary files /dev/null and b/diff/tnt.diff/textures/tnt_gunpowder_straight.png differ diff --git a/diff/tnt.diff/textures/tnt_gunpowder_t_junction.png b/diff/tnt.diff/textures/tnt_gunpowder_t_junction.png new file mode 100644 index 0000000..a5eab82 Binary files /dev/null and b/diff/tnt.diff/textures/tnt_gunpowder_t_junction.png differ diff --git a/diff/tnt.diff/textures/tnt_side.png b/diff/tnt.diff/textures/tnt_side.png new file mode 100644 index 0000000..cbe3758 Binary files /dev/null and b/diff/tnt.diff/textures/tnt_side.png differ diff --git a/diff/tnt.diff/textures/tnt_smoke.png b/diff/tnt.diff/textures/tnt_smoke.png new file mode 100644 index 0000000..2333aba Binary files /dev/null and b/diff/tnt.diff/textures/tnt_smoke.png differ diff --git a/diff/tnt.diff/textures/tnt_top.png b/diff/tnt.diff/textures/tnt_top.png new file mode 100644 index 0000000..7f693b5 Binary files /dev/null and b/diff/tnt.diff/textures/tnt_top.png differ diff --git a/diff/tnt.diff/textures/tnt_top_burning.png b/diff/tnt.diff/textures/tnt_top_burning.png new file mode 100644 index 0000000..f24538d Binary files /dev/null and b/diff/tnt.diff/textures/tnt_top_burning.png differ diff --git a/diff/tnt.diff/textures/tnt_top_burning_animated.png b/diff/tnt.diff/textures/tnt_top_burning_animated.png new file mode 100644 index 0000000..2221246 Binary files /dev/null and b/diff/tnt.diff/textures/tnt_top_burning_animated.png differ diff --git a/diff/vessels.diff/README.txt b/diff/vessels.diff/README.txt new file mode 100644 index 0000000..5e2996a --- /dev/null +++ b/diff/vessels.diff/README.txt @@ -0,0 +1,7 @@ +Vessels +===================================================================== +Main: VanesseE & celeron55, various +Lisc: LGPL v2.1 +Text: CC0 + Derivative of bas080 by jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/diff/vessels.diff/README.txt.diff b/diff/vessels.diff/README.txt.diff new file mode 100644 index 0000000..e36df7b --- /dev/null +++ b/diff/vessels.diff/README.txt.diff @@ -0,0 +1,31 @@ +1,22c1,7 +< Minetest Game mod: vessels +< ========================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by Vanessa Ezekowitz (LGPL 2.1) +< Modified by Perttu Ahola (LGPL 2.1) +< Various Minetest developers and contributors (LGPL 2.1) +< +< Authors of media (textures) +< --------------------------- +< All not listed below, Vanessa Ezekowitz (CC BY-SA 3.0) +< +< The following textures were modified by Thomas-S (CC BY-SA 3.0): +< vessels_drinking_glass.png +< vessels_drinking_glass_inv.png +< vessels_glass_bottle.png +< vessels_steel_bottle.png +< +< The following texture was created by Wuzzy (CC BY-SA 3.0): +< vessels_shelf_slot.png (based on vessels_glass_bottle.png) +--- +> Vessels +> ===================================================================== +> Main: VanesseE & celeron55, various +> Lisc: LGPL v2.1 +> Text: CC0 +> Derivative of bas080 by jadedctrl +> Link: https://github.com/minetest/minetest_game diff --git a/diff/vessels.diff/license.txt b/diff/vessels.diff/license.txt new file mode 100644 index 0000000..f581977 --- /dev/null +++ b/diff/vessels.diff/license.txt @@ -0,0 +1,16 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2012-2016 Vanessa Ezekowitz +Copyright (C) 2012-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html diff --git a/diff/vessels.diff/license.txt.diff b/diff/vessels.diff/license.txt.diff new file mode 100644 index 0000000..b7fa983 --- /dev/null +++ b/diff/vessels.diff/license.txt.diff @@ -0,0 +1,37 @@ +17,52d16 +< +< +< Licenses of media (textures) +< ---------------------------- +< +< Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +< Copyright (C) 2012-2016 Vanessa Ezekowitz +< Copyright (C) 2016 Thomas-S +< +< You are free to: +< Share — copy and redistribute the material in any medium or format. +< Adapt — remix, transform, and build upon the material for any purpose, even commercially. +< The licensor cannot revoke these freedoms as long as you follow the license terms. +< +< Under the following terms: +< +< Attribution — You must give appropriate credit, provide a link to the license, and +< indicate if changes were made. You may do so in any reasonable manner, but not in any way +< that suggests the licensor endorses you or your use. +< +< ShareAlike — If you remix, transform, or build upon the material, you must distribute +< your contributions under the same license as the original. +< +< No additional restrictions — You may not apply legal terms or technological measures that +< legally restrict others from doing anything the license permits. +< +< Notices: +< +< You do not have to comply with the license for elements of the material in the public +< domain or where your use is permitted by an applicable exception or limitation. +< No warranties are given. The license may not give you all of the permissions necessary +< for your intended use. For example, other rights such as publicity, privacy, or moral +< rights may limit how you use the material. +< +< For more details: +< http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/diff/vessels.diff/textures/vessels_drinking_glass.png b/diff/vessels.diff/textures/vessels_drinking_glass.png new file mode 100644 index 0000000..c0b8e7b Binary files /dev/null and b/diff/vessels.diff/textures/vessels_drinking_glass.png differ diff --git a/diff/vessels.diff/textures/vessels_drinking_glass_inv.png b/diff/vessels.diff/textures/vessels_drinking_glass_inv.png new file mode 100644 index 0000000..c0b8e7b Binary files /dev/null and b/diff/vessels.diff/textures/vessels_drinking_glass_inv.png differ diff --git a/diff/vessels.diff/textures/vessels_glass_bottle.png b/diff/vessels.diff/textures/vessels_glass_bottle.png new file mode 100644 index 0000000..6aa17ca Binary files /dev/null and b/diff/vessels.diff/textures/vessels_glass_bottle.png differ diff --git a/diff/vessels.diff/textures/vessels_glass_fragments.png b/diff/vessels.diff/textures/vessels_glass_fragments.png new file mode 100644 index 0000000..6066024 Binary files /dev/null and b/diff/vessels.diff/textures/vessels_glass_fragments.png differ diff --git a/diff/vessels.diff/textures/vessels_shelf.png b/diff/vessels.diff/textures/vessels_shelf.png new file mode 100644 index 0000000..87c69b2 Binary files /dev/null and b/diff/vessels.diff/textures/vessels_shelf.png differ diff --git a/diff/vessels.diff/textures/vessels_shelf_slot.png b/diff/vessels.diff/textures/vessels_shelf_slot.png new file mode 100644 index 0000000..ff29082 Binary files /dev/null and b/diff/vessels.diff/textures/vessels_shelf_slot.png differ diff --git a/diff/vessels.diff/textures/vessels_steel_bottle.png b/diff/vessels.diff/textures/vessels_steel_bottle.png new file mode 100644 index 0000000..049e512 Binary files /dev/null and b/diff/vessels.diff/textures/vessels_steel_bottle.png differ diff --git a/diff/walls.diff/README.txt b/diff/walls.diff/README.txt new file mode 100644 index 0000000..17c9162 --- /dev/null +++ b/diff/walls.diff/README.txt @@ -0,0 +1,5 @@ +Walls +===================================================================== +Main: sofar +Lisc: LGPL v2.1 +Link: https://github.com/minetest/minetest_game diff --git a/diff/walls.diff/README.txt.diff b/diff/walls.diff/README.txt.diff new file mode 100644 index 0000000..a8560c7 --- /dev/null +++ b/diff/walls.diff/README.txt.diff @@ -0,0 +1,14 @@ +1,7c1,5 +< Minetest Game mod: walls +< ======================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Auke Kok (LGPL 2.1) +--- +> Walls +> ===================================================================== +> Main: sofar +> Lisc: LGPL v2.1 +> Link: https://github.com/minetest/minetest_game diff --git a/diff/wool.diff/README.txt b/diff/wool.diff/README.txt new file mode 100644 index 0000000..272bcb8 --- /dev/null +++ b/diff/wool.diff/README.txt @@ -0,0 +1,7 @@ +Wool +===================================================================== +Main: celeron55, various +Lisc: MIT +Text: CC0 + Derivative of bas080 by Tirifto & jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/diff/wool.diff/README.txt.diff b/diff/wool.diff/README.txt.diff new file mode 100644 index 0000000..593fed9 --- /dev/null +++ b/diff/wool.diff/README.txt.diff @@ -0,0 +1,25 @@ +1,16c1,7 +< Minetest Game mod: wool +< ======================= +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by Perttu Ahola (celeron55) (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures) +< --------------------------- +< Cisoun (CC BY-SA 3.0): +< wool_black.png wool_brown.png wool_dark_green.png wool_green.png +< wool_magenta.png wool_pink.png wool_violet.png wool_yellow.png +< wool_blue.png wool_cyan.png wool_dark_grey.png wool_grey.png +< wool_orange.png wool_red.png wool_white.png +--- +> Wool +> ===================================================================== +> Main: celeron55, various +> Lisc: MIT +> Text: CC0 +> Derivative of bas080 by Tirifto & jadedctrl +> Link: https://github.com/minetest/minetest_game diff --git a/diff/wool.diff/textures/wool_black.png b/diff/wool.diff/textures/wool_black.png new file mode 100644 index 0000000..5efbb7b Binary files /dev/null and b/diff/wool.diff/textures/wool_black.png differ diff --git a/diff/wool.diff/textures/wool_blue.png b/diff/wool.diff/textures/wool_blue.png new file mode 100644 index 0000000..1035b06 Binary files /dev/null and b/diff/wool.diff/textures/wool_blue.png differ diff --git a/diff/wool.diff/textures/wool_brown.png b/diff/wool.diff/textures/wool_brown.png new file mode 100644 index 0000000..bb73e6d Binary files /dev/null and b/diff/wool.diff/textures/wool_brown.png differ diff --git a/diff/wool.diff/textures/wool_cyan.png b/diff/wool.diff/textures/wool_cyan.png new file mode 100644 index 0000000..d3f555c Binary files /dev/null and b/diff/wool.diff/textures/wool_cyan.png differ diff --git a/diff/wool.diff/textures/wool_dark_green.png b/diff/wool.diff/textures/wool_dark_green.png new file mode 100644 index 0000000..3fda962 Binary files /dev/null and b/diff/wool.diff/textures/wool_dark_green.png differ diff --git a/diff/wool.diff/textures/wool_dark_grey.png b/diff/wool.diff/textures/wool_dark_grey.png new file mode 100644 index 0000000..412b9d4 Binary files /dev/null and b/diff/wool.diff/textures/wool_dark_grey.png differ diff --git a/diff/wool.diff/textures/wool_green.png b/diff/wool.diff/textures/wool_green.png new file mode 100644 index 0000000..e69aa63 Binary files /dev/null and b/diff/wool.diff/textures/wool_green.png differ diff --git a/diff/wool.diff/textures/wool_grey.png b/diff/wool.diff/textures/wool_grey.png new file mode 100644 index 0000000..5d9629f Binary files /dev/null and b/diff/wool.diff/textures/wool_grey.png differ diff --git a/diff/wool.diff/textures/wool_magenta.png b/diff/wool.diff/textures/wool_magenta.png new file mode 100644 index 0000000..e0d2039 Binary files /dev/null and b/diff/wool.diff/textures/wool_magenta.png differ diff --git a/diff/wool.diff/textures/wool_orange.png b/diff/wool.diff/textures/wool_orange.png new file mode 100644 index 0000000..4502a7e Binary files /dev/null and b/diff/wool.diff/textures/wool_orange.png differ diff --git a/diff/wool.diff/textures/wool_pink.png b/diff/wool.diff/textures/wool_pink.png new file mode 100644 index 0000000..e9e0e38 Binary files /dev/null and b/diff/wool.diff/textures/wool_pink.png differ diff --git a/diff/wool.diff/textures/wool_red.png b/diff/wool.diff/textures/wool_red.png new file mode 100644 index 0000000..d20bc77 Binary files /dev/null and b/diff/wool.diff/textures/wool_red.png differ diff --git a/diff/wool.diff/textures/wool_violet.png b/diff/wool.diff/textures/wool_violet.png new file mode 100644 index 0000000..3ac2b38 Binary files /dev/null and b/diff/wool.diff/textures/wool_violet.png differ diff --git a/diff/wool.diff/textures/wool_white.png b/diff/wool.diff/textures/wool_white.png new file mode 100644 index 0000000..4a9bf87 Binary files /dev/null and b/diff/wool.diff/textures/wool_white.png differ diff --git a/diff/wool.diff/textures/wool_yellow.png b/diff/wool.diff/textures/wool_yellow.png new file mode 100644 index 0000000..6ce666a Binary files /dev/null and b/diff/wool.diff/textures/wool_yellow.png differ diff --git a/diff/xpanes.diff/README.txt b/diff/xpanes.diff/README.txt new file mode 100644 index 0000000..6f99c11 --- /dev/null +++ b/diff/xpanes.diff/README.txt @@ -0,0 +1,11 @@ +Xpanes +===================================================================== +Main: xyz & BlockMen & sofar, various +Lisc: MIT +Text: CC BY-SA 3.0 + By Gambit + xpanes_bar.png + By paramat + xpanes_bar_top.png + By xyz +Link: https://github.com/minetest/minetest_game diff --git a/diff/xpanes.diff/README.txt.diff b/diff/xpanes.diff/README.txt.diff new file mode 100644 index 0000000..48138d8 --- /dev/null +++ b/diff/xpanes.diff/README.txt.diff @@ -0,0 +1,34 @@ +1,21c1,11 +< Minetest Game mod: xpanes +< ========================= +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by xyz (MIT) +< BlockMen (MIT) +< sofar (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures) +< --------------------------- +< xyz (CC BY-SA 3.0): +< All textures not mentioned below. +< +< Gambit (CC BY-SA 3.0): +< xpanes_bar.png +< +< paramat (CC BY-SA 3.0): +< xpanes_bar_top.png +--- +> Xpanes +> ===================================================================== +> Main: xyz & BlockMen & sofar, various +> Lisc: MIT +> Text: CC BY-SA 3.0 +> By Gambit +> xpanes_bar.png +> By paramat +> xpanes_bar_top.png +> By xyz +> Link: https://github.com/minetest/minetest_game diff --git a/mods/boats/README.txt b/mods/boats/README.txt index 59631d9..1625a5a 100644 --- a/mods/boats/README.txt +++ b/mods/boats/README.txt @@ -1,15 +1,10 @@ -Minetest Game mod: boats -======================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by PilzAdam (MIT) -Various Minetest developers and contributors (MIT) - -Authors of media (textures and model) -------------------------------------- -Textures: Zeg9 (CC BY-SA 3.0) -Model: thetoon and Zeg9 (CC BY-SA 3.0), - modified by PavelS(SokolovPavel) (CC BY-SA 3.0), - modified by sofar (CC BY-SA 3.0) +Boats +===================================================================== +Main: PilzAdam +Lisc: MIT +Text: CC0 + By Tirifto +3Dmo: CC-BY-SA 3.0 + By thetoon & Zeg9 + Modified by PavelS & sofar +Link: https://github.com/minetest/minetest_game diff --git a/mods/boats/README.txt.diff b/mods/boats/README.txt.diff new file mode 100644 index 0000000..badbcb7 --- /dev/null +++ b/mods/boats/README.txt.diff @@ -0,0 +1,27 @@ +1,15c1,10 +< Minetest Game mod: boats +< ======================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by PilzAdam (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures and model) +< ------------------------------------- +< Textures: Zeg9 (CC BY-SA 3.0) +< Model: thetoon and Zeg9 (CC BY-SA 3.0), +< modified by PavelS(SokolovPavel) (CC BY-SA 3.0), +< modified by sofar (CC BY-SA 3.0) +--- +> Boats +> ===================================================================== +> Main: PilzAdam +> Lisc: MIT +> Text: CC0 +> By Tirifto +> 3Dmo: CC-BY-SA 3.0 +> By thetoon & Zeg9 +> Modified by PavelS & sofar +> Link: https://github.com/minetest/minetest_game diff --git a/mods/boats/license.txt b/mods/boats/license.txt index d4afe75..f0a0107 100644 --- a/mods/boats/license.txt +++ b/mods/boats/license.txt @@ -25,8 +25,8 @@ For more details: https://opensource.org/licenses/MIT -Licenses of media (textures and model) --------------------------------------- +Licenses of model +----------------- Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) Copyright (C) 2012-2016 Zeg9 @@ -61,3 +61,17 @@ rights may limit how you use the material. For more details: http://creativecommons.org/licenses/by-sa/3.0/ + + +License of textures +------------------- + +CC0 1.0 Universal – Public Domain Dedication +Copyright (C) 2017 Tirifto + +The person who associated a work with this deed has dedicated the work to the public +domain by waiving all of his or her rights to the work worldwide under copyright law, +including all related and neighboring rights, to the extent allowed by law. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/legalcode diff --git a/mods/boats/license.txt.diff b/mods/boats/license.txt.diff new file mode 100644 index 0000000..e19e1b6 --- /dev/null +++ b/mods/boats/license.txt.diff @@ -0,0 +1,21 @@ +28,29c28,29 +< Licenses of media (textures and model) +< -------------------------------------- +--- +> Licenses of model +> ----------------- +63a64,77 +> +> +> License of textures +> ------------------- +> +> CC0 1.0 Universal – Public Domain Dedication +> Copyright (C) 2017 Tirifto +> +> The person who associated a work with this deed has dedicated the work to the public +> domain by waiving all of his or her rights to the work worldwide under copyright law, +> including all related and neighboring rights, to the extent allowed by law. +> +> For more details: +> https://creativecommons.org/publicdomain/zero/1.0/legalcode diff --git a/mods/boats/source.txt b/mods/boats/source.txt new file mode 100644 index 0000000..516ed14 --- /dev/null +++ b/mods/boats/source.txt @@ -0,0 +1 @@ +https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz diff --git a/mods/boats/textures/boats_inventory.png b/mods/boats/textures/boats_inventory.png index f9d082e..2270803 100644 Binary files a/mods/boats/textures/boats_inventory.png and b/mods/boats/textures/boats_inventory.png differ diff --git a/mods/boats/textures/boats_wield.png b/mods/boats/textures/boats_wield.png index f998b5b..2270803 100644 Binary files a/mods/boats/textures/boats_wield.png and b/mods/boats/textures/boats_wield.png differ diff --git a/mods/bones/README.txt b/mods/bones/README.txt index 91bcd10..c6ea6e4 100644 --- a/mods/bones/README.txt +++ b/mods/bones/README.txt @@ -1,12 +1,9 @@ -Minetest Game mod: bones -======================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by PilzAdam (MIT) -Various Minetest developers and contributors (MIT) - -Authors of media (textures) ---------------------------- -All textures: paramat (CC BY-SA 3.0) +Bones +===================================================================== +Main: PilzAdam +Lisc: MIT +Text: MIT + By jadedctrl +3Dmo: MIT + By jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/mods/bones/README.txt.diff b/mods/bones/README.txt.diff new file mode 100644 index 0000000..8c0f270 --- /dev/null +++ b/mods/bones/README.txt.diff @@ -0,0 +1,23 @@ +1,12c1,9 +< Minetest Game mod: bones +< ======================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by PilzAdam (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures) +< --------------------------- +< All textures: paramat (CC BY-SA 3.0) +--- +> Bones +> ===================================================================== +> Main: PilzAdam +> Lisc: MIT +> Text: MIT +> By jadedctrl +> 3Dmo: MIT +> By jadedctrl +> Link: https://github.com/minetest/minetest_game diff --git a/mods/bones/init.lua b/mods/bones/init.lua index 9583bc2..be9f57a 100644 --- a/mods/bones/init.lua +++ b/mods/bones/init.lua @@ -27,14 +27,47 @@ local share_bones_time_early = tonumber(minetest.settings:get("share_bones_time_ minetest.register_node("bones:bones", { description = "Bones", tiles = { - "bones_top.png^[transform2", - "bones_bottom.png", - "bones_side.png", - "bones_side.png", - "bones_rear.png", - "bones_front.png" + "bones_nonshade.png", + "bones_shade.png", + "bones.png", + "bones.png", + "bones.png", + "bones.png" }, paramtype2 = "facedir", + drawtype="nodebox", + node_box= { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.1875, -0.0625, -0.25, 0.1875}, -- NodeBox16 + {-0.0625, -0.5, -0.125, 0, -0.25, 0.1875}, -- NodeBox17 + {0, -0.5, -0.1875, 0.0625, -0.25, 0.1875}, -- NodeBox18 + {0.0625, -0.5, -0.125, 0.125, -0.25, 0.1875}, -- NodeBox19 + {0.125, -0.5, -0.1875, 0.1875, -0.25, 0.1875}, -- NodeBox20 + {-0.1875, -0.25, -0.1875, 0.25, -0.1875, 0.3125}, -- NodeBox22 + {-0.25, -0.1875, -0.25, 0.3125, -0.125, 0.375}, -- NodeBox23 + {-0.3125, -0.125, -0.25, -0.0625, 0, 0.4375}, -- NodeBox24 + {-0.0625, -0.125, -0.0625, 0, 0, 0.4375}, -- NodeBox26 + {0.0625, -0.125, -0.0625, 0.125, 0, 0.4375}, -- NodeBox27 + {0, -0.125, -0.25, 0.0625, 0, 0.4375}, -- NodeBox28 + {0.125, -0.125, -0.25, 0.375, 0, 0.4375}, -- NodeBox29 + {-0.3125, 0, -0.25, 0.375, 0.0625, 0.4375}, -- NodeBox30 + {-0.3125, 0.0625, -0.25, -0.1875, 0.125, 0.4375}, -- NodeBox31 + {-0.0625, 0.0625, -0.25, 0.125, 0.125, 0.4375}, -- NodeBox32 + {0.25, 0.0625, -0.25, 0.375, 0.125, 0.4375}, -- NodeBox33 + {-0.3125, 0.125, -0.25, -0.25, 0.25, 0.4375}, -- NodeBox34 + {-0.25, 0.25, -0.25, -0.1875, 0.3125, 0.4375}, -- NodeBox35 + {-0.1875, 0.3125, -0.25, 0.25, 0.375, 0.4375}, -- NodeBox37 + {-0.0625, 0.25, -0.25, 0.125, 0.3125, 0.4375}, -- NodeBox39 + {0, 0.125, -0.25, 0.0625, 0.25, 0.4375}, -- NodeBox40 + {0.3125, 0.125, -0.25, 0.375, 0.25, 0.4375}, -- NodeBox41 + {0.25, 0.25, -0.25, 0.3125, 0.3125, 0.4375}, -- NodeBox42 + {-0.25, 0.0625, 0.0625, 0.3125, 0.25, 0.4375}, -- NodeBox46 + {-0.1875, 0.25, 0.0625, 0.25, 0.3125, 0.4375}, -- NodeBox47 + {-0.25, -0.0625, 0.4375, 0.3125, 0.1875, 0.5}, -- NodeBox48 + {-0.125, 0.1875, 0.4375, 0.1875, 0.25, 0.5}, -- NodeBox49 + } + }, groups = {dig_immediate = 2}, sounds = default.node_sound_gravel_defaults(), @@ -111,8 +144,10 @@ minetest.register_node("bones:bones", { local meta = minetest.get_meta(pos) local time = meta:get_int("time") + elapsed if time >= share_bones_time then - meta:set_string("infotext", meta:get_string("owner") .. "'s old bones") + meta:set_string("infotext", meta:get_string("owner") .. "'s old dreams") meta:set_string("owner", "") + minetest.chat_send_all("Someone's forsaken the carcass of their dreams.") + minetest.chat_send_all("It can be found at " .. minetest.pos_to_string(pos) .. ".") else meta:set_int("time", time) return true @@ -233,8 +268,10 @@ minetest.register_on_dieplayer(function(player) meta:set_string("formspec", bones_formspec) meta:set_string("owner", player_name) + minetest.chat_send_player(player_name, "Your dreams can be found at " .. minetest.pos_to_string(pos) .. ".") + if share_bones_time ~= 0 then - meta:set_string("infotext", player_name .. "'s fresh bones") + meta:set_string("infotext", player_name .. "'s fresh skull") if share_bones_time_early == 0 or not minetest.is_protected(pos, player_name) then meta:set_int("time", 0) @@ -244,6 +281,6 @@ minetest.register_on_dieplayer(function(player) minetest.get_node_timer(pos):start(10) else - meta:set_string("infotext", player_name.."'s bones") + meta:set_string("infotext", player_name.."'s old dreams") end end) diff --git a/mods/bones/init.lua.diff b/mods/bones/init.lua.diff new file mode 100644 index 0000000..7c3f1e8 --- /dev/null +++ b/mods/bones/init.lua.diff @@ -0,0 +1,66 @@ +30,35c30,35 +< "bones_top.png^[transform2", +< "bones_bottom.png", +< "bones_side.png", +< "bones_side.png", +< "bones_rear.png", +< "bones_front.png" +--- +> "bones_nonshade.png", +> "bones_shade.png", +> "bones.png", +> "bones.png", +> "bones.png", +> "bones.png" +37a38,70 +> drawtype="nodebox", +> node_box= { +> type = "fixed", +> fixed = { +> {-0.125, -0.5, -0.1875, -0.0625, -0.25, 0.1875}, -- NodeBox16 +> {-0.0625, -0.5, -0.125, 0, -0.25, 0.1875}, -- NodeBox17 +> {0, -0.5, -0.1875, 0.0625, -0.25, 0.1875}, -- NodeBox18 +> {0.0625, -0.5, -0.125, 0.125, -0.25, 0.1875}, -- NodeBox19 +> {0.125, -0.5, -0.1875, 0.1875, -0.25, 0.1875}, -- NodeBox20 +> {-0.1875, -0.25, -0.1875, 0.25, -0.1875, 0.3125}, -- NodeBox22 +> {-0.25, -0.1875, -0.25, 0.3125, -0.125, 0.375}, -- NodeBox23 +> {-0.3125, -0.125, -0.25, -0.0625, 0, 0.4375}, -- NodeBox24 +> {-0.0625, -0.125, -0.0625, 0, 0, 0.4375}, -- NodeBox26 +> {0.0625, -0.125, -0.0625, 0.125, 0, 0.4375}, -- NodeBox27 +> {0, -0.125, -0.25, 0.0625, 0, 0.4375}, -- NodeBox28 +> {0.125, -0.125, -0.25, 0.375, 0, 0.4375}, -- NodeBox29 +> {-0.3125, 0, -0.25, 0.375, 0.0625, 0.4375}, -- NodeBox30 +> {-0.3125, 0.0625, -0.25, -0.1875, 0.125, 0.4375}, -- NodeBox31 +> {-0.0625, 0.0625, -0.25, 0.125, 0.125, 0.4375}, -- NodeBox32 +> {0.25, 0.0625, -0.25, 0.375, 0.125, 0.4375}, -- NodeBox33 +> {-0.3125, 0.125, -0.25, -0.25, 0.25, 0.4375}, -- NodeBox34 +> {-0.25, 0.25, -0.25, -0.1875, 0.3125, 0.4375}, -- NodeBox35 +> {-0.1875, 0.3125, -0.25, 0.25, 0.375, 0.4375}, -- NodeBox37 +> {-0.0625, 0.25, -0.25, 0.125, 0.3125, 0.4375}, -- NodeBox39 +> {0, 0.125, -0.25, 0.0625, 0.25, 0.4375}, -- NodeBox40 +> {0.3125, 0.125, -0.25, 0.375, 0.25, 0.4375}, -- NodeBox41 +> {0.25, 0.25, -0.25, 0.3125, 0.3125, 0.4375}, -- NodeBox42 +> {-0.25, 0.0625, 0.0625, 0.3125, 0.25, 0.4375}, -- NodeBox46 +> {-0.1875, 0.25, 0.0625, 0.25, 0.3125, 0.4375}, -- NodeBox47 +> {-0.25, -0.0625, 0.4375, 0.3125, 0.1875, 0.5}, -- NodeBox48 +> {-0.125, 0.1875, 0.4375, 0.1875, 0.25, 0.5}, -- NodeBox49 +> } +> }, +114c147 +< meta:set_string("infotext", meta:get_string("owner") .. "'s old bones") +--- +> meta:set_string("infotext", meta:get_string("owner") .. "'s old dreams") +115a149,150 +> minetest.chat_send_all("Someone's forsaken the carcass of their dreams.") +> minetest.chat_send_all("It can be found at " .. minetest.pos_to_string(pos) .. ".") +235a271,272 +> minetest.chat_send_player(player_name, "Your dreams can be found at " .. minetest.pos_to_string(pos) .. ".") +> +237c274 +< meta:set_string("infotext", player_name .. "'s fresh bones") +--- +> meta:set_string("infotext", player_name .. "'s fresh skull") +247c284 +< meta:set_string("infotext", player_name.."'s bones") +--- +> meta:set_string("infotext", player_name.."'s old dreams") diff --git a/mods/bones/license.txt b/mods/bones/license.txt index fe52584..9d3fd6e 100644 --- a/mods/bones/license.txt +++ b/mods/bones/license.txt @@ -25,34 +25,27 @@ For more details: https://opensource.org/licenses/MIT -Licenses of media (textures) +Licenses of media (textures & nodebox) ---------------------------- -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2016 paramat +The MIT License (MIT) +Copyright (C) 2017-2018 jadedctrl -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: -Under the following terms: +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. +For more details: +https://opensource.org/licenses/MIT diff --git a/mods/bones/license.txt.diff b/mods/bones/license.txt.diff new file mode 100644 index 0000000..689283d --- /dev/null +++ b/mods/bones/license.txt.diff @@ -0,0 +1,54 @@ +28c28 +< Licenses of media (textures) +--- +> Licenses of media (textures & nodebox) +31,32c31,32 +< Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +< Copyright (C) 2016 paramat +--- +> The MIT License (MIT) +> Copyright (C) 2017-2018 jadedctrl +34,57c34,48 +< You are free to: +< Share — copy and redistribute the material in any medium or format. +< Adapt — remix, transform, and build upon the material for any purpose, even commercially. +< The licensor cannot revoke these freedoms as long as you follow the license terms. +< +< Under the following terms: +< +< Attribution — You must give appropriate credit, provide a link to the license, and +< indicate if changes were made. You may do so in any reasonable manner, but not in any way +< that suggests the licensor endorses you or your use. +< +< ShareAlike — If you remix, transform, or build upon the material, you must distribute +< your contributions under the same license as the original. +< +< No additional restrictions — You may not apply legal terms or technological measures that +< legally restrict others from doing anything the license permits. +< +< Notices: +< +< You do not have to comply with the license for elements of the material in the public +< domain or where your use is permitted by an applicable exception or limitation. +< No warranties are given. The license may not give you all of the permissions necessary +< for your intended use. For example, other rights such as publicity, privacy, or moral +< rights may limit how you use the material. +--- +> Permission is hereby granted, free of charge, to any person obtaining a copy of this +> software and associated documentation files (the "Software"), to deal in the Software +> without restriction, including without limitation the rights to use, copy, modify, merge, +> publish, distribute, sublicense, and/or sell copies of the Software, and to permit +> persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or +> substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +> INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +> PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +> FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +> OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +> DEALINGS IN THE SOFTWARE. +58a50,51 +> For more details: +> https://opensource.org/licenses/MIT diff --git a/mods/bones/source.txt b/mods/bones/source.txt new file mode 100644 index 0000000..516ed14 --- /dev/null +++ b/mods/bones/source.txt @@ -0,0 +1 @@ +https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz diff --git a/mods/bones/textures/bones.png b/mods/bones/textures/bones.png new file mode 100644 index 0000000..fb49a2c Binary files /dev/null and b/mods/bones/textures/bones.png differ diff --git a/mods/bones/textures/bones_nonshade.png b/mods/bones/textures/bones_nonshade.png new file mode 100644 index 0000000..56bfa49 Binary files /dev/null and b/mods/bones/textures/bones_nonshade.png differ diff --git a/mods/bones/textures/bones_shade.png b/mods/bones/textures/bones_shade.png new file mode 100644 index 0000000..eb9a27e Binary files /dev/null and b/mods/bones/textures/bones_shade.png differ diff --git a/mods/bucket/README.txt b/mods/bucket/README.txt index 45e0ec5..dbde39e 100644 --- a/mods/bucket/README.txt +++ b/mods/bucket/README.txt @@ -1,13 +1,7 @@ -Minetest Game mod: bucket -========================= -See license.txt for license information. - -Authors of source code ----------------------- -Kahrl (LGPL 2.1) -celeron55, Perttu Ahola (LGPL 2.1) -Various Minetest developers and contributors (LGPL 2.1) - -Authors of media (textures) ---------------------------- -ElementW (CC BY-SA 3.0) +Bucket +===================================================================== +Main: Kahrl, celeron55, Ahola +Lisc: LGPL 2.1 +Text: CC-BY-SA 3.0 + By ElementW +Link: https://github.com/minetest/minetest_game diff --git a/mods/bucket/README.txt.diff b/mods/bucket/README.txt.diff new file mode 100644 index 0000000..bc6f896 --- /dev/null +++ b/mods/bucket/README.txt.diff @@ -0,0 +1,22 @@ +1,13c1,7 +< Minetest Game mod: bucket +< ========================= +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Kahrl (LGPL 2.1) +< celeron55, Perttu Ahola (LGPL 2.1) +< Various Minetest developers and contributors (LGPL 2.1) +< +< Authors of media (textures) +< --------------------------- +< ElementW (CC BY-SA 3.0) +--- +> Bucket +> ===================================================================== +> Main: Kahrl, celeron55, Ahola +> Lisc: LGPL 2.1 +> Text: CC-BY-SA 3.0 +> By ElementW +> Link: https://github.com/minetest/minetest_game diff --git a/mods/bucket/license.txt.diff b/mods/bucket/license.txt.diff new file mode 100644 index 0000000..e69de29 diff --git a/mods/bucket/source.txt b/mods/bucket/source.txt new file mode 100644 index 0000000..516ed14 --- /dev/null +++ b/mods/bucket/source.txt @@ -0,0 +1 @@ +https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz diff --git a/mods/bucket/textures/bucket.png b/mods/bucket/textures/bucket.png index 17b0c49..267b3ce 100755 Binary files a/mods/bucket/textures/bucket.png and b/mods/bucket/textures/bucket.png differ diff --git a/mods/bucket/textures/bucket_lava.png b/mods/bucket/textures/bucket_lava.png index ac6108d..e5f8006 100644 Binary files a/mods/bucket/textures/bucket_lava.png and b/mods/bucket/textures/bucket_lava.png differ diff --git a/mods/bucket/textures/bucket_river_water.png b/mods/bucket/textures/bucket_river_water.png index d4648bb..f038cb5 100644 Binary files a/mods/bucket/textures/bucket_river_water.png and b/mods/bucket/textures/bucket_river_water.png differ diff --git a/mods/bucket/textures/bucket_water.png b/mods/bucket/textures/bucket_water.png index 5af836b..80dd03c 100644 Binary files a/mods/bucket/textures/bucket_water.png and b/mods/bucket/textures/bucket_water.png differ diff --git a/mods/bucket/textures/nohup.out b/mods/bucket/textures/nohup.out new file mode 100644 index 0000000..0adc40d --- /dev/null +++ b/mods/bucket/textures/nohup.out @@ -0,0 +1 @@ +GEGL-geglmodule.c-Message: Module '/usr/lib/gegl-0.2/openraw.so' load error: libopenraw.so.7: cannot open shared object file: No such file or directory diff --git a/mods/carts/README.txt b/mods/carts/README.txt index 31ce644..4ee2097 100644 --- a/mods/carts/README.txt +++ b/mods/carts/README.txt @@ -1,22 +1,20 @@ -Carts (formerly boost_cart) -========================== - -Carts, based almost entirely on the mod boost_cart [1], which -itself is based on (and fully compatible with) the carts mod [2]. - -The model was originally designed by stujones11 [3] (CC-0). - -Cart textures are based on original work from PixelBOX (WTFPL). - - -[1] https://github.com/SmallJoker/boost_cart/ -[2] https://github.com/PilzAdam/carts/ -[3] https://github.com/stujones11/railcart/ - - -Features ----------- -- A fast cart for your railway or roller coaster (up to 7 m/s!) -- Boost and brake rails -- Rail junction switching with the 'right-left' walking keys -- Handbrake with the 'back' key +Carts +===================================================================== +Main: SmallJoker +Lisc: MIT +Text: CC-0 + Derivative of Gambit + carts_cart_side.png + carts_cart_top.png + carts_cart_front.png + carts_cart.png + Derivative of hexafraction & sofar + carts_rail_*.png +3Dmo: CC-0 + By sofar & stujones11 + carts_card.b3d + carts_card.blend +Audi: CC-BY-SA 3.9 + By YleArkisto + carts_cart_moving*.ogg +Link: https://github.com/minetest/minetest_game diff --git a/mods/carts/README.txt.diff b/mods/carts/README.txt.diff new file mode 100644 index 0000000..7ff380d --- /dev/null +++ b/mods/carts/README.txt.diff @@ -0,0 +1,44 @@ +1,22c1,20 +< Carts (formerly boost_cart) +< ========================== +< +< Carts, based almost entirely on the mod boost_cart [1], which +< itself is based on (and fully compatible with) the carts mod [2]. +< +< The model was originally designed by stujones11 [3] (CC-0). +< +< Cart textures are based on original work from PixelBOX (WTFPL). +< +< +< [1] https://github.com/SmallJoker/boost_cart/ +< [2] https://github.com/PilzAdam/carts/ +< [3] https://github.com/stujones11/railcart/ +< +< +< Features +< ---------- +< - A fast cart for your railway or roller coaster (up to 7 m/s!) +< - Boost and brake rails +< - Rail junction switching with the 'right-left' walking keys +< - Handbrake with the 'back' key +--- +> Carts +> ===================================================================== +> Main: SmallJoker +> Lisc: MIT +> Text: CC-0 +> Derivative of Gambit +> carts_cart_side.png +> carts_cart_top.png +> carts_cart_front.png +> carts_cart.png +> Derivative of hexafraction & sofar +> carts_rail_*.png +> 3Dmo: CC-0 +> By sofar & stujones11 +> carts_card.b3d +> carts_card.blend +> Audi: CC-BY-SA 3.9 +> By YleArkisto +> carts_cart_moving*.ogg +> Link: https://github.com/minetest/minetest_game diff --git a/mods/carts/rails.lua b/mods/carts/rails.lua index 066779d..4ac13c7 100644 --- a/mods/carts/rails.lua +++ b/mods/carts/rails.lua @@ -22,13 +22,13 @@ minetest.register_alias("default:rail", "carts:rail") carts:register_rail("carts:powerrail", { - description = "Powered rail", + description = "Powered Rail", tiles = { "carts_rail_straight_pwr.png", "carts_rail_curved_pwr.png", "carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png" }, groups = carts:get_rail_groups(), -}, {acceleration = 5}) +}, {acceleration = 20}) minetest.register_craft({ output = "carts:powerrail 18", @@ -41,7 +41,7 @@ minetest.register_craft({ carts:register_rail("carts:brakerail", { - description = "Brake rail", + description = "Brake Rail", tiles = { "carts_rail_straight_brk.png", "carts_rail_curved_brk.png", "carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png" diff --git a/mods/carts/rails.lua.diff b/mods/carts/rails.lua.diff new file mode 100644 index 0000000..1b1790b --- /dev/null +++ b/mods/carts/rails.lua.diff @@ -0,0 +1,12 @@ +25c25 +< description = "Powered rail", +--- +> description = "Powered Rail", +31c31 +< }, {acceleration = 5}) +--- +> }, {acceleration = 20}) +44c44 +< description = "Brake rail", +--- +> description = "Brake Rail", diff --git a/mods/carts/source.txt b/mods/carts/source.txt new file mode 100644 index 0000000..516ed14 --- /dev/null +++ b/mods/carts/source.txt @@ -0,0 +1 @@ +https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz diff --git a/mods/carts/textures/carts_cart.png b/mods/carts/textures/carts_cart.png index 965347c..190e637 100644 Binary files a/mods/carts/textures/carts_cart.png and b/mods/carts/textures/carts_cart.png differ diff --git a/mods/carts/textures/carts_cart_front.png b/mods/carts/textures/carts_cart_front.png index 38955b2..4e2b3be 100644 Binary files a/mods/carts/textures/carts_cart_front.png and b/mods/carts/textures/carts_cart_front.png differ diff --git a/mods/carts/textures/carts_cart_side.png b/mods/carts/textures/carts_cart_side.png index f53808c..aba6944 100644 Binary files a/mods/carts/textures/carts_cart_side.png and b/mods/carts/textures/carts_cart_side.png differ diff --git a/mods/carts/textures/carts_cart_top.png b/mods/carts/textures/carts_cart_top.png index d9a31a9..6c277c9 100644 Binary files a/mods/carts/textures/carts_cart_top.png and b/mods/carts/textures/carts_cart_top.png differ diff --git a/mods/carts/textures/carts_rail_crossing.png b/mods/carts/textures/carts_rail_crossing.png index e10f3b1..406ef58 100644 Binary files a/mods/carts/textures/carts_rail_crossing.png and b/mods/carts/textures/carts_rail_crossing.png differ diff --git a/mods/carts/textures/carts_rail_crossing_brk.png b/mods/carts/textures/carts_rail_crossing_brk.png index 0bf455e..7b2e789 100644 Binary files a/mods/carts/textures/carts_rail_crossing_brk.png and b/mods/carts/textures/carts_rail_crossing_brk.png differ diff --git a/mods/carts/textures/carts_rail_crossing_pwr.png b/mods/carts/textures/carts_rail_crossing_pwr.png index d763d50..0fdb10d 100644 Binary files a/mods/carts/textures/carts_rail_crossing_pwr.png and b/mods/carts/textures/carts_rail_crossing_pwr.png differ diff --git a/mods/carts/textures/carts_rail_curved.png b/mods/carts/textures/carts_rail_curved.png index b320f0d..957048e 100644 Binary files a/mods/carts/textures/carts_rail_curved.png and b/mods/carts/textures/carts_rail_curved.png differ diff --git a/mods/carts/textures/carts_rail_curved_brk.png b/mods/carts/textures/carts_rail_curved_brk.png index ca40723..1f0ac04 100644 Binary files a/mods/carts/textures/carts_rail_curved_brk.png and b/mods/carts/textures/carts_rail_curved_brk.png differ diff --git a/mods/carts/textures/carts_rail_curved_pwr.png b/mods/carts/textures/carts_rail_curved_pwr.png index 781bbd0..43016a4 100644 Binary files a/mods/carts/textures/carts_rail_curved_pwr.png and b/mods/carts/textures/carts_rail_curved_pwr.png differ diff --git a/mods/carts/textures/carts_rail_straight.png b/mods/carts/textures/carts_rail_straight.png index 30dcafe..6bee22f 100644 Binary files a/mods/carts/textures/carts_rail_straight.png and b/mods/carts/textures/carts_rail_straight.png differ diff --git a/mods/carts/textures/carts_rail_straight_brk.png b/mods/carts/textures/carts_rail_straight_brk.png index 0c69052..e331755 100644 Binary files a/mods/carts/textures/carts_rail_straight_brk.png and b/mods/carts/textures/carts_rail_straight_brk.png differ diff --git a/mods/carts/textures/carts_rail_straight_pwr.png b/mods/carts/textures/carts_rail_straight_pwr.png index e067ff1..2515d5c 100644 Binary files a/mods/carts/textures/carts_rail_straight_pwr.png and b/mods/carts/textures/carts_rail_straight_pwr.png differ diff --git a/mods/carts/textures/carts_rail_t_junction.png b/mods/carts/textures/carts_rail_t_junction.png index 8b1b946..d96a99a 100644 Binary files a/mods/carts/textures/carts_rail_t_junction.png and b/mods/carts/textures/carts_rail_t_junction.png differ diff --git a/mods/carts/textures/carts_rail_t_junction_brk.png b/mods/carts/textures/carts_rail_t_junction_brk.png index 6b4f6fa..d64dba4 100644 Binary files a/mods/carts/textures/carts_rail_t_junction_brk.png and b/mods/carts/textures/carts_rail_t_junction_brk.png differ diff --git a/mods/carts/textures/carts_rail_t_junction_pwr.png b/mods/carts/textures/carts_rail_t_junction_pwr.png index dd0eede..7ea04e3 100644 Binary files a/mods/carts/textures/carts_rail_t_junction_pwr.png and b/mods/carts/textures/carts_rail_t_junction_pwr.png differ diff --git a/mods/default/TODO b/mods/default/TODO new file mode 100644 index 0000000..91526d8 --- /dev/null +++ b/mods/default/TODO @@ -0,0 +1 @@ +Consolidate torch.lua and nodes.lua diff --git a/mods/default/aliases.lua b/mods/default/aliases.lua index 6db3fc8..d482199 100644 --- a/mods/default/aliases.lua +++ b/mods/default/aliases.lua @@ -75,3 +75,6 @@ minetest.register_alias("default:pinewood", "default:pine_wood") minetest.register_alias("default:ladder", "default:ladder_wood") minetest.register_alias("default:sign_wall", "default:sign_wall_wood") + +-- Etc. +minetest.register_alias("default:torch_out", "default:torch") diff --git a/mods/default/aliases.lua.diff b/mods/default/aliases.lua.diff new file mode 100644 index 0000000..f8e3214 --- /dev/null +++ b/mods/default/aliases.lua.diff @@ -0,0 +1,4 @@ +77a78,80 +> +> -- Etc. +> minetest.register_alias("default:torch_out", "default:torch") diff --git a/mods/default/crafting.lua b/mods/default/crafting.lua index 50ffb1a..5d1d3f5 100644 --- a/mods/default/crafting.lua +++ b/mods/default/crafting.lua @@ -78,7 +78,7 @@ minetest.register_craft({ output = 'default:torch 4', recipe = { {'default:coal_lump'}, - {'group:stick'}, + {'group:wood'}, } }) @@ -86,8 +86,8 @@ minetest.register_craft({ output = 'default:pick_wood', recipe = { {'group:wood', 'group:wood', 'group:wood'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, } }) @@ -95,8 +95,8 @@ minetest.register_craft({ output = 'default:pick_stone', recipe = { {'group:stone', 'group:stone', 'group:stone'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, } }) @@ -104,8 +104,8 @@ minetest.register_craft({ output = 'default:pick_steel', recipe = { {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, } }) @@ -113,8 +113,8 @@ minetest.register_craft({ output = 'default:pick_bronze', recipe = { {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, } }) @@ -122,8 +122,8 @@ minetest.register_craft({ output = 'default:pick_mese', recipe = { {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, } }) @@ -131,8 +131,8 @@ minetest.register_craft({ output = 'default:pick_diamond', recipe = { {'default:diamond', 'default:diamond', 'default:diamond'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {'', 'group:wood', ''}, + {'', 'group:wood', ''}, } }) @@ -140,8 +140,8 @@ minetest.register_craft({ output = 'default:shovel_wood', recipe = { {'group:wood'}, - {'group:stick'}, - {'group:stick'}, + {'group:wood'}, + {'group:wood'}, } }) @@ -149,8 +149,8 @@ minetest.register_craft({ output = 'default:shovel_stone', recipe = { {'group:stone'}, - {'group:stick'}, - {'group:stick'}, + {'group:wood'}, + {'group:wood'}, } }) @@ -158,8 +158,8 @@ minetest.register_craft({ output = 'default:shovel_steel', recipe = { {'default:steel_ingot'}, - {'group:stick'}, - {'group:stick'}, + {'group:wood'}, + {'group:wood'}, } }) @@ -167,8 +167,8 @@ minetest.register_craft({ output = 'default:shovel_bronze', recipe = { {'default:bronze_ingot'}, - {'group:stick'}, - {'group:stick'}, + {'group:wood'}, + {'group:wood'}, } }) @@ -176,8 +176,8 @@ minetest.register_craft({ output = 'default:shovel_mese', recipe = { {'default:mese_crystal'}, - {'group:stick'}, - {'group:stick'}, + {'group:wood'}, + {'group:wood'}, } }) @@ -185,17 +185,20 @@ minetest.register_craft({ output = 'default:shovel_diamond', recipe = { {'default:diamond'}, - {'group:stick'}, - {'group:stick'}, + {'group:wood'}, + {'group:wood'}, } }) +-- Axes +-- Recipes face left to match appearence in textures and inventory + minetest.register_craft({ output = 'default:axe_wood', recipe = { {'group:wood', 'group:wood'}, - {'group:wood', 'group:stick'}, - {'', 'group:stick'}, + {'group:wood', 'group:wood'}, + {'', 'group:wood'}, } }) @@ -203,8 +206,8 @@ minetest.register_craft({ output = 'default:axe_stone', recipe = { {'group:stone', 'group:stone'}, - {'group:stone', 'group:stick'}, - {'', 'group:stick'}, + {'group:stone', 'group:wood'}, + {'', 'group:wood'}, } }) @@ -212,8 +215,8 @@ minetest.register_craft({ output = 'default:axe_steel', recipe = { {'default:steel_ingot', 'default:steel_ingot'}, - {'default:steel_ingot', 'group:stick'}, - {'', 'group:stick'}, + {'default:steel_ingot', 'group:wood'}, + {'', 'group:wood'}, } }) @@ -221,8 +224,8 @@ minetest.register_craft({ output = 'default:axe_bronze', recipe = { {'default:bronze_ingot', 'default:bronze_ingot'}, - {'default:bronze_ingot', 'group:stick'}, - {'', 'group:stick'}, + {'default:bronze_ingot', 'group:wood'}, + {'', 'group:wood'}, } }) @@ -230,8 +233,8 @@ minetest.register_craft({ output = 'default:axe_mese', recipe = { {'default:mese_crystal', 'default:mese_crystal'}, - {'default:mese_crystal', 'group:stick'}, - {'', 'group:stick'}, + {'default:mese_crystal', 'group:wood'}, + {'', 'group:wood'}, } }) @@ -239,62 +242,8 @@ minetest.register_craft({ output = 'default:axe_diamond', recipe = { {'default:diamond', 'default:diamond'}, - {'default:diamond', 'group:stick'}, - {'', 'group:stick'}, - } -}) - -minetest.register_craft({ - output = 'default:axe_wood', - recipe = { - {'group:wood', 'group:wood'}, - {'group:stick', 'group:wood'}, - {'group:stick',''}, - } -}) - -minetest.register_craft({ - output = 'default:axe_stone', - recipe = { - {'group:stone', 'group:stone'}, - {'group:stick', 'group:stone'}, - {'group:stick', ''}, - } -}) - -minetest.register_craft({ - output = 'default:axe_steel', - recipe = { - {'default:steel_ingot', 'default:steel_ingot'}, - {'group:stick', 'default:steel_ingot'}, - {'group:stick', ''}, - } -}) - -minetest.register_craft({ - output = 'default:axe_bronze', - recipe = { - {'default:bronze_ingot', 'default:bronze_ingot'}, - {'group:stick', 'default:bronze_ingot'}, - {'group:stick', ''}, - } -}) - -minetest.register_craft({ - output = 'default:axe_mese', - recipe = { - {'default:mese_crystal', 'default:mese_crystal'}, - {'group:stick', 'default:mese_crystal'}, - {'group:stick', ''}, - } -}) - -minetest.register_craft({ - output = 'default:axe_diamond', - recipe = { - {'default:diamond', 'default:diamond'}, - {'group:stick', 'default:diamond'}, - {'group:stick', ''}, + {'default:diamond', 'group:wood'}, + {'', 'group:wood'}, } }) @@ -303,7 +252,7 @@ minetest.register_craft({ recipe = { {'group:wood'}, {'group:wood'}, - {'group:stick'}, + {'group:wood'}, } }) @@ -312,7 +261,7 @@ minetest.register_craft({ recipe = { {'group:stone'}, {'group:stone'}, - {'group:stick'}, + {'group:wood'}, } }) @@ -321,7 +270,7 @@ minetest.register_craft({ recipe = { {'default:steel_ingot'}, {'default:steel_ingot'}, - {'group:stick'}, + {'group:wood'}, } }) @@ -330,7 +279,7 @@ minetest.register_craft({ recipe = { {'default:bronze_ingot'}, {'default:bronze_ingot'}, - {'group:stick'}, + {'group:wood'}, } }) @@ -339,7 +288,7 @@ minetest.register_craft({ recipe = { {'default:mese_crystal'}, {'default:mese_crystal'}, - {'group:stick'}, + {'group:wood'}, } }) @@ -348,7 +297,7 @@ minetest.register_craft({ recipe = { {'default:diamond'}, {'default:diamond'}, - {'group:stick'}, + {'group:wood'}, } }) diff --git a/mods/default/crafting.lua.diff b/mods/default/crafting.lua.diff new file mode 100644 index 0000000..3efcfc2 --- /dev/null +++ b/mods/default/crafting.lua.diff @@ -0,0 +1,193 @@ +81c81 +< {'group:stick'}, +--- +> {'group:wood'}, +89,90c89,90 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +98,99c98,99 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +107,108c107,108 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +116,117c116,117 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +125,126c125,126 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +134,135c134,135 +< {'', 'group:stick', ''}, +< {'', 'group:stick', ''}, +--- +> {'', 'group:wood', ''}, +> {'', 'group:wood', ''}, +143,144c143,144 +< {'group:stick'}, +< {'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +152,153c152,153 +< {'group:stick'}, +< {'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +161,162c161,162 +< {'group:stick'}, +< {'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +170,171c170,171 +< {'group:stick'}, +< {'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +179,180c179,180 +< {'group:stick'}, +< {'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +188,234c188,189 +< {'group:stick'}, +< {'group:stick'}, +< } +< }) +< +< minetest.register_craft({ +< output = 'default:axe_wood', +< recipe = { +< {'group:wood', 'group:wood'}, +< {'group:wood', 'group:stick'}, +< {'', 'group:stick'}, +< } +< }) +< +< minetest.register_craft({ +< output = 'default:axe_stone', +< recipe = { +< {'group:stone', 'group:stone'}, +< {'group:stone', 'group:stick'}, +< {'', 'group:stick'}, +< } +< }) +< +< minetest.register_craft({ +< output = 'default:axe_steel', +< recipe = { +< {'default:steel_ingot', 'default:steel_ingot'}, +< {'default:steel_ingot', 'group:stick'}, +< {'', 'group:stick'}, +< } +< }) +< +< minetest.register_craft({ +< output = 'default:axe_bronze', +< recipe = { +< {'default:bronze_ingot', 'default:bronze_ingot'}, +< {'default:bronze_ingot', 'group:stick'}, +< {'', 'group:stick'}, +< } +< }) +< +< minetest.register_craft({ +< output = 'default:axe_mese', +< recipe = { +< {'default:mese_crystal', 'default:mese_crystal'}, +< {'default:mese_crystal', 'group:stick'}, +< {'', 'group:stick'}, +--- +> {'group:wood'}, +> {'group:wood'}, +238,245c193,194 +< minetest.register_craft({ +< output = 'default:axe_diamond', +< recipe = { +< {'default:diamond', 'default:diamond'}, +< {'default:diamond', 'group:stick'}, +< {'', 'group:stick'}, +< } +< }) +--- +> -- Axes +> -- Recipes face left to match appearence in textures and inventory +251,252c200,201 +< {'group:stick', 'group:wood'}, +< {'group:stick',''}, +--- +> {'group:wood', 'group:wood'}, +> {'', 'group:wood'}, +260,261c209,210 +< {'group:stick', 'group:stone'}, +< {'group:stick', ''}, +--- +> {'group:stone', 'group:wood'}, +> {'', 'group:wood'}, +269,270c218,219 +< {'group:stick', 'default:steel_ingot'}, +< {'group:stick', ''}, +--- +> {'default:steel_ingot', 'group:wood'}, +> {'', 'group:wood'}, +278,279c227,228 +< {'group:stick', 'default:bronze_ingot'}, +< {'group:stick', ''}, +--- +> {'default:bronze_ingot', 'group:wood'}, +> {'', 'group:wood'}, +287,288c236,237 +< {'group:stick', 'default:mese_crystal'}, +< {'group:stick', ''}, +--- +> {'default:mese_crystal', 'group:wood'}, +> {'', 'group:wood'}, +296,297c245,246 +< {'group:stick', 'default:diamond'}, +< {'group:stick', ''}, +--- +> {'default:diamond', 'group:wood'}, +> {'', 'group:wood'}, +306c255 +< {'group:stick'}, +--- +> {'group:wood'}, +315c264 +< {'group:stick'}, +--- +> {'group:wood'}, +324c273 +< {'group:stick'}, +--- +> {'group:wood'}, +333c282 +< {'group:stick'}, +--- +> {'group:wood'}, +342c291 +< {'group:stick'}, +--- +> {'group:wood'}, +351c300 +< {'group:stick'}, +--- +> {'group:wood'}, diff --git a/mods/default/depends.txt b/mods/default/depends.txt new file mode 100644 index 0000000..e1c3818 --- /dev/null +++ b/mods/default/depends.txt @@ -0,0 +1 @@ +player_api? diff --git a/mods/default/functions.lua b/mods/default/functions.lua index 5dc22ca..bdc3015 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -136,10 +136,12 @@ if minetest.settings:get_bool("enable_lavacooling") ~= false then label = "Lava cooling", nodenames = {"default:lava_source", "default:lava_flowing"}, neighbors = {"group:cools_lava", "group:water"}, - interval = 1, + interval = 2, chance = 2, catch_up = false, - action = default.cool_lava, + action = function(...) + default.cool_lava(...) + end, }) end @@ -222,7 +224,9 @@ minetest.register_abm({ neighbors = {"group:sand"}, interval = 12, chance = 83, - action = default.grow_cactus + action = function(...) + default.grow_cactus(...) + end }) minetest.register_abm({ @@ -231,7 +235,9 @@ minetest.register_abm({ neighbors = {"default:dirt", "default:dirt_with_grass"}, interval = 14, chance = 71, - action = default.grow_papyrus + action = function(...) + default.grow_papyrus(...) + end }) diff --git a/mods/default/functions.lua.diff b/mods/default/functions.lua.diff new file mode 100644 index 0000000..694ee89 --- /dev/null +++ b/mods/default/functions.lua.diff @@ -0,0 +1,22 @@ +139c139 +< interval = 1, +--- +> interval = 2, +142c142,144 +< action = default.cool_lava, +--- +> action = function(...) +> default.cool_lava(...) +> end, +225c227,229 +< action = default.grow_cactus +--- +> action = function(...) +> default.grow_cactus(...) +> end +234c238,240 +< action = default.grow_papyrus +--- +> action = function(...) +> default.grow_papyrus(...) +> end diff --git a/mods/default/legacy.lua b/mods/default/legacy.lua index a8c8ad5..37f0321 100644 --- a/mods/default/legacy.lua +++ b/mods/default/legacy.lua @@ -23,3 +23,14 @@ LIGHT_MAX = default.LIGHT_MAX -- Formspecs default.gui_suvival_form = default.gui_survival_form + +-- Players +if minetest.get_modpath("player_api") then + default.registered_player_models = player_api.registered_models + default.player_register_model = player_api.register_model + default.player_attached = player_api.player_attached + default.player_get_animation = player_api.get_animation + default.player_set_model = player_api.set_model + default.player_set_textures = player_api.set_textures + default.player_set_animation = player_api.set_animation +end diff --git a/mods/default/legacy.lua.diff b/mods/default/legacy.lua.diff new file mode 100644 index 0000000..bb76e0d --- /dev/null +++ b/mods/default/legacy.lua.diff @@ -0,0 +1,12 @@ +25a26,36 +> +> -- Players +> if minetest.get_modpath("player_api") then +> default.registered_player_models = player_api.registered_models +> default.player_register_model = player_api.register_model +> default.player_attached = player_api.player_attached +> default.player_get_animation = player_api.get_animation +> default.player_set_model = player_api.set_model +> default.player_set_textures = player_api.set_textures +> default.player_set_animation = player_api.set_animation +> end diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua index 1305226..1fc2dc3 100644 --- a/mods/default/mapgen.lua +++ b/mods/default/mapgen.lua @@ -43,12 +43,12 @@ minetest.register_alias("mapgen_stair_sandstone_block", "stairs:stair_sandstone_ -- Register ores -- --- Blob ores --- These first to avoid other ores in blobs - -- Mgv6 -function default.register_mgv6_blob_ores() +function default.register_mgv6_ores() + + -- Blob ore + -- These first to avoid other ores in blobs -- Clay -- This first to avoid clay in sand blobs @@ -134,14 +134,289 @@ function default.register_mgv6_blob_ores() persist = 0.0 }, }) + + -- Scatter ores + + -- Coal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 9, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 8, + clust_size = 3, + y_min = -31000, + y_max = 64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_min = -31000, + y_max = 0, + }) + + -- Iron + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 12, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 7 * 7 * 7, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = 0, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_min = -31000, + y_max = -64, + }) + + -- Copper + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 12 * 12 * 12, + clust_num_ores = 4, + clust_size = 3, + y_min = -63, + y_max = -16, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -64, + }) + + -- Tin + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 4, + clust_size = 3, + y_min = -127, + y_max = -32, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -128, + }) + + -- Gold + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 3, + clust_size = 2, + y_min = -255, + y_max = -64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Mese crystal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 18 * 18 * 18, + clust_num_ores = 3, + clust_size = 2, + y_min = -255, + y_max = -64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Diamond + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 17 * 17 * 17, + clust_num_ores = 4, + clust_size = 3, + y_min = -255, + y_max = -128, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Mese block + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_min = -31000, + y_max = -1024, + }) end -- All mapgens except mgv6 -function default.register_blob_ores() +function default.register_ores() + + -- Blob ore + -- These first to avoid other ores in blobs -- Clay + -- This first to avoid clay in sand blobs minetest.register_ore({ ore_type = "blob", @@ -188,7 +463,7 @@ function default.register_blob_ores() "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert", "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean", "rainforest", "rainforest_swamp", "rainforest_ocean", "underground", - "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"} + "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} }) -- Dirt @@ -212,8 +487,7 @@ function default.register_blob_ores() }, biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest", "deciduous_forest", "deciduous_forest_shore", "savanna", "savanna_shore", - "rainforest", "rainforest_swamp", "floatland_grassland", - "floatland_coniferous_forest"} + "rainforest", "rainforest_swamp", "floatland_coniferous_forest"} }) -- Gravel @@ -242,15 +516,10 @@ function default.register_blob_ores() "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert", "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean", "rainforest", "rainforest_swamp", "rainforest_ocean", "underground", - "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"} + "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} }) -end - --- Scatter ores --- All mapgens - -function default.register_ores() + -- Scatter ores -- Coal @@ -1176,33 +1445,12 @@ end -- Biomes for floatlands +-- Used when mgv7 'biomerepeat' flag is false + +-- TODO Temporary simple biomes to be replaced by special floatland biomes later. function default.register_floatland_biomes(floatland_level, shadow_limit) - -- Coniferous forest - - minetest.register_biome({ - name = "floatland_coniferous_forest", - --node_dust = "", - node_top = "default:dirt_with_grass", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 3, - --node_stone = "", - --node_water_top = "", - --depth_water_top = , - --node_water = "", - --node_river_water = "", - --node_riverbed = "", - --depth_riverbed = , - y_min = floatland_level + 2, - y_max = 31000, - heat_point = 50, - humidity_point = 70, - }) - - -- Grassland - minetest.register_biome({ name = "floatland_grassland", --node_dust = "", @@ -1217,38 +1465,14 @@ function default.register_floatland_biomes(floatland_level, shadow_limit) --node_river_water = "", --node_riverbed = "", --depth_riverbed = , - y_min = floatland_level + 2, + y_min = floatland_level + 4, y_max = 31000, heat_point = 50, - humidity_point = 35, + humidity_point = 50, }) - -- Sandstone desert - minetest.register_biome({ - name = "floatland_sandstone_desert", - --node_dust = "", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 1, - node_stone = "default:sandstone", - --node_water_top = "", - --depth_water_top = , - --node_water = "", - --node_river_water = "", - --node_riverbed = "", - --depth_riverbed = , - y_min = floatland_level + 2, - y_max = 31000, - heat_point = 50, - humidity_point = 0, - }) - - -- Floatland ocean / underground - - minetest.register_biome({ - name = "floatland_ocean", + name = "floatland_grassland_ocean", --node_dust = "", node_top = "default:sand", depth_top = 1, @@ -1262,7 +1486,7 @@ function default.register_floatland_biomes(floatland_level, shadow_limit) --node_riverbed = "", --depth_riverbed = , y_min = shadow_limit, - y_max = floatland_level + 1, + y_max = floatland_level + 3, heat_point = 50, humidity_point = 50, }) @@ -1380,7 +1604,7 @@ local function register_grass_decoration(offset, scale, length) }, biomes = {"grassland", "grassland_dunes", "deciduous_forest", "coniferous_forest", "coniferous_forest_dunes", - "floatland_grassland", "floatland_coniferous_forest"}, + "floatland_grassland"}, y_min = 1, y_max = 31000, decoration = "default:grass_" .. length, @@ -1494,7 +1718,7 @@ function default.register_decorations() octaves = 3, persist = 0.66 }, - biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"}, + biomes = {"taiga", "coniferous_forest"}, y_min = 2, y_max = 31000, schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts", @@ -1794,33 +2018,41 @@ end -- Get setting or default local mgv7_spflags = minetest.get_mapgen_setting("mgv7_spflags") or - "mountains, ridges, nofloatlands" + "mountains, ridges, nofloatlands, caverns, biomerepeat" local captures_float = string.match(mgv7_spflags, "floatlands") local captures_nofloat = string.match(mgv7_spflags, "nofloatlands") +local captures_nobiorep = string.match(mgv7_spflags, "nobiomerepeat") -local mgv7_floatland_level = minetest.get_mapgen_setting("mgv7_floatland_level") or 1280 -local mgv7_shadow_limit = minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024 +-- Get setting or default +-- Make global for mods to use to register floatland biomes +default.mgv7_floatland_level = + minetest.get_mapgen_setting("mgv7_floatland_level") or 1280 +default.mgv7_shadow_limit = + minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024 minetest.clear_registered_biomes() minetest.clear_registered_ores() minetest.clear_registered_decorations() local mg_name = minetest.get_mapgen_setting("mg_name") + if mg_name == "v6" then - default.register_mgv6_blob_ores() - default.register_ores() + default.register_mgv6_ores() default.register_mgv6_decorations() -elseif mg_name == "v7" and captures_float == "floatlands" and - captures_nofloat ~= "nofloatlands" then - -- Mgv7 with floatlands - default.register_biomes(mgv7_shadow_limit - 1) - default.register_floatland_biomes(mgv7_floatland_level, mgv7_shadow_limit) - default.register_blob_ores() +elseif mg_name == "v7" and + captures_float == "floatlands" and + -- Need to check for 'nofloatlands' because that contains + -- 'floatlands' which makes the second condition true. + captures_nofloat ~= "nofloatlands" and + captures_nobiorep == "nobiomerepeat" then + -- Mgv7 with floatlands and floatland biomes + default.register_biomes(default.mgv7_shadow_limit - 1) + default.register_floatland_biomes( + default.mgv7_floatland_level, default.mgv7_shadow_limit) default.register_ores() default.register_decorations() else default.register_biomes(31000) - default.register_blob_ores() default.register_ores() default.register_decorations() end diff --git a/mods/default/mapgen.lua.diff b/mods/default/mapgen.lua.diff new file mode 100644 index 0000000..80b7b2b --- /dev/null +++ b/mods/default/mapgen.lua.diff @@ -0,0 +1,439 @@ +46,48d45 +< -- Blob ores +< -- These first to avoid other ores in blobs +< +51c48,51 +< function default.register_mgv6_blob_ores() +--- +> function default.register_mgv6_ores() +> +> -- Blob ore +> -- These first to avoid other ores in blobs +136a137,407 +> +> -- Scatter ores +> +> -- Coal +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_coal", +> wherein = "default:stone", +> clust_scarcity = 8 * 8 * 8, +> clust_num_ores = 9, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_coal", +> wherein = "default:stone", +> clust_scarcity = 8 * 8 * 8, +> clust_num_ores = 8, +> clust_size = 3, +> y_min = -31000, +> y_max = 64, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_coal", +> wherein = "default:stone", +> clust_scarcity = 24 * 24 * 24, +> clust_num_ores = 27, +> clust_size = 6, +> y_min = -31000, +> y_max = 0, +> }) +> +> -- Iron +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_iron", +> wherein = "default:stone", +> clust_scarcity = 9 * 9 * 9, +> clust_num_ores = 12, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_iron", +> wherein = "default:stone", +> clust_scarcity = 7 * 7 * 7, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = -31000, +> y_max = 0, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_iron", +> wherein = "default:stone", +> clust_scarcity = 24 * 24 * 24, +> clust_num_ores = 27, +> clust_size = 6, +> y_min = -31000, +> y_max = -64, +> }) +> +> -- Copper +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_copper", +> wherein = "default:stone", +> clust_scarcity = 9 * 9 * 9, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_copper", +> wherein = "default:stone", +> clust_scarcity = 12 * 12 * 12, +> clust_num_ores = 4, +> clust_size = 3, +> y_min = -63, +> y_max = -16, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_copper", +> wherein = "default:stone", +> clust_scarcity = 9 * 9 * 9, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = -31000, +> y_max = -64, +> }) +> +> -- Tin +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_tin", +> wherein = "default:stone", +> clust_scarcity = 10 * 10 * 10, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_tin", +> wherein = "default:stone", +> clust_scarcity = 13 * 13 * 13, +> clust_num_ores = 4, +> clust_size = 3, +> y_min = -127, +> y_max = -32, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_tin", +> wherein = "default:stone", +> clust_scarcity = 10 * 10 * 10, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = -31000, +> y_max = -128, +> }) +> +> -- Gold +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_gold", +> wherein = "default:stone", +> clust_scarcity = 13 * 13 * 13, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_gold", +> wherein = "default:stone", +> clust_scarcity = 15 * 15 * 15, +> clust_num_ores = 3, +> clust_size = 2, +> y_min = -255, +> y_max = -64, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_gold", +> wherein = "default:stone", +> clust_scarcity = 13 * 13 * 13, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = -31000, +> y_max = -256, +> }) +> +> -- Mese crystal +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_mese", +> wherein = "default:stone", +> clust_scarcity = 14 * 14 * 14, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_mese", +> wherein = "default:stone", +> clust_scarcity = 18 * 18 * 18, +> clust_num_ores = 3, +> clust_size = 2, +> y_min = -255, +> y_max = -64, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_mese", +> wherein = "default:stone", +> clust_scarcity = 14 * 14 * 14, +> clust_num_ores = 5, +> clust_size = 3, +> y_min = -31000, +> y_max = -256, +> }) +> +> -- Diamond +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_diamond", +> wherein = "default:stone", +> clust_scarcity = 15 * 15 * 15, +> clust_num_ores = 4, +> clust_size = 3, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_diamond", +> wherein = "default:stone", +> clust_scarcity = 17 * 17 * 17, +> clust_num_ores = 4, +> clust_size = 3, +> y_min = -255, +> y_max = -128, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:stone_with_diamond", +> wherein = "default:stone", +> clust_scarcity = 15 * 15 * 15, +> clust_num_ores = 4, +> clust_size = 3, +> y_min = -31000, +> y_max = -256, +> }) +> +> -- Mese block +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:mese", +> wherein = "default:stone", +> clust_scarcity = 36 * 36 * 36, +> clust_num_ores = 3, +> clust_size = 2, +> y_min = 1025, +> y_max = 31000, +> }) +> +> minetest.register_ore({ +> ore_type = "scatter", +> ore = "default:mese", +> wherein = "default:stone", +> clust_scarcity = 36 * 36 * 36, +> clust_num_ores = 3, +> clust_size = 2, +> y_min = -31000, +> y_max = -1024, +> }) +142c413,416 +< function default.register_blob_ores() +--- +> function default.register_ores() +> +> -- Blob ore +> -- These first to avoid other ores in blobs +144a419 +> -- This first to avoid clay in sand blobs +191c466 +< "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"} +--- +> "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} +215,216c490 +< "rainforest", "rainforest_swamp", "floatland_grassland", +< "floatland_coniferous_forest"} +--- +> "rainforest", "rainforest_swamp", "floatland_coniferous_forest"} +245c519 +< "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"} +--- +> "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} +247,248d520 +< end +< +250,253c522 +< -- Scatter ores +< -- All mapgens +< +< function default.register_ores() +--- +> -- Scatter ores +1178a1448 +> -- Used when mgv7 'biomerepeat' flag is false +1180,1202c1450 +< function default.register_floatland_biomes(floatland_level, shadow_limit) +< +< -- Coniferous forest +< +< minetest.register_biome({ +< name = "floatland_coniferous_forest", +< --node_dust = "", +< node_top = "default:dirt_with_grass", +< depth_top = 1, +< node_filler = "default:dirt", +< depth_filler = 3, +< --node_stone = "", +< --node_water_top = "", +< --depth_water_top = , +< --node_water = "", +< --node_river_water = "", +< --node_riverbed = "", +< --depth_riverbed = , +< y_min = floatland_level + 2, +< y_max = 31000, +< heat_point = 50, +< humidity_point = 70, +< }) +--- +> -- TODO Temporary simple biomes to be replaced by special floatland biomes later. +1204c1452 +< -- Grassland +--- +> function default.register_floatland_biomes(floatland_level, shadow_limit) +1220c1468 +< y_min = floatland_level + 2, +--- +> y_min = floatland_level + 4, +1223,1245c1471 +< humidity_point = 35, +< }) +< +< -- Sandstone desert +< +< minetest.register_biome({ +< name = "floatland_sandstone_desert", +< --node_dust = "", +< node_top = "default:sand", +< depth_top = 1, +< node_filler = "default:sand", +< depth_filler = 1, +< node_stone = "default:sandstone", +< --node_water_top = "", +< --depth_water_top = , +< --node_water = "", +< --node_river_water = "", +< --node_riverbed = "", +< --depth_riverbed = , +< y_min = floatland_level + 2, +< y_max = 31000, +< heat_point = 50, +< humidity_point = 0, +--- +> humidity_point = 50, +1248,1249d1473 +< -- Floatland ocean / underground +< +1251c1475 +< name = "floatland_ocean", +--- +> name = "floatland_grassland_ocean", +1265c1489 +< y_max = floatland_level + 1, +--- +> y_max = floatland_level + 3, +1383c1607 +< "floatland_grassland", "floatland_coniferous_forest"}, +--- +> "floatland_grassland"}, +1497c1721 +< biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"}, +--- +> biomes = {"taiga", "coniferous_forest"}, +1797c2021 +< "mountains, ridges, nofloatlands" +--- +> "mountains, ridges, nofloatlands, caverns, biomerepeat" +1799a2024 +> local captures_nobiorep = string.match(mgv7_spflags, "nobiomerepeat") +1801,1802c2026,2031 +< local mgv7_floatland_level = minetest.get_mapgen_setting("mgv7_floatland_level") or 1280 +< local mgv7_shadow_limit = minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024 +--- +> -- Get setting or default +> -- Make global for mods to use to register floatland biomes +> default.mgv7_floatland_level = +> minetest.get_mapgen_setting("mgv7_floatland_level") or 1280 +> default.mgv7_shadow_limit = +> minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024 +1808a2038 +> +1810,1811c2040 +< default.register_mgv6_blob_ores() +< default.register_ores() +--- +> default.register_mgv6_ores() +1813,1818c2042,2051 +< elseif mg_name == "v7" and captures_float == "floatlands" and +< captures_nofloat ~= "nofloatlands" then +< -- Mgv7 with floatlands +< default.register_biomes(mgv7_shadow_limit - 1) +< default.register_floatland_biomes(mgv7_floatland_level, mgv7_shadow_limit) +< default.register_blob_ores() +--- +> elseif mg_name == "v7" and +> captures_float == "floatlands" and +> -- Need to check for 'nofloatlands' because that contains +> -- 'floatlands' which makes the second condition true. +> captures_nofloat ~= "nofloatlands" and +> captures_nobiorep == "nobiomerepeat" then +> -- Mgv7 with floatlands and floatland biomes +> default.register_biomes(default.mgv7_shadow_limit - 1) +> default.register_floatland_biomes( +> default.mgv7_floatland_level, default.mgv7_shadow_limit) +1823d2055 +< default.register_blob_ores() diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index f14e8b2..7346c1d 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -75,10 +75,10 @@ default:leaves default:sapling default:apple -default:jungletree -default:junglewood -default:jungleleaves -default:junglesapling +default:jungle_tree +default:jungle_wood +default:jungle_leaves +default:jungle_sapling default:pine_tree default:pine_wood @@ -128,7 +128,7 @@ Plantlife default:cactus default:papyrus default:dry_shrub -default:junglegrass +default:jungle_grass default:grass_1 default:grass_2 @@ -185,7 +185,7 @@ default:ladder_steel default:fence_wood default:fence_acacia_wood -default:fence_junglewood +default:fence_jungle_wood default:fence_pine_wood default:fence_aspen_wood @@ -569,7 +569,7 @@ minetest.register_node("default:ice", { -- minetest.register_node("default:tree", { - description = "Tree", + description = "Apple Tree", tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, paramtype2 = "facedir", is_ground_content = false, @@ -580,7 +580,7 @@ minetest.register_node("default:tree", { }) minetest.register_node("default:wood", { - description = "Wooden Planks", + description = "Apple Wood Planks", paramtype2 = "facedir", place_param2 = 0, tiles = {"default_wood.png"}, @@ -590,14 +590,29 @@ minetest.register_node("default:wood", { }) minetest.register_node("default:sapling", { - description = "Sapling", - drawtype = "plantlike", - tiles = {"default_sapling.png"}, + description = "Apple Tree Sapling", + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 + {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 + {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 + } + }, + tiles = {"default_sapling_top.png", + "default_sapling_bottom.png", + "default_sapling_side.png", + "default_sapling_side.png", + "default_sapling_side.png", + "default_sapling_side.png" + }, inventory_image = "default_sapling.png", wield_image = "default_sapling.png", paramtype = "light", sunlight_propagates = true, - walkable = false, + walkable = true, on_timer = default.grow_sapling, selection_box = { type = "fixed", @@ -608,7 +623,7 @@ minetest.register_node("default:sapling", { sounds = default.node_sound_leaves_defaults(), on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(2400,4800)) + minetest.get_node_timer(pos):start(math.random(300, 1500)) end, on_place = function(itemstack, placer, pointed_thing) @@ -626,7 +641,7 @@ minetest.register_node("default:sapling", { }) minetest.register_node("default:leaves", { - description = "Leaves", + description = "Apple Tree Leaves", drawtype = "allfaces_optional", waving = 1, tiles = {"default_leaves.png"}, @@ -656,7 +671,14 @@ minetest.register_node("default:leaves", { minetest.register_node("default:apple", { description = "Apple", - drawtype = "plantlike", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0.0625, 0.25}, -- NodeBox1 + {-0.0625, 0.0625, -0.0625, 0.0625, 0.25, 0.0625}, -- NodeBox2 + } + }, tiles = {"default_apple.png"}, inventory_image = "default_apple.png", paramtype = "light", @@ -680,10 +702,10 @@ minetest.register_node("default:apple", { }) -minetest.register_node("default:jungletree", { +minetest.register_node("default:jungle_tree", { description = "Jungle Tree", - tiles = {"default_jungletree_top.png", "default_jungletree_top.png", - "default_jungletree.png"}, + tiles = {"default_jungle_tree_top.png", "default_jungle_tree_top.png", + "default_jungle_tree.png"}, paramtype2 = "facedir", is_ground_content = false, groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, @@ -692,30 +714,30 @@ minetest.register_node("default:jungletree", { on_place = minetest.rotate_node }) -minetest.register_node("default:junglewood", { +minetest.register_node("default:jungle_wood", { description = "Jungle Wood Planks", paramtype2 = "facedir", place_param2 = 0, - tiles = {"default_junglewood.png"}, + tiles = {"default_jungle_wood.png"}, is_ground_content = false, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, sounds = default.node_sound_wood_defaults(), }) -minetest.register_node("default:jungleleaves", { - description = "Jungle Leaves", +minetest.register_node("default:jungle_leaves", { + description = "Jungle Tree Leaves", drawtype = "allfaces_optional", waving = 1, - tiles = {"default_jungleleaves.png"}, - special_tiles = {"default_jungleleaves_simple.png"}, + tiles = {"default_jungle_leaves.png"}, + special_tiles = {"default_jungle_leaves_simple.png"}, paramtype = "light", is_ground_content = false, groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, drop = { max_items = 1, items = { - {items = {'default:junglesapling'}, rarity = 20}, - {items = {'default:jungleleaves'}} + {items = {'default:jungle_sapling'}, rarity = 20}, + {items = {'default:jungle_leaves'}} } }, sounds = default.node_sound_leaves_defaults(), @@ -723,15 +745,31 @@ minetest.register_node("default:jungleleaves", { after_place_node = default.after_place_leaves, }) -minetest.register_node("default:junglesapling", { - description = "Jungle Sapling", - drawtype = "plantlike", - tiles = {"default_junglesapling.png"}, - inventory_image = "default_junglesapling.png", - wield_image = "default_junglesapling.png", +minetest.register_node("default:jungle_sapling", { + description = "Jungle Tree Sapling", + tiles = { + "default_jungle_sapling_top.png", + "default_jungle_sapling_bottom.png", + "default_jungle_sapling_side.png", + "default_jungle_sapling_side.png", + "default_jungle_sapling_side.png", + "default_jungle_sapling_side.png" + }, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 + {-0.25, -0.3125, -0.25, 0.25, 0, 0.25}, -- NodeBox3 + {-0.125, -0.0625, -0.125, 0.1875, 0.125, 0.1875}, -- NodeBox4 + } + }, + inventory_image = "default_jungle_sapling.png", + wield_image = "default_jungle_sapling.png", paramtype = "light", sunlight_propagates = true, - walkable = false, + walkable = true, on_timer = default.grow_sapling, selection_box = { type = "fixed", @@ -742,7 +780,7 @@ minetest.register_node("default:junglesapling", { sounds = default.node_sound_leaves_defaults(), on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(2400,4800)) + minetest.get_node_timer(pos):start(math.random(300, 1500)) end, on_place = function(itemstack, placer, pointed_thing) @@ -803,9 +841,28 @@ minetest.register_node("default:pine_needles",{ }) minetest.register_node("default:pine_sapling", { - description = "Pine Sapling", - drawtype = "plantlike", - tiles = {"default_pine_sapling.png"}, + description = "Pine Tree Sapling", + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 + {-0.3125, -0.375, -0.3125, 0.3125, -0.3125, 0.3125}, -- NodeBox2 + {-0.25, -0.3125, -0.25, 0.25, -0.25, 0.25}, -- NodeBox3 + {-0.1875, -0.25, -0.1875, 0.1875, -0.125, 0.1875}, -- NodeBox4 + {-0.125, -0.1875, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox5 + {-0.0625, -0.0625, -0.0625, 0.0625, 0.0625, 0.0625}, -- NodeBox6 + } + }, + tiles = { + "default_pine_sapling_top.png", + "default_pine_sapling_bottom.png", + "default_pine_sapling_side.png", + "default_pine_sapling_side.png", + "default_pine_sapling_side.png", + "default_pine_sapling_side.png" + }, inventory_image = "default_pine_sapling.png", wield_image = "default_pine_sapling.png", paramtype = "light", @@ -821,7 +878,7 @@ minetest.register_node("default:pine_sapling", { sounds = default.node_sound_leaves_defaults(), on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(2400,4800)) + minetest.get_node_timer(pos):start(math.random(300, 1500)) end, on_place = function(itemstack, placer, pointed_thing) @@ -862,7 +919,7 @@ minetest.register_node("default:acacia_wood", { }) minetest.register_node("default:acacia_leaves", { - description = "Acacia Leaves", + description = "Acacia Tree Leaves", drawtype = "allfaces_optional", tiles = {"default_acacia_leaves.png"}, special_tiles = {"default_acacia_leaves_simple.png"}, @@ -884,13 +941,28 @@ minetest.register_node("default:acacia_leaves", { minetest.register_node("default:acacia_sapling", { description = "Acacia Tree Sapling", - drawtype = "plantlike", - tiles = {"default_acacia_sapling.png"}, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 + {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 + {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 + } + }, + tiles = {"default_acacia_sapling_top.png", + "default_acacia_sapling_bottom.png", + "default_acacia_sapling_side.png", + "default_acacia_sapling_side.png", + "default_acacia_sapling_side.png", + "default_acacia_sapling_side.png" + }, inventory_image = "default_acacia_sapling.png", wield_image = "default_acacia_sapling.png", paramtype = "light", sunlight_propagates = true, - walkable = false, + walkable = true, on_timer = default.grow_sapling, selection_box = { type = "fixed", @@ -901,7 +973,7 @@ minetest.register_node("default:acacia_sapling", { sounds = default.node_sound_leaves_defaults(), on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(2400,4800)) + minetest.get_node_timer(pos):start(math.random(300, 1500)) end, on_place = function(itemstack, placer, pointed_thing) @@ -941,7 +1013,7 @@ minetest.register_node("default:aspen_wood", { }) minetest.register_node("default:aspen_leaves", { - description = "Aspen Leaves", + description = "Aspen Tree Leaves", drawtype = "allfaces_optional", tiles = {"default_aspen_leaves.png"}, waving = 1, @@ -962,13 +1034,28 @@ minetest.register_node("default:aspen_leaves", { minetest.register_node("default:aspen_sapling", { description = "Aspen Tree Sapling", - drawtype = "plantlike", - tiles = {"default_aspen_sapling.png"}, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 + {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 + {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 + } + }, + tiles = {"default_aspen_sapling_top.png", + "default_aspen_sapling_bottom.png", + "default_aspen_sapling_side.png", + "default_aspen_sapling_side.png", + "default_aspen_sapling_side.png", + "default_aspen_sapling_side.png" + }, inventory_image = "default_aspen_sapling.png", wield_image = "default_aspen_sapling.png", paramtype = "light", sunlight_propagates = true, - walkable = false, + walkable = true, on_timer = default.grow_sapling, selection_box = { type = "fixed", @@ -979,7 +1066,7 @@ minetest.register_node("default:aspen_sapling", { sounds = default.node_sound_leaves_defaults(), on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(2400,4800)) + minetest.get_node_timer(pos):start(math.random(300, 1500)) end, on_place = function(itemstack, placer, pointed_thing) @@ -1144,10 +1231,19 @@ minetest.register_node("default:cactus", { minetest.register_node("default:papyrus", { description = "Papyrus", - drawtype = "plantlike", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {0.1875, -0.5, 0.1875, 0.4375, 0.5, 0.4375}, -- NodeBox1 + {0.1875, -0.5, -0.4375, 0.4375, 0.5, -0.1875}, -- NodeBox2 + {-0.4375, -0.5, -0.4375, -0.1875, 0.5, -0.1875}, -- NodeBox3 + {-0.4375, -0.5, 0.1875, -0.1875, 0.5, 0.4375}, -- NodeBox4 + } + }, tiles = {"default_papyrus.png"}, - inventory_image = "default_papyrus.png", - wield_image = "default_papyrus.png", + inventory_image = "default_inv_papyrus.png", + wield_image = "default_inv_papyrus.png", paramtype = "light", sunlight_propagates = true, walkable = false, @@ -1182,15 +1278,25 @@ minetest.register_node("default:dry_shrub", { }, }) -minetest.register_node("default:junglegrass", { +minetest.register_node("default:jungle_grass", { description = "Jungle Grass", - drawtype = "plantlike", - waving = 1, - visual_scale = 1.69, - tiles = {"default_junglegrass.png"}, - inventory_image = "default_junglegrass.png", - wield_image = "default_junglegrass.png", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.125, 0.125, 0.25, 0.125}, -- NodeBox18 + {0.125, 0.25, -0.125, 0.375, 0.5, 0.125}, -- NodeBox19 + {0.25, -0.5, 0.25, 0.5, -0.125, 0.5}, -- NodeBox20 + {-0.5, -0.5, 0.25, -0.25, -0.25, 0.5}, -- NodeBox21 + {0.25, -0.5, -0.5, 0.5, -0.1875, -0.25}, -- NodeBox22 + {-0.5, -0.5, -0.5, -0.25, -0.0625, -0.25}, -- NodeBox23 + } + }, + tiles = {"default_grass.png"}, + inventory_image = "default_jungle_grass.png", + wield_image = "default_jungle_grass.png", paramtype = "light", + paramtype2 = "facedir", sunlight_propagates = true, walkable = false, buildable_to = true, @@ -1205,12 +1311,18 @@ minetest.register_node("default:junglegrass", { minetest.register_node("default:grass_1", { description = "Grass", - drawtype = "plantlike", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, 0.125, -0.125, -0.25, 0.375}, -- NodeBox9 + {0.125, -0.5, 0.125, 0.375, -0.25, 0.375}, -- NodeBox11 + {-0.375, -0.5, -0.375, -0.125, -0.25, -0.125}, -- NodeBox12 + } + }, waving = 1, - tiles = {"default_grass_1.png"}, + tiles = {"default_grass.png"}, -- Use texture of a taller grass stage in inventory - inventory_image = "default_grass_3.png", - wield_image = "default_grass_3.png", paramtype = "light", sunlight_propagates = true, walkable = false, @@ -1221,39 +1333,123 @@ minetest.register_node("default:grass_1", { type = "fixed", fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -5 / 16, 6 / 16}, }, - - on_place = function(itemstack, placer, pointed_thing) - -- place a random grass node - local stack = ItemStack("default:grass_" .. math.random(1,5)) - local ret = minetest.item_place(stack, placer, pointed_thing) - return ItemStack("default:grass_1 " .. - itemstack:get_count() - (1 - ret:get_count())) - end, }) -for i = 2, 5 do - minetest.register_node("default:grass_" .. i, { - description = "Grass", - drawtype = "plantlike", - waving = 1, - tiles = {"default_grass_" .. i .. ".png"}, - inventory_image = "default_grass_" .. i .. ".png", - wield_image = "default_grass_" .. i .. ".png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - buildable_to = true, - drop = "default:grass_1", - groups = {snappy = 3, flora = 1, attached_node = 1, - not_in_creative_inventory = 1, grass = 1, flammable = 1}, +minetest.register_node("default:grass_2", { + description = "Grass", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.125, 0.125, -0.1875, 0.125}, -- NodeBox8 + {-0.375, -0.5, 0.125, -0.125, 0.0625, 0.375}, -- NodeBox9 + {0.125, -0.5, 0.125, 0.375, 0.0625, 0.375}, -- NodeBox11 + {-0.375, -0.5, -0.375, -0.125, 0.0625, -0.125}, -- NodeBox12 + {0.125, -0.5, -0.375, 0.375, 0.0625, -0.125}, -- NodeBox13 + } + }, + waving = 1, + tiles = {"default_grass.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "default:grass_2", + groups = {snappy = 3, flora = 1, attached_node = 1, + not_in_creative_inventory = 1, grass = 1, flammable = 1}, sounds = default.node_sound_leaves_defaults(), - selection_box = { - type = "fixed", - fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, - }, - }) -end + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, +}) +minetest.register_node("default:grass_3", { + description = "Grass", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.125, 0.125, -0.1875, 0.125}, -- NodeBox8 + {-0.375, -0.5, 0.125, -0.125, 0.3125, 0.375}, -- NodeBox9 + {0.125, -0.5, 0.125, 0.375, 0.3125, 0.375}, -- NodeBox11 + {-0.375, -0.5, -0.375, -0.125, 0.3125, -0.125}, -- NodeBox12 + {0.125, -0.5, -0.375, 0.375, 0.3125, -0.125}, -- NodeBox13 + } + }, + waving = 1, + tiles = {"default_grass.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "default:grass_3", + groups = {snappy = 3, flora = 1, attached_node = 1, + not_in_creative_inventory = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, +}) + +minetest.register_node("default:grass_4", { + description = "Grass", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {0.125, -0.5, 0.125, 0.4375, 0.5, 0.4375}, -- NodeBox1 + {0.125, -0.5, -0.4375, 0.4375, 0.5, -0.125}, -- NodeBox2 + {-0.4375, -0.5, -0.4375, -0.125, 0.5, -0.125}, -- NodeBox3 + {-0.4375, -0.5, 0.125, -0.125, 0.5, 0.4375}, -- NodeBox4 + {-0.125, -0.5, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox7 + } + }, + waving = 1, + tiles = {"default_grass.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "default:grass_3", + groups = {snappy = 3, flora = 1, attached_node = 1, + not_in_creative_inventory = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, +}) + +minetest.register_node("default:grass_5", { + description = "Grass", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {0.125, -0.5, 0.125, 0.4375, 0.5, 0.4375}, -- NodeBox1 + {0.125, -0.5, -0.4375, 0.4375, 0.5, -0.125}, -- NodeBox2 + {-0.4375, -0.5, -0.4375, -0.125, 0.5, -0.125}, -- NodeBox3 + {-0.4375, -0.5, 0.125, -0.125, 0.5, 0.4375}, -- NodeBox4 + {-0.125, -0.5, -0.125, 0.125, 0.125, 0.125}, -- NodeBox7 + } + }, + waving = 1, + tiles = {"default_grass.png"}, + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "default:grass_3", + groups = {snappy = 3, flora = 1, attached_node = 1, + not_in_creative_inventory = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, +}) minetest.register_node("default:dry_grass_1", { description = "Dry Grass", @@ -1362,7 +1558,7 @@ minetest.register_node("default:bush_sapling", { sounds = default.node_sound_leaves_defaults(), on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(1200, 2400)) + minetest.get_node_timer(pos):start(math.random(300, 1500)) end, on_place = function(itemstack, placer, pointed_thing) @@ -1433,7 +1629,7 @@ minetest.register_node("default:acacia_bush_sapling", { sounds = default.node_sound_leaves_defaults(), on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(1200, 2400)) + minetest.get_node_timer(pos):start(math.random(300, 1500)) end, on_place = function(itemstack, placer, pointed_thing) @@ -1709,7 +1905,7 @@ minetest.register_node("default:lava_source", { liquid_alternative_flowing = "default:lava_flowing", liquid_alternative_source = "default:lava_source", liquid_viscosity = 7, - liquid_renewable = false, + liquid_renewable = true, damage_per_second = 4 * 2, post_effect_color = {a = 191, r = 255, g = 64, b = 0}, groups = {lava = 3, liquid = 2, igniter = 1}, @@ -1755,7 +1951,7 @@ minetest.register_node("default:lava_flowing", { liquid_alternative_flowing = "default:lava_flowing", liquid_alternative_source = "default:lava_source", liquid_viscosity = 7, - liquid_renewable = false, + liquid_renewable = true, damage_per_second = 4 * 2, post_effect_color = {a = 191, r = 255, g = 64, b = 0}, groups = {lava = 3, liquid = 2, igniter = 1, @@ -1766,7 +1962,7 @@ minetest.register_node("default:lava_flowing", { -- Tools / "Advanced" crafting / Non-"natural" -- -local function get_chest_formspec(pos) +function default.get_chest_formspec(pos) local spos = pos.x .. "," .. pos.y .. "," .. pos.z local formspec = "size[8,9]" .. @@ -1783,13 +1979,14 @@ local function get_chest_formspec(pos) end local function chest_lid_obstructed(pos) - local above = { x = pos.x, y = pos.y + 1, z = pos.z } + local above = {x = pos.x, y = pos.y + 1, z = pos.z} local def = minetest.registered_nodes[minetest.get_node(above).name] -- allow ladders, signs, wallmounted things and torches to not obstruct - if def.drawtype == "airlike" or + if def and + (def.drawtype == "airlike" or def.drawtype == "signlike" or def.drawtype == "torchlike" or - (def.drawtype == "nodebox" and def.paramtype2 == "wallmounted") then + (def.drawtype == "nodebox" and def.paramtype2 == "wallmounted")) then return false end return true @@ -1889,7 +2086,7 @@ function default.register_chest(name, d) end minetest.after(0.2, minetest.show_formspec, clicker:get_player_name(), - "default:chest", get_chest_formspec(pos)) + "default:chest", default.get_chest_formspec(pos)) open_chests[clicker:get_player_name()] = { pos = pos, sound = def.sound_close, swap = name } end @@ -1911,7 +2108,7 @@ function default.register_chest(name, d) minetest.show_formspec( player:get_player_name(), "default:chest_locked", - get_chest_formspec(pos) + default.get_chest_formspec(pos) ) end def.on_skeleton_key_use = function(pos, player, newsecret) @@ -1956,7 +2153,7 @@ function default.register_chest(name, d) end minetest.after(0.2, minetest.show_formspec, clicker:get_player_name(), - "default:chest", get_chest_formspec(pos)) + "default:chest", default.get_chest_formspec(pos)) open_chests[clicker:get_player_name()] = { pos = pos, sound = def.sound_close, swap = name } end @@ -1989,12 +2186,19 @@ function default.register_chest(name, d) local def_closed = table.copy(def) def_opened.mesh = "chest_open.obj" + for i = 1, #def_opened.tiles do + if type(def_opened.tiles[i]) == "string" then + def_opened.tiles[i] = {name = def_opened.tiles[i], backface_culling = true} + elseif def_opened.tiles[i].backface_culling == nil then + def_opened.tiles[i].backface_culling = true + end + end def_opened.drop = "default:" .. name def_opened.groups.not_in_creative_inventory = 1 def_opened.selection_box = { type = "fixed", fixed = { -1/2, -1/2, -1/2, 1/2, 3/16, 1/2 }, - } + } def_opened.can_dig = function() return false end @@ -2144,6 +2348,45 @@ minetest.register_node("default:bookshelf", { end, }) +torch_box = { + type = "wallmounted", + wall_top = {-0.5/3, -0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}, + wall_bottom = {-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3}, + wall_side = {-1.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3}, +} + +minetest.register_node("default:torch", { + drawtype = "nodebox", + description = "Torch", + tiles = {"default_torch.png"}, + inventory_image = "default_torch_inventory.png", + wield_image = "default_torch_inventory.png", + paramtype = "light", + paramtype2 = "wallmounted", + legacy_wallmounted = true, + sunlight_propagates = true, + walkable = false, + light_source = default.LIGHT_MAX-2, + node_box = torch_box, + groups = {attached_node=1, dig_immediate=3,not_in_creative_inventory=1}, + drop='"default:torch" 1', + sounds = default.node_sound_wood_defaults(), +-- on_construct = function(pos) +-- local tmr = minetest.env:get_node_timer(pos) +-- tmr:start(torch_time) +-- end, +-- on_rightclick = function(pos, node) +-- local tmr = minetest.env:get_node_timer(pos) +-- local meta = minetest.get_meta(pos) +-- local proc = math.floor(tmr:get_elapsed()/(torch_time/100)) +-- meta:set_string("infotext", proc.."%") +-- end, +-- on_timer = function(pos,elapsed) +-- local node = minetest.get_node(pos) +-- minetest.set_node(pos, {name="default:torch_out", param2 = node.param2}) +-- end, +}) + local function register_sign(material, desc, def) minetest.register_node("default:sign_wall_" .. material, { description = desc .. " Sign", @@ -2244,7 +2487,7 @@ minetest.register_node("default:ladder_steel", { }) default.register_fence("default:fence_wood", { - description = "Wooden Fence", + description = "Apple Wood Fence", texture = "default_fence_wood.png", inventory_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126", wield_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126", @@ -2254,7 +2497,7 @@ default.register_fence("default:fence_wood", { }) default.register_fence("default:fence_acacia_wood", { - description = "Acacia Fence", + description = "Acacia Wood Fence", texture = "default_fence_acacia_wood.png", inventory_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126", wield_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126", @@ -2263,18 +2506,18 @@ default.register_fence("default:fence_acacia_wood", { sounds = default.node_sound_wood_defaults() }) -default.register_fence("default:fence_junglewood", { +default.register_fence("default:fence_jungle_wood", { description = "Jungle Wood Fence", - texture = "default_fence_junglewood.png", - inventory_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", - wield_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", - material = "default:junglewood", + texture = "default_fence_jungle_wood.png", + inventory_image = "default_fence_overlay.png^default_jungle_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_jungle_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:jungle_wood", groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, sounds = default.node_sound_wood_defaults() }) default.register_fence("default:fence_pine_wood", { - description = "Pine Fence", + description = "Pine Wood Fence", texture = "default_fence_pine_wood.png", inventory_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126", wield_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126", @@ -2284,7 +2527,7 @@ default.register_fence("default:fence_pine_wood", { }) default.register_fence("default:fence_aspen_wood", { - description = "Aspen Fence", + description = "Aspen Wood Fence", texture = "default_fence_aspen_wood.png", inventory_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126", wield_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126", @@ -2298,7 +2541,7 @@ minetest.register_node("default:glass", { drawtype = "glasslike_framed_optional", tiles = {"default_glass.png", "default_glass_detail.png"}, paramtype = "light", - paramtype2 = "glasslikeliquidlevel", + -- paramtype2 = "glasslikeliquidlevel", sunlight_propagates = true, is_ground_content = false, groups = {cracky = 3, oddly_breakable_by_hand = 3}, @@ -2386,8 +2629,8 @@ if minetest.get_mapgen_setting("mg_name") == "v6" then }) default.register_leafdecay({ - trunks = {"default:jungletree"}, - leaves = {"default:jungleleaves"}, + trunks = {"default:jungle_tree"}, + leaves = {"default:jungle_leaves"}, radius = 3, }) @@ -2404,8 +2647,8 @@ else }) default.register_leafdecay({ - trunks = {"default:jungletree"}, - leaves = {"default:jungleleaves"}, + trunks = {"default:jungle_tree"}, + leaves = {"default:jungle_leaves"}, radius = 2, }) @@ -2439,3 +2682,11 @@ default.register_leafdecay({ leaves = {"default:acacia_bush_leaves"}, radius = 1, }) + +minetest.register_alias("default:jungleleaves", "default:jungle_leaves") +minetest.register_alias("default:junglewood", "default:jungle_wood") +minetest.register_alias("default:junglesapling", "default:jungle_sapling") +minetest.register_alias("default:jungletree", "default:jungle_tree") +minetest.register_alias("default:junglegrass", "default:jungle_grass") + +minetest.register_alias("default:fence_junglewood", "default:fence_jungle_wood") diff --git a/mods/default/nodes.lua.diff b/mods/default/nodes.lua.diff new file mode 100644 index 0000000..bc1a3fe --- /dev/null +++ b/mods/default/nodes.lua.diff @@ -0,0 +1,610 @@ +78,81c78,81 +< default:jungletree +< default:junglewood +< default:jungleleaves +< default:junglesapling +--- +> default:jungle_tree +> default:jungle_wood +> default:jungle_leaves +> default:jungle_sapling +131c131 +< default:junglegrass +--- +> default:jungle_grass +188c188 +< default:fence_junglewood +--- +> default:fence_jungle_wood +572c572 +< description = "Tree", +--- +> description = "Apple Tree", +583c583 +< description = "Wooden Planks", +--- +> description = "Apple Wood Planks", +593,595c593,610 +< description = "Sapling", +< drawtype = "plantlike", +< tiles = {"default_sapling.png"}, +--- +> description = "Apple Tree Sapling", +> drawtype = "nodebox", +> paramtype = "light", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 +> {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 +> {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 +> } +> }, +> tiles = {"default_sapling_top.png", +> "default_sapling_bottom.png", +> "default_sapling_side.png", +> "default_sapling_side.png", +> "default_sapling_side.png", +> "default_sapling_side.png" +> }, +600c615 +< walkable = false, +--- +> walkable = true, +611c626 +< minetest.get_node_timer(pos):start(math.random(2400,4800)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +629c644 +< description = "Leaves", +--- +> description = "Apple Tree Leaves", +659c674,681 +< drawtype = "plantlike", +--- +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.25, -0.5, -0.25, 0.25, 0.0625, 0.25}, -- NodeBox1 +> {-0.0625, 0.0625, -0.0625, 0.0625, 0.25, 0.0625}, -- NodeBox2 +> } +> }, +683c705 +< minetest.register_node("default:jungletree", { +--- +> minetest.register_node("default:jungle_tree", { +685,686c707,708 +< tiles = {"default_jungletree_top.png", "default_jungletree_top.png", +< "default_jungletree.png"}, +--- +> tiles = {"default_jungle_tree_top.png", "default_jungle_tree_top.png", +> "default_jungle_tree.png"}, +695c717 +< minetest.register_node("default:junglewood", { +--- +> minetest.register_node("default:jungle_wood", { +699c721 +< tiles = {"default_junglewood.png"}, +--- +> tiles = {"default_jungle_wood.png"}, +705,706c727,728 +< minetest.register_node("default:jungleleaves", { +< description = "Jungle Leaves", +--- +> minetest.register_node("default:jungle_leaves", { +> description = "Jungle Tree Leaves", +709,710c731,732 +< tiles = {"default_jungleleaves.png"}, +< special_tiles = {"default_jungleleaves_simple.png"}, +--- +> tiles = {"default_jungle_leaves.png"}, +> special_tiles = {"default_jungle_leaves_simple.png"}, +717,718c739,740 +< {items = {'default:junglesapling'}, rarity = 20}, +< {items = {'default:jungleleaves'}} +--- +> {items = {'default:jungle_sapling'}, rarity = 20}, +> {items = {'default:jungle_leaves'}} +726,731c748,769 +< minetest.register_node("default:junglesapling", { +< description = "Jungle Sapling", +< drawtype = "plantlike", +< tiles = {"default_junglesapling.png"}, +< inventory_image = "default_junglesapling.png", +< wield_image = "default_junglesapling.png", +--- +> minetest.register_node("default:jungle_sapling", { +> description = "Jungle Tree Sapling", +> tiles = { +> "default_jungle_sapling_top.png", +> "default_jungle_sapling_bottom.png", +> "default_jungle_sapling_side.png", +> "default_jungle_sapling_side.png", +> "default_jungle_sapling_side.png", +> "default_jungle_sapling_side.png" +> }, +> drawtype = "nodebox", +> paramtype = "light", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 +> {-0.25, -0.3125, -0.25, 0.25, 0, 0.25}, -- NodeBox3 +> {-0.125, -0.0625, -0.125, 0.1875, 0.125, 0.1875}, -- NodeBox4 +> } +> }, +> inventory_image = "default_jungle_sapling.png", +> wield_image = "default_jungle_sapling.png", +734c772 +< walkable = false, +--- +> walkable = true, +745c783 +< minetest.get_node_timer(pos):start(math.random(2400,4800)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +806,808c844,865 +< description = "Pine Sapling", +< drawtype = "plantlike", +< tiles = {"default_pine_sapling.png"}, +--- +> description = "Pine Tree Sapling", +> drawtype = "nodebox", +> paramtype = "light", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 +> {-0.3125, -0.375, -0.3125, 0.3125, -0.3125, 0.3125}, -- NodeBox2 +> {-0.25, -0.3125, -0.25, 0.25, -0.25, 0.25}, -- NodeBox3 +> {-0.1875, -0.25, -0.1875, 0.1875, -0.125, 0.1875}, -- NodeBox4 +> {-0.125, -0.1875, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox5 +> {-0.0625, -0.0625, -0.0625, 0.0625, 0.0625, 0.0625}, -- NodeBox6 +> } +> }, +> tiles = { +> "default_pine_sapling_top.png", +> "default_pine_sapling_bottom.png", +> "default_pine_sapling_side.png", +> "default_pine_sapling_side.png", +> "default_pine_sapling_side.png", +> "default_pine_sapling_side.png" +> }, +824c881 +< minetest.get_node_timer(pos):start(math.random(2400,4800)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +865c922 +< description = "Acacia Leaves", +--- +> description = "Acacia Tree Leaves", +887,888c944,960 +< drawtype = "plantlike", +< tiles = {"default_acacia_sapling.png"}, +--- +> drawtype = "nodebox", +> paramtype = "light", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 +> {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 +> {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 +> } +> }, +> tiles = {"default_acacia_sapling_top.png", +> "default_acacia_sapling_bottom.png", +> "default_acacia_sapling_side.png", +> "default_acacia_sapling_side.png", +> "default_acacia_sapling_side.png", +> "default_acacia_sapling_side.png" +> }, +893c965 +< walkable = false, +--- +> walkable = true, +904c976 +< minetest.get_node_timer(pos):start(math.random(2400,4800)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +944c1016 +< description = "Aspen Leaves", +--- +> description = "Aspen Tree Leaves", +965,966c1037,1053 +< drawtype = "plantlike", +< tiles = {"default_aspen_sapling.png"}, +--- +> drawtype = "nodebox", +> paramtype = "light", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625}, -- NodeBox1 +> {-0.125, -0.375, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox2 +> {0, -0.125, -0.0625, 0.1875, 0.125, 0.125}, -- NodeBox3 +> } +> }, +> tiles = {"default_aspen_sapling_top.png", +> "default_aspen_sapling_bottom.png", +> "default_aspen_sapling_side.png", +> "default_aspen_sapling_side.png", +> "default_aspen_sapling_side.png", +> "default_aspen_sapling_side.png" +> }, +971c1058 +< walkable = false, +--- +> walkable = true, +982c1069 +< minetest.get_node_timer(pos):start(math.random(2400,4800)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +1147c1234,1243 +< drawtype = "plantlike", +--- +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {0.1875, -0.5, 0.1875, 0.4375, 0.5, 0.4375}, -- NodeBox1 +> {0.1875, -0.5, -0.4375, 0.4375, 0.5, -0.1875}, -- NodeBox2 +> {-0.4375, -0.5, -0.4375, -0.1875, 0.5, -0.1875}, -- NodeBox3 +> {-0.4375, -0.5, 0.1875, -0.1875, 0.5, 0.4375}, -- NodeBox4 +> } +> }, +1149,1150c1245,1246 +< inventory_image = "default_papyrus.png", +< wield_image = "default_papyrus.png", +--- +> inventory_image = "default_inv_papyrus.png", +> wield_image = "default_inv_papyrus.png", +1185c1281 +< minetest.register_node("default:junglegrass", { +--- +> minetest.register_node("default:jungle_grass", { +1187,1192c1283,1297 +< drawtype = "plantlike", +< waving = 1, +< visual_scale = 1.69, +< tiles = {"default_junglegrass.png"}, +< inventory_image = "default_junglegrass.png", +< wield_image = "default_junglegrass.png", +--- +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.125, -0.5, -0.125, 0.125, 0.25, 0.125}, -- NodeBox18 +> {0.125, 0.25, -0.125, 0.375, 0.5, 0.125}, -- NodeBox19 +> {0.25, -0.5, 0.25, 0.5, -0.125, 0.5}, -- NodeBox20 +> {-0.5, -0.5, 0.25, -0.25, -0.25, 0.5}, -- NodeBox21 +> {0.25, -0.5, -0.5, 0.5, -0.1875, -0.25}, -- NodeBox22 +> {-0.5, -0.5, -0.5, -0.25, -0.0625, -0.25}, -- NodeBox23 +> } +> }, +> tiles = {"default_grass.png"}, +> inventory_image = "default_jungle_grass.png", +> wield_image = "default_jungle_grass.png", +1193a1299 +> paramtype2 = "facedir", +1208c1314,1322 +< drawtype = "plantlike", +--- +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.375, -0.5, 0.125, -0.125, -0.25, 0.375}, -- NodeBox9 +> {0.125, -0.5, 0.125, 0.375, -0.25, 0.375}, -- NodeBox11 +> {-0.375, -0.5, -0.375, -0.125, -0.25, -0.125}, -- NodeBox12 +> } +> }, +1210c1324 +< tiles = {"default_grass_1.png"}, +--- +> tiles = {"default_grass.png"}, +1212,1213d1325 +< inventory_image = "default_grass_3.png", +< wield_image = "default_grass_3.png", +1223a1336 +> }) +1225,1231c1338,1364 +< on_place = function(itemstack, placer, pointed_thing) +< -- place a random grass node +< local stack = ItemStack("default:grass_" .. math.random(1,5)) +< local ret = minetest.item_place(stack, placer, pointed_thing) +< return ItemStack("default:grass_1 " .. +< itemstack:get_count() - (1 - ret:get_count())) +< end, +--- +> minetest.register_node("default:grass_2", { +> description = "Grass", +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.125, -0.5, -0.125, 0.125, -0.1875, 0.125}, -- NodeBox8 +> {-0.375, -0.5, 0.125, -0.125, 0.0625, 0.375}, -- NodeBox9 +> {0.125, -0.5, 0.125, 0.375, 0.0625, 0.375}, -- NodeBox11 +> {-0.375, -0.5, -0.375, -0.125, 0.0625, -0.125}, -- NodeBox12 +> {0.125, -0.5, -0.375, 0.375, 0.0625, -0.125}, -- NodeBox13 +> } +> }, +> waving = 1, +> tiles = {"default_grass.png"}, +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> drop = "default:grass_2", +> groups = {snappy = 3, flora = 1, attached_node = 1, +> not_in_creative_inventory = 1, grass = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> selection_box = { +> type = "fixed", +> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, +> }, +1234,1248c1367,1388 +< for i = 2, 5 do +< minetest.register_node("default:grass_" .. i, { +< description = "Grass", +< drawtype = "plantlike", +< waving = 1, +< tiles = {"default_grass_" .. i .. ".png"}, +< inventory_image = "default_grass_" .. i .. ".png", +< wield_image = "default_grass_" .. i .. ".png", +< paramtype = "light", +< sunlight_propagates = true, +< walkable = false, +< buildable_to = true, +< drop = "default:grass_1", +< groups = {snappy = 3, flora = 1, attached_node = 1, +< not_in_creative_inventory = 1, grass = 1, flammable = 1}, +--- +> minetest.register_node("default:grass_3", { +> description = "Grass", +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.125, -0.5, -0.125, 0.125, -0.1875, 0.125}, -- NodeBox8 +> {-0.375, -0.5, 0.125, -0.125, 0.3125, 0.375}, -- NodeBox9 +> {0.125, -0.5, 0.125, 0.375, 0.3125, 0.375}, -- NodeBox11 +> {-0.375, -0.5, -0.375, -0.125, 0.3125, -0.125}, -- NodeBox12 +> {0.125, -0.5, -0.375, 0.375, 0.3125, -0.125}, -- NodeBox13 +> } +> }, +> waving = 1, +> tiles = {"default_grass.png"}, +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> drop = "default:grass_3", +> groups = {snappy = 3, flora = 1, attached_node = 1, +> not_in_creative_inventory = 1, grass = 1, flammable = 1}, +1250,1255c1390,1423 +< selection_box = { +< type = "fixed", +< fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, +< }, +< }) +< end +--- +> selection_box = { +> type = "fixed", +> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, +> }, +> }) +> +> minetest.register_node("default:grass_4", { +> description = "Grass", +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {0.125, -0.5, 0.125, 0.4375, 0.5, 0.4375}, -- NodeBox1 +> {0.125, -0.5, -0.4375, 0.4375, 0.5, -0.125}, -- NodeBox2 +> {-0.4375, -0.5, -0.4375, -0.125, 0.5, -0.125}, -- NodeBox3 +> {-0.4375, -0.5, 0.125, -0.125, 0.5, 0.4375}, -- NodeBox4 +> {-0.125, -0.5, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox7 +> } +> }, +> waving = 1, +> tiles = {"default_grass.png"}, +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> drop = "default:grass_3", +> groups = {snappy = 3, flora = 1, attached_node = 1, +> not_in_creative_inventory = 1, grass = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> selection_box = { +> type = "fixed", +> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, +> }, +> }) +1256a1425,1452 +> minetest.register_node("default:grass_5", { +> description = "Grass", +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {0.125, -0.5, 0.125, 0.4375, 0.5, 0.4375}, -- NodeBox1 +> {0.125, -0.5, -0.4375, 0.4375, 0.5, -0.125}, -- NodeBox2 +> {-0.4375, -0.5, -0.4375, -0.125, 0.5, -0.125}, -- NodeBox3 +> {-0.4375, -0.5, 0.125, -0.125, 0.5, 0.4375}, -- NodeBox4 +> {-0.125, -0.5, -0.125, 0.125, 0.125, 0.125}, -- NodeBox7 +> } +> }, +> waving = 1, +> tiles = {"default_grass.png"}, +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> drop = "default:grass_3", +> groups = {snappy = 3, flora = 1, attached_node = 1, +> not_in_creative_inventory = 1, grass = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> selection_box = { +> type = "fixed", +> fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, +> }, +> }) +1365c1561 +< minetest.get_node_timer(pos):start(math.random(1200, 2400)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +1436c1632 +< minetest.get_node_timer(pos):start(math.random(1200, 2400)) +--- +> minetest.get_node_timer(pos):start(math.random(300, 1500)) +1712c1908 +< liquid_renewable = false, +--- +> liquid_renewable = true, +1758c1954 +< liquid_renewable = false, +--- +> liquid_renewable = true, +1769c1965 +< local function get_chest_formspec(pos) +--- +> function default.get_chest_formspec(pos) +1786c1982 +< local above = { x = pos.x, y = pos.y + 1, z = pos.z } +--- +> local above = {x = pos.x, y = pos.y + 1, z = pos.z} +1789c1985,1986 +< if def.drawtype == "airlike" or +--- +> if def and +> (def.drawtype == "airlike" or +1792c1989 +< (def.drawtype == "nodebox" and def.paramtype2 == "wallmounted") then +--- +> (def.drawtype == "nodebox" and def.paramtype2 == "wallmounted")) then +1892c2089 +< "default:chest", get_chest_formspec(pos)) +--- +> "default:chest", default.get_chest_formspec(pos)) +1914c2111 +< get_chest_formspec(pos) +--- +> default.get_chest_formspec(pos) +1959c2156 +< "default:chest", get_chest_formspec(pos)) +--- +> "default:chest", default.get_chest_formspec(pos)) +1991a2189,2195 +> for i = 1, #def_opened.tiles do +> if type(def_opened.tiles[i]) == "string" then +> def_opened.tiles[i] = {name = def_opened.tiles[i], backface_culling = true} +> elseif def_opened.tiles[i].backface_culling == nil then +> def_opened.tiles[i].backface_culling = true +> end +> end +1997c2201 +< } +--- +> } +2146a2351,2389 +> torch_box = { +> type = "wallmounted", +> wall_top = {-0.5/3, -0.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}, +> wall_bottom = {-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3}, +> wall_side = {-1.5/3, -0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3}, +> } +> +> minetest.register_node("default:torch", { +> drawtype = "nodebox", +> description = "Torch", +> tiles = {"default_torch.png"}, +> inventory_image = "default_torch_inventory.png", +> wield_image = "default_torch_inventory.png", +> paramtype = "light", +> paramtype2 = "wallmounted", +> legacy_wallmounted = true, +> sunlight_propagates = true, +> walkable = false, +> light_source = default.LIGHT_MAX-2, +> node_box = torch_box, +> groups = {attached_node=1, dig_immediate=3,not_in_creative_inventory=1}, +> drop='"default:torch" 1', +> sounds = default.node_sound_wood_defaults(), +> -- on_construct = function(pos) +> -- local tmr = minetest.env:get_node_timer(pos) +> -- tmr:start(torch_time) +> -- end, +> -- on_rightclick = function(pos, node) +> -- local tmr = minetest.env:get_node_timer(pos) +> -- local meta = minetest.get_meta(pos) +> -- local proc = math.floor(tmr:get_elapsed()/(torch_time/100)) +> -- meta:set_string("infotext", proc.."%") +> -- end, +> -- on_timer = function(pos,elapsed) +> -- local node = minetest.get_node(pos) +> -- minetest.set_node(pos, {name="default:torch_out", param2 = node.param2}) +> -- end, +> }) +> +2247c2490 +< description = "Wooden Fence", +--- +> description = "Apple Wood Fence", +2257c2500 +< description = "Acacia Fence", +--- +> description = "Acacia Wood Fence", +2266c2509 +< default.register_fence("default:fence_junglewood", { +--- +> default.register_fence("default:fence_jungle_wood", { +2268,2271c2511,2514 +< texture = "default_fence_junglewood.png", +< inventory_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", +< wield_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", +< material = "default:junglewood", +--- +> texture = "default_fence_jungle_wood.png", +> inventory_image = "default_fence_overlay.png^default_jungle_wood.png^default_fence_overlay.png^[makealpha:255,126,126", +> wield_image = "default_fence_overlay.png^default_jungle_wood.png^default_fence_overlay.png^[makealpha:255,126,126", +> material = "default:jungle_wood", +2277c2520 +< description = "Pine Fence", +--- +> description = "Pine Wood Fence", +2287c2530 +< description = "Aspen Fence", +--- +> description = "Aspen Wood Fence", +2301c2544 +< paramtype2 = "glasslikeliquidlevel", +--- +> -- paramtype2 = "glasslikeliquidlevel", +2389,2390c2632,2633 +< trunks = {"default:jungletree"}, +< leaves = {"default:jungleleaves"}, +--- +> trunks = {"default:jungle_tree"}, +> leaves = {"default:jungle_leaves"}, +2407,2408c2650,2651 +< trunks = {"default:jungletree"}, +< leaves = {"default:jungleleaves"}, +--- +> trunks = {"default:jungle_tree"}, +> leaves = {"default:jungle_leaves"}, +2441a2685,2692 +> +> minetest.register_alias("default:jungleleaves", "default:jungle_leaves") +> minetest.register_alias("default:junglewood", "default:jungle_wood") +> minetest.register_alias("default:junglesapling", "default:jungle_sapling") +> minetest.register_alias("default:jungletree", "default:jungle_tree") +> minetest.register_alias("default:junglegrass", "default:jungle_grass") +> +> minetest.register_alias("default:fence_junglewood", "default:fence_jungle_wood") diff --git a/mods/default/source.txt b/mods/default/source.txt new file mode 100644 index 0000000..516ed14 --- /dev/null +++ b/mods/default/source.txt @@ -0,0 +1 @@ +https://github.com/minetest/minetest_game/archive/0.4.16.tar.gz diff --git a/mods/default/textures/Untitled.png b/mods/default/textures/Untitled.png new file mode 100644 index 0000000..3151482 Binary files /dev/null and b/mods/default/textures/Untitled.png differ diff --git a/mods/default/textures/bubble.png b/mods/default/textures/bubble.png index 100fe15..66010c5 100644 Binary files a/mods/default/textures/bubble.png and b/mods/default/textures/bubble.png differ diff --git a/mods/default/textures/crack_anylength.png b/mods/default/textures/crack_anylength.png index 297eced..f6c0fa5 100644 Binary files a/mods/default/textures/crack_anylength.png and b/mods/default/textures/crack_anylength.png differ diff --git a/mods/default/textures/default_acacia_bush_sapling.png b/mods/default/textures/default_acacia_bush_sapling.png index 940b3aa..37ad4bb 100644 Binary files a/mods/default/textures/default_acacia_bush_sapling.png and b/mods/default/textures/default_acacia_bush_sapling.png differ diff --git a/mods/default/textures/default_acacia_bush_stem.png b/mods/default/textures/default_acacia_bush_stem.png index 2903915..b96e96a 100644 Binary files a/mods/default/textures/default_acacia_bush_stem.png and b/mods/default/textures/default_acacia_bush_stem.png differ diff --git a/mods/default/textures/default_acacia_leaves.png b/mods/default/textures/default_acacia_leaves.png index 626e1b3..1220129 100644 Binary files a/mods/default/textures/default_acacia_leaves.png and b/mods/default/textures/default_acacia_leaves.png differ diff --git a/mods/default/textures/default_acacia_leaves_simple.png b/mods/default/textures/default_acacia_leaves_simple.png index 3c7015b..54a7bf2 100644 Binary files a/mods/default/textures/default_acacia_leaves_simple.png and b/mods/default/textures/default_acacia_leaves_simple.png differ diff --git a/mods/default/textures/default_acacia_sapling.png b/mods/default/textures/default_acacia_sapling.png index 07170a0..870a068 100644 Binary files a/mods/default/textures/default_acacia_sapling.png and b/mods/default/textures/default_acacia_sapling.png differ diff --git a/mods/default/textures/default_acacia_sapling_bottom.png b/mods/default/textures/default_acacia_sapling_bottom.png new file mode 100644 index 0000000..bca78fc Binary files /dev/null and b/mods/default/textures/default_acacia_sapling_bottom.png differ diff --git a/mods/default/textures/default_acacia_sapling_side.png b/mods/default/textures/default_acacia_sapling_side.png new file mode 100644 index 0000000..475d4f1 Binary files /dev/null and b/mods/default/textures/default_acacia_sapling_side.png differ diff --git a/mods/default/textures/default_acacia_sapling_top.png b/mods/default/textures/default_acacia_sapling_top.png new file mode 100644 index 0000000..9e46dfb Binary files /dev/null and b/mods/default/textures/default_acacia_sapling_top.png differ diff --git a/mods/default/textures/default_acacia_tree.png b/mods/default/textures/default_acacia_tree.png index 58bb3c4..02c12e5 100644 Binary files a/mods/default/textures/default_acacia_tree.png and b/mods/default/textures/default_acacia_tree.png differ diff --git a/mods/default/textures/default_acacia_tree_top.png b/mods/default/textures/default_acacia_tree_top.png index a8a0ce0..951ec17 100644 Binary files a/mods/default/textures/default_acacia_tree_top.png and b/mods/default/textures/default_acacia_tree_top.png differ diff --git a/mods/default/textures/default_acacia_wood.png b/mods/default/textures/default_acacia_wood.png index b5abf1e..8317bce 100644 Binary files a/mods/default/textures/default_acacia_wood.png and b/mods/default/textures/default_acacia_wood.png differ diff --git a/mods/default/textures/default_apple.png b/mods/default/textures/default_apple.png index 7549bfd..b06d381 100644 Binary files a/mods/default/textures/default_apple.png and b/mods/default/textures/default_apple.png differ diff --git a/mods/default/textures/default_aspen_leaves.png b/mods/default/textures/default_aspen_leaves.png index 7306423..aecfea3 100644 Binary files a/mods/default/textures/default_aspen_leaves.png and b/mods/default/textures/default_aspen_leaves.png differ diff --git a/mods/default/textures/default_aspen_sapling.png b/mods/default/textures/default_aspen_sapling.png index f8d9136..a202e70 100644 Binary files a/mods/default/textures/default_aspen_sapling.png and b/mods/default/textures/default_aspen_sapling.png differ diff --git a/mods/default/textures/default_aspen_sapling_bottom.png b/mods/default/textures/default_aspen_sapling_bottom.png new file mode 100644 index 0000000..9085cea Binary files /dev/null and b/mods/default/textures/default_aspen_sapling_bottom.png differ diff --git a/mods/default/textures/default_aspen_sapling_side.png b/mods/default/textures/default_aspen_sapling_side.png new file mode 100644 index 0000000..6113c50 Binary files /dev/null and b/mods/default/textures/default_aspen_sapling_side.png differ diff --git a/mods/default/textures/default_aspen_sapling_top.png b/mods/default/textures/default_aspen_sapling_top.png new file mode 100644 index 0000000..ffe9fad Binary files /dev/null and b/mods/default/textures/default_aspen_sapling_top.png differ diff --git a/mods/default/textures/default_aspen_tree.png b/mods/default/textures/default_aspen_tree.png index cfb05fc..90d1fe4 100644 Binary files a/mods/default/textures/default_aspen_tree.png and b/mods/default/textures/default_aspen_tree.png differ diff --git a/mods/default/textures/default_aspen_tree_top.png b/mods/default/textures/default_aspen_tree_top.png index fcca038..477c93a 100644 Binary files a/mods/default/textures/default_aspen_tree_top.png and b/mods/default/textures/default_aspen_tree_top.png differ diff --git a/mods/default/textures/default_aspen_wood.png b/mods/default/textures/default_aspen_wood.png index 2b584b3..cdde75f 100644 Binary files a/mods/default/textures/default_aspen_wood.png and b/mods/default/textures/default_aspen_wood.png differ diff --git a/mods/default/textures/default_book.png b/mods/default/textures/default_book.png index 448a7df..f701c65 100644 Binary files a/mods/default/textures/default_book.png and b/mods/default/textures/default_book.png differ diff --git a/mods/default/textures/default_book_written.png b/mods/default/textures/default_book_written.png index 9196ac6..9955251 100644 Binary files a/mods/default/textures/default_book_written.png and b/mods/default/textures/default_book_written.png differ diff --git a/mods/default/textures/default_bookshelf.png b/mods/default/textures/default_bookshelf.png index 10d6483..5d6437d 100644 Binary files a/mods/default/textures/default_bookshelf.png and b/mods/default/textures/default_bookshelf.png differ diff --git a/mods/default/textures/default_bookshelf_end.png b/mods/default/textures/default_bookshelf_end.png new file mode 100644 index 0000000..197e0f9 Binary files /dev/null and b/mods/default/textures/default_bookshelf_end.png differ diff --git a/mods/default/textures/default_bookshelf_end_reverse.png b/mods/default/textures/default_bookshelf_end_reverse.png new file mode 100644 index 0000000..a287102 Binary files /dev/null and b/mods/default/textures/default_bookshelf_end_reverse.png differ diff --git a/mods/default/textures/default_bookshelf_middle.png b/mods/default/textures/default_bookshelf_middle.png new file mode 100644 index 0000000..53a5e66 Binary files /dev/null and b/mods/default/textures/default_bookshelf_middle.png differ diff --git a/mods/default/textures/default_bookshelf_slot.png b/mods/default/textures/default_bookshelf_slot.png index 715a3dc..0b364de 100644 Binary files a/mods/default/textures/default_bookshelf_slot.png and b/mods/default/textures/default_bookshelf_slot.png differ diff --git a/mods/default/textures/default_brick.png b/mods/default/textures/default_brick.png index ab19121..4993b0f 100644 Binary files a/mods/default/textures/default_brick.png and b/mods/default/textures/default_brick.png differ diff --git a/mods/default/textures/default_bronze_block.png b/mods/default/textures/default_bronze_block.png index 1d0c9d5..132f923 100644 Binary files a/mods/default/textures/default_bronze_block.png and b/mods/default/textures/default_bronze_block.png differ diff --git a/mods/default/textures/default_bronze_ingot.png b/mods/default/textures/default_bronze_ingot.png index 6cccdf6..80d3812 100644 Binary files a/mods/default/textures/default_bronze_ingot.png and b/mods/default/textures/default_bronze_ingot.png differ diff --git a/mods/default/textures/default_cactus_side.png b/mods/default/textures/default_cactus_side.png index 8d6c40c..f9cfc8d 100644 Binary files a/mods/default/textures/default_cactus_side.png and b/mods/default/textures/default_cactus_side.png differ diff --git a/mods/default/textures/default_cactus_top.png b/mods/default/textures/default_cactus_top.png index cf46aa2..b132578 100644 Binary files a/mods/default/textures/default_cactus_top.png and b/mods/default/textures/default_cactus_top.png differ diff --git a/mods/default/textures/default_chest_front.png b/mods/default/textures/default_chest_front.png index 85227d8..5fe430a 100644 Binary files a/mods/default/textures/default_chest_front.png and b/mods/default/textures/default_chest_front.png differ diff --git a/mods/default/textures/default_chest_lock.png b/mods/default/textures/default_chest_lock.png index 73f46c7..fe7ab58 100644 Binary files a/mods/default/textures/default_chest_lock.png and b/mods/default/textures/default_chest_lock.png differ diff --git a/mods/default/textures/default_chest_side.png b/mods/default/textures/default_chest_side.png index 44a65a4..c66fa7e 100644 Binary files a/mods/default/textures/default_chest_side.png and b/mods/default/textures/default_chest_side.png differ diff --git a/mods/default/textures/default_chest_top.png b/mods/default/textures/default_chest_top.png index f4a92ee..1a3c787 100644 Binary files a/mods/default/textures/default_chest_top.png and b/mods/default/textures/default_chest_top.png differ diff --git a/mods/default/textures/default_clay.png b/mods/default/textures/default_clay.png index 76e5a40..f7600e2 100644 Binary files a/mods/default/textures/default_clay.png and b/mods/default/textures/default_clay.png differ diff --git a/mods/default/textures/default_clay_brick.png b/mods/default/textures/default_clay_brick.png index dc7a431..70f5c50 100644 Binary files a/mods/default/textures/default_clay_brick.png and b/mods/default/textures/default_clay_brick.png differ diff --git a/mods/default/textures/default_clay_lump.png b/mods/default/textures/default_clay_lump.png index c1d0220..88fdb89 100644 Binary files a/mods/default/textures/default_clay_lump.png and b/mods/default/textures/default_clay_lump.png differ diff --git a/mods/default/textures/default_cloud.png b/mods/default/textures/default_cloud.png index faf0ec1..574bc1c 100644 Binary files a/mods/default/textures/default_cloud.png and b/mods/default/textures/default_cloud.png differ diff --git a/mods/default/textures/default_coal_block.png b/mods/default/textures/default_coal_block.png index 6fe9ed9..1b8e224 100644 Binary files a/mods/default/textures/default_coal_block.png and b/mods/default/textures/default_coal_block.png differ diff --git a/mods/default/textures/default_coal_lump.png b/mods/default/textures/default_coal_lump.png index 792961d..1be6370 100644 Binary files a/mods/default/textures/default_coal_lump.png and b/mods/default/textures/default_coal_lump.png differ diff --git a/mods/default/textures/default_cobble.png b/mods/default/textures/default_cobble.png index d379840..07c5ab7 100644 Binary files a/mods/default/textures/default_cobble.png and b/mods/default/textures/default_cobble.png differ diff --git a/mods/default/textures/default_copper_block.png b/mods/default/textures/default_copper_block.png index 8533754..645732b 100644 Binary files a/mods/default/textures/default_copper_block.png and b/mods/default/textures/default_copper_block.png differ diff --git a/mods/default/textures/default_copper_ingot.png b/mods/default/textures/default_copper_ingot.png index bcad9c0..37974b6 100644 Binary files a/mods/default/textures/default_copper_ingot.png and b/mods/default/textures/default_copper_ingot.png differ diff --git a/mods/default/textures/default_copper_lump.png b/mods/default/textures/default_copper_lump.png index 998c592..f51a4e3 100644 Binary files a/mods/default/textures/default_copper_lump.png and b/mods/default/textures/default_copper_lump.png differ diff --git a/mods/default/textures/default_coral_brown.png b/mods/default/textures/default_coral_brown.png index 8a775fe..0e4c696 100644 Binary files a/mods/default/textures/default_coral_brown.png and b/mods/default/textures/default_coral_brown.png differ diff --git a/mods/default/textures/default_coral_orange.png b/mods/default/textures/default_coral_orange.png index cefac62..035651d 100644 Binary files a/mods/default/textures/default_coral_orange.png and b/mods/default/textures/default_coral_orange.png differ diff --git a/mods/default/textures/default_coral_skeleton.png b/mods/default/textures/default_coral_skeleton.png index fa48f15..a0e0148 100644 Binary files a/mods/default/textures/default_coral_skeleton.png and b/mods/default/textures/default_coral_skeleton.png differ diff --git a/mods/default/textures/default_desert_cobble.png b/mods/default/textures/default_desert_cobble.png index 184a9d8..171068e 100644 Binary files a/mods/default/textures/default_desert_cobble.png and b/mods/default/textures/default_desert_cobble.png differ diff --git a/mods/default/textures/default_desert_sand.png b/mods/default/textures/default_desert_sand.png index 371b8c7..c15088c 100644 Binary files a/mods/default/textures/default_desert_sand.png and b/mods/default/textures/default_desert_sand.png differ diff --git a/mods/default/textures/default_desert_sandstone.png b/mods/default/textures/default_desert_sandstone.png index 52e445f..5234b59 100644 Binary files a/mods/default/textures/default_desert_sandstone.png and b/mods/default/textures/default_desert_sandstone.png differ diff --git a/mods/default/textures/default_desert_sandstone_block.png b/mods/default/textures/default_desert_sandstone_block.png index 8fc54e7..829661a 100644 Binary files a/mods/default/textures/default_desert_sandstone_block.png and b/mods/default/textures/default_desert_sandstone_block.png differ diff --git a/mods/default/textures/default_desert_sandstone_brick.png b/mods/default/textures/default_desert_sandstone_brick.png index ab58db5..552d96f 100644 Binary files a/mods/default/textures/default_desert_sandstone_brick.png and b/mods/default/textures/default_desert_sandstone_brick.png differ diff --git a/mods/default/textures/default_desert_stone.png b/mods/default/textures/default_desert_stone.png index 5d3aded..5e1a6b8 100644 Binary files a/mods/default/textures/default_desert_stone.png and b/mods/default/textures/default_desert_stone.png differ diff --git a/mods/default/textures/default_desert_stone_brick.png b/mods/default/textures/default_desert_stone_brick.png index a603d18..45b88eb 100644 Binary files a/mods/default/textures/default_desert_stone_brick.png and b/mods/default/textures/default_desert_stone_brick.png differ diff --git a/mods/default/textures/default_diamond.png b/mods/default/textures/default_diamond.png index a8dac74..b8304e0 100644 Binary files a/mods/default/textures/default_diamond.png and b/mods/default/textures/default_diamond.png differ diff --git a/mods/default/textures/default_diamond_block.png b/mods/default/textures/default_diamond_block.png index 20c33ed..2a1964a 100644 Binary files a/mods/default/textures/default_diamond_block.png and b/mods/default/textures/default_diamond_block.png differ diff --git a/mods/default/textures/default_dirt.png b/mods/default/textures/default_dirt.png index ca7e4ae..e1491c0 100644 Binary files a/mods/default/textures/default_dirt.png and b/mods/default/textures/default_dirt.png differ diff --git a/mods/default/textures/default_dirt2.png b/mods/default/textures/default_dirt2.png new file mode 100644 index 0000000..45d9807 Binary files /dev/null and b/mods/default/textures/default_dirt2.png differ diff --git a/mods/default/textures/default_dry_shrub.png b/mods/default/textures/default_dry_shrub.png index e8a7f27..6935115 100644 Binary files a/mods/default/textures/default_dry_shrub.png and b/mods/default/textures/default_dry_shrub.png differ diff --git a/mods/default/textures/default_fence.png b/mods/default/textures/default_fence.png new file mode 100644 index 0000000..6fc7c29 Binary files /dev/null and b/mods/default/textures/default_fence.png differ diff --git a/mods/default/textures/default_fence_acacia_wood.png b/mods/default/textures/default_fence_acacia_wood.png index 3b973f3..8317bce 100644 Binary files a/mods/default/textures/default_fence_acacia_wood.png and b/mods/default/textures/default_fence_acacia_wood.png differ diff --git a/mods/default/textures/default_fence_aspen_wood.png b/mods/default/textures/default_fence_aspen_wood.png index 0a6558e..cdde75f 100644 Binary files a/mods/default/textures/default_fence_aspen_wood.png and b/mods/default/textures/default_fence_aspen_wood.png differ diff --git a/mods/default/textures/default_fence_junglewood.png b/mods/default/textures/default_fence_junglewood.png index c390941..670e23c 100644 Binary files a/mods/default/textures/default_fence_junglewood.png and b/mods/default/textures/default_fence_junglewood.png differ diff --git a/mods/default/textures/default_fence_overlay.png b/mods/default/textures/default_fence_overlay.png index 718184c..463de05 100644 Binary files a/mods/default/textures/default_fence_overlay.png and b/mods/default/textures/default_fence_overlay.png differ diff --git a/mods/default/textures/default_fence_pine_wood.png b/mods/default/textures/default_fence_pine_wood.png index 74609d9..81df66e 100644 Binary files a/mods/default/textures/default_fence_pine_wood.png and b/mods/default/textures/default_fence_pine_wood.png differ diff --git a/mods/default/textures/default_fence_tile.png b/mods/default/textures/default_fence_tile.png new file mode 100644 index 0000000..aa33381 Binary files /dev/null and b/mods/default/textures/default_fence_tile.png differ diff --git a/mods/default/textures/default_fence_wood.png b/mods/default/textures/default_fence_wood.png index 1e76430..1e1660d 100644 Binary files a/mods/default/textures/default_fence_wood.png and b/mods/default/textures/default_fence_wood.png differ diff --git a/mods/default/textures/default_flint.png b/mods/default/textures/default_flint.png index 226c740..4c63ca8 100644 Binary files a/mods/default/textures/default_flint.png and b/mods/default/textures/default_flint.png differ diff --git a/mods/default/textures/default_furnace_bottom.png b/mods/default/textures/default_furnace_bottom.png index b79ed06..2ec6fd0 100644 Binary files a/mods/default/textures/default_furnace_bottom.png and b/mods/default/textures/default_furnace_bottom.png differ diff --git a/mods/default/textures/default_furnace_fire_bg.png b/mods/default/textures/default_furnace_fire_bg.png index 126204a..73a64b2 100644 Binary files a/mods/default/textures/default_furnace_fire_bg.png and b/mods/default/textures/default_furnace_fire_bg.png differ diff --git a/mods/default/textures/default_furnace_fire_fg.png b/mods/default/textures/default_furnace_fire_fg.png index 63888f3..5f9b765 100644 Binary files a/mods/default/textures/default_furnace_fire_fg.png and b/mods/default/textures/default_furnace_fire_fg.png differ diff --git a/mods/default/textures/default_furnace_front.png b/mods/default/textures/default_furnace_front.png index 8c1798e..5743298 100644 Binary files a/mods/default/textures/default_furnace_front.png and b/mods/default/textures/default_furnace_front.png differ diff --git a/mods/default/textures/default_furnace_front_active.png b/mods/default/textures/default_furnace_front_active.png index ea43ed9..8c73f91 100644 Binary files a/mods/default/textures/default_furnace_front_active.png and b/mods/default/textures/default_furnace_front_active.png differ diff --git a/mods/default/textures/default_furnace_side.png b/mods/default/textures/default_furnace_side.png index 33408cf..bb816ee 100644 Binary files a/mods/default/textures/default_furnace_side.png and b/mods/default/textures/default_furnace_side.png differ diff --git a/mods/default/textures/default_furnace_top.png b/mods/default/textures/default_furnace_top.png index b79ed06..53de716 100644 Binary files a/mods/default/textures/default_furnace_top.png and b/mods/default/textures/default_furnace_top.png differ diff --git a/mods/default/textures/default_glass.png b/mods/default/textures/default_glass.png index da25402..d1ac295 100644 Binary files a/mods/default/textures/default_glass.png and b/mods/default/textures/default_glass.png differ diff --git a/mods/default/textures/default_glass_detail.png b/mods/default/textures/default_glass_detail.png index d38dbb7..e1f0ea8 100644 Binary files a/mods/default/textures/default_glass_detail.png and b/mods/default/textures/default_glass_detail.png differ diff --git a/mods/default/textures/default_gold_block.png b/mods/default/textures/default_gold_block.png index 170d50b..1f6c9f0 100644 Binary files a/mods/default/textures/default_gold_block.png and b/mods/default/textures/default_gold_block.png differ diff --git a/mods/default/textures/default_gold_ingot.png b/mods/default/textures/default_gold_ingot.png index ba66471..913e7a4 100644 Binary files a/mods/default/textures/default_gold_ingot.png and b/mods/default/textures/default_gold_ingot.png differ diff --git a/mods/default/textures/default_gold_lump.png b/mods/default/textures/default_gold_lump.png index d5a1be7..cef1af7 100644 Binary files a/mods/default/textures/default_gold_lump.png and b/mods/default/textures/default_gold_lump.png differ diff --git a/mods/default/textures/default_grass.png b/mods/default/textures/default_grass.png index 0181fab..a8f6971 100644 Binary files a/mods/default/textures/default_grass.png and b/mods/default/textures/default_grass.png differ diff --git a/mods/default/textures/default_grass_1.png b/mods/default/textures/default_grass_1.png index e9faa2c..7220795 100644 Binary files a/mods/default/textures/default_grass_1.png and b/mods/default/textures/default_grass_1.png differ diff --git a/mods/default/textures/default_grass_2.png b/mods/default/textures/default_grass_2.png index 03729a0..5fffddf 100644 Binary files a/mods/default/textures/default_grass_2.png and b/mods/default/textures/default_grass_2.png differ diff --git a/mods/default/textures/default_grass_3.png b/mods/default/textures/default_grass_3.png index 92ca1b5..0b2f76e 100644 Binary files a/mods/default/textures/default_grass_3.png and b/mods/default/textures/default_grass_3.png differ diff --git a/mods/default/textures/default_grass_4.png b/mods/default/textures/default_grass_4.png index c782a33..c3e0d8b 100644 Binary files a/mods/default/textures/default_grass_4.png and b/mods/default/textures/default_grass_4.png differ diff --git a/mods/default/textures/default_grass_5.png b/mods/default/textures/default_grass_5.png index b727e9c..21e532f 100644 Binary files a/mods/default/textures/default_grass_5.png and b/mods/default/textures/default_grass_5.png differ diff --git a/mods/default/textures/default_grass_footsteps.png b/mods/default/textures/default_grass_footsteps.png new file mode 100644 index 0000000..06d1a01 Binary files /dev/null and b/mods/default/textures/default_grass_footsteps.png differ diff --git a/mods/default/textures/default_grass_side.png b/mods/default/textures/default_grass_side.png index bfd538d..3cb330c 100644 Binary files a/mods/default/textures/default_grass_side.png and b/mods/default/textures/default_grass_side.png differ diff --git a/mods/default/textures/default_gravel.png b/mods/default/textures/default_gravel.png index 8852d38..7178e70 100644 Binary files a/mods/default/textures/default_gravel.png and b/mods/default/textures/default_gravel.png differ diff --git a/mods/default/textures/default_ice.png b/mods/default/textures/default_ice.png index 2874e1e..a8b3409 100644 Binary files a/mods/default/textures/default_ice.png and b/mods/default/textures/default_ice.png differ diff --git a/mods/default/textures/default_iron_lump.png b/mods/default/textures/default_iron_lump.png index db61a94..713a9c9 100644 Binary files a/mods/default/textures/default_iron_lump.png and b/mods/default/textures/default_iron_lump.png differ diff --git a/mods/default/textures/default_jungle_grass.png b/mods/default/textures/default_jungle_grass.png new file mode 100644 index 0000000..037e60b Binary files /dev/null and b/mods/default/textures/default_jungle_grass.png differ diff --git a/mods/default/textures/default_jungle_leaves.png b/mods/default/textures/default_jungle_leaves.png new file mode 100644 index 0000000..e231247 Binary files /dev/null and b/mods/default/textures/default_jungle_leaves.png differ diff --git a/mods/default/textures/default_jungle_leaves_simple.png b/mods/default/textures/default_jungle_leaves_simple.png new file mode 100644 index 0000000..b1b42fa Binary files /dev/null and b/mods/default/textures/default_jungle_leaves_simple.png differ diff --git a/mods/default/textures/default_jungle_sapling.png b/mods/default/textures/default_jungle_sapling.png new file mode 100644 index 0000000..d84147d Binary files /dev/null and b/mods/default/textures/default_jungle_sapling.png differ diff --git a/mods/default/textures/default_jungle_sapling_bottom.png b/mods/default/textures/default_jungle_sapling_bottom.png new file mode 100644 index 0000000..f6613a9 Binary files /dev/null and b/mods/default/textures/default_jungle_sapling_bottom.png differ diff --git a/mods/default/textures/default_jungle_sapling_side.png b/mods/default/textures/default_jungle_sapling_side.png new file mode 100644 index 0000000..5f5c6b2 Binary files /dev/null and b/mods/default/textures/default_jungle_sapling_side.png differ diff --git a/mods/default/textures/default_jungle_sapling_top.png b/mods/default/textures/default_jungle_sapling_top.png new file mode 100644 index 0000000..3048180 Binary files /dev/null and b/mods/default/textures/default_jungle_sapling_top.png differ diff --git a/mods/default/textures/default_jungle_tree.png b/mods/default/textures/default_jungle_tree.png new file mode 100644 index 0000000..4e25d65 Binary files /dev/null and b/mods/default/textures/default_jungle_tree.png differ diff --git a/mods/default/textures/default_jungle_tree_top.png b/mods/default/textures/default_jungle_tree_top.png new file mode 100644 index 0000000..0a75804 Binary files /dev/null and b/mods/default/textures/default_jungle_tree_top.png differ diff --git a/mods/default/textures/default_jungle_wood.png b/mods/default/textures/default_jungle_wood.png new file mode 100644 index 0000000..670e23c Binary files /dev/null and b/mods/default/textures/default_jungle_wood.png differ diff --git a/mods/default/textures/default_junglegrass.png b/mods/default/textures/default_junglegrass.png index 25abb71..037e60b 100644 Binary files a/mods/default/textures/default_junglegrass.png and b/mods/default/textures/default_junglegrass.png differ diff --git a/mods/default/textures/default_jungleleaves.png b/mods/default/textures/default_jungleleaves.png index 5afcc36..e231247 100644 Binary files a/mods/default/textures/default_jungleleaves.png and b/mods/default/textures/default_jungleleaves.png differ diff --git a/mods/default/textures/default_jungleleaves_simple.png b/mods/default/textures/default_jungleleaves_simple.png index 7165100..b1b42fa 100644 Binary files a/mods/default/textures/default_jungleleaves_simple.png and b/mods/default/textures/default_jungleleaves_simple.png differ diff --git a/mods/default/textures/default_junglesapling.png b/mods/default/textures/default_junglesapling.png index 05e1e50..d84147d 100644 Binary files a/mods/default/textures/default_junglesapling.png and b/mods/default/textures/default_junglesapling.png differ diff --git a/mods/default/textures/default_jungletree.png b/mods/default/textures/default_jungletree.png index 2cf77a6..4e25d65 100644 Binary files a/mods/default/textures/default_jungletree.png and b/mods/default/textures/default_jungletree.png differ diff --git a/mods/default/textures/default_jungletree_top.png b/mods/default/textures/default_jungletree_top.png index 439f078..0a75804 100644 Binary files a/mods/default/textures/default_jungletree_top.png and b/mods/default/textures/default_jungletree_top.png differ diff --git a/mods/default/textures/default_junglewood.png b/mods/default/textures/default_junglewood.png index 8d17917..670e23c 100644 Binary files a/mods/default/textures/default_junglewood.png and b/mods/default/textures/default_junglewood.png differ diff --git a/mods/default/textures/default_ladder.png b/mods/default/textures/default_ladder.png new file mode 100644 index 0000000..1e65583 Binary files /dev/null and b/mods/default/textures/default_ladder.png differ diff --git a/mods/default/textures/default_ladder_wood.png b/mods/default/textures/default_ladder_wood.png index c167fff..1e65583 100644 Binary files a/mods/default/textures/default_ladder_wood.png and b/mods/default/textures/default_ladder_wood.png differ diff --git a/mods/default/textures/default_lava.png b/mods/default/textures/default_lava.png index e8958de..31f14f5 100644 Binary files a/mods/default/textures/default_lava.png and b/mods/default/textures/default_lava.png differ diff --git a/mods/default/textures/default_lava_flowing_animated.png b/mods/default/textures/default_lava_flowing_animated.png index 2ec0746..e5eb8e8 100644 Binary files a/mods/default/textures/default_lava_flowing_animated.png and b/mods/default/textures/default_lava_flowing_animated.png differ diff --git a/mods/default/textures/default_lava_source_animated.png b/mods/default/textures/default_lava_source_animated.png index 32267a6..2dc48ec 100644 Binary files a/mods/default/textures/default_lava_source_animated.png and b/mods/default/textures/default_lava_source_animated.png differ diff --git a/mods/default/textures/default_leaves.png b/mods/default/textures/default_leaves.png index ba09fe1..56c86c4 100644 Binary files a/mods/default/textures/default_leaves.png and b/mods/default/textures/default_leaves.png differ diff --git a/mods/default/textures/default_leaves_simple.png b/mods/default/textures/default_leaves_simple.png index eb60f9f..8c3d82a 100644 Binary files a/mods/default/textures/default_leaves_simple.png and b/mods/default/textures/default_leaves_simple.png differ diff --git a/mods/default/textures/default_mese_block.png b/mods/default/textures/default_mese_block.png index e30994e..4d52849 100644 Binary files a/mods/default/textures/default_mese_block.png and b/mods/default/textures/default_mese_block.png differ diff --git a/mods/default/textures/default_mese_crystal.png b/mods/default/textures/default_mese_crystal.png index f1d71f1..bc246ed 100644 Binary files a/mods/default/textures/default_mese_crystal.png and b/mods/default/textures/default_mese_crystal.png differ diff --git a/mods/default/textures/default_mese_crystal_fragment.png b/mods/default/textures/default_mese_crystal_fragment.png index d5416ab..0384bd8 100644 Binary files a/mods/default/textures/default_mese_crystal_fragment.png and b/mods/default/textures/default_mese_crystal_fragment.png differ diff --git a/mods/default/textures/default_mese_post_light_top.png b/mods/default/textures/default_mese_post_light_top.png index 6834bd3..365c1a7 100644 Binary files a/mods/default/textures/default_mese_post_light_top.png and b/mods/default/textures/default_mese_post_light_top.png differ diff --git a/mods/default/textures/default_mineral_coal.png b/mods/default/textures/default_mineral_coal.png index 6d1386b..570760d 100644 Binary files a/mods/default/textures/default_mineral_coal.png and b/mods/default/textures/default_mineral_coal.png differ diff --git a/mods/default/textures/default_mineral_copper.png b/mods/default/textures/default_mineral_copper.png index c4c518e..3322b94 100644 Binary files a/mods/default/textures/default_mineral_copper.png and b/mods/default/textures/default_mineral_copper.png differ diff --git a/mods/default/textures/default_mineral_diamond.png b/mods/default/textures/default_mineral_diamond.png index 39c0f83..0559c5c 100644 Binary files a/mods/default/textures/default_mineral_diamond.png and b/mods/default/textures/default_mineral_diamond.png differ diff --git a/mods/default/textures/default_mineral_gold.png b/mods/default/textures/default_mineral_gold.png index 2220add..aabfcce 100644 Binary files a/mods/default/textures/default_mineral_gold.png and b/mods/default/textures/default_mineral_gold.png differ diff --git a/mods/default/textures/default_mineral_iron.png b/mods/default/textures/default_mineral_iron.png index bfec8b1..c0b5abe 100644 Binary files a/mods/default/textures/default_mineral_iron.png and b/mods/default/textures/default_mineral_iron.png differ diff --git a/mods/default/textures/default_mineral_mese.png b/mods/default/textures/default_mineral_mese.png index 6952670..d698837 100644 Binary files a/mods/default/textures/default_mineral_mese.png and b/mods/default/textures/default_mineral_mese.png differ diff --git a/mods/default/textures/default_mossycobble.png b/mods/default/textures/default_mossycobble.png index 1ae7c91..789558b 100644 Binary files a/mods/default/textures/default_mossycobble.png and b/mods/default/textures/default_mossycobble.png differ diff --git a/mods/default/textures/default_nc_back.png b/mods/default/textures/default_nc_back.png new file mode 100644 index 0000000..4e71615 Binary files /dev/null and b/mods/default/textures/default_nc_back.png differ diff --git a/mods/default/textures/default_nc_front.png b/mods/default/textures/default_nc_front.png new file mode 100644 index 0000000..f551021 Binary files /dev/null and b/mods/default/textures/default_nc_front.png differ diff --git a/mods/default/textures/default_nc_rb.png b/mods/default/textures/default_nc_rb.png new file mode 100644 index 0000000..5b327ac Binary files /dev/null and b/mods/default/textures/default_nc_rb.png differ diff --git a/mods/default/textures/default_nc_side.png b/mods/default/textures/default_nc_side.png new file mode 100644 index 0000000..e86c7e2 Binary files /dev/null and b/mods/default/textures/default_nc_side.png differ diff --git a/mods/default/textures/default_obsidian.png b/mods/default/textures/default_obsidian.png index 8f4a49c..bbc4713 100644 Binary files a/mods/default/textures/default_obsidian.png and b/mods/default/textures/default_obsidian.png differ diff --git a/mods/default/textures/default_obsidian_glass.png b/mods/default/textures/default_obsidian_glass.png index d5ac83d..937a740 100644 Binary files a/mods/default/textures/default_obsidian_glass.png and b/mods/default/textures/default_obsidian_glass.png differ diff --git a/mods/default/textures/default_obsidian_shard.png b/mods/default/textures/default_obsidian_shard.png index a988d8c..dc529ca 100644 Binary files a/mods/default/textures/default_obsidian_shard.png and b/mods/default/textures/default_obsidian_shard.png differ diff --git a/mods/default/textures/default_paper.png b/mods/default/textures/default_paper.png index 8f23924..420c49a 100644 Binary files a/mods/default/textures/default_paper.png and b/mods/default/textures/default_paper.png differ diff --git a/mods/default/textures/default_papyrus.png b/mods/default/textures/default_papyrus.png index a85e809..83cd837 100644 Binary files a/mods/default/textures/default_papyrus.png and b/mods/default/textures/default_papyrus.png differ diff --git a/mods/default/textures/default_pine_needles.png b/mods/default/textures/default_pine_needles.png index ad7373b..feb547f 100644 Binary files a/mods/default/textures/default_pine_needles.png and b/mods/default/textures/default_pine_needles.png differ diff --git a/mods/default/textures/default_pine_sapling.png b/mods/default/textures/default_pine_sapling.png index c30131d..e86590c 100644 Binary files a/mods/default/textures/default_pine_sapling.png and b/mods/default/textures/default_pine_sapling.png differ diff --git a/mods/default/textures/default_pine_sapling_bottom.png b/mods/default/textures/default_pine_sapling_bottom.png new file mode 100644 index 0000000..f3efad6 Binary files /dev/null and b/mods/default/textures/default_pine_sapling_bottom.png differ diff --git a/mods/default/textures/default_pine_sapling_side.png b/mods/default/textures/default_pine_sapling_side.png new file mode 100644 index 0000000..e5767e0 Binary files /dev/null and b/mods/default/textures/default_pine_sapling_side.png differ diff --git a/mods/default/textures/default_pine_sapling_top.png b/mods/default/textures/default_pine_sapling_top.png new file mode 100644 index 0000000..658d3bc Binary files /dev/null and b/mods/default/textures/default_pine_sapling_top.png differ diff --git a/mods/default/textures/default_pine_tree.png b/mods/default/textures/default_pine_tree.png index 4a5328f..9178327 100644 Binary files a/mods/default/textures/default_pine_tree.png and b/mods/default/textures/default_pine_tree.png differ diff --git a/mods/default/textures/default_pine_tree_top.png b/mods/default/textures/default_pine_tree_top.png index 8705710..37f3f28 100644 Binary files a/mods/default/textures/default_pine_tree_top.png and b/mods/default/textures/default_pine_tree_top.png differ diff --git a/mods/default/textures/default_pine_wood.png b/mods/default/textures/default_pine_wood.png index 6844ceb..81df66e 100644 Binary files a/mods/default/textures/default_pine_wood.png and b/mods/default/textures/default_pine_wood.png differ diff --git a/mods/default/textures/default_rail.png b/mods/default/textures/default_rail.png new file mode 100644 index 0000000..18176d9 Binary files /dev/null and b/mods/default/textures/default_rail.png differ diff --git a/mods/default/textures/default_rail_crossing.png b/mods/default/textures/default_rail_crossing.png new file mode 100644 index 0000000..9846405 Binary files /dev/null and b/mods/default/textures/default_rail_crossing.png differ diff --git a/mods/default/textures/default_rail_curved.png b/mods/default/textures/default_rail_curved.png new file mode 100644 index 0000000..62afa3d Binary files /dev/null and b/mods/default/textures/default_rail_curved.png differ diff --git a/mods/default/textures/default_rail_t_junction.png b/mods/default/textures/default_rail_t_junction.png new file mode 100644 index 0000000..9985f63 Binary files /dev/null and b/mods/default/textures/default_rail_t_junction.png differ diff --git a/mods/default/textures/default_sand.png b/mods/default/textures/default_sand.png index 645a300..c0747ae 100644 Binary files a/mods/default/textures/default_sand.png and b/mods/default/textures/default_sand.png differ diff --git a/mods/default/textures/default_sandstone.png b/mods/default/textures/default_sandstone.png index 16e3d13..c46bfb9 100644 Binary files a/mods/default/textures/default_sandstone.png and b/mods/default/textures/default_sandstone.png differ diff --git a/mods/default/textures/default_sandstone_brick.png b/mods/default/textures/default_sandstone_brick.png index e7150e5..2d6574f 100644 Binary files a/mods/default/textures/default_sandstone_brick.png and b/mods/default/textures/default_sandstone_brick.png differ diff --git a/mods/default/textures/default_sapling.png b/mods/default/textures/default_sapling.png index 3fd64f0..73cd631 100644 Binary files a/mods/default/textures/default_sapling.png and b/mods/default/textures/default_sapling.png differ diff --git a/mods/default/textures/default_sapling_bottom.png b/mods/default/textures/default_sapling_bottom.png new file mode 100644 index 0000000..af96907 Binary files /dev/null and b/mods/default/textures/default_sapling_bottom.png differ diff --git a/mods/default/textures/default_sapling_side.png b/mods/default/textures/default_sapling_side.png new file mode 100644 index 0000000..be8653c Binary files /dev/null and b/mods/default/textures/default_sapling_side.png differ diff --git a/mods/default/textures/default_sapling_top.png b/mods/default/textures/default_sapling_top.png new file mode 100644 index 0000000..aa6a981 Binary files /dev/null and b/mods/default/textures/default_sapling_top.png differ diff --git a/mods/default/textures/default_scorched_stuff.png b/mods/default/textures/default_scorched_stuff.png new file mode 100644 index 0000000..81dc477 Binary files /dev/null and b/mods/default/textures/default_scorched_stuff.png differ diff --git a/mods/default/textures/default_sign.png b/mods/default/textures/default_sign.png new file mode 100644 index 0000000..27db080 Binary files /dev/null and b/mods/default/textures/default_sign.png differ diff --git a/mods/default/textures/default_sign_steel.png b/mods/default/textures/default_sign_steel.png index 3ca0c59..fd602c1 100644 Binary files a/mods/default/textures/default_sign_steel.png and b/mods/default/textures/default_sign_steel.png differ diff --git a/mods/default/textures/default_sign_wall.png b/mods/default/textures/default_sign_wall.png new file mode 100644 index 0000000..413bacd Binary files /dev/null and b/mods/default/textures/default_sign_wall.png differ diff --git a/mods/default/textures/default_sign_wall_steel.png b/mods/default/textures/default_sign_wall_steel.png index 2227477..fd602c1 100644 Binary files a/mods/default/textures/default_sign_wall_steel.png and b/mods/default/textures/default_sign_wall_steel.png differ diff --git a/mods/default/textures/default_sign_wall_wood.png b/mods/default/textures/default_sign_wall_wood.png index 40552c7..413bacd 100644 Binary files a/mods/default/textures/default_sign_wall_wood.png and b/mods/default/textures/default_sign_wall_wood.png differ diff --git a/mods/default/textures/default_sign_wood.png b/mods/default/textures/default_sign_wood.png index d0559da..8951d2c 100644 Binary files a/mods/default/textures/default_sign_wood.png and b/mods/default/textures/default_sign_wood.png differ diff --git a/mods/default/textures/default_snow.png b/mods/default/textures/default_snow.png index fcbef0e..ee0b927 100644 Binary files a/mods/default/textures/default_snow.png and b/mods/default/textures/default_snow.png differ diff --git a/mods/default/textures/default_snow_side.png b/mods/default/textures/default_snow_side.png index 03456c8..d550097 100644 Binary files a/mods/default/textures/default_snow_side.png and b/mods/default/textures/default_snow_side.png differ diff --git a/mods/default/textures/default_snowball.png b/mods/default/textures/default_snowball.png index 3a4dc1f..3e6e670 100644 Binary files a/mods/default/textures/default_snowball.png and b/mods/default/textures/default_snowball.png differ diff --git a/mods/default/textures/default_steel_block.png b/mods/default/textures/default_steel_block.png index 7f49f61..8a5c885 100644 Binary files a/mods/default/textures/default_steel_block.png and b/mods/default/textures/default_steel_block.png differ diff --git a/mods/default/textures/default_steel_ingot.png b/mods/default/textures/default_steel_ingot.png index 8100b01..c6992f0 100644 Binary files a/mods/default/textures/default_steel_ingot.png and b/mods/default/textures/default_steel_ingot.png differ diff --git a/mods/default/textures/default_stick.png b/mods/default/textures/default_stick.png index 0378d07..0442b79 100644 Binary files a/mods/default/textures/default_stick.png and b/mods/default/textures/default_stick.png differ diff --git a/mods/default/textures/default_stone.png b/mods/default/textures/default_stone.png index 63cb7c4..ed854b3 100644 Binary files a/mods/default/textures/default_stone.png and b/mods/default/textures/default_stone.png differ diff --git a/mods/default/textures/default_stone_block.png b/mods/default/textures/default_stone_block.png index 3b771e7..c21eac1 100644 Binary files a/mods/default/textures/default_stone_block.png and b/mods/default/textures/default_stone_block.png differ diff --git a/mods/default/textures/default_stone_brick.png b/mods/default/textures/default_stone_brick.png index 4dbb49d..efddd7d 100644 Binary files a/mods/default/textures/default_stone_brick.png and b/mods/default/textures/default_stone_brick.png differ diff --git a/mods/default/textures/default_stone_normal.png b/mods/default/textures/default_stone_normal.png new file mode 100644 index 0000000..278e3b6 Binary files /dev/null and b/mods/default/textures/default_stone_normal.png differ diff --git a/mods/default/textures/default_tin_block.png b/mods/default/textures/default_tin_block.png index 72759b0..7d3eeda 100644 Binary files a/mods/default/textures/default_tin_block.png and b/mods/default/textures/default_tin_block.png differ diff --git a/mods/default/textures/default_tin_ingot.png b/mods/default/textures/default_tin_ingot.png index eed5361..4f11a4e 100644 Binary files a/mods/default/textures/default_tin_ingot.png and b/mods/default/textures/default_tin_ingot.png differ diff --git a/mods/default/textures/default_tin_lump.png b/mods/default/textures/default_tin_lump.png index 72bd339..68398db 100644 Binary files a/mods/default/textures/default_tin_lump.png and b/mods/default/textures/default_tin_lump.png differ diff --git a/mods/default/textures/default_tnt_bottom.png b/mods/default/textures/default_tnt_bottom.png new file mode 100644 index 0000000..1bfaa43 Binary files /dev/null and b/mods/default/textures/default_tnt_bottom.png differ diff --git a/mods/default/textures/default_tnt_side.png b/mods/default/textures/default_tnt_side.png new file mode 100644 index 0000000..2774d7e Binary files /dev/null and b/mods/default/textures/default_tnt_side.png differ diff --git a/mods/default/textures/default_tnt_top.png b/mods/default/textures/default_tnt_top.png new file mode 100644 index 0000000..409df73 Binary files /dev/null and b/mods/default/textures/default_tnt_top.png differ diff --git a/mods/default/textures/default_tool_bronzeaxe.png b/mods/default/textures/default_tool_bronzeaxe.png index 8ae43b5..df8e3c1 100644 Binary files a/mods/default/textures/default_tool_bronzeaxe.png and b/mods/default/textures/default_tool_bronzeaxe.png differ diff --git a/mods/default/textures/default_tool_bronzepick.png b/mods/default/textures/default_tool_bronzepick.png index c88a5f0..1ca3881 100644 Binary files a/mods/default/textures/default_tool_bronzepick.png and b/mods/default/textures/default_tool_bronzepick.png differ diff --git a/mods/default/textures/default_tool_bronzeshovel.png b/mods/default/textures/default_tool_bronzeshovel.png index d7d800e..5073571 100644 Binary files a/mods/default/textures/default_tool_bronzeshovel.png and b/mods/default/textures/default_tool_bronzeshovel.png differ diff --git a/mods/default/textures/default_tool_bronzesword.png b/mods/default/textures/default_tool_bronzesword.png index cdab898..cc80a56 100644 Binary files a/mods/default/textures/default_tool_bronzesword.png and b/mods/default/textures/default_tool_bronzesword.png differ diff --git a/mods/default/textures/default_tool_diamondaxe.png b/mods/default/textures/default_tool_diamondaxe.png index e32a0bf..603c884 100644 Binary files a/mods/default/textures/default_tool_diamondaxe.png and b/mods/default/textures/default_tool_diamondaxe.png differ diff --git a/mods/default/textures/default_tool_diamondpick.png b/mods/default/textures/default_tool_diamondpick.png index f9883c6..85800ac 100644 Binary files a/mods/default/textures/default_tool_diamondpick.png and b/mods/default/textures/default_tool_diamondpick.png differ diff --git a/mods/default/textures/default_tool_diamondshovel.png b/mods/default/textures/default_tool_diamondshovel.png index d0fe24d..f2112ba 100644 Binary files a/mods/default/textures/default_tool_diamondshovel.png and b/mods/default/textures/default_tool_diamondshovel.png differ diff --git a/mods/default/textures/default_tool_diamondsword.png b/mods/default/textures/default_tool_diamondsword.png index dbccd0e..af5d739 100644 Binary files a/mods/default/textures/default_tool_diamondsword.png and b/mods/default/textures/default_tool_diamondsword.png differ diff --git a/mods/default/textures/default_tool_meseaxe.png b/mods/default/textures/default_tool_meseaxe.png index c01fb4f..4b75155 100644 Binary files a/mods/default/textures/default_tool_meseaxe.png and b/mods/default/textures/default_tool_meseaxe.png differ diff --git a/mods/default/textures/default_tool_mesepick.png b/mods/default/textures/default_tool_mesepick.png index 1b2e25b..9af5c18 100644 Binary files a/mods/default/textures/default_tool_mesepick.png and b/mods/default/textures/default_tool_mesepick.png differ diff --git a/mods/default/textures/default_tool_meseshovel.png b/mods/default/textures/default_tool_meseshovel.png index 00813a2..ee93058 100644 Binary files a/mods/default/textures/default_tool_meseshovel.png and b/mods/default/textures/default_tool_meseshovel.png differ diff --git a/mods/default/textures/default_tool_mesesword.png b/mods/default/textures/default_tool_mesesword.png index d395d3a..36f1a27 100644 Binary files a/mods/default/textures/default_tool_mesesword.png and b/mods/default/textures/default_tool_mesesword.png differ diff --git a/mods/default/textures/default_tool_steelaxe.png b/mods/default/textures/default_tool_steelaxe.png index 1528cad..377ea9a 100644 Binary files a/mods/default/textures/default_tool_steelaxe.png and b/mods/default/textures/default_tool_steelaxe.png differ diff --git a/mods/default/textures/default_tool_steelpick.png b/mods/default/textures/default_tool_steelpick.png index a7543a1..44e1ca1 100644 Binary files a/mods/default/textures/default_tool_steelpick.png and b/mods/default/textures/default_tool_steelpick.png differ diff --git a/mods/default/textures/default_tool_steelpick.png.png b/mods/default/textures/default_tool_steelpick.png.png new file mode 100644 index 0000000..27a304f Binary files /dev/null and b/mods/default/textures/default_tool_steelpick.png.png differ diff --git a/mods/default/textures/default_tool_steelshovel.png b/mods/default/textures/default_tool_steelshovel.png index 65e4045..4b03b68 100644 Binary files a/mods/default/textures/default_tool_steelshovel.png and b/mods/default/textures/default_tool_steelshovel.png differ diff --git a/mods/default/textures/default_tool_steelsword.png b/mods/default/textures/default_tool_steelsword.png index 630a339..3a38ec8 100644 Binary files a/mods/default/textures/default_tool_steelsword.png and b/mods/default/textures/default_tool_steelsword.png differ diff --git a/mods/default/textures/default_tool_stoneaxe.png b/mods/default/textures/default_tool_stoneaxe.png index cc36054..61f9c6d 100644 Binary files a/mods/default/textures/default_tool_stoneaxe.png and b/mods/default/textures/default_tool_stoneaxe.png differ diff --git a/mods/default/textures/default_tool_stonepick.png b/mods/default/textures/default_tool_stonepick.png index 237d739..8aee15f 100644 Binary files a/mods/default/textures/default_tool_stonepick.png and b/mods/default/textures/default_tool_stonepick.png differ diff --git a/mods/default/textures/default_tool_stoneshovel.png b/mods/default/textures/default_tool_stoneshovel.png index 11711bd..1f6dc4d 100644 Binary files a/mods/default/textures/default_tool_stoneshovel.png and b/mods/default/textures/default_tool_stoneshovel.png differ diff --git a/mods/default/textures/default_tool_stonesword.png b/mods/default/textures/default_tool_stonesword.png index 1a493ac..27e0eda 100644 Binary files a/mods/default/textures/default_tool_stonesword.png and b/mods/default/textures/default_tool_stonesword.png differ diff --git a/mods/default/textures/default_tool_woodaxe.png b/mods/default/textures/default_tool_woodaxe.png index 68f1fd8..f8ef949 100644 Binary files a/mods/default/textures/default_tool_woodaxe.png and b/mods/default/textures/default_tool_woodaxe.png differ diff --git a/mods/default/textures/default_tool_woodpick.png b/mods/default/textures/default_tool_woodpick.png index 0aed583..00bb026 100644 Binary files a/mods/default/textures/default_tool_woodpick.png and b/mods/default/textures/default_tool_woodpick.png differ diff --git a/mods/default/textures/default_tool_woodshovel.png b/mods/default/textures/default_tool_woodshovel.png index dcef2b5..cd7f246 100644 Binary files a/mods/default/textures/default_tool_woodshovel.png and b/mods/default/textures/default_tool_woodshovel.png differ diff --git a/mods/default/textures/default_tool_woodsword.png b/mods/default/textures/default_tool_woodsword.png index c78ba50..8c08b2f 100644 Binary files a/mods/default/textures/default_tool_woodsword.png and b/mods/default/textures/default_tool_woodsword.png differ diff --git a/mods/default/textures/default_torch.png b/mods/default/textures/default_torch.png new file mode 100644 index 0000000..c4690e1 Binary files /dev/null and b/mods/default/textures/default_torch.png differ diff --git a/mods/default/textures/default_torch_inventory.png b/mods/default/textures/default_torch_inventory.png new file mode 100644 index 0000000..0b3486b Binary files /dev/null and b/mods/default/textures/default_torch_inventory.png differ diff --git a/mods/default/textures/default_torch_out.png b/mods/default/textures/default_torch_out.png new file mode 100644 index 0000000..d23e565 Binary files /dev/null and b/mods/default/textures/default_torch_out.png differ diff --git a/mods/default/textures/default_tree.png b/mods/default/textures/default_tree.png index 10e297b..35e072a 100644 Binary files a/mods/default/textures/default_tree.png and b/mods/default/textures/default_tree.png differ diff --git a/mods/default/textures/default_tree_top.png b/mods/default/textures/default_tree_top.png index da99bce..a02e332 100644 Binary files a/mods/default/textures/default_tree_top.png and b/mods/default/textures/default_tree_top.png differ diff --git a/mods/default/textures/default_water.png b/mods/default/textures/default_water.png index 00500e9..040b817 100644 Binary files a/mods/default/textures/default_water.png and b/mods/default/textures/default_water.png differ diff --git a/mods/default/textures/default_water_flowing_animated.png b/mods/default/textures/default_water_flowing_animated.png index 070d797..aae8366 100644 Binary files a/mods/default/textures/default_water_flowing_animated.png and b/mods/default/textures/default_water_flowing_animated.png differ diff --git a/mods/default/textures/default_water_source_animated.png b/mods/default/textures/default_water_source_animated.png index 7e7f9ff..040b817 100644 Binary files a/mods/default/textures/default_water_source_animated.png and b/mods/default/textures/default_water_source_animated.png differ diff --git a/mods/default/textures/default_wood.png b/mods/default/textures/default_wood.png index af56d6c..1e1660d 100644 Binary files a/mods/default/textures/default_wood.png and b/mods/default/textures/default_wood.png differ diff --git a/mods/default/textures/gui_formbg.png b/mods/default/textures/gui_formbg.png index c543466..b7d69da 100644 Binary files a/mods/default/textures/gui_formbg.png and b/mods/default/textures/gui_formbg.png differ diff --git a/mods/default/textures/gui_furnace_arrow_bg.png b/mods/default/textures/gui_furnace_arrow_bg.png index 046d8cd..a4a4f11 100644 Binary files a/mods/default/textures/gui_furnace_arrow_bg.png and b/mods/default/textures/gui_furnace_arrow_bg.png differ diff --git a/mods/default/textures/gui_furnace_arrow_fg.png b/mods/default/textures/gui_furnace_arrow_fg.png index 8d3c396..a5a18a9 100644 Binary files a/mods/default/textures/gui_furnace_arrow_fg.png and b/mods/default/textures/gui_furnace_arrow_fg.png differ diff --git a/mods/default/textures/heart.png b/mods/default/textures/heart.png index 6d4e228..8f9ec05 100644 Binary files a/mods/default/textures/heart.png and b/mods/default/textures/heart.png differ diff --git a/mods/default/textures/player.png b/mods/default/textures/player.png index 6d61c43..3e6fb67 100644 Binary files a/mods/default/textures/player.png and b/mods/default/textures/player.png differ diff --git a/mods/default/textures/player_back.png b/mods/default/textures/player_back.png index 5e9ef05..d66acb6 100644 Binary files a/mods/default/textures/player_back.png and b/mods/default/textures/player_back.png differ diff --git a/mods/default/textures/treeprop.png b/mods/default/textures/treeprop.png new file mode 100644 index 0000000..e0093b3 Binary files /dev/null and b/mods/default/textures/treeprop.png differ diff --git a/mods/default/textures/trees_jungletree_sapling.png b/mods/default/textures/trees_jungletree_sapling.png new file mode 100644 index 0000000..e86590c Binary files /dev/null and b/mods/default/textures/trees_jungletree_sapling.png differ diff --git a/mods/default/textures/trees_leaves_green.png b/mods/default/textures/trees_leaves_green.png new file mode 100644 index 0000000..5378e22 Binary files /dev/null and b/mods/default/textures/trees_leaves_green.png differ diff --git a/mods/default/textures/trees_leaves_palm.png b/mods/default/textures/trees_leaves_palm.png new file mode 100644 index 0000000..fa922c8 Binary files /dev/null and b/mods/default/textures/trees_leaves_palm.png differ diff --git a/mods/default/textures/trees_leaves_red.png b/mods/default/textures/trees_leaves_red.png new file mode 100644 index 0000000..92411f7 Binary files /dev/null and b/mods/default/textures/trees_leaves_red.png differ diff --git a/mods/default/textures/trees_leaves_yellow.png b/mods/default/textures/trees_leaves_yellow.png new file mode 100644 index 0000000..b61d697 Binary files /dev/null and b/mods/default/textures/trees_leaves_yellow.png differ diff --git a/mods/default/textures/trees_sapling_palm.png b/mods/default/textures/trees_sapling_palm.png new file mode 100644 index 0000000..e86590c Binary files /dev/null and b/mods/default/textures/trees_sapling_palm.png differ diff --git a/mods/default/textures/trees_tree_palm.png b/mods/default/textures/trees_tree_palm.png new file mode 100644 index 0000000..c4db26d Binary files /dev/null and b/mods/default/textures/trees_tree_palm.png differ diff --git a/mods/default/textures/trees_tree_top_palm.png b/mods/default/textures/trees_tree_top_palm.png new file mode 100644 index 0000000..9261bc1 Binary files /dev/null and b/mods/default/textures/trees_tree_top_palm.png differ diff --git a/mods/default/textures/trees_tree_top_palm2.png b/mods/default/textures/trees_tree_top_palm2.png new file mode 100644 index 0000000..38bb451 Binary files /dev/null and b/mods/default/textures/trees_tree_top_palm2.png differ diff --git a/mods/default/textures/trees_wood_palm.png b/mods/default/textures/trees_wood_palm.png new file mode 100644 index 0000000..51533a2 Binary files /dev/null and b/mods/default/textures/trees_wood_palm.png differ diff --git a/mods/default/textures/wieldhand.png b/mods/default/textures/wieldhand.png index 69f4b7b..54ffb5d 100644 Binary files a/mods/default/textures/wieldhand.png and b/mods/default/textures/wieldhand.png differ diff --git a/mods/default/tools.lua b/mods/default/tools.lua index 45c779f..37e126b 100644 --- a/mods/default/tools.lua +++ b/mods/default/tools.lua @@ -1,5 +1,14 @@ -- mods/default/tools.lua +local place_tool = function(itemstack, direction, meta1, meta2, pt, tool) +-- minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:" .. tool .. "_deco", param2=direction}) +-- meta1:set_int("wear", itemstack:get_wear()) +-- meta2:set_int("wear", itemstack:get_wear()) +-- itemstack:take_item() + return itemstack +end + + -- The hand minetest.register_item(":", { type = "none", @@ -32,8 +41,21 @@ minetest.register_tool("default:pick_wood", { }, damage_groups = {fleshy=2}, }, - groups = {flammable = 2}, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_wood_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:pick_stone", { @@ -48,6 +70,20 @@ minetest.register_tool("default:pick_stone", { damage_groups = {fleshy=3}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_stone_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:pick_steel", { @@ -62,6 +98,20 @@ minetest.register_tool("default:pick_steel", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_steel_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:pick_bronze", { @@ -76,6 +126,20 @@ minetest.register_tool("default:pick_bronze", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_bronze_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:pick_mese", { @@ -90,6 +154,20 @@ minetest.register_tool("default:pick_mese", { damage_groups = {fleshy=5}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_mese_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:pick_diamond", { @@ -104,6 +182,20 @@ minetest.register_tool("default:pick_diamond", { damage_groups = {fleshy=5}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_diamond_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) -- @@ -124,6 +216,20 @@ minetest.register_tool("default:shovel_wood", { }, groups = {flammable = 2}, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_wood_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:shovel_stone", { @@ -139,6 +245,20 @@ minetest.register_tool("default:shovel_stone", { damage_groups = {fleshy=2}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_stone_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:shovel_steel", { @@ -154,6 +274,26 @@ minetest.register_tool("default:shovel_steel", { damage_groups = {fleshy=3}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_stone_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, + on_place = function(itemstack, placer, pointed_thing) + place_tool(itemstack, minetest.dir_to_facedir(placer:get_look_dir()), + minetest.env:get_meta({x=pointed_thing.under.x, y=pointed_thing.under.y , z=pointed_thing.under.z}), + minetest.env:get_meta({x=pointed_thing.under.x, y=pointed_thing.under.y+1, z=pointed_thing.under.z}), + pointed_thing, "shovel_steel"); + end, }) minetest.register_tool("default:shovel_bronze", { @@ -169,6 +309,20 @@ minetest.register_tool("default:shovel_bronze", { damage_groups = {fleshy=3}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_bronze_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:shovel_mese", { @@ -184,6 +338,20 @@ minetest.register_tool("default:shovel_mese", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_mese_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:shovel_diamond", { @@ -199,6 +367,20 @@ minetest.register_tool("default:shovel_diamond", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_diamond_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) -- @@ -218,6 +400,20 @@ minetest.register_tool("default:axe_wood", { }, groups = {flammable = 2}, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_wood_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:axe_stone", { @@ -232,6 +428,20 @@ minetest.register_tool("default:axe_stone", { damage_groups = {fleshy=3}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_stone_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:axe_steel", { @@ -246,6 +456,20 @@ minetest.register_tool("default:axe_steel", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_steel_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:axe_bronze", { @@ -260,6 +484,20 @@ minetest.register_tool("default:axe_bronze", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_bronze_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:axe_mese", { @@ -274,6 +512,20 @@ minetest.register_tool("default:axe_mese", { damage_groups = {fleshy=6}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_mese_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:axe_diamond", { @@ -283,11 +535,25 @@ minetest.register_tool("default:axe_diamond", { full_punch_interval = 0.9, max_drop_level=1, groupcaps={ - choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2}, + choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=3}, }, damage_groups = {fleshy=7}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_diamond_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) -- @@ -307,6 +573,20 @@ minetest.register_tool("default:sword_wood", { }, groups = {flammable = 2}, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_wood_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:sword_stone", { @@ -321,6 +601,20 @@ minetest.register_tool("default:sword_stone", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_stone_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:sword_steel", { @@ -335,6 +629,20 @@ minetest.register_tool("default:sword_steel", { damage_groups = {fleshy=6}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_steel_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:sword_bronze", { @@ -349,6 +657,20 @@ minetest.register_tool("default:sword_bronze", { damage_groups = {fleshy=6}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_bronze_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:sword_mese", { @@ -363,6 +685,20 @@ minetest.register_tool("default:sword_mese", { damage_groups = {fleshy=7}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_mese_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:sword_diamond", { @@ -377,6 +713,20 @@ minetest.register_tool("default:sword_diamond", { damage_groups = {fleshy=8}, }, sound = {breaks = "default_tool_breaks"}, + on_place = function(itemstack, placer, pointed_thing) + local pt = pointed_thing + if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then + local wear = itemstack:get_wear() + local direction = minetest.dir_to_facedir(placer:get_look_dir()) + local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) + local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) + minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_diamond_deco", param2=direction}) + meta1:set_int("wear", wear) + meta2:set_int("wear", wear) + itemstack:take_item() + return itemstack + end + end, }) minetest.register_tool("default:key", { @@ -417,3 +767,44 @@ minetest.register_tool("default:key", { return nil end }) + + +local register_deco_block = function(tool_name, tool_tiles, tool_nodebox) + minetest.register_node(tool_name.."_deco", { + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = tool_tiles, + groups = { + snappy=3, + flammable=2, + not_in_creative_inventory=1 + }, + node_box = { + type = "fixed", + fixed = tool_nodebox, + }, + sounds = default.node_sound_wood_defaults(), + on_dig = function(pos, node, digger) + if digger:is_player() and digger:get_inventory() then + local meta = minetest.env:get_meta(pos) + local wear_out = meta:get_int("wear") + digger:get_inventory():add_item("main", {name=tool_name, count=1, wear=wear_out, metadata=""}) + end + minetest.remove_node(pos) + end, +}) +end + +local register_deco_block_materials = function(material, top) + register_deco_block("default:pick_"..material, {top, "default_tool_"..material.."pick.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-0.5/3, 0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3}}) + register_deco_block("default:shovel_"..material, {top, "default_tool_"..material.."shovel.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}}) + register_deco_block("default:axe_"..material, {top, top, "default_tool_"..material.."axe.png^[transformFX", "default_tool_"..material.."axe.png", "default_tool_"..material.."axe.png^[combine:6x6:2,0=".."default_tool_"..material.."axe.png", "default_tool_"..material.."axe.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-0.5/3, 0.5/3, -0.5/3, 0.5/3, 1.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3}}) + register_deco_block("default:sword_"..material, {top, "default_tool_"..material.."sword.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}}) +end +register_deco_block_materials("stone", "default_cobble.png") +register_deco_block_materials("wood", "default_wood.png") +register_deco_block_materials("steel", "default_steel_block.png") +register_deco_block_materials("bronze", "default_bronze_block.png") +register_deco_block_materials("mese", "default_mese_block.png") +register_deco_block_materials("diamond", "default_diamond_block.png") diff --git a/mods/default/tools.lua.diff b/mods/default/tools.lua.diff new file mode 100644 index 0000000..fa5b90a --- /dev/null +++ b/mods/default/tools.lua.diff @@ -0,0 +1,424 @@ +2a3,11 +> local place_tool = function(itemstack, direction, meta1, meta2, pt, tool) +> -- minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:" .. tool .. "_deco", param2=direction}) +> -- meta1:set_int("wear", itemstack:get_wear()) +> -- meta2:set_int("wear", itemstack:get_wear()) +> -- itemstack:take_item() +> return itemstack +> end +> +> +35d43 +< groups = {flammable = 2}, +36a45,58 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_wood_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +50a73,86 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_stone_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +64a101,114 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_steel_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +78a129,142 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_bronze_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +92a157,170 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_mese_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +106a185,198 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:pick_diamond_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +126a219,232 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_wood_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +141a248,261 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_stone_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +156a277,296 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_stone_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +> on_place = function(itemstack, placer, pointed_thing) +> place_tool(itemstack, minetest.dir_to_facedir(placer:get_look_dir()), +> minetest.env:get_meta({x=pointed_thing.under.x, y=pointed_thing.under.y , z=pointed_thing.under.z}), +> minetest.env:get_meta({x=pointed_thing.under.x, y=pointed_thing.under.y+1, z=pointed_thing.under.z}), +> pointed_thing, "shovel_steel"); +> end, +171a312,325 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_bronze_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +186a341,354 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_mese_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +201a370,383 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:shovel_diamond_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +220a403,416 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_wood_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +234a431,444 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_stone_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +248a459,472 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_steel_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +262a487,500 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_bronze_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +276a515,528 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_mese_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +286c538 +< choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2}, +--- +> choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=3}, +290a543,556 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:axe_diamond_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +309a576,589 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_wood_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +323a604,617 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_stone_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +337a632,645 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_steel_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +351a660,673 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_bronze_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +365a688,701 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_mese_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +379a716,729 +> on_place = function(itemstack, placer, pointed_thing) +> local pt = pointed_thing +> if ( minetest.get_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}).name == "air" ) then +> local wear = itemstack:get_wear() +> local direction = minetest.dir_to_facedir(placer:get_look_dir()) +> local meta1 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y , z=pt.under.z}) +> local meta2 = minetest.env:get_meta({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}) +> minetest.set_node({x=pt.under.x, y=pt.under.y+1, z=pt.under.z}, {name="default:sword_diamond_deco", param2=direction}) +> meta1:set_int("wear", wear) +> meta2:set_int("wear", wear) +> itemstack:take_item() +> return itemstack +> end +> end, +419a770,810 +> +> +> local register_deco_block = function(tool_name, tool_tiles, tool_nodebox) +> minetest.register_node(tool_name.."_deco", { +> drawtype = "nodebox", +> paramtype = "light", +> paramtype2 = "facedir", +> tiles = tool_tiles, +> groups = { +> snappy=3, +> flammable=2, +> not_in_creative_inventory=1 +> }, +> node_box = { +> type = "fixed", +> fixed = tool_nodebox, +> }, +> sounds = default.node_sound_wood_defaults(), +> on_dig = function(pos, node, digger) +> if digger:is_player() and digger:get_inventory() then +> local meta = minetest.env:get_meta(pos) +> local wear_out = meta:get_int("wear") +> digger:get_inventory():add_item("main", {name=tool_name, count=1, wear=wear_out, metadata=""}) +> end +> minetest.remove_node(pos) +> end, +> }) +> end +> +> local register_deco_block_materials = function(material, top) +> register_deco_block("default:pick_"..material, {top, "default_tool_"..material.."pick.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-0.5/3, 0.5/3, -1.5/3, 0.5/3, 1.5/3, 1.5/3}}) +> register_deco_block("default:shovel_"..material, {top, "default_tool_"..material.."shovel.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}}) +> register_deco_block("default:axe_"..material, {top, top, "default_tool_"..material.."axe.png^[transformFX", "default_tool_"..material.."axe.png", "default_tool_"..material.."axe.png^[combine:6x6:2,0=".."default_tool_"..material.."axe.png", "default_tool_"..material.."axe.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3},{-0.5/3, 0.5/3, -0.5/3, 0.5/3, 1.5/3, 1.5/3},{-0.5/3, -0.5/3, 0.5/3, 0.5/3, 0.5/3, 1.5/3}}) +> register_deco_block("default:sword_"..material, {top, "default_tool_"..material.."sword.png"}, {{-0.5/3, -1.5/3, -0.5/3, 0.5/3, 1.5/3, 0.5/3}}) +> end +> register_deco_block_materials("stone", "default_cobble.png") +> register_deco_block_materials("wood", "default_wood.png") +> register_deco_block_materials("steel", "default_steel_block.png") +> register_deco_block_materials("bronze", "default_bronze_block.png") +> register_deco_block_materials("mese", "default_mese_block.png") +> register_deco_block_materials("diamond", "default_diamond_block.png") diff --git a/mods/default/trees.lua b/mods/default/trees.lua index 81c9831..b2687c9 100644 --- a/mods/default/trees.lua +++ b/mods/default/trees.lua @@ -17,7 +17,7 @@ function default.can_grow(pos) return false end local light_level = minetest.get_node_light(pos) - if not light_level or light_level < 13 then + if not light_level or light_level < 10 then return false end return true @@ -31,12 +31,12 @@ local function is_snow_nearby(pos) end --- Sapling ABM +-- Grow sapling function default.grow_sapling(pos) if not default.can_grow(pos) then - -- try a bit later again - minetest.get_node_timer(pos):start(math.random(240, 600)) + -- try again 5 min later + minetest.get_node_timer(pos):start(1) return end @@ -94,7 +94,7 @@ minetest.register_lbm({ "default:pine_sapling", "default:acacia_sapling", "default:aspen_sapling"}, action = function(pos) - minetest.get_node_timer(pos):start(math.random(1200, 2400)) + minetest.get_node_timer(pos):start(math.random(10, 11)) end }) @@ -533,3 +533,25 @@ function default.sapling_on_place(itemstack, placer, pointed_thing, return itemstack end + + +-- Important bloody aliases + +minetest.register_alias("trees:tree_conifer", "default:pine_tree") +minetest.register_alias("trees:wood_conifer", "default:pine_wood") +minetest.register_alias("trees:sapling_conifer", "default:pine_sapling") +minetest.register_alias("trees:leaves_conifer", "default:pine_needles") + +minetest.register_alias("trees:tree_palm", "default:jungletree") +minetest.register_alias("trees:leaves_palm", "default:jungleleaves") +minetest.register_alias("trees:sapling_palm", "default:junglesapling") +minetest.register_alias("trees:wood_palm", "default:junglewood") + +minetest.register_alias("trees:tree_mangrove", "default:aspen_tree") +minetest.register_alias("trees:leaves_mangrove", "default:aspen_leaves") +minetest.register_alias("trees:sapling_mangrove", "default:aspen_sapling") +minetest.register_alias("trees:wood_mangrove", "default:aspen_wood") + +minetest.register_alias("trees:leaves_red", "default:jungleleaves") +minetest.register_alias("trees:leaves_yellow", "default:jungleleaves") +minetest.register_alias("trees:leaves_green", "default:jungleleaves") diff --git a/mods/default/trees.lua.diff b/mods/default/trees.lua.diff new file mode 100644 index 0000000..b165a47 --- /dev/null +++ b/mods/default/trees.lua.diff @@ -0,0 +1,41 @@ +20c20 +< if not light_level or light_level < 13 then +--- +> if not light_level or light_level < 10 then +34c34 +< -- Sapling ABM +--- +> -- Grow sapling +38,39c38,39 +< -- try a bit later again +< minetest.get_node_timer(pos):start(math.random(240, 600)) +--- +> -- try again 5 min later +> minetest.get_node_timer(pos):start(1) +97c97 +< minetest.get_node_timer(pos):start(math.random(1200, 2400)) +--- +> minetest.get_node_timer(pos):start(math.random(10, 11)) +535a536,557 +> +> +> -- Important bloody aliases +> +> minetest.register_alias("trees:tree_conifer", "default:pine_tree") +> minetest.register_alias("trees:wood_conifer", "default:pine_wood") +> minetest.register_alias("trees:sapling_conifer", "default:pine_sapling") +> minetest.register_alias("trees:leaves_conifer", "default:pine_needles") +> +> minetest.register_alias("trees:tree_palm", "default:jungletree") +> minetest.register_alias("trees:leaves_palm", "default:jungleleaves") +> minetest.register_alias("trees:sapling_palm", "default:junglesapling") +> minetest.register_alias("trees:wood_palm", "default:junglewood") +> +> minetest.register_alias("trees:tree_mangrove", "default:aspen_tree") +> minetest.register_alias("trees:leaves_mangrove", "default:aspen_leaves") +> minetest.register_alias("trees:sapling_mangrove", "default:aspen_sapling") +> minetest.register_alias("trees:wood_mangrove", "default:aspen_wood") +> +> minetest.register_alias("trees:leaves_red", "default:jungleleaves") +> minetest.register_alias("trees:leaves_yellow", "default:jungleleaves") +> minetest.register_alias("trees:leaves_green", "default:jungleleaves") diff --git a/mods/doors/README.txt b/mods/doors/README.txt index 9ad7093..37337b2 100644 --- a/mods/doors/README.txt +++ b/mods/doors/README.txt @@ -1,84 +1,26 @@ -Minetest Game mod: doors -======================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by PilzAdam (MIT) - -Modified by BlockMen (MIT): Added sounds, glass doors (glass, obsidian glass) and trapdoor. - -Modified by sofar (sofar@foo-projects.org) (MIT): -Added Steel trapdoor. -Re-implemented most of the door algorithms, added meshes, UV wrapped texture. -Added doors API to facilitate coding mods accessing and operating doors. -Added Fence Gate model, code, and sounds. - -Various Minetest developers and contributors (MIT) - - -Authors of media (textures) ---------------------------- -Following textures created by Fernando Zapata (CC BY-SA 3.0): - door_wood.png - door_wood_a.png - door_wood_a_r.png - door_wood_b.png - door_wood_b_r.png - -Following textures created by BlockMen (CC BY-SA 3.0): - door_trapdoor.png - door_obsidian_glass_side.png - -Following textures created by celeron55 (CC BY-SA 3.0): - door_glass_a.png - door_glass_b.png - -Following textures created by PenguinDad (CC BY-SA 4.0): - door_glass.png - door_obsidian_glass.png - -Following textures created by sofar (CC-BY-SA-3.0): - doors_trapdoor_steel.png - doors_trapdoor_steel_side.png - door_trapdoor_side.png - -Obsidian door textures by red-001 based on textures by Pilzadam and BlockMen (CC BY-SA 3.0): - door_obsidian_glass.png - -Glass door textures by red-001 based on textures by celeron55 (CC BY-SA 3.0): - door_glass.png - -All other textures (created by PilzAdam) (CC BY-SA 3.0): - -Door textures were converted to the new texture map by sofar, paramat and -red-001, under the same license as the originals. - - -Authors of media (models) -------------------------- -Door 3d models by sofar (CC-BY-SA-3.0) - - door_a.obj - - door_b.obj -Fence gate models by sofar (CC-BY-SA-3.0) - - fencegate_open.obj - - fencegate_closed.obj - - -Authors of media (sounds) -------------------------- -Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen - door_open.ogg -Closing-Sound created by bennstir (CC BY 3.0) - door_close.ogg -fencegate_open.ogg: - http://www.freesound.org/people/mhtaylor67/sounds/126041/ - (CC0 1.0) -fencegate_close.ogg: - http://www.freesound.org/people/BarkersPinhead/sounds/274807/ - (CC-BY-3.0) - http://www.freesound.org/people/rivernile7/sounds/249573/ - (CC-BY-3.0) -Steel door sounds open & close (CC-BY-3.0) by HazMatt - - http://www.freesound.org/people/HazMattt/sounds/187283/ - doors_steel_door_open.ogg - doors_steel_door_close.ogg -doors_glass_door_open.ogg, doors_glass_door_close.ogg: - https://www.freesound.org/people/SkeetMasterFunk69/sounds/235546/ (CC0 1.0) +Doors +===================================================================== +Main: PilzAdam, BlockMen +Lisc: MIT +Text: CC-0 + Derivative of bas080 by jadedctrl +3Dmo: MIT + By sofar +Audi: CC-BY-3.0 + Derivative of CGEffect by BlockMen + door_open.ogg + By bennstir + door_close.ogg + By BarkersPinhead + By rivernile7 + fencegate_close.ogg + By HazMatt + doors_steel_door_open.ogg + doors_steel_door_close.ogg +Audi: CC0 + By mhtaylor67 + fencegate_open.ogg + By SkeetMasterFunk69 + doors_glass_door_open.ogg + doors_glass_door_close.ogg +Link: https://github.com/minetest/minetest_game diff --git a/mods/doors/README.txt.diff b/mods/doors/README.txt.diff new file mode 100644 index 0000000..008e510 --- /dev/null +++ b/mods/doors/README.txt.diff @@ -0,0 +1,112 @@ +1,84c1,26 +< Minetest Game mod: doors +< ======================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by PilzAdam (MIT) +< +< Modified by BlockMen (MIT): Added sounds, glass doors (glass, obsidian glass) and trapdoor. +< +< Modified by sofar (sofar@foo-projects.org) (MIT): +< Added Steel trapdoor. +< Re-implemented most of the door algorithms, added meshes, UV wrapped texture. +< Added doors API to facilitate coding mods accessing and operating doors. +< Added Fence Gate model, code, and sounds. +< +< Various Minetest developers and contributors (MIT) +< +< +< Authors of media (textures) +< --------------------------- +< Following textures created by Fernando Zapata (CC BY-SA 3.0): +< door_wood.png +< door_wood_a.png +< door_wood_a_r.png +< door_wood_b.png +< door_wood_b_r.png +< +< Following textures created by BlockMen (CC BY-SA 3.0): +< door_trapdoor.png +< door_obsidian_glass_side.png +< +< Following textures created by celeron55 (CC BY-SA 3.0): +< door_glass_a.png +< door_glass_b.png +< +< Following textures created by PenguinDad (CC BY-SA 4.0): +< door_glass.png +< door_obsidian_glass.png +< +< Following textures created by sofar (CC-BY-SA-3.0): +< doors_trapdoor_steel.png +< doors_trapdoor_steel_side.png +< door_trapdoor_side.png +< +< Obsidian door textures by red-001 based on textures by Pilzadam and BlockMen (CC BY-SA 3.0): +< door_obsidian_glass.png +< +< Glass door textures by red-001 based on textures by celeron55 (CC BY-SA 3.0): +< door_glass.png +< +< All other textures (created by PilzAdam) (CC BY-SA 3.0): +< +< Door textures were converted to the new texture map by sofar, paramat and +< red-001, under the same license as the originals. +< +< +< Authors of media (models) +< ------------------------- +< Door 3d models by sofar (CC-BY-SA-3.0) +< - door_a.obj +< - door_b.obj +< Fence gate models by sofar (CC-BY-SA-3.0) +< - fencegate_open.obj +< - fencegate_closed.obj +< +< +< Authors of media (sounds) +< ------------------------- +< Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen +< door_open.ogg +< Closing-Sound created by bennstir (CC BY 3.0) +< door_close.ogg +< fencegate_open.ogg: +< http://www.freesound.org/people/mhtaylor67/sounds/126041/ - (CC0 1.0) +< fencegate_close.ogg: +< http://www.freesound.org/people/BarkersPinhead/sounds/274807/ - (CC-BY-3.0) +< http://www.freesound.org/people/rivernile7/sounds/249573/ - (CC-BY-3.0) +< Steel door sounds open & close (CC-BY-3.0) by HazMatt +< - http://www.freesound.org/people/HazMattt/sounds/187283/ +< doors_steel_door_open.ogg +< doors_steel_door_close.ogg +< doors_glass_door_open.ogg, doors_glass_door_close.ogg: +< https://www.freesound.org/people/SkeetMasterFunk69/sounds/235546/ (CC0 1.0) +--- +> Doors +> ===================================================================== +> Main: PilzAdam, BlockMen +> Lisc: MIT +> Text: CC-0 +> Derivative of bas080 by jadedctrl +> 3Dmo: MIT +> By sofar +> Audi: CC-BY-3.0 +> Derivative of CGEffect by BlockMen +> door_open.ogg +> By bennstir +> door_close.ogg +> By BarkersPinhead +> By rivernile7 +> fencegate_close.ogg +> By HazMatt +> doors_steel_door_open.ogg +> doors_steel_door_close.ogg +> Audi: CC0 +> By mhtaylor67 +> fencegate_open.ogg +> By SkeetMasterFunk69 +> doors_glass_door_open.ogg +> doors_glass_door_close.ogg +> Link: https://github.com/minetest/minetest_game diff --git a/mods/doors/license.txt b/mods/doors/license.txt index 8ce73c4..cb4e2dc 100644 --- a/mods/doors/license.txt +++ b/mods/doors/license.txt @@ -27,7 +27,7 @@ For more details: https://opensource.org/licenses/MIT -Licenses of media (textures, models and sounds) +Licenses of media (models and sounds) ----------------------------------------------- Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) @@ -139,6 +139,7 @@ http://creativecommons.org/licenses/by/3.0/ CC0 1.0 Universal (CC0 1.0) Public Domain Dedication mhtaylor67 SkeetMasterFunk69 +bas080 No Copyright diff --git a/mods/doors/license.txt.diff b/mods/doors/license.txt.diff new file mode 100644 index 0000000..5b4326d --- /dev/null +++ b/mods/doors/license.txt.diff @@ -0,0 +1,6 @@ +30c30 +< Licenses of media (textures, models and sounds) +--- +> Licenses of media (models and sounds) +141a142 +> bas080 diff --git a/mods/doors/textures/doors_door_glass.png b/mods/doors/textures/doors_door_glass.png index 26c427b..3a37af2 100644 Binary files a/mods/doors/textures/doors_door_glass.png and b/mods/doors/textures/doors_door_glass.png differ diff --git a/mods/doors/textures/doors_door_obsidian_glass.png b/mods/doors/textures/doors_door_obsidian_glass.png index 07ac5b2..f0e4ae6 100644 Binary files a/mods/doors/textures/doors_door_obsidian_glass.png and b/mods/doors/textures/doors_door_obsidian_glass.png differ diff --git a/mods/doors/textures/doors_door_steel.png b/mods/doors/textures/doors_door_steel.png index f42f335..a54b4d5 100644 Binary files a/mods/doors/textures/doors_door_steel.png and b/mods/doors/textures/doors_door_steel.png differ diff --git a/mods/doors/textures/doors_door_wood.png b/mods/doors/textures/doors_door_wood.png index 7b18203..7a1e74c 100644 Binary files a/mods/doors/textures/doors_door_wood.png and b/mods/doors/textures/doors_door_wood.png differ diff --git a/mods/doors/textures/doors_item_glass.png b/mods/doors/textures/doors_item_glass.png index 791a58a..79e9daa 100644 Binary files a/mods/doors/textures/doors_item_glass.png and b/mods/doors/textures/doors_item_glass.png differ diff --git a/mods/doors/textures/doors_item_steel.png b/mods/doors/textures/doors_item_steel.png index dd99e13..30a435d 100644 Binary files a/mods/doors/textures/doors_item_steel.png and b/mods/doors/textures/doors_item_steel.png differ diff --git a/mods/doors/textures/doors_item_wood.png b/mods/doors/textures/doors_item_wood.png index d3a62ab..94ef3ae 100644 Binary files a/mods/doors/textures/doors_item_wood.png and b/mods/doors/textures/doors_item_wood.png differ diff --git a/mods/doors/textures/doors_trapdoor.png b/mods/doors/textures/doors_trapdoor.png index e92c8b2..9a74a12 100644 Binary files a/mods/doors/textures/doors_trapdoor.png and b/mods/doors/textures/doors_trapdoor.png differ diff --git a/mods/doors/textures/doors_trapdoor_side.png b/mods/doors/textures/doors_trapdoor_side.png index c45d870..e19aea0 100644 Binary files a/mods/doors/textures/doors_trapdoor_side.png and b/mods/doors/textures/doors_trapdoor_side.png differ diff --git a/mods/doors/textures/doors_trapdoor_steel.png b/mods/doors/textures/doors_trapdoor_steel.png index 4ba507d..61d9108 100644 Binary files a/mods/doors/textures/doors_trapdoor_steel.png and b/mods/doors/textures/doors_trapdoor_steel.png differ diff --git a/mods/doors/textures/doors_trapdoor_steel_side.png b/mods/doors/textures/doors_trapdoor_steel_side.png index 44c4344..e5782ae 100644 Binary files a/mods/doors/textures/doors_trapdoor_steel_side.png and b/mods/doors/textures/doors_trapdoor_steel_side.png differ diff --git a/mods/dye/README.txt b/mods/dye/README.txt index a2fbdd2..d810b6c 100644 --- a/mods/dye/README.txt +++ b/mods/dye/README.txt @@ -1,13 +1,7 @@ -Minetest Game mod: dye -====================== -See license.txt for license information. -See init.lua for documentation. - -Authors of source code ----------------------- -Originally by Perttu Ahola (celeron55) (MIT) -Various Minetest developers and contributors (MIT) - -Authors of media (textures) ---------------------------- -Perttu Ahola (celeron55) (CC BY-SA 3.0) +Dye +===================================================================== +Main: celeron55, various +Lisc: MIT +Text: MIT + By jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/mods/dye/init.lua b/mods/dye/init.lua index 8028457..8f26fed 100644 --- a/mods/dye/init.lua +++ b/mods/dye/init.lua @@ -28,21 +28,21 @@ dye.dyes = { -- This collection of colors is partly a historic thing, partly something else local dyes = { - {"white", "White dye", {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1}}, - {"grey", "Grey dye", {dye=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1}}, - {"dark_grey", "Dark grey dye", {dye=1, basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}}, - {"black", "Black dye", {dye=1, basecolor_black=1, excolor_black=1, unicolor_black=1}}, - {"violet", "Violet dye", {dye=1, basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}}, - {"blue", "Blue dye", {dye=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1}}, - {"cyan", "Cyan dye", {dye=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}}, - {"dark_green", "Dark green dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_dark_green=1}}, - {"green", "Green dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_green=1}}, - {"yellow", "Yellow dye", {dye=1, basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}}, - {"brown", "Brown dye", {dye=1, basecolor_brown=1, excolor_orange=1, unicolor_dark_orange=1}}, - {"orange", "Orange dye", {dye=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1}}, - {"red", "Red dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_red=1}}, - {"magenta", "Magenta dye", {dye=1, basecolor_magenta=1, excolor_red_violet=1, unicolor_red_violet=1}}, - {"pink", "Pink dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_light_red=1}}, + {"white", "White Dye", {dye=1, basecolor_white=1, excolor_white=1, unicolor_white=1}}, + {"grey", "Grey Dye", {dye=1, basecolor_grey=1, excolor_grey=1, unicolor_grey=1}}, + {"dark_grey", "Dark Grey Dye", {dye=1, basecolor_grey=1, excolor_darkgrey=1, unicolor_darkgrey=1}}, + {"black", "Black Dye", {dye=1, basecolor_black=1, excolor_black=1, unicolor_black=1}}, + {"violet", "Violet Dye", {dye=1, basecolor_magenta=1, excolor_violet=1, unicolor_violet=1}}, + {"blue", "Blue Dye", {dye=1, basecolor_blue=1, excolor_blue=1, unicolor_blue=1}}, + {"cyan", "Cyan Dye", {dye=1, basecolor_cyan=1, excolor_cyan=1, unicolor_cyan=1}}, + {"dark_green", "Dark Green Dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_dark_green=1}}, + {"green", "Green Dye", {dye=1, basecolor_green=1, excolor_green=1, unicolor_green=1}}, + {"yellow", "Yellow Dye", {dye=1, basecolor_yellow=1, excolor_yellow=1, unicolor_yellow=1}}, + {"brown", "Brown Dye", {dye=1, basecolor_brown=1, excolor_orange=1, unicolor_dark_orange=1}}, + {"orange", "Orange Dye", {dye=1, basecolor_orange=1, excolor_orange=1, unicolor_orange=1}}, + {"red", "Red Dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_red=1}}, + {"magenta", "Magenta Dye", {dye=1, basecolor_magenta=1, excolor_red_violet=1, unicolor_red_violet=1}}, + {"pink", "Pink Dye", {dye=1, basecolor_red=1, excolor_red=1, unicolor_light_red=1}}, } -- Define items diff --git a/mods/dye/license.txt b/mods/dye/license.txt index bf9d350..8134c92 100644 --- a/mods/dye/license.txt +++ b/mods/dye/license.txt @@ -23,38 +23,3 @@ DEALINGS IN THE SOFTWARE. For more details: https://opensource.org/licenses/MIT - - -Licenses of media (textures) ----------------------------- - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2012-2016 Perttu Ahola (celeron55) - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/dye/textures/dye_black.png b/mods/dye/textures/dye_black.png index 1055b6c..268ec33 100644 Binary files a/mods/dye/textures/dye_black.png and b/mods/dye/textures/dye_black.png differ diff --git a/mods/dye/textures/dye_blue.png b/mods/dye/textures/dye_blue.png index d1377c6..b1da6a1 100644 Binary files a/mods/dye/textures/dye_blue.png and b/mods/dye/textures/dye_blue.png differ diff --git a/mods/dye/textures/dye_brown.png b/mods/dye/textures/dye_brown.png index 77d475c..69d65e2 100644 Binary files a/mods/dye/textures/dye_brown.png and b/mods/dye/textures/dye_brown.png differ diff --git a/mods/dye/textures/dye_cyan.png b/mods/dye/textures/dye_cyan.png index 239d66c..5826132 100644 Binary files a/mods/dye/textures/dye_cyan.png and b/mods/dye/textures/dye_cyan.png differ diff --git a/mods/dye/textures/dye_dark_green.png b/mods/dye/textures/dye_dark_green.png index 9606ccf..2db2e22 100644 Binary files a/mods/dye/textures/dye_dark_green.png and b/mods/dye/textures/dye_dark_green.png differ diff --git a/mods/dye/textures/dye_dark_grey.png b/mods/dye/textures/dye_dark_grey.png index 060737b..16951d7 100644 Binary files a/mods/dye/textures/dye_dark_grey.png and b/mods/dye/textures/dye_dark_grey.png differ diff --git a/mods/dye/textures/dye_green.png b/mods/dye/textures/dye_green.png index 0d99ee1..dde975d 100644 Binary files a/mods/dye/textures/dye_green.png and b/mods/dye/textures/dye_green.png differ diff --git a/mods/dye/textures/dye_grey.png b/mods/dye/textures/dye_grey.png index 5efb028..1722205 100644 Binary files a/mods/dye/textures/dye_grey.png and b/mods/dye/textures/dye_grey.png differ diff --git a/mods/dye/textures/dye_magenta.png b/mods/dye/textures/dye_magenta.png index c84df62..413dfa3 100644 Binary files a/mods/dye/textures/dye_magenta.png and b/mods/dye/textures/dye_magenta.png differ diff --git a/mods/dye/textures/dye_orange.png b/mods/dye/textures/dye_orange.png index 0844907..1a9a1fe 100644 Binary files a/mods/dye/textures/dye_orange.png and b/mods/dye/textures/dye_orange.png differ diff --git a/mods/dye/textures/dye_pink.png b/mods/dye/textures/dye_pink.png index c3dec22..a7c3818 100644 Binary files a/mods/dye/textures/dye_pink.png and b/mods/dye/textures/dye_pink.png differ diff --git a/mods/dye/textures/dye_red.png b/mods/dye/textures/dye_red.png index 14eafbf..5ed5f34 100644 Binary files a/mods/dye/textures/dye_red.png and b/mods/dye/textures/dye_red.png differ diff --git a/mods/dye/textures/dye_violet.png b/mods/dye/textures/dye_violet.png index 600cbb4..17770bc 100644 Binary files a/mods/dye/textures/dye_violet.png and b/mods/dye/textures/dye_violet.png differ diff --git a/mods/dye/textures/dye_white.png b/mods/dye/textures/dye_white.png index 2a840a4..a692f29 100644 Binary files a/mods/dye/textures/dye_white.png and b/mods/dye/textures/dye_white.png differ diff --git a/mods/dye/textures/dye_yellow.png b/mods/dye/textures/dye_yellow.png index fe75775..2adaccb 100644 Binary files a/mods/dye/textures/dye_yellow.png and b/mods/dye/textures/dye_yellow.png differ diff --git a/mods/fire/README.txt b/mods/fire/README.txt index 099da1c..30e91d0 100644 --- a/mods/fire/README.txt +++ b/mods/fire/README.txt @@ -1,35 +1,19 @@ -Minetest Game mod: fire -======================= -See license.txt for license information. - -Authors of source code ----------------------- -Originally by Perttu Ahola (celeron55) (LGPL 2.1) -Various Minetest developers and contributors (LGPL 2.1) - -Authors of media (textures and sounds) --------------------------------------- -Everything not listed in here: -Copyright (C) 2012 Perttu Ahola (celeron55) (CC BY-SA 3.0) - -Muadtralk (CC BY-SA 3.0) - fire_basic_flame_animated.png - -Gambit (CC BY-SA 3.0) - fire_flint_steel.png - -dobroide (CC BY 3.0) -http://www.freesound.org/people/dobroide/sounds/4211/ - fire_small.ogg - -Dynamicell (CC BY 3.0) -http://www.freesound.org/people/Dynamicell/sounds/17548/ - fire_large.ogg - fire_fire.*.ogg - -fire_small.ogg and fire_large.ogg are unused but kept temporarily to not break -other mods that may use them. - -Benboncan (CC BY 3.0) -https://www.freesound.org/people/Benboncan/sounds/66457/ - fire_flint_and_steel.ogg +Fire +===================================================================== +Main: celeron55, various +Lisc: LGPL 2.1 +Text: CC0 + By bas080 + fire_basic_flame_animated.png + fire_basic_flame.png + By jadedctrl + fire_basic_lighter.png +Audi: CC-BY 3.0 + By dobroide + fire_small.ogg + By Dynamicell + fire_large.ogg + fire_fire*.ogg + By Benboncan + fire_flint_and_steel.ogg +Link: https://github.com/minetest/minetest_game diff --git a/mods/fire/README.txt.diff b/mods/fire/README.txt.diff new file mode 100644 index 0000000..47b53f1 --- /dev/null +++ b/mods/fire/README.txt.diff @@ -0,0 +1,56 @@ +1,35c1,19 +< Minetest Game mod: fire +< ======================= +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by Perttu Ahola (celeron55) (LGPL 2.1) +< Various Minetest developers and contributors (LGPL 2.1) +< +< Authors of media (textures and sounds) +< -------------------------------------- +< Everything not listed in here: +< Copyright (C) 2012 Perttu Ahola (celeron55) (CC BY-SA 3.0) +< +< Muadtralk (CC BY-SA 3.0) +< fire_basic_flame_animated.png +< +< Gambit (CC BY-SA 3.0) +< fire_flint_steel.png +< +< dobroide (CC BY 3.0) +< http://www.freesound.org/people/dobroide/sounds/4211/ +< fire_small.ogg +< +< Dynamicell (CC BY 3.0) +< http://www.freesound.org/people/Dynamicell/sounds/17548/ +< fire_large.ogg +< fire_fire.*.ogg +< +< fire_small.ogg and fire_large.ogg are unused but kept temporarily to not break +< other mods that may use them. +< +< Benboncan (CC BY 3.0) +< https://www.freesound.org/people/Benboncan/sounds/66457/ +< fire_flint_and_steel.ogg +--- +> Fire +> ===================================================================== +> Main: celeron55, various +> Lisc: LGPL 2.1 +> Text: CC0 +> By bas080 +> fire_basic_flame_animated.png +> fire_basic_flame.png +> By jadedctrl +> fire_basic_lighter.png +> Audi: CC-BY 3.0 +> By dobroide +> fire_small.ogg +> By Dynamicell +> fire_large.ogg +> fire_fire*.ogg +> By Benboncan +> fire_flint_and_steel.ogg +> Link: https://github.com/minetest/minetest_game diff --git a/mods/fire/init.lua b/mods/fire/init.lua index f97636b..a79b1fe 100644 --- a/mods/fire/init.lua +++ b/mods/fire/init.lua @@ -74,8 +74,10 @@ minetest.register_node("fire:permanent_flame", { -- Flint and steel +minetest.register_alias("firestone:lighter", "fire:flint_and_steel") + minetest.register_tool("fire:flint_and_steel", { - description = "Flint and Steel", + description = "Lighter", inventory_image = "fire_flint_steel.png", sound = {breaks = "default_tool_breaks"}, @@ -323,8 +325,8 @@ else -- Fire enabled label = "Ignite flame", nodenames = {"group:flammable"}, neighbors = {"group:igniter"}, - interval = 7, - chance = 12, + interval = 1, + chance = 5, catch_up = false, action = function(pos, node, active_object_count, active_object_count_wider) -- If there is water or stuff like that around node, don't ignite diff --git a/mods/fire/init.lua.diff b/mods/fire/init.lua.diff new file mode 100644 index 0000000..8cd4baa --- /dev/null +++ b/mods/fire/init.lua.diff @@ -0,0 +1,13 @@ +76a77,78 +> minetest.register_alias("firestone:lighter", "fire:flint_and_steel") +> +78c80 +< description = "Flint and Steel", +--- +> description = "Lighter", +326,327c328,329 +< interval = 7, +< chance = 12, +--- +> interval = 1, +> chance = 5, diff --git a/mods/fire/license.txt b/mods/fire/license.txt index 43f9cd7..9ce079f 100644 --- a/mods/fire/license.txt +++ b/mods/fire/license.txt @@ -15,7 +15,7 @@ See the GNU Lesser General Public License for more details: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html -Licenses of media (textures and sounds) +Licenses of media (sounds) --------------------------------------- Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) diff --git a/mods/fire/license.txt.diff b/mods/fire/license.txt.diff new file mode 100644 index 0000000..7eab10b --- /dev/null +++ b/mods/fire/license.txt.diff @@ -0,0 +1,4 @@ +18c18 +< Licenses of media (textures and sounds) +--- +> Licenses of media (sounds) diff --git a/mods/fire/textures/fire_basic_flame.png b/mods/fire/textures/fire_basic_flame.png index 1da0702..9f5a059 100644 Binary files a/mods/fire/textures/fire_basic_flame.png and b/mods/fire/textures/fire_basic_flame.png differ diff --git a/mods/fire/textures/fire_basic_flame_animated.png b/mods/fire/textures/fire_basic_flame_animated.png index 1cdd9fd..46906d3 100644 Binary files a/mods/fire/textures/fire_basic_flame_animated.png and b/mods/fire/textures/fire_basic_flame_animated.png differ diff --git a/mods/fire/textures/fire_flint_steel.png b/mods/fire/textures/fire_flint_steel.png index c262ebc..4ba181f 100644 Binary files a/mods/fire/textures/fire_flint_steel.png and b/mods/fire/textures/fire_flint_steel.png differ diff --git a/mods/flowers/README.txt b/mods/flowers/README.txt index 2a5e4de..83b539f 100644 --- a/mods/flowers/README.txt +++ b/mods/flowers/README.txt @@ -1,26 +1,20 @@ -Minetest Game mod: flowers -========================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by Ironzorg (MIT) and VanessaE (MIT) -Various Minetest developers and contributors (MIT) - -Authors of media (textures) ---------------------------- -RHRhino (CC BY-SA 3.0): - flowers_dandelion_white.png - flowers_dandelion_yellow.png - flowers_geranium.png - flowers_rose.png - flowers_tulip.png - flowers_viola.png - -Gambit (CC BY-SA 3.0): - flowers_mushroom_brown.png - flowers_mushroom_red.png - flowers_waterlily.png - -yyt16384 (CC BY-SA 3.0): - flowers_waterlily_bottom.png, derived from Gambit's texture +Flowers +===================================================================== +Main: Ironzorg & VanessaE, various +Lisc: MIT +Text: CC0 + By bas08 +Text: CC BY-SA 3.0 + By Tirifto + flowers_mushroom_brown.png + flowers_mushroom_red.png + flowers_mushroom_jade.png + flowers_mushroom_french.png + flowers_mushroom_lemon.png + flowers_mushroom_sleepy.png +Text: MIT + By jadedctrl + flowers_waterlily*.png +3Dmo: + By bas080 +Link: https://github.com/minetest/minetest_game diff --git a/mods/flowers/README.txt.diff b/mods/flowers/README.txt.diff new file mode 100644 index 0000000..9120037 --- /dev/null +++ b/mods/flowers/README.txt.diff @@ -0,0 +1,48 @@ +1,26c1,20 +< Minetest Game mod: flowers +< ========================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by Ironzorg (MIT) and VanessaE (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures) +< --------------------------- +< RHRhino (CC BY-SA 3.0): +< flowers_dandelion_white.png +< flowers_dandelion_yellow.png +< flowers_geranium.png +< flowers_rose.png +< flowers_tulip.png +< flowers_viola.png +< +< Gambit (CC BY-SA 3.0): +< flowers_mushroom_brown.png +< flowers_mushroom_red.png +< flowers_waterlily.png +< +< yyt16384 (CC BY-SA 3.0): +< flowers_waterlily_bottom.png, derived from Gambit's texture +--- +> Flowers +> ===================================================================== +> Main: Ironzorg & VanessaE, various +> Lisc: MIT +> Text: CC0 +> By bas08 +> Text: CC BY-SA 3.0 +> By Tirifto +> flowers_mushroom_brown.png +> flowers_mushroom_red.png +> flowers_mushroom_jade.png +> flowers_mushroom_french.png +> flowers_mushroom_lemon.png +> flowers_mushroom_sleepy.png +> Text: MIT +> By jadedctrl +> flowers_waterlily*.png +> 3Dmo: +> By bas080 +> Link: https://github.com/minetest/minetest_game diff --git a/mods/flowers/init.lua b/mods/flowers/init.lua index cb5b219..4464da8 100644 --- a/mods/flowers/init.lua +++ b/mods/flowers/init.lua @@ -25,6 +25,34 @@ minetest.register_alias("flowers:flower_geranium", "flowers:geranium") minetest.register_alias("flowers:flower_viola", "flowers:viola") minetest.register_alias("flowers:flower_dandelion_white", "flowers:dandelion_white") +-- And now for the tulips mod + +minetest.register_alias("tulips:white_seeds", "flowers:dandelion_white") +minetest.register_alias("tulips:white_sprout", "flowers:dandelion_white") +minetest.register_alias("tulips:white", "flowers:dandelion_white") +minetest.register_alias("tulips:grey_seeds", "flowers:dandelion_white") +minetest.register_alias("tulips:grey_sprout", "flowers:dandelion_white") +minetest.register_alias("tulips:grey", "flowers:dandelion_white") +minetest.register_alias("tulips:black_seeds", "flowers:rose") +minetest.register_alias("tulips:black_sprout", "flowers:rose") +minetest.register_alias("tulips:black", "flowers:rose") +minetest.register_alias("tulips:red_seeds", "flowers:rose") +minetest.register_alias("tulips:red_sprout", "flowers:rose") +minetest.register_alias("tulips:red", "flowers:rose") +minetest.register_alias("tulips:yellow_seeds", "flowers:dandelion_yellow") +minetest.register_alias("tulips:yellow_sprout", "flowers:dandelion_yellow") +minetest.register_alias("tulips:yellow", "flowers:dandelion_yellow") +minetest.register_alias("tulips:green_seeds", "flowers:tulip") +minetest.register_alias("tulips:green_sprout", "flowers:tulip") +minetest.register_alias("tulips:green", "flowers:tulip") +minetest.register_alias("tulips:cyan_seeds", "flowers:geranium") +minetest.register_alias("tulips:cyan_sprout", "flowers:geranium") +minetest.register_alias("tulips:cyan", "flowers:geranium") +minetest.register_alias("tulips:blue_seeds", "flowers:geranium") +minetest.register_alias("tulips:blue_sprout", "flowers:geranium") +minetest.register_alias("tulips:magenta_seeds", "flowers:viola") +minetest.register_alias("tulips:magenta_sprout", "flowers:viola") +minetest.register_alias("tulips:magenta", "flowers:viola") -- Flower registration @@ -44,6 +72,17 @@ local function add_simple_flower(name, desc, box, f_groups) wield_image = "flowers_" .. name .. ".png", sunlight_propagates = true, paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5/5, -2.5/5, -0.5/5, 0.5/5, 0.5/5, 0.5/5}, + {-1.5/5, -0.5/5, -1.5/5, -0.5/5, 1.5/5, -0.5/5}, + {0.5/5, -0.5/5, -1.5/5, 1.5/5, 1.5/5, -0.5/5}, + {0.5/5, -0.5/5, 0.5/5, 1.5/5, 1.5/5, 1.5/5}, + {-1.5/5, -0.5/5, 0.5/5, -0.5/5, 1.5/5, 1.5/5}, + } + }, walkable = false, buildable_to = true, stack_max = 99, @@ -59,7 +98,7 @@ end flowers.datas = { { "rose", - "Rose", + "Red Rose", {-2 / 16, -0.5, -2 / 16, 2 / 16, 5 / 16, 2 / 16}, {color_red = 1, flammable = 1} }, @@ -72,7 +111,7 @@ flowers.datas = { { "dandelion_yellow", "Yellow Dandelion", - {-2 / 16, -0.5, -2 / 16, 2 / 16, 4 / 16, 2 / 16}, + {-4 / 16, -0.5, -4 / 16, 4 / 16, -2 / 16, 4 / 16}, {color_yellow = 1, flammable = 1} }, { @@ -89,7 +128,7 @@ flowers.datas = { }, { "dandelion_white", - "White dandelion", + "White Dandelion", {-5 / 16, -0.5, -5 / 16, 5 / 16, -2 / 16, 5 / 16}, {color_white = 1, flammable = 1} }, @@ -201,12 +240,89 @@ minetest.register_node("flowers:mushroom_brown", { } }) +minetest.register_node("flowers:mushroom_jade", { + description = "Jade Mushroom", + tiles = {"flowers_mushroom_jade.png"}, + inventory_image = "flowers_mushroom_jade.png", + wield_image = "flowers_mushroom_jade.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(3), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + +minetest.register_node("flowers:mushroom_french", { + description = "French Mushroom", + tiles = {"flowers_mushroom_french.png"}, + inventory_image = "flowers_mushroom_french.png", + wield_image = "flowers_mushroom_french.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(1), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + +minetest.register_node("flowers:mushroom_lemon", { + description = "Lemon Mushroom", + tiles = {"flowers_mushroom_lemon.png"}, + inventory_image = "flowers_mushroom_lemon.png", + wield_image = "flowers_mushroom_lemon.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(0), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + +minetest.register_node("flowers:mushroom_sleepy", { + description = "Sleepy Mushroom", + tiles = {"flowers_mushroom_sleepy.png"}, + inventory_image = "flowers_mushroom_sleepy.png", + wield_image = "flowers_mushroom_sleepy.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(-18), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + -- Mushroom spread and death minetest.register_abm({ label = "Mushroom spread", - nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red"}, + nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red", "flowers:mushroom_jade", + "flowers:mushroom_french", "flowers:mushroom_lemon", "flowers:mushroom_sleepy"}, interval = 11, chance = 50, action = function(pos, node) diff --git a/mods/flowers/init.lua.diff b/mods/flowers/init.lua.diff new file mode 100644 index 0000000..828e9c8 --- /dev/null +++ b/mods/flowers/init.lua.diff @@ -0,0 +1,135 @@ +27a28,55 +> -- And now for the tulips mod +> +> minetest.register_alias("tulips:white_seeds", "flowers:dandelion_white") +> minetest.register_alias("tulips:white_sprout", "flowers:dandelion_white") +> minetest.register_alias("tulips:white", "flowers:dandelion_white") +> minetest.register_alias("tulips:grey_seeds", "flowers:dandelion_white") +> minetest.register_alias("tulips:grey_sprout", "flowers:dandelion_white") +> minetest.register_alias("tulips:grey", "flowers:dandelion_white") +> minetest.register_alias("tulips:black_seeds", "flowers:rose") +> minetest.register_alias("tulips:black_sprout", "flowers:rose") +> minetest.register_alias("tulips:black", "flowers:rose") +> minetest.register_alias("tulips:red_seeds", "flowers:rose") +> minetest.register_alias("tulips:red_sprout", "flowers:rose") +> minetest.register_alias("tulips:red", "flowers:rose") +> minetest.register_alias("tulips:yellow_seeds", "flowers:dandelion_yellow") +> minetest.register_alias("tulips:yellow_sprout", "flowers:dandelion_yellow") +> minetest.register_alias("tulips:yellow", "flowers:dandelion_yellow") +> minetest.register_alias("tulips:green_seeds", "flowers:tulip") +> minetest.register_alias("tulips:green_sprout", "flowers:tulip") +> minetest.register_alias("tulips:green", "flowers:tulip") +> minetest.register_alias("tulips:cyan_seeds", "flowers:geranium") +> minetest.register_alias("tulips:cyan_sprout", "flowers:geranium") +> minetest.register_alias("tulips:cyan", "flowers:geranium") +> minetest.register_alias("tulips:blue_seeds", "flowers:geranium") +> minetest.register_alias("tulips:blue_sprout", "flowers:geranium") +> minetest.register_alias("tulips:magenta_seeds", "flowers:viola") +> minetest.register_alias("tulips:magenta_sprout", "flowers:viola") +> minetest.register_alias("tulips:magenta", "flowers:viola") +46a75,85 +> drawtype = "nodebox", +> node_box = { +> type = "fixed", +> fixed = { +> {-0.5/5, -2.5/5, -0.5/5, 0.5/5, 0.5/5, 0.5/5}, +> {-1.5/5, -0.5/5, -1.5/5, -0.5/5, 1.5/5, -0.5/5}, +> {0.5/5, -0.5/5, -1.5/5, 1.5/5, 1.5/5, -0.5/5}, +> {0.5/5, -0.5/5, 0.5/5, 1.5/5, 1.5/5, 1.5/5}, +> {-1.5/5, -0.5/5, 0.5/5, -0.5/5, 1.5/5, 1.5/5}, +> } +> }, +62c101 +< "Rose", +--- +> "Red Rose", +75c114 +< {-2 / 16, -0.5, -2 / 16, 2 / 16, 4 / 16, 2 / 16}, +--- +> {-4 / 16, -0.5, -4 / 16, 4 / 16, -2 / 16, 4 / 16}, +92c131 +< "White dandelion", +--- +> "White Dandelion", +203a243,318 +> minetest.register_node("flowers:mushroom_jade", { +> description = "Jade Mushroom", +> tiles = {"flowers_mushroom_jade.png"}, +> inventory_image = "flowers_mushroom_jade.png", +> wield_image = "flowers_mushroom_jade.png", +> drawtype = "plantlike", +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> groups = {snappy = 3, attached_node = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> on_use = minetest.item_eat(3), +> selection_box = { +> type = "fixed", +> fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, +> } +> }) +> +> minetest.register_node("flowers:mushroom_french", { +> description = "French Mushroom", +> tiles = {"flowers_mushroom_french.png"}, +> inventory_image = "flowers_mushroom_french.png", +> wield_image = "flowers_mushroom_french.png", +> drawtype = "plantlike", +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> groups = {snappy = 3, attached_node = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> on_use = minetest.item_eat(1), +> selection_box = { +> type = "fixed", +> fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, +> } +> }) +> +> minetest.register_node("flowers:mushroom_lemon", { +> description = "Lemon Mushroom", +> tiles = {"flowers_mushroom_lemon.png"}, +> inventory_image = "flowers_mushroom_lemon.png", +> wield_image = "flowers_mushroom_lemon.png", +> drawtype = "plantlike", +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> groups = {snappy = 3, attached_node = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> on_use = minetest.item_eat(0), +> selection_box = { +> type = "fixed", +> fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, +> } +> }) +> +> minetest.register_node("flowers:mushroom_sleepy", { +> description = "Sleepy Mushroom", +> tiles = {"flowers_mushroom_sleepy.png"}, +> inventory_image = "flowers_mushroom_sleepy.png", +> wield_image = "flowers_mushroom_sleepy.png", +> drawtype = "plantlike", +> paramtype = "light", +> sunlight_propagates = true, +> walkable = false, +> buildable_to = true, +> groups = {snappy = 3, attached_node = 1, flammable = 1}, +> sounds = default.node_sound_leaves_defaults(), +> on_use = minetest.item_eat(-18), +> selection_box = { +> type = "fixed", +> fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, +> } +> }) +> +209c324,325 +< nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red"}, +--- +> nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red", "flowers:mushroom_jade", +> "flowers:mushroom_french", "flowers:mushroom_lemon", "flowers:mushroom_sleepy"}, diff --git a/mods/flowers/mapgen.lua b/mods/flowers/mapgen.lua index 2b96090..74461d8 100644 --- a/mods/flowers/mapgen.lua +++ b/mods/flowers/mapgen.lua @@ -72,6 +72,10 @@ function flowers.register_mgv6_decorations() register_mgv6_mushroom("mushroom_brown") register_mgv6_mushroom("mushroom_red") + register_mgv6_mushroom("mushroom_jade") + register_mgv6_mushroom("mushroom_french") + register_mgv6_mushroom("mushroom_lemon") + register_mgv6_mushroom("mushroom_sleepy") register_mgv6_waterlily() end @@ -87,15 +91,15 @@ local function register_flower(seed, name) place_on = {"default:dirt_with_grass"}, sidelen = 16, noise_params = { - offset = -0.015, - scale = 0.025, + offset = -0.02, + scale = 0.04, spread = {x = 200, y = 200, z = 200}, seed = seed, octaves = 3, persist = 0.6 }, biomes = {"grassland", "deciduous_forest", "coniferous_forest", - "floatland_grassland", "floatland_coniferous_forest"}, + "floatland_grassland"}, y_min = 1, y_max = 31000, decoration = "flowers:"..name, @@ -115,8 +119,7 @@ local function register_mushroom(name) octaves = 3, persist = 0.66 }, - biomes = {"deciduous_forest", "coniferous_forest", - "floatland_coniferous_forest"}, + biomes = {"deciduous_forest", "coniferous_forest"}, y_min = 1, y_max = 31000, decoration = "flowers:"..name, @@ -154,6 +157,10 @@ function flowers.register_decorations() register_mushroom("mushroom_brown") register_mushroom("mushroom_red") + register_mgv6_mushroom("mushroom_jade") + register_mgv6_mushroom("mushroom_french") + register_mgv6_mushroom("mushroom_lemon") + register_mgv6_mushroom("mushroom_sleepy") register_waterlily() end diff --git a/mods/flowers/mapgen.lua.diff b/mods/flowers/mapgen.lua.diff new file mode 100644 index 0000000..6b52ebd --- /dev/null +++ b/mods/flowers/mapgen.lua.diff @@ -0,0 +1,25 @@ +74a75,78 +> register_mgv6_mushroom("mushroom_jade") +> register_mgv6_mushroom("mushroom_french") +> register_mgv6_mushroom("mushroom_lemon") +> register_mgv6_mushroom("mushroom_sleepy") +90,91c94,95 +< offset = -0.015, +< scale = 0.025, +--- +> offset = -0.02, +> scale = 0.04, +98c102 +< "floatland_grassland", "floatland_coniferous_forest"}, +--- +> "floatland_grassland"}, +118,119c122 +< biomes = {"deciduous_forest", "coniferous_forest", +< "floatland_coniferous_forest"}, +--- +> biomes = {"deciduous_forest", "coniferous_forest"}, +156a160,163 +> register_mgv6_mushroom("mushroom_jade") +> register_mgv6_mushroom("mushroom_french") +> register_mgv6_mushroom("mushroom_lemon") +> register_mgv6_mushroom("mushroom_sleepy") diff --git a/mods/flowers/textures/flowers_dandelion_white.png b/mods/flowers/textures/flowers_dandelion_white.png index 1bc02fb..4dc5e65 100644 Binary files a/mods/flowers/textures/flowers_dandelion_white.png and b/mods/flowers/textures/flowers_dandelion_white.png differ diff --git a/mods/flowers/textures/flowers_dandelion_yellow.png b/mods/flowers/textures/flowers_dandelion_yellow.png index ec11c1c..5a5d9ec 100644 Binary files a/mods/flowers/textures/flowers_dandelion_yellow.png and b/mods/flowers/textures/flowers_dandelion_yellow.png differ diff --git a/mods/flowers/textures/flowers_geranium.png b/mods/flowers/textures/flowers_geranium.png index 88de1d7..d2660ff 100644 Binary files a/mods/flowers/textures/flowers_geranium.png and b/mods/flowers/textures/flowers_geranium.png differ diff --git a/mods/flowers/textures/flowers_mushroom_brown.png b/mods/flowers/textures/flowers_mushroom_brown.png index 33ffcd4..9e292e4 100644 Binary files a/mods/flowers/textures/flowers_mushroom_brown.png and b/mods/flowers/textures/flowers_mushroom_brown.png differ diff --git a/mods/flowers/textures/flowers_mushroom_french.png b/mods/flowers/textures/flowers_mushroom_french.png new file mode 100644 index 0000000..f71b164 Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_french.png differ diff --git a/mods/flowers/textures/flowers_mushroom_jade.png b/mods/flowers/textures/flowers_mushroom_jade.png new file mode 100644 index 0000000..8dab85e Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_jade.png differ diff --git a/mods/flowers/textures/flowers_mushroom_lemon.png b/mods/flowers/textures/flowers_mushroom_lemon.png new file mode 100644 index 0000000..a62d4d7 Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_lemon.png differ diff --git a/mods/flowers/textures/flowers_mushroom_red.png b/mods/flowers/textures/flowers_mushroom_red.png index a68f5d5..39917f8 100644 Binary files a/mods/flowers/textures/flowers_mushroom_red.png and b/mods/flowers/textures/flowers_mushroom_red.png differ diff --git a/mods/flowers/textures/flowers_mushroom_sleepy.png b/mods/flowers/textures/flowers_mushroom_sleepy.png new file mode 100644 index 0000000..888f9ac Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_sleepy.png differ diff --git a/mods/flowers/textures/flowers_rose.png b/mods/flowers/textures/flowers_rose.png index e3b841d..d7e1047 100644 Binary files a/mods/flowers/textures/flowers_rose.png and b/mods/flowers/textures/flowers_rose.png differ diff --git a/mods/flowers/textures/flowers_tulip.png b/mods/flowers/textures/flowers_tulip.png index 471fcd3..c6d3949 100644 Binary files a/mods/flowers/textures/flowers_tulip.png and b/mods/flowers/textures/flowers_tulip.png differ diff --git a/mods/flowers/textures/flowers_viola.png b/mods/flowers/textures/flowers_viola.png index ca2d750..1956563 100644 Binary files a/mods/flowers/textures/flowers_viola.png and b/mods/flowers/textures/flowers_viola.png differ diff --git a/mods/flowers/textures/flowers_waterlily.png b/mods/flowers/textures/flowers_waterlily.png index 305c445..ea43202 100644 Binary files a/mods/flowers/textures/flowers_waterlily.png and b/mods/flowers/textures/flowers_waterlily.png differ diff --git a/mods/flowers/textures/flowers_waterlily_bottom.png b/mods/flowers/textures/flowers_waterlily_bottom.png index 3dbeaf4..5005a7c 100644 Binary files a/mods/flowers/textures/flowers_waterlily_bottom.png and b/mods/flowers/textures/flowers_waterlily_bottom.png differ diff --git a/mods/flowers/textures/tulips_red.png b/mods/flowers/textures/tulips_red.png new file mode 100644 index 0000000..4c7ffa5 Binary files /dev/null and b/mods/flowers/textures/tulips_red.png differ diff --git a/mods/give_initial_stuff/README.txt b/mods/give_initial_stuff/README.txt index cbd240f..35feb60 100644 --- a/mods/give_initial_stuff/README.txt +++ b/mods/give_initial_stuff/README.txt @@ -1,8 +1,5 @@ -Minetest Game mod: give_initial_stuff -===================================== -See license.txt for license information. - -Authors of source code ----------------------- -Perttu Ahola (celeron55) (MIT) -Various Minetest developers and contributors (MIT) +Give_initial_stuff +===================================================================== +Main: celeron55, various +Lisc: MIT +Link: https://github.com/minetest/minetest_game diff --git a/mods/give_initial_stuff/README.txt.diff b/mods/give_initial_stuff/README.txt.diff new file mode 100644 index 0000000..82cdbbf --- /dev/null +++ b/mods/give_initial_stuff/README.txt.diff @@ -0,0 +1,15 @@ +1,8c1,5 +< Minetest Game mod: give_initial_stuff +< ===================================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Perttu Ahola (celeron55) (MIT) +< Various Minetest developers and contributors (MIT) +--- +> Give_initial_stuff +> ===================================================================== +> Main: celeron55, various +> Lisc: MIT +> Link: https://github.com/minetest/minetest_game diff --git a/mods/killme/depends.txt b/mods/killme/depends.txt new file mode 100644 index 0000000..c0605af --- /dev/null +++ b/mods/killme/depends.txt @@ -0,0 +1 @@ +lightning diff --git a/mods/killme/init.lua b/mods/killme/init.lua index 9b67475..71bc2eb 100644 --- a/mods/killme/init.lua +++ b/mods/killme/init.lua @@ -2,9 +2,11 @@ minetest.register_chatcommand("killme", { description = "Kill yourself to respawn", func = function(name) local player = minetest.get_player_by_name(name) + local pos = vector.round(player:getpos()) if player then if minetest.settings:get_bool("enable_damage") then player:set_hp(0) + lightning.strike(pos) return true else for _, callback in pairs(core.registered_on_respawnplayers) do diff --git a/mods/killme/init.lua.diff b/mods/killme/init.lua.diff new file mode 100644 index 0000000..a2ed050 --- /dev/null +++ b/mods/killme/init.lua.diff @@ -0,0 +1,4 @@ +4a5 +> local pos = vector.round(player:getpos()) +7a9 +> lightning.strike(pos) diff --git a/mods/screwdriver/README.txt b/mods/screwdriver/README.txt index 9d39c58..f5ed753 100644 --- a/mods/screwdriver/README.txt +++ b/mods/screwdriver/README.txt @@ -1,13 +1,7 @@ -Minetest Game mod: screwdriver -============================== -See license.txt for license information. - -License of source code ----------------------- -Originally by RealBadAngel, Maciej Kasatkin (LGPL 2.1) -Various Minetest developers and contributors (LGPL 2.1) - -License of media (textures) ---------------------------- -Created by Gambit (CC BY-SA 3.0): - screwdriver.png +Screwdriver +===================================================================== +Main: RealBadAngel & Maciej Kasatkin, various +Lisc: LGPL v2.1 +Text: LGPL v2.0 + By jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/mods/screwdriver/README.txt.diff b/mods/screwdriver/README.txt.diff new file mode 100644 index 0000000..20ca010 --- /dev/null +++ b/mods/screwdriver/README.txt.diff @@ -0,0 +1,22 @@ +1,13c1,7 +< Minetest Game mod: screwdriver +< ============================== +< See license.txt for license information. +< +< License of source code +< ---------------------- +< Originally by RealBadAngel, Maciej Kasatkin (LGPL 2.1) +< Various Minetest developers and contributors (LGPL 2.1) +< +< License of media (textures) +< --------------------------- +< Created by Gambit (CC BY-SA 3.0): +< screwdriver.png +--- +> Screwdriver +> ===================================================================== +> Main: RealBadAngel & Maciej Kasatkin, various +> Lisc: LGPL v2.1 +> Text: LGPL v2.0 +> By jadedctrl +> Link: https://github.com/minetest/minetest_game diff --git a/mods/screwdriver/license.txt b/mods/screwdriver/license.txt index d9b721b..098c6e7 100644 --- a/mods/screwdriver/license.txt +++ b/mods/screwdriver/license.txt @@ -1,5 +1,5 @@ -License of source code ----------------------- +License of source code & media +------------------------------- GNU Lesser General Public License, version 2.1 Copyright (C) 2013-2016 RealBadAngel, Maciej Kasatkin @@ -13,38 +13,3 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html - - -Licenses of media (textures) ----------------------------- - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2013-2016 Gambit - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/screwdriver/license.txt.diff b/mods/screwdriver/license.txt.diff new file mode 100644 index 0000000..d3c7a2e --- /dev/null +++ b/mods/screwdriver/license.txt.diff @@ -0,0 +1,42 @@ +1,2c1,2 +< License of source code +< ---------------------- +--- +> License of source code & media +> ------------------------------- +16,50d15 +< +< +< Licenses of media (textures) +< ---------------------------- +< +< Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +< Copyright (C) 2013-2016 Gambit +< +< You are free to: +< Share — copy and redistribute the material in any medium or format. +< Adapt — remix, transform, and build upon the material for any purpose, even commercially. +< The licensor cannot revoke these freedoms as long as you follow the license terms. +< +< Under the following terms: +< +< Attribution — You must give appropriate credit, provide a link to the license, and +< indicate if changes were made. You may do so in any reasonable manner, but not in any way +< that suggests the licensor endorses you or your use. +< +< ShareAlike — If you remix, transform, or build upon the material, you must distribute +< your contributions under the same license as the original. +< +< No additional restrictions — You may not apply legal terms or technological measures that +< legally restrict others from doing anything the license permits. +< +< Notices: +< +< You do not have to comply with the license for elements of the material in the public +< domain or where your use is permitted by an applicable exception or limitation. +< No warranties are given. The license may not give you all of the permissions necessary +< for your intended use. For example, other rights such as publicity, privacy, or moral +< rights may limit how you use the material. +< +< For more details: +< http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/screwdriver/textures/screwdriver.png b/mods/screwdriver/textures/screwdriver.png index b2a56d5..607bca8 100644 Binary files a/mods/screwdriver/textures/screwdriver.png and b/mods/screwdriver/textures/screwdriver.png differ diff --git a/mods/screwdriver/textures/tool_mode1.png b/mods/screwdriver/textures/tool_mode1.png new file mode 100644 index 0000000..bef8637 Binary files /dev/null and b/mods/screwdriver/textures/tool_mode1.png differ diff --git a/mods/screwdriver/textures/tool_mode2.png b/mods/screwdriver/textures/tool_mode2.png new file mode 100644 index 0000000..4429a5d Binary files /dev/null and b/mods/screwdriver/textures/tool_mode2.png differ diff --git a/mods/screwdriver/textures/tool_mode3.png b/mods/screwdriver/textures/tool_mode3.png new file mode 100644 index 0000000..5635e41 Binary files /dev/null and b/mods/screwdriver/textures/tool_mode3.png differ diff --git a/mods/screwdriver/textures/tool_mode4.png b/mods/screwdriver/textures/tool_mode4.png new file mode 100644 index 0000000..da21e05 Binary files /dev/null and b/mods/screwdriver/textures/tool_mode4.png differ diff --git a/mods/sethome/README.txt b/mods/sethome/README.txt index 6f0a282..c676672 100644 --- a/mods/sethome/README.txt +++ b/mods/sethome/README.txt @@ -1,7 +1,5 @@ -Minetest Game mod: sethome -========================== -See license.txt for license information. - -Authors of source code ----------------------- -sfan5 (MIT) +Sethome +===================================================================== +Main: sfan5 +Lisc: MIT +Link: https://github.com/minetest/minetest_game diff --git a/mods/sethome/README.txt.diff b/mods/sethome/README.txt.diff new file mode 100644 index 0000000..af251ce --- /dev/null +++ b/mods/sethome/README.txt.diff @@ -0,0 +1,14 @@ +1,7c1,5 +< Minetest Game mod: sethome +< ========================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< sfan5 (MIT) +--- +> Sethome +> ===================================================================== +> Main: sfan5 +> Lisc: MIT +> Link: https://github.com/minetest/minetest_game diff --git a/mods/sfinv/README.md b/mods/sfinv/README.md index 6ff3392..cacf0a3 100644 --- a/mods/sfinv/README.md +++ b/mods/sfinv/README.md @@ -1,21 +1,5 @@ Simple Fast Inventory -==================== - -![SFINV Screeny](https://cdn.pbrd.co/images/1yQhd1TI.png) - -A cleaner, simpler, solution to having an advanced inventory in Minetest. - -Written by rubenwardy. -License: MIT - -See game_api.txt for this mod's API - -License of source code and media files: ---------------------------------------- -Copyright (C) 2016 rubenwardy - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +===================================================================== +Main: rubenwardy +Lisc: MIT +Link: https://github.com/minetest/minetest_game diff --git a/mods/sfinv/README.md.diff b/mods/sfinv/README.md.diff new file mode 100644 index 0000000..cd71efb --- /dev/null +++ b/mods/sfinv/README.md.diff @@ -0,0 +1,26 @@ +2,21c2,5 +< ==================== +< +< ![SFINV Screeny](https://cdn.pbrd.co/images/1yQhd1TI.png) +< +< A cleaner, simpler, solution to having an advanced inventory in Minetest. +< +< Written by rubenwardy. +< License: MIT +< +< See game_api.txt for this mod's API +< +< License of source code and media files: +< --------------------------------------- +< Copyright (C) 2016 rubenwardy +< +< Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +< +< The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +< +< THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +--- +> ===================================================================== +> Main: rubenwardy +> Lisc: MIT +> Link: https://github.com/minetest/minetest_game diff --git a/mods/stairs/README.txt b/mods/stairs/README.txt index d32cd71..425c514 100644 --- a/mods/stairs/README.txt +++ b/mods/stairs/README.txt @@ -1,16 +1,11 @@ -Minetest Game mod: stairs -========================= -See license.txt for license information. - -Authors of source code ----------------------- -Originally by Kahrl (LGPL 2.1) and -celeron55, Perttu Ahola (LGPL 2.1) -Various Minetest developers and contributors (LGPL 2.1) - -Authors of media (models) -------------------------- -Jean-Patrick G. (kilbith) (CC BY-SA 3.0): - stairs_stair.obj - - +Stairs +===================================================================== +Main: Kahrl & celeron55, various +Lisc: LGPL 2.1 +3Dmo: CC BY-SA 3.0 + killbith + stairs_stair.obj + GreenXenith + stairs_stair_inner.obj + stairs_stair_outer.obj +Link: https://github.com/minetest/minetest_game diff --git a/mods/stairs/README.txt.diff b/mods/stairs/README.txt.diff new file mode 100644 index 0000000..96fab35 --- /dev/null +++ b/mods/stairs/README.txt.diff @@ -0,0 +1,29 @@ +1,16c1,11 +< Minetest Game mod: stairs +< ========================= +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by Kahrl (LGPL 2.1) and +< celeron55, Perttu Ahola (LGPL 2.1) +< Various Minetest developers and contributors (LGPL 2.1) +< +< Authors of media (models) +< ------------------------- +< Jean-Patrick G. (kilbith) (CC BY-SA 3.0): +< stairs_stair.obj +< +< +--- +> Stairs +> ===================================================================== +> Main: Kahrl & celeron55, various +> Lisc: LGPL 2.1 +> 3Dmo: CC BY-SA 3.0 +> killbith +> stairs_stair.obj +> GreenXenith +> stairs_stair_inner.obj +> stairs_stair_outer.obj +> Link: https://github.com/minetest/minetest_game diff --git a/mods/tnt/README.txt b/mods/tnt/README.txt index 4e74841..8208c76 100644 --- a/mods/tnt/README.txt +++ b/mods/tnt/README.txt @@ -1,44 +1,7 @@ -Minetest Game mod: tnt -====================== -See license.txt for license information. - -Authors of source code ----------------------- -PilzAdam (MIT) -ShadowNinja (MIT) -sofar (sofar@foo-projects.org) (MIT) -Various Minetest developers and contributors (MIT) - -Authors of media (textures) ---------------------------- -BlockMen (CC BY-SA 3.0): -All textures not mentioned below. - -ShadowNinja (CC BY-SA 3.0): -tnt_smoke.png - -Wuzzy (CC BY-SA 3.0): -All gunpowder textures except tnt_gunpowder_inventory.png. - -sofar (sofar@foo-projects.org) (CC BY-SA 3.0): -tnt_blast.png - -Introduction ------------- -This mod adds TNT to Minetest. TNT is a tool to help the player -in mining. - -How to use the mod: -Craft gunpowder by placing coal and gravel in the crafting area. -The gunpowder can be used to craft TNT or as fuse for TNT. -To craft TNT place items like this: --- wood - gunpowder -- wood - -gunpowder gunpowder gunpowder --- wood - gunpowder -- wood - - -There are different ways to blow up TNT: - 1. Hit it with a torch. - 2. Hit a gunpowder fuse that leads to a TNT block with a torch or flint-and-steel. - 3. Activate it with mesecons (fastest way). - -Be aware of the damage radius of 6 blocks! +TNT +===================================================================== +Main: PilzAdam & ShadowNinja & sofar, various +Lisc: MIT +Text: CC0 + Derivative of bas080 by jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/mods/tnt/README.txt.diff b/mods/tnt/README.txt.diff new file mode 100644 index 0000000..f667dac --- /dev/null +++ b/mods/tnt/README.txt.diff @@ -0,0 +1,53 @@ +1,44c1,7 +< Minetest Game mod: tnt +< ====================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< PilzAdam (MIT) +< ShadowNinja (MIT) +< sofar (sofar@foo-projects.org) (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures) +< --------------------------- +< BlockMen (CC BY-SA 3.0): +< All textures not mentioned below. +< +< ShadowNinja (CC BY-SA 3.0): +< tnt_smoke.png +< +< Wuzzy (CC BY-SA 3.0): +< All gunpowder textures except tnt_gunpowder_inventory.png. +< +< sofar (sofar@foo-projects.org) (CC BY-SA 3.0): +< tnt_blast.png +< +< Introduction +< ------------ +< This mod adds TNT to Minetest. TNT is a tool to help the player +< in mining. +< +< How to use the mod: +< Craft gunpowder by placing coal and gravel in the crafting area. +< The gunpowder can be used to craft TNT or as fuse for TNT. +< To craft TNT place items like this: +< -- wood - gunpowder -- wood - +< gunpowder gunpowder gunpowder +< -- wood - gunpowder -- wood - +< +< There are different ways to blow up TNT: +< 1. Hit it with a torch. +< 2. Hit a gunpowder fuse that leads to a TNT block with a torch or flint-and-steel. +< 3. Activate it with mesecons (fastest way). +< +< Be aware of the damage radius of 6 blocks! +--- +> TNT +> ===================================================================== +> Main: PilzAdam & ShadowNinja & sofar, various +> Lisc: MIT +> Text: CC0 +> Derivative of bas080 by jadedctrl +> Link: https://github.com/minetest/minetest_game diff --git a/mods/tnt/license.txt b/mods/tnt/license.txt index 210f2bd..5dec7a8 100644 --- a/mods/tnt/license.txt +++ b/mods/tnt/license.txt @@ -25,41 +25,3 @@ DEALINGS IN THE SOFTWARE. For more details: https://opensource.org/licenses/MIT - - -Licenses of media (textures) ----------------------------- - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2014-2016 BlockMen -Copyright (C) 2014-2016 ShadowNinja -Copyright (C) 2015-2016 Wuzzy -Copyright (C) 2016 sofar (sofar@foo-projects.org) - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/tnt/license.txt.diff b/mods/tnt/license.txt.diff new file mode 100644 index 0000000..10e3270 --- /dev/null +++ b/mods/tnt/license.txt.diff @@ -0,0 +1,39 @@ +28,65d27 +< +< +< Licenses of media (textures) +< ---------------------------- +< +< Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +< Copyright (C) 2014-2016 BlockMen +< Copyright (C) 2014-2016 ShadowNinja +< Copyright (C) 2015-2016 Wuzzy +< Copyright (C) 2016 sofar (sofar@foo-projects.org) +< +< You are free to: +< Share — copy and redistribute the material in any medium or format. +< Adapt — remix, transform, and build upon the material for any purpose, even commercially. +< The licensor cannot revoke these freedoms as long as you follow the license terms. +< +< Under the following terms: +< +< Attribution — You must give appropriate credit, provide a link to the license, and +< indicate if changes were made. You may do so in any reasonable manner, but not in any way +< that suggests the licensor endorses you or your use. +< +< ShareAlike — If you remix, transform, or build upon the material, you must distribute +< your contributions under the same license as the original. +< +< No additional restrictions — You may not apply legal terms or technological measures that +< legally restrict others from doing anything the license permits. +< +< Notices: +< +< You do not have to comply with the license for elements of the material in the public +< domain or where your use is permitted by an applicable exception or limitation. +< No warranties are given. The license may not give you all of the permissions necessary +< for your intended use. For example, other rights such as publicity, privacy, or moral +< rights may limit how you use the material. +< +< For more details: +< http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/tnt/textures/tnt_blast.png b/mods/tnt/textures/tnt_blast.png index bbb1096..8358b0b 100644 Binary files a/mods/tnt/textures/tnt_blast.png and b/mods/tnt/textures/tnt_blast.png differ diff --git a/mods/tnt/textures/tnt_boom.png b/mods/tnt/textures/tnt_boom.png index c848bfc..7a22d46 100644 Binary files a/mods/tnt/textures/tnt_boom.png and b/mods/tnt/textures/tnt_boom.png differ diff --git a/mods/tnt/textures/tnt_bottom.png b/mods/tnt/textures/tnt_bottom.png index 95f66cb..47816dd 100644 Binary files a/mods/tnt/textures/tnt_bottom.png and b/mods/tnt/textures/tnt_bottom.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_crossing_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_crossing_animated.png index a901f7b..bd6bb7c 100644 Binary files a/mods/tnt/textures/tnt_gunpowder_burning_crossing_animated.png and b/mods/tnt/textures/tnt_gunpowder_burning_crossing_animated.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_curved_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_curved_animated.png index bc01806..0af531a 100644 Binary files a/mods/tnt/textures/tnt_gunpowder_burning_curved_animated.png and b/mods/tnt/textures/tnt_gunpowder_burning_curved_animated.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_straight_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_straight_animated.png index c860ace..36e145c 100644 Binary files a/mods/tnt/textures/tnt_gunpowder_burning_straight_animated.png and b/mods/tnt/textures/tnt_gunpowder_burning_straight_animated.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_t_junction_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_t_junction_animated.png index a556072..ad1dbbc 100644 Binary files a/mods/tnt/textures/tnt_gunpowder_burning_t_junction_animated.png and b/mods/tnt/textures/tnt_gunpowder_burning_t_junction_animated.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_crossing.png b/mods/tnt/textures/tnt_gunpowder_crossing.png index 916c84e..c8da5fb 100644 Binary files a/mods/tnt/textures/tnt_gunpowder_crossing.png and b/mods/tnt/textures/tnt_gunpowder_crossing.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_curved.png b/mods/tnt/textures/tnt_gunpowder_curved.png index cb8b4ea..c36ff26 100644 Binary files a/mods/tnt/textures/tnt_gunpowder_curved.png and b/mods/tnt/textures/tnt_gunpowder_curved.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_inventory.png b/mods/tnt/textures/tnt_gunpowder_inventory.png index 105a2d2..f6239ee 100644 Binary files a/mods/tnt/textures/tnt_gunpowder_inventory.png and b/mods/tnt/textures/tnt_gunpowder_inventory.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_straight.png b/mods/tnt/textures/tnt_gunpowder_straight.png index 8ab0e3c..d615a9c 100644 Binary files a/mods/tnt/textures/tnt_gunpowder_straight.png and b/mods/tnt/textures/tnt_gunpowder_straight.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_t_junction.png b/mods/tnt/textures/tnt_gunpowder_t_junction.png index ac997a7..a5eab82 100644 Binary files a/mods/tnt/textures/tnt_gunpowder_t_junction.png and b/mods/tnt/textures/tnt_gunpowder_t_junction.png differ diff --git a/mods/tnt/textures/tnt_side.png b/mods/tnt/textures/tnt_side.png index d303473..cbe3758 100644 Binary files a/mods/tnt/textures/tnt_side.png and b/mods/tnt/textures/tnt_side.png differ diff --git a/mods/tnt/textures/tnt_smoke.png b/mods/tnt/textures/tnt_smoke.png index 488b50f..2333aba 100644 Binary files a/mods/tnt/textures/tnt_smoke.png and b/mods/tnt/textures/tnt_smoke.png differ diff --git a/mods/tnt/textures/tnt_top.png b/mods/tnt/textures/tnt_top.png index 31b807c..7f693b5 100644 Binary files a/mods/tnt/textures/tnt_top.png and b/mods/tnt/textures/tnt_top.png differ diff --git a/mods/tnt/textures/tnt_top_burning.png b/mods/tnt/textures/tnt_top_burning.png index fc0d490..f24538d 100644 Binary files a/mods/tnt/textures/tnt_top_burning.png and b/mods/tnt/textures/tnt_top_burning.png differ diff --git a/mods/tnt/textures/tnt_top_burning_animated.png b/mods/tnt/textures/tnt_top_burning_animated.png index 18a270f..2221246 100644 Binary files a/mods/tnt/textures/tnt_top_burning_animated.png and b/mods/tnt/textures/tnt_top_burning_animated.png differ diff --git a/mods/vessels/README.txt b/mods/vessels/README.txt index 5bb798c..5e2996a 100644 --- a/mods/vessels/README.txt +++ b/mods/vessels/README.txt @@ -1,22 +1,7 @@ -Minetest Game mod: vessels -========================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by Vanessa Ezekowitz (LGPL 2.1) -Modified by Perttu Ahola (LGPL 2.1) -Various Minetest developers and contributors (LGPL 2.1) - -Authors of media (textures) ---------------------------- -All not listed below, Vanessa Ezekowitz (CC BY-SA 3.0) - -The following textures were modified by Thomas-S (CC BY-SA 3.0): - vessels_drinking_glass.png - vessels_drinking_glass_inv.png - vessels_glass_bottle.png - vessels_steel_bottle.png - -The following texture was created by Wuzzy (CC BY-SA 3.0): - vessels_shelf_slot.png (based on vessels_glass_bottle.png) +Vessels +===================================================================== +Main: VanesseE & celeron55, various +Lisc: LGPL v2.1 +Text: CC0 + Derivative of bas080 by jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/mods/vessels/README.txt.diff b/mods/vessels/README.txt.diff new file mode 100644 index 0000000..e36df7b --- /dev/null +++ b/mods/vessels/README.txt.diff @@ -0,0 +1,31 @@ +1,22c1,7 +< Minetest Game mod: vessels +< ========================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by Vanessa Ezekowitz (LGPL 2.1) +< Modified by Perttu Ahola (LGPL 2.1) +< Various Minetest developers and contributors (LGPL 2.1) +< +< Authors of media (textures) +< --------------------------- +< All not listed below, Vanessa Ezekowitz (CC BY-SA 3.0) +< +< The following textures were modified by Thomas-S (CC BY-SA 3.0): +< vessels_drinking_glass.png +< vessels_drinking_glass_inv.png +< vessels_glass_bottle.png +< vessels_steel_bottle.png +< +< The following texture was created by Wuzzy (CC BY-SA 3.0): +< vessels_shelf_slot.png (based on vessels_glass_bottle.png) +--- +> Vessels +> ===================================================================== +> Main: VanesseE & celeron55, various +> Lisc: LGPL v2.1 +> Text: CC0 +> Derivative of bas080 by jadedctrl +> Link: https://github.com/minetest/minetest_game diff --git a/mods/vessels/license.txt b/mods/vessels/license.txt index de16a3b..f581977 100644 --- a/mods/vessels/license.txt +++ b/mods/vessels/license.txt @@ -14,39 +14,3 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html - - -Licenses of media (textures) ----------------------------- - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2012-2016 Vanessa Ezekowitz -Copyright (C) 2016 Thomas-S - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/vessels/license.txt.diff b/mods/vessels/license.txt.diff new file mode 100644 index 0000000..b7fa983 --- /dev/null +++ b/mods/vessels/license.txt.diff @@ -0,0 +1,37 @@ +17,52d16 +< +< +< Licenses of media (textures) +< ---------------------------- +< +< Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +< Copyright (C) 2012-2016 Vanessa Ezekowitz +< Copyright (C) 2016 Thomas-S +< +< You are free to: +< Share — copy and redistribute the material in any medium or format. +< Adapt — remix, transform, and build upon the material for any purpose, even commercially. +< The licensor cannot revoke these freedoms as long as you follow the license terms. +< +< Under the following terms: +< +< Attribution — You must give appropriate credit, provide a link to the license, and +< indicate if changes were made. You may do so in any reasonable manner, but not in any way +< that suggests the licensor endorses you or your use. +< +< ShareAlike — If you remix, transform, or build upon the material, you must distribute +< your contributions under the same license as the original. +< +< No additional restrictions — You may not apply legal terms or technological measures that +< legally restrict others from doing anything the license permits. +< +< Notices: +< +< You do not have to comply with the license for elements of the material in the public +< domain or where your use is permitted by an applicable exception or limitation. +< No warranties are given. The license may not give you all of the permissions necessary +< for your intended use. For example, other rights such as publicity, privacy, or moral +< rights may limit how you use the material. +< +< For more details: +< http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/vessels/textures/vessels_drinking_glass.png b/mods/vessels/textures/vessels_drinking_glass.png index d5037b8..c0b8e7b 100644 Binary files a/mods/vessels/textures/vessels_drinking_glass.png and b/mods/vessels/textures/vessels_drinking_glass.png differ diff --git a/mods/vessels/textures/vessels_drinking_glass_inv.png b/mods/vessels/textures/vessels_drinking_glass_inv.png index 9992bd9..c0b8e7b 100644 Binary files a/mods/vessels/textures/vessels_drinking_glass_inv.png and b/mods/vessels/textures/vessels_drinking_glass_inv.png differ diff --git a/mods/vessels/textures/vessels_glass_bottle.png b/mods/vessels/textures/vessels_glass_bottle.png index 6ea37db..6aa17ca 100644 Binary files a/mods/vessels/textures/vessels_glass_bottle.png and b/mods/vessels/textures/vessels_glass_bottle.png differ diff --git a/mods/vessels/textures/vessels_glass_fragments.png b/mods/vessels/textures/vessels_glass_fragments.png index 7c6c488..6066024 100644 Binary files a/mods/vessels/textures/vessels_glass_fragments.png and b/mods/vessels/textures/vessels_glass_fragments.png differ diff --git a/mods/vessels/textures/vessels_steel_bottle.png b/mods/vessels/textures/vessels_steel_bottle.png index 61d3071..049e512 100644 Binary files a/mods/vessels/textures/vessels_steel_bottle.png and b/mods/vessels/textures/vessels_steel_bottle.png differ diff --git a/mods/walls/README.txt b/mods/walls/README.txt index 0389174..17c9162 100644 --- a/mods/walls/README.txt +++ b/mods/walls/README.txt @@ -1,7 +1,5 @@ -Minetest Game mod: walls -======================== -See license.txt for license information. - -Authors of source code ----------------------- -Auke Kok (LGPL 2.1) +Walls +===================================================================== +Main: sofar +Lisc: LGPL v2.1 +Link: https://github.com/minetest/minetest_game diff --git a/mods/walls/README.txt.diff b/mods/walls/README.txt.diff new file mode 100644 index 0000000..a8560c7 --- /dev/null +++ b/mods/walls/README.txt.diff @@ -0,0 +1,14 @@ +1,7c1,5 +< Minetest Game mod: walls +< ======================== +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Auke Kok (LGPL 2.1) +--- +> Walls +> ===================================================================== +> Main: sofar +> Lisc: LGPL v2.1 +> Link: https://github.com/minetest/minetest_game diff --git a/mods/wool/README.txt b/mods/wool/README.txt index a66677d..272bcb8 100644 --- a/mods/wool/README.txt +++ b/mods/wool/README.txt @@ -1,16 +1,7 @@ -Minetest Game mod: wool -======================= -See license.txt for license information. - -Authors of source code ----------------------- -Originally by Perttu Ahola (celeron55) (MIT) -Various Minetest developers and contributors (MIT) - -Authors of media (textures) ---------------------------- -Cisoun (CC BY-SA 3.0): - wool_black.png wool_brown.png wool_dark_green.png wool_green.png - wool_magenta.png wool_pink.png wool_violet.png wool_yellow.png - wool_blue.png wool_cyan.png wool_dark_grey.png wool_grey.png - wool_orange.png wool_red.png wool_white.png +Wool +===================================================================== +Main: celeron55, various +Lisc: MIT +Text: CC0 + Derivative of bas080 by Tirifto & jadedctrl +Link: https://github.com/minetest/minetest_game diff --git a/mods/wool/README.txt.diff b/mods/wool/README.txt.diff new file mode 100644 index 0000000..593fed9 --- /dev/null +++ b/mods/wool/README.txt.diff @@ -0,0 +1,25 @@ +1,16c1,7 +< Minetest Game mod: wool +< ======================= +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by Perttu Ahola (celeron55) (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures) +< --------------------------- +< Cisoun (CC BY-SA 3.0): +< wool_black.png wool_brown.png wool_dark_green.png wool_green.png +< wool_magenta.png wool_pink.png wool_violet.png wool_yellow.png +< wool_blue.png wool_cyan.png wool_dark_grey.png wool_grey.png +< wool_orange.png wool_red.png wool_white.png +--- +> Wool +> ===================================================================== +> Main: celeron55, various +> Lisc: MIT +> Text: CC0 +> Derivative of bas080 by Tirifto & jadedctrl +> Link: https://github.com/minetest/minetest_game diff --git a/mods/wool/textures/wool_black.png b/mods/wool/textures/wool_black.png index 700d439..5efbb7b 100644 Binary files a/mods/wool/textures/wool_black.png and b/mods/wool/textures/wool_black.png differ diff --git a/mods/wool/textures/wool_blue.png b/mods/wool/textures/wool_blue.png index a074986..1035b06 100644 Binary files a/mods/wool/textures/wool_blue.png and b/mods/wool/textures/wool_blue.png differ diff --git a/mods/wool/textures/wool_brown.png b/mods/wool/textures/wool_brown.png index 2620dfd..bb73e6d 100644 Binary files a/mods/wool/textures/wool_brown.png and b/mods/wool/textures/wool_brown.png differ diff --git a/mods/wool/textures/wool_cyan.png b/mods/wool/textures/wool_cyan.png index 395b6ac..d3f555c 100644 Binary files a/mods/wool/textures/wool_cyan.png and b/mods/wool/textures/wool_cyan.png differ diff --git a/mods/wool/textures/wool_dark_green.png b/mods/wool/textures/wool_dark_green.png index 0e73999..3fda962 100644 Binary files a/mods/wool/textures/wool_dark_green.png and b/mods/wool/textures/wool_dark_green.png differ diff --git a/mods/wool/textures/wool_dark_grey.png b/mods/wool/textures/wool_dark_grey.png index 7253696..412b9d4 100644 Binary files a/mods/wool/textures/wool_dark_grey.png and b/mods/wool/textures/wool_dark_grey.png differ diff --git a/mods/wool/textures/wool_green.png b/mods/wool/textures/wool_green.png index dcb663b..e69aa63 100644 Binary files a/mods/wool/textures/wool_green.png and b/mods/wool/textures/wool_green.png differ diff --git a/mods/wool/textures/wool_grey.png b/mods/wool/textures/wool_grey.png index 2f4c338..5d9629f 100644 Binary files a/mods/wool/textures/wool_grey.png and b/mods/wool/textures/wool_grey.png differ diff --git a/mods/wool/textures/wool_magenta.png b/mods/wool/textures/wool_magenta.png index 5c2c4a7..e0d2039 100644 Binary files a/mods/wool/textures/wool_magenta.png and b/mods/wool/textures/wool_magenta.png differ diff --git a/mods/wool/textures/wool_orange.png b/mods/wool/textures/wool_orange.png index a059f36..4502a7e 100644 Binary files a/mods/wool/textures/wool_orange.png and b/mods/wool/textures/wool_orange.png differ diff --git a/mods/wool/textures/wool_pink.png b/mods/wool/textures/wool_pink.png index 8e90140..e9e0e38 100644 Binary files a/mods/wool/textures/wool_pink.png and b/mods/wool/textures/wool_pink.png differ diff --git a/mods/wool/textures/wool_red.png b/mods/wool/textures/wool_red.png index da12ecf..d20bc77 100644 Binary files a/mods/wool/textures/wool_red.png and b/mods/wool/textures/wool_red.png differ diff --git a/mods/wool/textures/wool_violet.png b/mods/wool/textures/wool_violet.png index d7d6783..3ac2b38 100644 Binary files a/mods/wool/textures/wool_violet.png and b/mods/wool/textures/wool_violet.png differ diff --git a/mods/wool/textures/wool_white.png b/mods/wool/textures/wool_white.png index 88f1e2f..4a9bf87 100644 Binary files a/mods/wool/textures/wool_white.png and b/mods/wool/textures/wool_white.png differ diff --git a/mods/wool/textures/wool_yellow.png b/mods/wool/textures/wool_yellow.png index 2b0f048..6ce666a 100644 Binary files a/mods/wool/textures/wool_yellow.png and b/mods/wool/textures/wool_yellow.png differ diff --git a/mods/xpanes/README.txt b/mods/xpanes/README.txt index bcbc129..6f99c11 100644 --- a/mods/xpanes/README.txt +++ b/mods/xpanes/README.txt @@ -1,21 +1,11 @@ -Minetest Game mod: xpanes -========================= -See license.txt for license information. - -Authors of source code ----------------------- -Originally by xyz (MIT) -BlockMen (MIT) -sofar (MIT) -Various Minetest developers and contributors (MIT) - -Authors of media (textures) ---------------------------- -xyz (CC BY-SA 3.0): - All textures not mentioned below. - -Gambit (CC BY-SA 3.0): - xpanes_bar.png - -paramat (CC BY-SA 3.0): - xpanes_bar_top.png +Xpanes +===================================================================== +Main: xyz & BlockMen & sofar, various +Lisc: MIT +Text: CC BY-SA 3.0 + By Gambit + xpanes_bar.png + By paramat + xpanes_bar_top.png + By xyz +Link: https://github.com/minetest/minetest_game diff --git a/mods/xpanes/README.txt.diff b/mods/xpanes/README.txt.diff new file mode 100644 index 0000000..48138d8 --- /dev/null +++ b/mods/xpanes/README.txt.diff @@ -0,0 +1,34 @@ +1,21c1,11 +< Minetest Game mod: xpanes +< ========================= +< See license.txt for license information. +< +< Authors of source code +< ---------------------- +< Originally by xyz (MIT) +< BlockMen (MIT) +< sofar (MIT) +< Various Minetest developers and contributors (MIT) +< +< Authors of media (textures) +< --------------------------- +< xyz (CC BY-SA 3.0): +< All textures not mentioned below. +< +< Gambit (CC BY-SA 3.0): +< xpanes_bar.png +< +< paramat (CC BY-SA 3.0): +< xpanes_bar_top.png +--- +> Xpanes +> ===================================================================== +> Main: xyz & BlockMen & sofar, various +> Lisc: MIT +> Text: CC BY-SA 3.0 +> By Gambit +> xpanes_bar.png +> By paramat +> xpanes_bar_top.png +> By xyz +> Link: https://github.com/minetest/minetest_game diff --git a/undiff.sh b/undiff.sh new file mode 100644 index 0000000..175b534 --- /dev/null +++ b/undiff.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +# Place the unmodified, pristine forms of mods in mods/, +# then watch this use diff/ to OCD-ify them :) + +for folder in diff/* +do + export modsfolder=$(echo $folder | sed 's/diff/mods/' | sed 's/\.diff//') + + cp -r $folder/* $modsfolder/ +done