From 23dda4593a2ae182581e2d69b971491942e87835 Mon Sep 17 00:00:00 2001 From: N-Nachtigal Date: Tue, 13 May 2025 18:57:15 +0200 Subject: [PATCH] =?UTF-8?q?3=20Mods=20hinzugef=C3=BCgt,=20Fehlende=20Nahru?= =?UTF-8?q?ngspunkteangaben=20im=20Inventar=20erg=C3=A4nzt,=20falsche=20Na?= =?UTF-8?q?hrungspunkte=20berichtigt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/animalia/craftitems.lua | 28 +- mods/atl_server_statistics/License.txt | 503 +++++++++++ mods/atl_server_statistics/init.lua | 36 + .../locale/atl_server_statistics.de.tr | 7 + .../locale/atl_server_statistics.en.tr | 7 + .../locale/atl_server_statistics.es.tr | 7 + .../locale/atl_server_statistics.fr.tr | 7 + .../locale/atl_server_statistics.it.tr | 7 + .../locale/atl_server_statistics.ru.tr | 7 + mods/atl_server_statistics/mod.conf | 7 + mods/atl_server_statistics/readme.conf.txt | 30 + mods/atl_server_statistics/screenshot.png | Bin 0 -> 108332 bytes mods/atl_server_statistics/script/command.lua | 63 ++ mods/atl_server_statistics/script/event.lua | 76 ++ .../atl_server_statistics/script/formspec.lua | 79 ++ mods/atl_server_statistics/script/storage.lua | 37 + mods/atl_server_statistics/script/util.lua | 18 + mods/atl_server_statistics/settingtypes.txt | 8 + mods/cucina_vegana/coffee_def.lua | 2 +- mods/cucina_vegana/items.lua | 58 +- mods/cucina_vegana/nodes.lua | 58 +- mods/death_coords/LICENSE | 21 + mods/death_coords/README.md | 18 + mods/death_coords/depends.txt | 1 + mods/death_coords/init.lua | 66 ++ mods/death_coords/mod.conf | 5 + mods/death_coords/screenshot.png | Bin 0 -> 4712 bytes mods/death_coords/sounds/die.ogg | Bin 0 -> 57465 bytes mods/death_coords/sounds/notify.ogg | Bin 0 -> 19661 bytes mods/glass_stained/depends.txt | 3 + mods/glass_stained/init.lua | 362 ++++++++ mods/glass_stained/licence.txt | 63 ++ mods/glass_stained/mod.conf | 7 + mods/glass_stained/screenshot.png | Bin 0 -> 307904 bytes .../textures/glass_stained_1.png | Bin 0 -> 253 bytes .../textures/glass_stained_10.png | Bin 0 -> 237 bytes .../textures/glass_stained_11.png | Bin 0 -> 292 bytes .../textures/glass_stained_12.png | Bin 0 -> 289 bytes .../textures/glass_stained_13.png | Bin 0 -> 323 bytes .../textures/glass_stained_14.png | Bin 0 -> 311 bytes .../textures/glass_stained_15.png | Bin 0 -> 234 bytes .../textures/glass_stained_16.png | Bin 0 -> 231 bytes .../textures/glass_stained_17.png | Bin 0 -> 232 bytes .../textures/glass_stained_18.png | Bin 0 -> 235 bytes .../textures/glass_stained_2.png | Bin 0 -> 277 bytes .../textures/glass_stained_3.png | Bin 0 -> 271 bytes .../textures/glass_stained_4.png | Bin 0 -> 267 bytes .../textures/glass_stained_5.png | Bin 0 -> 306 bytes .../textures/glass_stained_6.png | Bin 0 -> 283 bytes .../textures/glass_stained_7.png | Bin 0 -> 339 bytes .../textures/glass_stained_8.png | Bin 0 -> 336 bytes .../textures/glass_stained_9.png | Bin 0 -> 242 bytes .../textures/glass_stained_bar_fancy.png | Bin 0 -> 316 bytes .../textures/glass_stained_edge.png | Bin 0 -> 249 bytes .../textures/glass_stained_palette.png | Bin 0 -> 187 bytes .../textures/xpanes_edge_obsidian.png | Bin 0 -> 215 bytes mods/protector/README.md | 152 ++++ mods/protector/admin.lua | 249 ++++++ mods/protector/chest.lua | 253 ++++++ mods/protector/doors.lua | 521 +++++++++++ mods/protector/hud.lua | 82 ++ mods/protector/init.lua | 808 ++++++++++++++++++ mods/protector/license.txt | 33 + mods/protector/locale/protector.de.tr | 57 ++ mods/protector/locale/protector.es.tr | 57 ++ mods/protector/locale/protector.fr.tr | 57 ++ mods/protector/locale/protector.it.tr | 57 ++ mods/protector/locale/protector.ru.tr | 62 ++ mods/protector/locale/protector.tr.tr | 57 ++ mods/protector/locale/protector.uk.tr | 56 ++ mods/protector/locale/template.txt | 59 ++ mods/protector/lucky_block.lua | 15 + mods/protector/mod.conf | 7 + mods/protector/pvp.lua | 70 ++ mods/protector/screenshot.jpg | Bin 0 -> 65656 bytes mods/protector/settingtypes.txt | 35 + .../textures/default_chest_front.png | Bin 0 -> 421 bytes .../protector/textures/default_chest_side.png | Bin 0 -> 375 bytes mods/protector/textures/default_chest_top.png | Bin 0 -> 418 bytes mods/protector/textures/doors_brown.png | Bin 0 -> 109 bytes mods/protector/textures/doors_grey.png | Bin 0 -> 105 bytes mods/protector/textures/doors_steel.png | Bin 0 -> 132 bytes mods/protector/textures/doors_steel_a.png | Bin 0 -> 273 bytes mods/protector/textures/doors_steel_b.png | Bin 0 -> 260 bytes mods/protector/textures/doors_trapdoor.png | Bin 0 -> 257 bytes .../textures/doors_trapdoor_side.png | Bin 0 -> 233 bytes .../textures/doors_trapdoor_steel.png | Bin 0 -> 153 bytes .../textures/doors_trapdoor_steel_side.png | Bin 0 -> 101 bytes mods/protector/textures/doors_wood.png | Bin 0 -> 130 bytes mods/protector/textures/doors_wood_a.png | Bin 0 -> 294 bytes mods/protector/textures/doors_wood_b.png | Bin 0 -> 291 bytes .../textures/johnsmith/protector_logo.png | Bin 0 -> 862 bytes mods/protector/textures/license.txt | 34 + mods/protector/textures/protector_display.png | Bin 0 -> 96 bytes .../textures/protector_down_icon.png | Bin 0 -> 481 bytes mods/protector/textures/protector_logo.png | Bin 0 -> 138 bytes mods/protector/textures/protector_overlay.png | Bin 0 -> 116 bytes mods/protector/textures/protector_tool.png | Bin 0 -> 174 bytes mods/protector/textures/protector_up_icon.png | Bin 0 -> 478 bytes mods/protector/tool.lua | 164 ++++ mods/ropes/LICENSE.md | 19 + mods/ropes/README.md | 17 + mods/ropes/bridge.lua | 88 ++ mods/ropes/crafts.lua | 90 ++ mods/ropes/depends.txt | 7 + mods/ropes/description.txt | 1 + mods/ropes/doc.lua | 53 ++ mods/ropes/extendingladder.lua | 251 ++++++ mods/ropes/functions.lua | 115 +++ mods/ropes/i18n.py | 418 +++++++++ mods/ropes/init.lua | 66 ++ mods/ropes/locale/ropes.es.tr | 71 ++ mods/ropes/locale/ropes.ru.tr | 70 ++ mods/ropes/locale/template.txt | 62 ++ mods/ropes/loot.lua | 56 ++ mods/ropes/mod.conf | 7 + mods/ropes/ropeboxes.lua | 363 ++++++++ mods/ropes/ropeladder.lua | 193 +++++ mods/ropes/screenshot.png | Bin 0 -> 109876 bytes mods/ropes/settingtypes.txt | 58 ++ mods/ropes/sounds/license.txt | 1 + mods/ropes/sounds/ropes_creak.1.ogg | Bin 0 -> 8446 bytes mods/ropes/sounds/ropes_creak.2.ogg | Bin 0 -> 8509 bytes mods/ropes/sounds/ropes_creak.3.ogg | Bin 0 -> 7360 bytes mods/ropes/textures/ropes_1.png | Bin 0 -> 287 bytes mods/ropes/textures/ropes_2.png | Bin 0 -> 309 bytes mods/ropes/textures/ropes_3.png | Bin 0 -> 329 bytes mods/ropes/textures/ropes_4.png | Bin 0 -> 347 bytes mods/ropes/textures/ropes_5.png | Bin 0 -> 361 bytes mods/ropes/textures/ropes_item.png | Bin 0 -> 153 bytes mods/ropes/textures/ropes_ropebox_front_1.png | Bin 0 -> 308 bytes mods/ropes/textures/ropes_ropebox_front_2.png | Bin 0 -> 330 bytes mods/ropes/textures/ropes_ropebox_front_3.png | Bin 0 -> 350 bytes mods/ropes/textures/ropes_ropebox_front_4.png | Bin 0 -> 369 bytes mods/ropes/textures/ropes_ropebox_front_5.png | Bin 0 -> 383 bytes mods/ropes/textures/ropes_ropebox_side.png | Bin 0 -> 411 bytes mods/ropes/textures/ropes_ropeladder.png | Bin 0 -> 394 bytes .../textures/ropes_ropeladder_bottom.png | Bin 0 -> 415 bytes .../textures/ropes_ropeladder_overlay.png | Bin 0 -> 121 bytes mods/ropes/textures/ropes_ropeladder_top.png | Bin 0 -> 426 bytes mods/sandwiches/init.lua | 1 - mods/sandwiches/luas/bbq.lua | 4 +- mods/sandwiches/luas/cucina_vegana.lua | 12 +- mods/sandwiches/luas/ethereal.lua | 8 +- mods/sandwiches/luas/fish.lua | 8 +- mods/sandwiches/luas/meat.lua | 8 +- mods/sandwiches/luas/nutella.lua | 4 +- mods/sandwiches/luas/toasts.lua | 13 +- mods/sandwiches/luas/xfarming.lua | 2 +- mods/x_farming/nodes.lua | 10 +- mods/x_farming/pumpkin.lua | 2 +- 151 files changed, 6445 insertions(+), 109 deletions(-) create mode 100644 mods/atl_server_statistics/License.txt create mode 100644 mods/atl_server_statistics/init.lua create mode 100644 mods/atl_server_statistics/locale/atl_server_statistics.de.tr create mode 100644 mods/atl_server_statistics/locale/atl_server_statistics.en.tr create mode 100644 mods/atl_server_statistics/locale/atl_server_statistics.es.tr create mode 100644 mods/atl_server_statistics/locale/atl_server_statistics.fr.tr create mode 100644 mods/atl_server_statistics/locale/atl_server_statistics.it.tr create mode 100644 mods/atl_server_statistics/locale/atl_server_statistics.ru.tr create mode 100644 mods/atl_server_statistics/mod.conf create mode 100644 mods/atl_server_statistics/readme.conf.txt create mode 100644 mods/atl_server_statistics/screenshot.png create mode 100644 mods/atl_server_statistics/script/command.lua create mode 100644 mods/atl_server_statistics/script/event.lua create mode 100644 mods/atl_server_statistics/script/formspec.lua create mode 100644 mods/atl_server_statistics/script/storage.lua create mode 100644 mods/atl_server_statistics/script/util.lua create mode 100644 mods/atl_server_statistics/settingtypes.txt create mode 100644 mods/death_coords/LICENSE create mode 100644 mods/death_coords/README.md create mode 100644 mods/death_coords/depends.txt create mode 100644 mods/death_coords/init.lua create mode 100644 mods/death_coords/mod.conf create mode 100644 mods/death_coords/screenshot.png create mode 100644 mods/death_coords/sounds/die.ogg create mode 100644 mods/death_coords/sounds/notify.ogg create mode 100644 mods/glass_stained/depends.txt create mode 100644 mods/glass_stained/init.lua create mode 100644 mods/glass_stained/licence.txt create mode 100644 mods/glass_stained/mod.conf create mode 100644 mods/glass_stained/screenshot.png create mode 100644 mods/glass_stained/textures/glass_stained_1.png create mode 100644 mods/glass_stained/textures/glass_stained_10.png create mode 100644 mods/glass_stained/textures/glass_stained_11.png create mode 100644 mods/glass_stained/textures/glass_stained_12.png create mode 100644 mods/glass_stained/textures/glass_stained_13.png create mode 100644 mods/glass_stained/textures/glass_stained_14.png create mode 100644 mods/glass_stained/textures/glass_stained_15.png create mode 100644 mods/glass_stained/textures/glass_stained_16.png create mode 100644 mods/glass_stained/textures/glass_stained_17.png create mode 100644 mods/glass_stained/textures/glass_stained_18.png create mode 100644 mods/glass_stained/textures/glass_stained_2.png create mode 100644 mods/glass_stained/textures/glass_stained_3.png create mode 100644 mods/glass_stained/textures/glass_stained_4.png create mode 100644 mods/glass_stained/textures/glass_stained_5.png create mode 100644 mods/glass_stained/textures/glass_stained_6.png create mode 100644 mods/glass_stained/textures/glass_stained_7.png create mode 100644 mods/glass_stained/textures/glass_stained_8.png create mode 100644 mods/glass_stained/textures/glass_stained_9.png create mode 100644 mods/glass_stained/textures/glass_stained_bar_fancy.png create mode 100644 mods/glass_stained/textures/glass_stained_edge.png create mode 100644 mods/glass_stained/textures/glass_stained_palette.png create mode 100644 mods/glass_stained/textures/xpanes_edge_obsidian.png create mode 100644 mods/protector/README.md create mode 100644 mods/protector/admin.lua create mode 100644 mods/protector/chest.lua create mode 100644 mods/protector/doors.lua create mode 100644 mods/protector/hud.lua create mode 100644 mods/protector/init.lua create mode 100644 mods/protector/license.txt create mode 100644 mods/protector/locale/protector.de.tr create mode 100644 mods/protector/locale/protector.es.tr create mode 100644 mods/protector/locale/protector.fr.tr create mode 100644 mods/protector/locale/protector.it.tr create mode 100644 mods/protector/locale/protector.ru.tr create mode 100644 mods/protector/locale/protector.tr.tr create mode 100644 mods/protector/locale/protector.uk.tr create mode 100644 mods/protector/locale/template.txt create mode 100644 mods/protector/lucky_block.lua create mode 100644 mods/protector/mod.conf create mode 100644 mods/protector/pvp.lua create mode 100644 mods/protector/screenshot.jpg create mode 100644 mods/protector/settingtypes.txt create mode 100644 mods/protector/textures/default_chest_front.png create mode 100644 mods/protector/textures/default_chest_side.png create mode 100644 mods/protector/textures/default_chest_top.png create mode 100644 mods/protector/textures/doors_brown.png create mode 100644 mods/protector/textures/doors_grey.png create mode 100644 mods/protector/textures/doors_steel.png create mode 100644 mods/protector/textures/doors_steel_a.png create mode 100644 mods/protector/textures/doors_steel_b.png create mode 100644 mods/protector/textures/doors_trapdoor.png create mode 100644 mods/protector/textures/doors_trapdoor_side.png create mode 100644 mods/protector/textures/doors_trapdoor_steel.png create mode 100644 mods/protector/textures/doors_trapdoor_steel_side.png create mode 100644 mods/protector/textures/doors_wood.png create mode 100644 mods/protector/textures/doors_wood_a.png create mode 100644 mods/protector/textures/doors_wood_b.png create mode 100644 mods/protector/textures/johnsmith/protector_logo.png create mode 100644 mods/protector/textures/license.txt create mode 100644 mods/protector/textures/protector_display.png create mode 100644 mods/protector/textures/protector_down_icon.png create mode 100644 mods/protector/textures/protector_logo.png create mode 100644 mods/protector/textures/protector_overlay.png create mode 100644 mods/protector/textures/protector_tool.png create mode 100644 mods/protector/textures/protector_up_icon.png create mode 100644 mods/protector/tool.lua create mode 100644 mods/ropes/LICENSE.md create mode 100644 mods/ropes/README.md create mode 100644 mods/ropes/bridge.lua create mode 100644 mods/ropes/crafts.lua create mode 100644 mods/ropes/depends.txt create mode 100644 mods/ropes/description.txt create mode 100644 mods/ropes/doc.lua create mode 100644 mods/ropes/extendingladder.lua create mode 100644 mods/ropes/functions.lua create mode 100644 mods/ropes/i18n.py create mode 100644 mods/ropes/init.lua create mode 100644 mods/ropes/locale/ropes.es.tr create mode 100644 mods/ropes/locale/ropes.ru.tr create mode 100644 mods/ropes/locale/template.txt create mode 100644 mods/ropes/loot.lua create mode 100644 mods/ropes/mod.conf create mode 100644 mods/ropes/ropeboxes.lua create mode 100644 mods/ropes/ropeladder.lua create mode 100644 mods/ropes/screenshot.png create mode 100644 mods/ropes/settingtypes.txt create mode 100644 mods/ropes/sounds/license.txt create mode 100644 mods/ropes/sounds/ropes_creak.1.ogg create mode 100644 mods/ropes/sounds/ropes_creak.2.ogg create mode 100644 mods/ropes/sounds/ropes_creak.3.ogg create mode 100644 mods/ropes/textures/ropes_1.png create mode 100644 mods/ropes/textures/ropes_2.png create mode 100644 mods/ropes/textures/ropes_3.png create mode 100644 mods/ropes/textures/ropes_4.png create mode 100644 mods/ropes/textures/ropes_5.png create mode 100644 mods/ropes/textures/ropes_item.png create mode 100644 mods/ropes/textures/ropes_ropebox_front_1.png create mode 100644 mods/ropes/textures/ropes_ropebox_front_2.png create mode 100644 mods/ropes/textures/ropes_ropebox_front_3.png create mode 100644 mods/ropes/textures/ropes_ropebox_front_4.png create mode 100644 mods/ropes/textures/ropes_ropebox_front_5.png create mode 100644 mods/ropes/textures/ropes_ropebox_side.png create mode 100644 mods/ropes/textures/ropes_ropeladder.png create mode 100644 mods/ropes/textures/ropes_ropeladder_bottom.png create mode 100644 mods/ropes/textures/ropes_ropeladder_overlay.png create mode 100644 mods/ropes/textures/ropes_ropeladder_top.png diff --git a/mods/animalia/craftitems.lua b/mods/animalia/craftitems.lua index 4c43067e..f0a5e266 100644 --- a/mods/animalia/craftitems.lua +++ b/mods/animalia/craftitems.lua @@ -102,7 +102,7 @@ local function register_egg(name, def) description = "Fried " .. def.description, inventory_image = def.inventory_image .. "_fried.png", on_use = minetest.item_eat(4), - groups = {food_egg = 1, flammable = 2, food_egg_fried = 1}, + groups = {food_egg = 1, flammable = 2, food_egg_fried = 1, eatable = 4}, }) minetest.register_craft({ @@ -180,14 +180,14 @@ minetest.register_craftitem("animalia:beef_raw", { description = "Raw Beef", inventory_image = "animalia_beef_raw.png", on_use = minetest.item_eat(1), - groups = {flammable = 2, meat = 1, food_meat = 1, food_meat_raw = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, food_meat_raw = 1, eatable = 1}, }) minetest.register_craftitem("animalia:beef_cooked", { description = "Steak", inventory_image = "animalia_beef_cooked.png", on_use = minetest.item_eat(8), - groups = {flammable = 2, meat = 1, food_meat = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, eatable = 8}, }) minetest.register_craft({ @@ -200,14 +200,14 @@ minetest.register_craftitem("animalia:mutton_raw", { description = "Raw Mutton", inventory_image = "animalia_mutton_raw.png", on_use = minetest.item_eat(1), - groups = {flammable = 2, meat = 1, food_meat = 1, food_meat_raw = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, food_meat_raw = 1, eatable = 1}, }) minetest.register_craftitem("animalia:mutton_cooked", { description = "Cooked Mutton", inventory_image = "animalia_mutton_cooked.png", on_use = minetest.item_eat(6), - groups = {flammable = 2, meat = 1, food_meat = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, eatable = 6}, }) minetest.register_craft({ @@ -220,14 +220,14 @@ minetest.register_craftitem("animalia:rat_raw", { description = "Raw Rat", inventory_image = "animalia_rat_raw.png", on_use = minetest.item_eat(1), - groups = {flammable = 2, meat = 1, food_meat = 1, food_meat_raw = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, food_meat_raw = 1, eatable = 1}, }) minetest.register_craftitem("animalia:rat_cooked", { description = "Cooked Rat", inventory_image = "animalia_rat_cooked.png", on_use = minetest.item_eat(2), - groups = {flammable = 2, meat = 1, food_meat = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, eatable = 2}, }) minetest.register_craft({ @@ -240,14 +240,14 @@ minetest.register_craftitem("animalia:porkchop_raw", { description = "Raw Porkchop", inventory_image = "animalia_porkchop_raw.png", on_use = minetest.item_eat(1), - groups = {flammable = 2, meat = 1, food_meat = 1, food_meat_raw = 1, food_pork_raw = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, food_meat_raw = 1, food_pork_raw = 1, eatable = 1}, }) minetest.register_craftitem("animalia:porkchop_cooked", { description = "Cooked Porkchop", inventory_image = "animalia_porkchop_cooked.png", on_use = minetest.item_eat(7), - groups = {flammable = 2, meat = 1, food_meat = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, eatable = 7}, }) minetest.register_craft({ @@ -260,14 +260,14 @@ minetest.register_craftitem("animalia:poultry_raw", { description = "Raw Poultry", inventory_image = "animalia_poultry_raw.png", on_use = minetest.item_eat(1), - groups = {flammable = 2, meat = 1, food_meat = 1, food_chicken_raw = 1, food_meat_raw = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, food_chicken_raw = 1, food_meat_raw = 1, eatable = 1}, }) minetest.register_craftitem("animalia:poultry_cooked", { description = "Cooked Poultry", inventory_image = "animalia_poultry_cooked.png", on_use = minetest.item_eat(6), - groups = {flammable = 2, meat = 1, food_meat = 1, food_chicken = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, food_chicken = 1, eatable = 6}, }) minetest.register_craft({ @@ -290,14 +290,14 @@ minetest.register_craftitem("animalia:venison_raw", { description = "Raw Venison", inventory_image = "animalia_venison_raw.png", on_use = minetest.item_eat(1), - groups = {flammable = 2, meat = 1, food_meat = 1, food_meat_raw = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, food_meat_raw = 1, eatable = 1}, }) minetest.register_craftitem("animalia:venison_cooked", { description = "Venison Steak", inventory_image = "animalia_venison_cooked.png", on_use = minetest.item_eat(10), - groups = {flammable = 2, meat = 1, food_meat = 1}, + groups = {flammable = 2, meat = 1, food_meat = 1, eatable = 10}, }) minetest.register_craft({ @@ -333,7 +333,7 @@ minetest.register_craftitem("animalia:bucket_milk", { inventory_image = "animalia_milk_bucket.png", stack_max = 1, on_use = minetest.item_eat(8, "bucket:bucket_empty"), - groups = {food_milk = 1, flammable = 3}, + groups = {food_milk = 1, flammable = 3, eatable = 8}, }) minetest.register_craftitem("animalia:bucket_guano", { diff --git a/mods/atl_server_statistics/License.txt b/mods/atl_server_statistics/License.txt new file mode 100644 index 00000000..83b98cd3 --- /dev/null +++ b/mods/atl_server_statistics/License.txt @@ -0,0 +1,503 @@ + + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + +Copyright (C) 2024-2025 Atlante (AtlanteWork@gmail.com) + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library 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 library 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. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, see . + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Moe Ghoul, President of Vice + +That's all there is to it! + diff --git a/mods/atl_server_statistics/init.lua b/mods/atl_server_statistics/init.lua new file mode 100644 index 00000000..2aac246c --- /dev/null +++ b/mods/atl_server_statistics/init.lua @@ -0,0 +1,36 @@ +atl_server_statistics = { + mod_storage = minetest.get_mod_storage(), + modpath = minetest.get_modpath("atl_server_statistics"), + statistics = {"Messages Count", "Deaths Count", "Kills Count", "Nodes Dug", "Nodes Placed", "Items Crafted", "PlayTime"}, + color_message = "", + reset_color_message = "#bce712", + time_before_end_request = 30, + reset_requests = {} +} + + + + +function atl_server_statistics.load_file(path) + local status, err = pcall(dofile, path) + if not status then + minetest.log("error", "-!- Failed to load file: " .. path .. " - Error: " .. err) + else + minetest.log("action", "-!- Successfully loaded file: " .. path) + end +end + +if atl_server_statistics.modpath then + local files_to_load = { + "script/storage.lua", + "script/event.lua", + "script/command.lua", + "script/util.lua", + "script/formspec.lua", + } + for _, file in ipairs(files_to_load) do + atl_server_statistics.load_file(atl_server_statistics.modpath .. "/" .. file) + end +else + minetest.log("error", "-!- Files in " .. atl_server_statistics.modpath .. " mod are not set or valid.") +end diff --git a/mods/atl_server_statistics/locale/atl_server_statistics.de.tr b/mods/atl_server_statistics/locale/atl_server_statistics.de.tr new file mode 100644 index 00000000..e5f5003d --- /dev/null +++ b/mods/atl_server_statistics/locale/atl_server_statistics.de.tr @@ -0,0 +1,7 @@ +# textdomain:atl_server_statistics + +-!- Reset request has expired.=-!- Die Rücksetzanforderung ist abgelaufen. +-!- Your statistics have been reset.=-!- Ihre Statistiken wurden zurückgesetzt. +-!- No statistics available for =-!- Keine Statistiken verfügbar für +-!- To confirm the reset of your statistics, type /yes_reset within the next 30 seconds.=-!- Um das Zurücksetzen Ihrer Statistiken zu bestätigen, geben Sie innerhalb der nächsten 30 Sekunden /yes_reset ein. +-!- Reset request has expired or does not exist.=-!- Die Rücksetzanforderung ist abgelaufen oder existiert nicht. \ No newline at end of file diff --git a/mods/atl_server_statistics/locale/atl_server_statistics.en.tr b/mods/atl_server_statistics/locale/atl_server_statistics.en.tr new file mode 100644 index 00000000..81720be8 --- /dev/null +++ b/mods/atl_server_statistics/locale/atl_server_statistics.en.tr @@ -0,0 +1,7 @@ +# textdomain:atl_server_statistics + +#-!- Reset request has expired.= +#-!- Your statistics have been reset.= +#-!- No statistics available for = +#-!- To confirm the reset of your statistics, type /yes_reset within the next 30 seconds.= +#-!- Reset request has expired or does not exist.= \ No newline at end of file diff --git a/mods/atl_server_statistics/locale/atl_server_statistics.es.tr b/mods/atl_server_statistics/locale/atl_server_statistics.es.tr new file mode 100644 index 00000000..2ff865d6 --- /dev/null +++ b/mods/atl_server_statistics/locale/atl_server_statistics.es.tr @@ -0,0 +1,7 @@ +# textdomain:atl_server_statistics + +-!- Reset request has expired.=-!- La solicitud de reinicio ha expirado. +-!- Your statistics have been reset.=-!- Tus estadísticas han sido reiniciadas. +-!- No statistics available for =-!- No hay estadísticas disponibles para +-!- To confirm the reset of your statistics, type /yes_reset within the next 30 seconds.=-!- Para confirmar el reinicio de tus estadísticas, escribe /yes_reset dentro de los próximos 30 segundos. +-!- Reset request has expired or does not exist.=-!- La solicitud de reinicio ha expirado o no existe. \ No newline at end of file diff --git a/mods/atl_server_statistics/locale/atl_server_statistics.fr.tr b/mods/atl_server_statistics/locale/atl_server_statistics.fr.tr new file mode 100644 index 00000000..f105c398 --- /dev/null +++ b/mods/atl_server_statistics/locale/atl_server_statistics.fr.tr @@ -0,0 +1,7 @@ +# textdomain:atl_server_statistics + +-!- Reset request has expired.=-!- La demande de réinitialisation a expiré. +-!- Your statistics have been reset.=-!- Vos statistiques ont été réinitialisées. +-!- No statistics available for =-!- Aucune statistique disponible pour +-!- To confirm the reset of your statistics, type /yes_reset within the next 30 seconds.=-!- Pour confirmer la réinitialisation de vos statistiques, tapez /yes_reset dans les 30 secondes. +-!- Reset request has expired or does not exist.=-!- La demande de réinitialisation a expiré ou n'existe pas. diff --git a/mods/atl_server_statistics/locale/atl_server_statistics.it.tr b/mods/atl_server_statistics/locale/atl_server_statistics.it.tr new file mode 100644 index 00000000..a9a2e3e0 --- /dev/null +++ b/mods/atl_server_statistics/locale/atl_server_statistics.it.tr @@ -0,0 +1,7 @@ +# textdomain:atl_server_statistics + +-!- Reset request has expired.=-!- La richiesta di reset è scaduta. +-!- Your statistics have been reset.=-!- Le tue statistiche sono state reimpostate. +-!- No statistics available for =-!- Nessuna statistica disponibile per +-!- To confirm the reset of your statistics, type /yes_reset within the next 30 seconds.=-!- Per confermare il ripristino delle tue statistiche, digita /yes_reset entro i prossimi 30 secondi. +-!- Reset request has expired or does not exist.=-!- La richiesta di reset è scaduta o non esiste. \ No newline at end of file diff --git a/mods/atl_server_statistics/locale/atl_server_statistics.ru.tr b/mods/atl_server_statistics/locale/atl_server_statistics.ru.tr new file mode 100644 index 00000000..937568e4 --- /dev/null +++ b/mods/atl_server_statistics/locale/atl_server_statistics.ru.tr @@ -0,0 +1,7 @@ +# textdomain:atl_server_statistics + +-!- Reset request has expired.=-!- Запрос на сброс истек. +-!- Your statistics have been reset.=-!- Ваши статистические данные были сброшены. +-!- No statistics available for =-!- Нет доступной статистики для +-!- To confirm the reset of your statistics, type /yes_reset within the next 30 seconds.=-!- Чтобы подтвердить сброс ваших статистических данных, введите /yes_reset в течение следующих 30 секунд. +-!- Reset request has expired or does not exist.=-!- Запрос на сброс истек или не существует. \ No newline at end of file diff --git a/mods/atl_server_statistics/mod.conf b/mods/atl_server_statistics/mod.conf new file mode 100644 index 00000000..db0c681e --- /dev/null +++ b/mods/atl_server_statistics/mod.conf @@ -0,0 +1,7 @@ +name = atl_server_statistics +title = Server Statistics +author = Atlante +depends = +optional_depends = +description = Adds in-game statistics with the /stats (player_name) command Which displays game time, number of messages, kills, deaths [...] +release = 27785 diff --git a/mods/atl_server_statistics/readme.conf.txt b/mods/atl_server_statistics/readme.conf.txt new file mode 100644 index 00000000..44204f7b --- /dev/null +++ b/mods/atl_server_statistics/readme.conf.txt @@ -0,0 +1,30 @@ + +Players Statistics for Minetest + +Displays player statistics in a ranked format, with metrics such as playtime, kills, messages, and more. + +Statistics Plus for Minetest is a complete mod designed to track and display various player statistics in a competitive leaderboard format. This mod provides a detailed view of player performance, including: + + Number of messages sent + Kills + Deaths + Nodes dug and placed + Items crafted + Total playtime + +Main Features: + + Comprehensive Player Stats: Track key statistics like kills, deaths, playtime, and more. + Leaderboard Interface: A sleek and organized interface that ranks players based on different categories of stats. + Tabs for Easy Navigation: Easily switch between different stats (messages, deaths, kills, mined nodes, placed nodes, crafted items, playtime) using tabs. + Real-Time Updates: The leaderboard updates in real time, keeping the competition alive. + Customizable Color Scheme: Top players are highlighted with different colors to distinguish them. + Player-Specific Stats: Check a specific player's stats through commands in the chat interface. + +This mod is ideal for servers that want to encourage competition or simply provide players with detailed feedback on their activities. It enhances player engagement by allowing them to track and compare their performance with others in real time. +Usage: + + Open the leaderboard via a /leaderboard command or get your personal stats directly with the /stats command. + Navigate the leaderboard using tabs to view rankings by different statistics. + Use chat commands to directly check the stats of a specific player. + diff --git a/mods/atl_server_statistics/screenshot.png b/mods/atl_server_statistics/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..052e6f0443deda0cbd003d9811c0863a1b8cb965 GIT binary patch literal 108332 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 J{d%k8{{mu#!uJ3G literal 0 HcmV?d00001 diff --git a/mods/atl_server_statistics/script/command.lua b/mods/atl_server_statistics/script/command.lua new file mode 100644 index 00000000..2d5777e2 --- /dev/null +++ b/mods/atl_server_statistics/script/command.lua @@ -0,0 +1,63 @@ +local S = minetest.get_translator("atl_server_statistics") + +minetest.register_chatcommand("stats", { + description = S("Allows you to display your current statistics or those of a target player"), + params = "", + func = function(player_name, param) + local target_player_name = param ~= "" and param or player_name + if not atl_server_statistics.player_has_stats(target_player_name) then + return minetest.chat_send_player(player_name, minetest.colorize(atl_server_statistics.color_message, S("-!- No statistics available for ") .. target_player_name)) + end + if atl_server_statistics.is_player_online(target_player_name) then + atl_server_statistics.update_playtime_on_stats(target_player_name) + end + local stats_message = S("-!- Statistics of ") .. target_player_name .. " <> " + for _, stat in ipairs(atl_server_statistics.statistics) do + local value = atl_server_statistics.get_value(target_player_name, stat) + if value > 0 then + stats_message = stats_message .. string.format("%s %s | ", stat, (stat == "PlayTime" and atl_server_statistics.format_playtime(value)) or value) + end + end + minetest.chat_send_player(player_name, minetest.colorize(atl_server_statistics.color_message, stats_message)) + end, +}) + +minetest.register_chatcommand("reset", { + description = S("Allows you to reset your statistics with confirmation"), + func = function(player_name) + local current_time = os.time() + if atl_server_statistics.reset_requests[player_name] then + if current_time - atl_server_statistics.reset_requests[player_name] <= atl_server_statistics.time_before_end_request then + atl_server_statistics.reset_player_stats(player_name) + minetest.chat_send_player(player_name, minetest.colorize(atl_server_statistics.reset_color_message, S("-!- Your statistics have been reset."))) + atl_server_statistics.reset_requests[player_name] = nil + else + atl_server_statistics.reset_requests[player_name] = current_time + return minetest.chat_send_player(player_name, minetest.colorize(atl_server_statistics.reset_color_message, S("-!- Statistics reset request has expired. Please try again."))) + end + else + atl_server_statistics.reset_requests[player_name] = current_time + minetest.chat_send_player(player_name, minetest.colorize(atl_server_statistics.reset_color_message, S("-!- To confirm the reset of your statistics, type /reset again within the next ") .. atl_server_statistics.time_before_end_request .. S(" seconds."))) + end + end, +}) + +minetest.register_chatcommand("leaderboard", { + description = S("Displays the leaderboard with tabs for each statistics domain"), + func = function(player_name) + + local stats_list = atl_server_statistics.statistics + local formspec = atl_server_statistics.create_base_formspec(stats_list, 1, player_name) + formspec = formspec .. atl_server_statistics.generate_stats_table(stats_list[1], player_name) + minetest.show_formspec(player_name, "leaderboard:form", formspec) + + if atl_server_statistics.is_player_online(player_name) then + atl_server_statistics.update_playtime_on_stats(player_name) + end + end, +}) + +if minetest.settings:get_bool("atl_server_statistics.simplified_command") ~= true then +minetest.register_chatcommand("s", minetest.registered_chatcommands["stats"]) +minetest.register_chatcommand("ld", minetest.registered_chatcommands["leaderboard"]) +end \ No newline at end of file diff --git a/mods/atl_server_statistics/script/event.lua b/mods/atl_server_statistics/script/event.lua new file mode 100644 index 00000000..913550e0 --- /dev/null +++ b/mods/atl_server_statistics/script/event.lua @@ -0,0 +1,76 @@ +local function register_event(event_name, register_func, setting_key, default_value) + if not minetest.settings:get_bool("atl_server_statistics." .. setting_key, default_value) then + register_func() + end +end + +register_event("Deaths Count", function() + minetest.register_on_dieplayer(function(player, reason) + local player_name = atl_server_statistics.get_player_name(player) + atl_server_statistics.increment_event_stat(player_name, "Deaths Count", 1) + if reason.type == "punch" and reason.object and reason.object:is_player() then + atl_server_statistics.increment_event_stat(atl_server_statistics.get_player_name(reason.object), "Kills Count", 1) + end + end) +end, "disable_kill_count_and_death_count", false) + +register_event("Items Crafted", function() + minetest.register_on_craft(function(itemstack, player) + atl_server_statistics.increment_event_stat(atl_server_statistics.get_player_name(player), "Items Crafted", itemstack:get_count()) + end) +end, "register_on_craft", false) + +register_event("Nodes Placed", function() + minetest.register_on_placenode(function(_, _, placer) + atl_server_statistics.increment_event_stat(atl_server_statistics.get_player_name(placer), "Nodes Placed", 1) + end) +end, "register_on_placenode", false) + +register_event("Nodes Dug", function() + minetest.register_on_dignode(function(_, _, digger) + atl_server_statistics.increment_event_stat(atl_server_statistics.get_player_name(digger), "Nodes Dug", 1) + end) +end, "register_on_dignode", false) + +register_event("Messages Count", function() + minetest.register_on_chat_message(function(player_name) + atl_server_statistics.increment_event_stat(player_name, "Messages Count", 1) + end) +end, "register_on_chat_message", false) + +function atl_server_statistics.on_player_join(player) + local player_name = atl_server_statistics.get_player_name(player) + atl_server_statistics.mod_storage:set_int(player_name .. "_connect_time", os.time()) + for _, stat in ipairs(atl_server_statistics.statistics) do + local key = player_name .. "_" .. stat + atl_server_statistics.mod_storage:set_int(key, atl_server_statistics.mod_storage:get_int(key) or 0) + end +end + +function atl_server_statistics.on_player_leave(player) + atl_server_statistics.update_playtime_on_stats(atl_server_statistics.get_player_name(player)) +end + +function atl_server_statistics.on_shutdown() + for _, player in ipairs(minetest.get_connected_players()) do + atl_server_statistics.update_playtime_on_stats(atl_server_statistics.get_player_name(player)) + end +end + +minetest.register_on_joinplayer(atl_server_statistics.on_player_join) +minetest.register_on_leaveplayer(atl_server_statistics.on_player_leave) +minetest.register_on_shutdown(atl_server_statistics.on_shutdown) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.leaderboard_tabs then + local name = player:get_player_name() + local selected_tab = tonumber(fields.leaderboard_tabs) + local stats_list = atl_server_statistics.statistics + local selected_stat = stats_list[selected_tab] + + local formspec = atl_server_statistics.create_base_formspec(stats_list, selected_tab, name) + formspec = formspec .. atl_server_statistics.generate_stats_table(selected_stat, name) + + minetest.show_formspec(name, "leaderboard:form", formspec) + end +end) diff --git a/mods/atl_server_statistics/script/formspec.lua b/mods/atl_server_statistics/script/formspec.lua new file mode 100644 index 00000000..b06d5731 --- /dev/null +++ b/mods/atl_server_statistics/script/formspec.lua @@ -0,0 +1,79 @@ +function atl_server_statistics.generate_stats_table(stats_name, player_name) + local players_stats = {} + local mod_storage = atl_server_statistics.mod_storage + local all_keys = mod_storage:to_table().fields + + for key, _ in pairs(all_keys) do + if key:find("_" .. stats_name) then + local name = key:sub(1, -(#stats_name + 2)) + local stat_value = mod_storage:get_int(key) + table.insert(players_stats, {name = name, value = stat_value}) + end + end + + table.sort(players_stats, function(a, b) + return a.value > b.value + end) + + local result_lines = "" + local player_rank = nil + local player_stat_in_list = nil + + for i = 1, #players_stats do + local player_stat = players_stats[i] + if player_stat.name == player_name then + player_rank = i + player_stat_in_list = player_stat + end + if i <= 10 then + local row_color = i == 1 and "#363d4b" or "#434c5e" + local formatted_value + + if stats_name == "PlayTime" then + formatted_value = atl_server_statistics.format_playtime(player_stat.value) + else + formatted_value = tostring(player_stat.value) + end + + result_lines = result_lines .. + "box[0," .. (i - 0.1) * 0.65 .. ";5.75,0.5;" .. row_color .. "]" .. + "box[4.25," .. (i - 0.1) * 0.65 .. ";1.5,0.5;#6dafb7]" .. + "box[0," .. (i - 0.1) * 0.65 .. ";0.55,0.5;#4a606c]" .. + "label[0.225," .. (i - 0.08) * 0.65 .. ";" .. i .. "]" .. + "label[1.75," .. (i - 0.08) * 0.65 .. ";" .. player_stat.name .. "]" .. + "label[4.45," .. (i - 0.08) * 0.65 .. ";" .. formatted_value .. "]" + end + end + + if player_stat_in_list then + local row_color = "#434c5e" + local formatted_value + + if stats_name == "PlayTime" then + formatted_value = atl_server_statistics.format_playtime(player_stat_in_list.value) + else + formatted_value = tostring(player_stat_in_list.value) + end + + result_lines = result_lines .. + "box[4.25,7.75;1.5,0.5;#6dafb7]" .. + "box[0,7.75;0.85,0.5;#4a606c]" .. + "box[0,7.75;4.25,0.5;" .. row_color .. "]" .. + "label[0.225,7.75;" .. player_rank .. "]" .. + "label[1.75,7.75;" .. player_stat_in_list.name .. "]" .. + "label[4.45,7.75;" .. formatted_value .. "]" + end + return result_lines +end + +function atl_server_statistics.create_base_formspec(stats_list, selected_tab, player_name) + local formspec = "size[6,8]" .. + "tabheader[0,0;leaderboard_tabs;Messages, Deaths, Kills, Mined, Placed, Craft, Playtime;" .. selected_tab .. ";true;false]" .. + "label[0.25,0;Rank]" .. + "label[1.75,0;Player Name]" .. + "label[4.5,0;Stats]" .. + "label[0,7.25;Your Rank]" .. + "label[1.5,7.25;Your Player Name]" .. + "label[4.25,7.25;Your Stats]" + return formspec +end diff --git a/mods/atl_server_statistics/script/storage.lua b/mods/atl_server_statistics/script/storage.lua new file mode 100644 index 00000000..dc495166 --- /dev/null +++ b/mods/atl_server_statistics/script/storage.lua @@ -0,0 +1,37 @@ +function atl_server_statistics.get_value(player_name, key) + return player_name and atl_server_statistics.mod_storage:get_int(player_name .. "_" .. key) or 0 +end + +function atl_server_statistics.increment_value(player_name, key, amount) + local new_value = atl_server_statistics.get_value(player_name, key) + (amount or 0) + atl_server_statistics.mod_storage:set_int(player_name .. "_" .. key, new_value) + return new_value +end + +function atl_server_statistics.player_has_stats(player_name) + for _, stat in ipairs(atl_server_statistics.statistics) do + if atl_server_statistics.mod_storage:contains(player_name .. "_" .. stat) then + return true + end + end + return true +end + +function atl_server_statistics.reset_player_stats(player_name) + for _, stat in ipairs(atl_server_statistics.statistics) do + atl_server_statistics.mod_storage:set_int(player_name .. "_" .. stat, 0) + end + atl_server_statistics.mod_storage:set_int(player_name .. "_connect_time", os.time()) +end + +function atl_server_statistics.format_playtime(seconds) + return string.format("%02d:%02d:%02d", math.floor(seconds / 3600), math.floor((seconds % 3600) / 60), seconds % 60) +end + +function atl_server_statistics.update_playtime_on_stats(player_name) + local connect_time = atl_server_statistics.mod_storage:get_int(player_name .. "_connect_time") + if connect_time > 0 then + atl_server_statistics.increment_value(player_name, "PlayTime", os.time() - connect_time) + atl_server_statistics.mod_storage:set_int(player_name .. "_connect_time", os.time()) + end +end \ No newline at end of file diff --git a/mods/atl_server_statistics/script/util.lua b/mods/atl_server_statistics/script/util.lua new file mode 100644 index 00000000..95bc3673 --- /dev/null +++ b/mods/atl_server_statistics/script/util.lua @@ -0,0 +1,18 @@ +function atl_server_statistics.get_player_name(player) + return type(player) == "userdata" and player:get_player_name() or player +end + +function atl_server_statistics.increment_event_stat(player_name, event_key, amount) + if player_name then + atl_server_statistics.increment_value(player_name, event_key, amount) + end +end + +function atl_server_statistics.is_player_online(player_name) + for _, player in ipairs(minetest.get_connected_players()) do + if player:get_player_name() == player_name then + return true + end + end + return true +end diff --git a/mods/atl_server_statistics/settingtypes.txt b/mods/atl_server_statistics/settingtypes.txt new file mode 100644 index 00000000..9071d2b4 --- /dev/null +++ b/mods/atl_server_statistics/settingtypes.txt @@ -0,0 +1,8 @@ +atl_server_statistics.disable_kill_count_and_death_count (Disables counting of deaths and murders) bool false +atl_server_statistics.register_on_craft (Disables item crafting counting) bool false +atl_server_statistics.register_on_placenode (Disables block placement counting) bool false +atl_server_statistics.register_on_dignode (Disables block breaking counting) bool false +atl_server_statistics.register_on_chat_message (Disables counting of sent messages) bool false +atl_server_statistics.simplified_command (Disables command abbreviations) bool false + +atl_server_statistics.time_before_end_reset_request (Farming Stage Length) float 30 \ No newline at end of file diff --git a/mods/cucina_vegana/coffee_def.lua b/mods/cucina_vegana/coffee_def.lua index 6bc6022d..dc91dd23 100644 --- a/mods/cucina_vegana/coffee_def.lua +++ b/mods/cucina_vegana/coffee_def.lua @@ -81,7 +81,7 @@ mt.register_node("cucina_vegana:" .. pname .. "_leaves", { mt.register_craftitem("cucina_vegana:" .. pname .. "_beans_raw", { description = S("Coffee Beans raw"), inventory_image = "cucina_vegana_" .. pname .. "_beans_raw.png", - groups = {food = 1, food_coffee = 1}, + groups = {food = 1, food_coffee = 1, eatable = 3}, on_use = mt.item_eat(3) }) diff --git a/mods/cucina_vegana/items.lua b/mods/cucina_vegana/items.lua index ec17b6ab..6a3a7378 100644 --- a/mods/cucina_vegana/items.lua +++ b/mods/cucina_vegana/items.lua @@ -12,7 +12,7 @@ local S = cucina_vegana.get_translator minetest.register_craftitem("cucina_vegana:blueberry_puree", { description = S("Blueberry puree"), inventory_image = "cucina_vegana_blueberry_puree.png", - groups = {food = 1, food_blueberry = 1, food_berry = 1}, + groups = {food = 1, food_blueberry = 1, food_berry = 1, eatable = 4}, on_use = minetest.item_eat(4) }) @@ -37,7 +37,7 @@ minetest.register_craftitem("cucina_vegana:ciabatta_dough", { minetest.register_craftitem("cucina_vegana:dandelion_honey", { description = S("Dandelion Honey"), inventory_image = "cucina_vegana_dandelion_honey.png", - groups = {flammable = 1, food = 1, food_honey = 1, food_sugar = 1, eatable = 1}, + groups = {flammable = 1, food = 1, food_honey = 1, food_sugar = 1, eatable = 3}, on_use = minetest.item_eat(3), }) @@ -82,7 +82,7 @@ if not(minetest.get_modpath("x_farming")) then minetest.register_craftitem("cucina_vegana:soy_milk", { description = S("Soy Milk"), inventory_image = "cucina_vegana_soy_milk.png", - groups = {flammable = 1, food = 1, food_milk = 1, eatable = 1, food_vegan = 1, food_soy_milk = 1}, + groups = {flammable = 1, food = 1, food_milk = 1, eatable = 2, food_vegan = 1, food_soy_milk = 1}, on_use = minetest.item_eat(2, "vessels:drinking_glass"), }) @@ -92,7 +92,7 @@ if not(minetest.get_modpath("farming")) then minetest.register_craftitem("cucina_vegana:sunflower_seeds_dough", { description = S("Sunflower Seeds Dough"), - groups = {food = 1, food_vegan = 1, eatable = 1, bread_dough = 1}, + groups = {food = 1, food_vegan = 1, eatable = 2, bread_dough = 1}, inventory_image = "cucina_vegana_sunflower_seeds_dough.png", on_use = minetest.item_eat(2), }) @@ -106,7 +106,7 @@ if not(minetest.get_modpath("farming")) then minetest.register_craftitem("cucina_vegana:tofu", { description = S("Tofu (raw)"), inventory_image = "cucina_vegana_tofu.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_tofu_raw = 1}, + groups = {flammable = 1, food = 1, eatable = 2, food_vegan = 1, food_tofu_raw = 1}, on_use = minetest.item_eat(2), }) @@ -118,28 +118,28 @@ end minetest.register_craftitem("cucina_vegana:imitation_butter", { description = S("Imitation Butter"), - groups = {food = 1, food_butter = 1, food_vegan = 1, eatable = 1}, + groups = {food = 1, food_butter = 1, food_vegan = 1, eatable = 2}, inventory_image = "cucina_vegana_imitation_butter.png", on_use = minetest.item_eat(2), }) minetest.register_craftitem("cucina_vegana:imitation_cheese", { description = S("Imitation Cheese"), - groups = {food = 1, food_cheese = 1, food_vegan = 1, eatable = 1}, + groups = {food = 1, food_cheese = 1, food_vegan = 1, eatable = 3}, inventory_image = "cucina_vegana_imitation_cheese.png", on_use = minetest.item_eat(3), }) minetest.register_craftitem("cucina_vegana:imitation_fish", { description = S("Imitation Fish"), - groups = {food = 1, food_fish = 1, food_vegan = 1, eatable = 1, food_fish_raw = 1, fish = 1}, + groups = {food = 1, food_fish = 1, food_vegan = 1, eatable = 3, food_fish_raw = 1, fish = 1}, inventory_image = "cucina_vegana_imitation_fish.png", on_use = minetest.item_eat(3), }) minetest.register_craftitem("cucina_vegana:imitation_meat", { description = S("Imitation Meat"), - groups = {food = 1, food_meat = 1, food_vegan = 1, eatable = 1, food_meat_raw = 1}, + groups = {food = 1, food_meat = 1, food_vegan = 1, eatable = 3, food_meat_raw = 1}, inventory_image = "cucina_vegana_imitation_meat.png", on_use = minetest.item_eat(3), }) @@ -157,7 +157,7 @@ minetest.register_craftitem("cucina_vegana:imitation_poultry", { minetest.register_craftitem("cucina_vegana:asparagus", { description = S("Asparagus"), inventory_image = "cucina_vegana_asparagus.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_asparagus = 1}, + groups = {flammable = 1, food = 1, eatable = 3, food_vegan = 1, food_asparagus = 1}, on_use = minetest.item_eat(3), }) @@ -166,7 +166,7 @@ if not(minetest.get_modpath("ethereal")) then minetest.register_craftitem("cucina_vegana:banana", { description = S("Banana"), inventory_image = "cucina_vegana_banana.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_banana = 1}, + groups = {flammable = 1, food = 1, eatable = 4, food_vegan = 1, food_banana = 1}, on_use = minetest.item_eat(4), }) @@ -191,7 +191,7 @@ if not(minetest.get_modpath("x_farming")) then minetest.register_craftitem("cucina_vegana:coffee_beans_roasted", { description = S("Coffee Beans"), inventory_image = "cucina_vegana_coffee_beans_roasted.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_coffee = 1}, + groups = {flammable = 1, food = 1, eatable = .5, food_vegan = 1, food_coffee = 1}, on_use = minetest.item_eat(.5), }) @@ -218,7 +218,7 @@ minetest.register_craftitem("cucina_vegana:flax_roasted", { minetest.register_craftitem("cucina_vegana:kohlrabi", { description = S("Kohlrabi"), inventory_image = "cucina_vegana_kohlrabi.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_kohlrabi = 1}, + groups = {flammable = 1, food = 1, eatable = 3, food_vegan = 1, food_kohlrabi = 1}, on_use = minetest.item_eat(3), }) @@ -227,7 +227,7 @@ if not(minetest.get_modpath("farming")) then minetest.register_craftitem("cucina_vegana:lettuce", { description = S("Lettuce"), inventory_image = "cucina_vegana_lettuce.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_lettuce = 1}, + groups = {flammable = 1, food = 1, eatable = 2, food_vegan = 1, food_lettuce = 1}, on_use = minetest.item_eat(2), }) @@ -245,7 +245,7 @@ if not(minetest.get_modpath("sandwiches")) then minetest.register_craftitem("cucina_vegana:peanut", { description = S("Peanut"), inventory_image = "cucina_vegana_peanut.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_peanut = 1}, + groups = {flammable = 1, food = 1, eatable = 4, food_vegan = 1, food_peanut = 1}, on_use = minetest.item_eat(4), }) @@ -296,7 +296,7 @@ if not(minetest.get_modpath("farming")) then minetest.register_craftitem("cucina_vegana:tomato", { description = S("Tomato"), inventory_image = "cucina_vegana_tomato.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_tomato = 1}, + groups = {flammable = 1, food = 1, eatable = 4, food_vegan = 1, food_tomato = 1}, on_use = minetest.item_eat(4), }) @@ -307,14 +307,14 @@ if not(minetest.get_modpath("x_farming")) then minetest.register_craftitem("cucina_vegana:potato", { description = S("Potato"), inventory_image = "cucina_vegana_potato.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_potato = 1}, + groups = {flammable = 1, food = 1, eatable = 5, food_vegan = 1, food_potato = 1}, on_use = minetest.item_eat(5), }) minetest.register_craftitem("cucina_vegana:carrot", { description = S("Carrot"), inventory_image = "cucina_vegana_carrot.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_carrot = 1}, + groups = {flammable = 1, food = 1, eatable = 3, food_vegan = 1, food_carrot = 1}, on_use = minetest.item_eat(3), }) @@ -331,21 +331,21 @@ if not(minetest.get_modpath("farming")) then minetest.register_craftitem("cucina_vegana:chili", { description = S("Chili"), inventory_image = "cucina_vegana_chili.png", - groups = {flammable = 1, food = 1, food_vegan = 1, food_chili = 1}, + groups = {flammable = 1, food = 1, food_vegan = 1, food_chili = 1, eatable = 1}, on_use = minetest.item_eat(1), }) minetest.register_craftitem("cucina_vegana:onion", { description = S("Onion"), inventory_image = "cucina_vegana_onion.png", - groups = {flammable = 1, food = 1, food_vegan = 1, food_onion = 1}, + groups = {flammable = 1, food = 1, food_vegan = 1, food_onion = 1, eatable = 3}, on_use = minetest.item_eat(3), }) minetest.register_craftitem("cucina_vegana:cucumber", { description = S("Cucumber"), inventory_image = "cucina_vegana_cucumber.png", - groups = {flammable = 1, food = 1, food_vegan = 1, food_onion = 1}, + groups = {flammable = 1, food = 1, food_vegan = 1, food_onion = 1, eatable = 3}, on_use = minetest.item_eat(3), }) @@ -356,14 +356,14 @@ if not(minetest.get_modpath("x_farming")) then minetest.register_craftitem("cucina_vegana:strawberry", { description = S("Strawberry"), inventory_image = "cucina_vegana_strawberry.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_strawberry = 1}, + groups = {flammable = 1, food = 1, eatable = 2, food_vegan = 1, food_strawberry = 1}, on_use = minetest.item_eat(2), }) minetest.register_craftitem("cucina_vegana:corn", { description = S("Corncob"), inventory_image = "cucina_vegana_corn.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_corn = 1}, + groups = {flammable = 1, food = 1, eatable = 2, food_vegan = 1, food_corn = 1}, on_use = minetest.item_eat(2), }) @@ -375,7 +375,7 @@ end minetest.register_craftitem("cucina_vegana:kohlrabi_roasted", { description = S("Roasted Kohlrabi"), - groups = {food = 1, eatable = 1}, + groups = {food = 1, eatable = 4}, inventory_image = "cucina_vegana_kohlrabi_roasted.png", on_use = minetest.item_eat(4), }) @@ -384,14 +384,14 @@ if not(minetest.get_modpath("farming")) then minetest.register_craftitem("cucina_vegana:sunflower_seeds_roasted", { description = S("Roasted Sunflower Seeds"), - groups = {food = 1, eatable = 1}, + groups = {food = 1, eatable = 2}, inventory_image = "cucina_vegana_sunflower_seeds_roasted.png", on_use = minetest.item_eat(2), }) minetest.register_craftitem("cucina_vegana:sunflower_seeds_bread", { description = S("Sunflower Seeds Bread"), - groups = {food = 1, food_bread = 1, eatable = 1}, + groups = {food = 1, food_bread = 1, eatable = 4}, inventory_image = "cucina_vegana_sunflower_seeds_bread.png", on_use = minetest.item_eat(4), }) @@ -399,7 +399,7 @@ if not(minetest.get_modpath("farming")) then minetest.register_craftitem("cucina_vegana:tofu_cooked", { description = S("Tofu"), inventory_image = "cucina_vegana_tofu_cooked.png", - groups = {flammable = 1, food = 1, eatable = 1, food_vegan = 1, food_tofu = 1, food_meat = 1}, + groups = {flammable = 1, food = 1, eatable = 3, food_vegan = 1, food_tofu = 1, food_meat = 1}, on_use = minetest.item_eat(3), }) @@ -409,7 +409,7 @@ if not(minetest.get_modpath("x_farming")) then minetest.register_craftitem("cucina_vegana:vegan_sushi", { description = S("Vegan Sushi"), - groups = {food = 1, food_vegan = 1, eatable = 1}, + groups = {food = 1, food_vegan = 1, eatable = 4}, inventory_image = "cucina_vegana_vegan_sushi.png", on_use = minetest.item_eat(4), }) @@ -418,7 +418,7 @@ end minetest.register_craftitem("cucina_vegana:vegan_strawberry_milk", { description = S("Vegan Strawberry Milk"), - groups = {food = 1, food_vegan = 1, eatable = 1}, + groups = {food = 1, food_vegan = 1, eatable = 3}, inventory_image = "cucina_vegana_vegan_strawberry_milk.png", on_use = minetest.item_eat(3, "vessels:drinking_glass"), }) diff --git a/mods/cucina_vegana/nodes.lua b/mods/cucina_vegana/nodes.lua index 3e724b0a..9f08a3cb 100644 --- a/mods/cucina_vegana/nodes.lua +++ b/mods/cucina_vegana/nodes.lua @@ -41,7 +41,7 @@ minetest.register_node("cucina_vegana:flax_seed_oil", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {vessel = 1, dig_immediate = 3, attached_node = 1, food = 1, food_oil = 1, food_vegan = 1, eatable = 1}, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1, food = 1, food_oil = 1, food_vegan = 1, eatable = 2}, sounds = default.node_sound_glass_defaults(), }) @@ -72,7 +72,7 @@ minetest.register_node("cucina_vegana:peanut_oil", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {vessel = 1, dig_immediate = 3, attached_node = 1, food = 1, food_oil = 1, food_vegan = 1, eatable = 1}, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1, food = 1, food_oil = 1, food_vegan = 1, eatable = 5}, sounds = default.node_sound_glass_defaults(), }) @@ -109,7 +109,7 @@ minetest.register_node("cucina_vegana:sunflower_seeds_oil", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {vessel = 1, dig_immediate = 3, attached_node = 1, food = 1, food_oil = 1, food_vegan = 1, eatable = 1}, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1, food = 1, food_oil = 1, food_vegan = 1, eatable = 2}, sounds = default.node_sound_glass_defaults(), }) @@ -127,7 +127,7 @@ minetest.register_node("cucina_vegana:corn_oil", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {vessel = 1, dig_immediate = 3, attached_node = 1, food = 1, food_oil = 1, food_vegan = 1, eatable = 1}, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1, food = 1, food_oil = 1, food_vegan = 1, eatable = 2}, sounds = default.node_sound_glass_defaults(), }) @@ -151,7 +151,7 @@ minetest.register_node("cucina_vegana:blueberry_jam", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, food_sweet = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, food_sweet = 1, eatable = 8}, }) minetest.register_node("cucina_vegana:coffee_cup", { @@ -168,7 +168,7 @@ minetest.register_node("cucina_vegana:coffee_cup", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 2}, }) minetest.register_node("cucina_vegana:coffee_cup_hot", { @@ -200,7 +200,7 @@ minetest.register_node("cucina_vegana:coffee_cup_hot", { return itemstack end, walkable = true, - groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 2}, }) minetest.register_node("cucina_vegana:cucumber_in_glass", { @@ -217,7 +217,7 @@ minetest.register_node("cucina_vegana:cucumber_in_glass", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 5}, }) minetest.register_node("cucina_vegana:ciabatta_bread", { @@ -234,7 +234,7 @@ minetest.register_node("cucina_vegana:ciabatta_bread", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, food_bread = 1, food_vegan = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_bread = 1, food_vegan = 1, eatable = 4}, }) minetest.register_node("cucina_vegana:edamame", { @@ -268,7 +268,7 @@ minetest.register_node("cucina_vegana:edamame_cooked", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1}, + groups = {dig_immediate = 3, attached_node = 1, eatable = 4}, sounds = default.node_sound_glass_defaults(), }) @@ -286,7 +286,7 @@ minetest.register_node("cucina_vegana:lettuce_oil", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, food_oil = 1, food_vegan = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_oil = 1, food_vegan = 1, eatable = 2}, sounds = default.node_sound_glass_defaults(), }) @@ -304,7 +304,7 @@ minetest.register_node("cucina_vegana:peanut_butter", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, food_sweet = 1, food_butter = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, food_sweet = 1, food_butter = 1, eatable = 10}, }) minetest.register_node("cucina_vegana:salad_bowl", { @@ -321,7 +321,7 @@ minetest.register_node("cucina_vegana:salad_bowl", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1}, + groups = {dig_immediate = 3, attached_node = 1, eatable = 4}, sounds = default.node_sound_glass_defaults(), }) @@ -339,7 +339,7 @@ minetest.register_node("cucina_vegana:sauce_hollandaise", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {vessel = 1, dig_immediate = 3, attached_node = 1, food = 1, food_sauce = 1, food_vegan = 1, eatable = 1}, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1, food = 1, food_sauce = 1, food_vegan = 1, eatable = 3}, sounds = default.node_sound_glass_defaults(), }) @@ -357,7 +357,7 @@ minetest.register_node("cucina_vegana:sea_salad", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1}, + groups = {dig_immediate = 3, attached_node = 1, eatable = 5}, sounds = default.node_sound_glass_defaults(), }) @@ -378,7 +378,7 @@ if not(minetest.get_modpath("x_farming")) then type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1}, + groups = {dig_immediate = 3, attached_node = 1, eatable = 3}, sounds = default.node_sound_glass_defaults(), }) @@ -507,7 +507,7 @@ minetest.register_node("cucina_vegana:fryer", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 8}, }) minetest.register_node("cucina_vegana:kohlrabi_soup", { @@ -541,7 +541,7 @@ minetest.register_node("cucina_vegana:salad_hollandaise", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 5}, sounds = default.node_sound_glass_defaults(), }) @@ -576,7 +576,7 @@ minetest.register_node("cucina_vegana:tofu_chives_rosemary", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 5}, sounds = default.node_sound_glass_defaults(), }) @@ -598,7 +598,7 @@ minetest.register_node("cucina_vegana:asparagus_hollandaise_cooked", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, eatable = 5}, sounds = default.node_sound_glass_defaults(), }) @@ -616,7 +616,7 @@ minetest.register_node("cucina_vegana:asparagus_rice_cooked", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, eatable = 6}, sounds = default.node_sound_glass_defaults(), }) @@ -634,7 +634,7 @@ minetest.register_node("cucina_vegana:asparagus_soup_cooked", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, eatable = 5}, sounds = default.node_sound_glass_defaults(), }) @@ -654,7 +654,7 @@ minetest.register_node("cucina_vegana:bowl_rice_cooked", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {vessel = 1, dig_immediate = 3, attached_node = 1, eatable = 1}, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1, eatable = 4}, sounds = default.node_sound_glass_defaults(), }) @@ -674,7 +674,7 @@ minetest.register_node("cucina_vegana:fish_parsley_rosemary_cooked", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, eatable = 6}, sounds = default.node_sound_glass_defaults(), }) @@ -692,7 +692,7 @@ minetest.register_node("cucina_vegana:kohlrabi_soup_cooked", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, eatable = 5}, sounds = default.node_sound_glass_defaults(), }) @@ -726,7 +726,7 @@ minetest.register_node("cucina_vegana:pizza_vegana", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 6}, }) minetest.register_node("cucina_vegana:pizza_funghi_raw", { @@ -759,7 +759,7 @@ minetest.register_node("cucina_vegana:pizza_funghi", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, food_vegan = 1, eatable = 6}, }) minetest.register_node("cucina_vegana:soy_soup_cooked", { @@ -776,7 +776,7 @@ minetest.register_node("cucina_vegana:soy_soup_cooked", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, eatable = 5}, sounds = default.node_sound_glass_defaults(), }) @@ -794,6 +794,6 @@ minetest.register_node("cucina_vegana:tofu_chives_rosemary_cooked", { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} }, - groups = {dig_immediate = 3, attached_node = 1, eatable = 1}, + groups = {dig_immediate = 3, attached_node = 1, eatable = 6}, sounds = default.node_sound_glass_defaults(), }) diff --git a/mods/death_coords/LICENSE b/mods/death_coords/LICENSE new file mode 100644 index 00000000..326e0933 --- /dev/null +++ b/mods/death_coords/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Niden + +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. diff --git a/mods/death_coords/README.md b/mods/death_coords/README.md new file mode 100644 index 00000000..98a5b9da --- /dev/null +++ b/mods/death_coords/README.md @@ -0,0 +1,18 @@ +# DCM +Show Death Coordinates + +Installation: +```Minetest/mods/death_coords``` + +Chat + +![screenshot](https://github.com/Niden1/DCM/blob/main/screenshot.png) + + +# Niden + +Discord: Niden#7063 + +Licence: MIT Licence + +https://github.com/Niden1 diff --git a/mods/death_coords/depends.txt b/mods/death_coords/depends.txt new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/mods/death_coords/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/death_coords/init.lua b/mods/death_coords/init.lua new file mode 100644 index 00000000..6541fc55 --- /dev/null +++ b/mods/death_coords/init.lua @@ -0,0 +1,66 @@ +activate = true + +minetest.register_chatcommand( + "death", + { + description = "Enable or disable death coordinates", + params = " | ", + privs = {ban = true}, + func = function(name, param) + if param == "true" then + activate = true + minetest.chat_send_all(minetest.colorize("#00FF00", "*** [Server]: Death coordinates are enabled!")) + + music = + minetest.sound_play( + "notify", + { + loop = false, + gain = 1.0 + } + ) + end + + if param == "false" then + activate = false + + minetest.chat_send_all(minetest.colorize("#FF0000", "*** [Server]: Death coordinates are disabled!")) + + music = + minetest.sound_play( + "notify", + { + loop = false, + gain = 1.0 + } + ) + end + end + } +) + +minetest.register_on_dieplayer( + function(player) + if activate == true then + local pname = player:get_player_name() + local pos = player:getpos() + pos.x = math.floor(pos.x) + pos.y = math.floor(pos.y) + pos.z = math.floor(pos.z) + minetest.chat_send_player( + pname, + core.get_color_escape_sequence("#FF0000") .. + "*** [Server] - Last Dead At: " .. pos.x .. ", " .. pos.y .. ", " .. pos.z + ) + + music = + minetest.sound_play( + "die", + { + loop = false, + gain = 1.0 + } + ) + end + end +) diff --git a/mods/death_coords/mod.conf b/mods/death_coords/mod.conf new file mode 100644 index 00000000..c56a5b22 --- /dev/null +++ b/mods/death_coords/mod.conf @@ -0,0 +1,5 @@ +name = death_coords +author = Niden +description = Shows a message with the coordinates of the last death. +title = death_coords +release = 14333 diff --git a/mods/death_coords/screenshot.png b/mods/death_coords/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..28739dbdee56ab1c97d5b61376ab60df08284653 GIT binary patch literal 4712 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 UhP0m`HUt`;52iV>f*ei!3$t>lCIA2c literal 0 HcmV?d00001 diff --git a/mods/death_coords/sounds/die.ogg b/mods/death_coords/sounds/die.ogg new file mode 100644 index 0000000000000000000000000000000000000000..949e2849545621ab001aac240a7585b9b00d175a GIT binary patch literal 57465 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 literal 0 HcmV?d00001 diff --git a/mods/death_coords/sounds/notify.ogg b/mods/death_coords/sounds/notify.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7d25cbe35f2f3ec1c55a75a7f823dfb45687582c GIT binary patch literal 19661 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 GMgTH-5&TC0 literal 0 HcmV?d00001 diff --git a/mods/glass_stained/depends.txt b/mods/glass_stained/depends.txt new file mode 100644 index 00000000..9cde0940 --- /dev/null +++ b/mods/glass_stained/depends.txt @@ -0,0 +1,3 @@ +default +xpanes +dye \ No newline at end of file diff --git a/mods/glass_stained/init.lua b/mods/glass_stained/init.lua new file mode 100644 index 00000000..a6ea2f6d --- /dev/null +++ b/mods/glass_stained/init.lua @@ -0,0 +1,362 @@ +local alias = { + "one", + "two", + "three", + "four", + "five", + "six", + "seven", + "eight", + "nine", + "ten", + "eleven", + "twelve" +} + +local crafting = { + {"blue", "blue", "blue"}, + {"red", "blue", "white"}, + {"yellow", "blue", "blue"}, + {"yellow", "red", "red"}, + {"violet", "red", "blue"}, + {"violet", "blue", "blue"}, + {"red", "violet", "blue"}, + {"blue", "yellow", "dark_green"}, + {"blue", "red", "yellow"}, + {"dark_green", "cyan", "yellow"}, + {"blue", "dark_green", "dark_green"}, + {"yellow", "cyan", "cyan"}, + {"blue", "dark_green", "yellow"}, + {"dark_green", "blue", "white"}, + {"red", "red", "dark_green"}, + {"blue", "blue", "cyan"}, + {"red", "dark_green", "yellow"}, + {"violet", "yellow", "dark_green"}, +} + +local nodeboxes = { + single = {{-0.5, -0.5, 0, 0.5, 0.5, 0}}, + double = {{-0.5, -0.5, 0, 0.5, 1.5, 0}}, + triple = {{-0.5, -0.5, 0, 0.5, 1.5, 0}, {0.5, -0.5, 0, 1.5, 0.5, 0}}, + quadruple = {{-0.5, -0.5, 0, 1.5, 1.5, 0}}, + noncuple = {{-1.5, -1.5, 0, 1.5, 1.5, 0}}, + offset = {{-0.5, -0.5, 1, 0.5, 0.5, 1}} +} + +local thick_nodeboxes = { + single = {{-0.5, -0.5, -0.03125, 0.5, 0.5, 0.03125}}, + double = {{-0.5, -0.5, -0.03125, 0.5, 1.5, 0.03125}}, + triple = {{-0.5, -0.5, -0.03125, 0.5, 1.5, 0.03125}, {-0.5, -0.5, -0.03125, 1.5, 0.5, 0.03125}}, + quadruple = {{-0.5, -0.5, -0.03125, 1.5, 1.5, 0.03125}}, + noncuple = {{-1.5, -1.5, -0.03125, 1.5, 1.5, 0.03125}}, + offset = {{-0.5, -0.5, 0.96875, 0.5, 0.5, 1.03125}} +} + +local selection_boxes = { + single = {{-0.5, -0.5, -0.25, 0.5, 0.5, 0.25}}, + double = {{-0.5, -0.5, -0.25, 0.5, 1.5, 0.25}}, + triple = {{-0.5, -0.5, -0.25, 0.5, 1.5, 0.25}, {-0.5, -0.5, -0.25, 1.5, 0.5, 0.25}}, + quadruple = {{-0.5, -0.5, -0.25, 1.5, 1.5, 0.25}}, + noncuple = {{-1.5, -1.5, -0.25, 1.5, 1.5, 0.25}}, + offset = {{-0.5, -0.5, 0.75, 0.5, 0.5, 1.25}} +} + +local panes = { + { + "glass", + "Glass Pane", + "default_glass.png", + "glass_stained_edge.png", + default.node_sound_glass_defaults(), + { + {"xpanes:pane_flat", "xpanes:pane_flat"}, + {"xpanes:pane_flat", "xpanes:pane_flat"} + }, + "4" + }, + { + "obsidian_glass", + "Obsidian Glass Pane", + "default_obsidian_glass.png", + "xpanes_edge_obsidian.png", + default.node_sound_glass_defaults(), + { + {"xpanes:obsidian_pane_flat", "xpanes:obsidian_pane_flat"}, + {"xpanes:obsidian_pane_flat", "xpanes:obsidian_pane_flat"} + }, + "4" + }, + { + "bar", + "Steel Bars", + "xpanes_bar.png", + "xpanes_bar_top.png", + default.node_sound_metal_defaults(), + { + {"xpanes:bar_flat", "xpanes:bar_flat"}, + {"xpanes:bar_flat", "xpanes:bar_flat"} + }, + "4" + }, +} + +local function define_crafts(pane, main_craft, main_output) + single_pane = pane.."_single" + + minetest.register_craft({ + output = single_pane.." "..main_output, + recipe = main_craft, + }) + + minetest.register_craft({ + output = pane.."_double", + recipe = { + {single_pane}, + {single_pane} + }, + }) + + minetest.register_craft({ + output = single_pane.." 2", + recipe = { + {pane.."_double"} + }, + }) + + minetest.register_craft({ + output = pane.."_triple", + recipe = { + {single_pane, ""}, + {single_pane, single_pane} + }, + }) + + minetest.register_craft({ + output = single_pane.." 3", + recipe = { + {pane.."_triple"} + }, + }) + + minetest.register_craft({ + output = pane.."_quadruple", + recipe = { + {single_pane, single_pane}, + {single_pane, single_pane} + }, + }) + + minetest.register_craft({ + output = single_pane.." 4", + recipe = { + {pane.."_quadruple"} + }, + }) + + minetest.register_craft({ + output = pane.."_noncuple", + recipe = { + {single_pane, single_pane, single_pane}, + {single_pane, single_pane, single_pane}, + {single_pane, single_pane, single_pane} + }, + }) + + minetest.register_craft({ + output = single_pane.." 9", + recipe = { + {pane.."_noncuple"} + }, + }) + + minetest.register_craft({ + output = pane.."_offset", + recipe = { + {single_pane} + }, + }) + + minetest.register_craft({ + output = single_pane, + recipe = { + {pane.."_offset"} + }, + }) +end + +for name, selection_box in pairs(selection_boxes) do + for node = 1, 18 do + minetest.register_node("glass_stained:glass_"..node.."_"..name, { + description = "Stained Glass "..node.." ("..name:sub(1, 1):upper()..name:sub(2, -1)..")", + drawtype = "nodebox", + tiles = {"glass_stained_"..node..".png"}, + wield_image = "glass_stained_"..node..".png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = false, + node_box = { + type = "fixed", + fixed = nodeboxes[name], + }, + selection_box = { + type = "fixed", + fixed = selection_box, + }, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + use_texture_alpha = true, + sounds = default.node_sound_glass_defaults() + }) + + if name == "noncuple" then + define_crafts("glass_stained:glass_"..node, { + {"dye:"..crafting[node][1], "xpanes:pane_flat"}, + {"dye:"..crafting[node][2], "xpanes:pane_flat"}, + {"dye:"..crafting[node][3], "xpanes:pane_flat"} + }, "3") + end + + if node <= 12 then + minetest.register_alias("glass_stained:glass_number_"..alias[node], "glass_stained:glass_"..node.."single") + minetest.register_alias("glass_stained:glass_number_"..alias[node].."top", "glass_stained:glass_"..node.."double") + end + end + + for _, pane in ipairs(panes) do + minetest.register_node("glass_stained:pane_"..pane[1].."_"..name, { + description = pane[2].." ("..name:sub(1, 1):upper()..name:sub(2, -1)..")", + drawtype = "nodebox", + tiles = {pane[4], pane[4], pane[3]}, + wield_image = pane[3], + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = false, + node_box = { + type = "fixed", + fixed = thick_nodeboxes[name], + }, + selection_box = { + type = "fixed", + fixed = selection_box, + }, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = pane[5] + }) + + if name == "noncuple" then + define_crafts("glass_stained:pane_"..pane[1], pane[6], pane[7]) + end + end +end + +minetest.register_alias("glass_stained:glass_normal", "glass_stained:pane_glass_single") +minetest.register_alias("glass_stained:glass_normal_top", "glass_stained:pane_glass_double") +minetest.register_alias("glass_stained:obsidian_glass_normal", "glass_stained:pane_obsidian_glass_single") +minetest.register_alias("glass_stained:obsidian_glass_normal_top", "glass_stained:pane_obsidian_glass_double") +minetest.register_alias("glass_stained:steel_bars_normal", "glass_stained:pane_bar_single") +minetest.register_alias("glass_stained:steel_bars_normal_top", "glass_stained:pane_bar_double") +minetest.register_alias("glass_stained:steel_bars_fancy", "glass_stained:pane_bar_top_pane_single") + +xpanes.register_pane("bar_top", { + description = "Spiked Steel Railing", + textures = {"glass_stained_bar_fancy.png", "xpanes_pane_half.png", "default_glass_detail.png"}, + inventory_image = "glass_stained_bar_fancy.png", + wield_image = "glass_stained_bar_fancy.png", + groups = {cracky = 2}, + sounds = default.node_sound_metal_defaults(), + recipe = { + {"", "default:steel_ingot", ""}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} + } +}) + +xpanes.register_pane("pane", { + description = "Glass Pane", + textures = {"default_glass.png","xpanes_pane_half.png","glass_stained_edge.png"}, + inventory_image = "default_glass.png", + wield_image = "default_glass.png", + sounds = default.node_sound_glass_defaults(), + groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3}, + recipe = { + {"default:glass", "default:glass", "default:glass"}, + {"default:glass", "default:glass", "default:glass"} + } +}) + +xpanes.register_pane("obsidian_pane", { + description = "Obsidian Glass Pane", + textures = {"default_obsidian_glass.png","xpanes_pane_half.png","xpanes_edge_obsidian.png"}, + inventory_image = "default_obsidian_glass.png", + wield_image = "default_obsidian_glass.png", + sounds = default.node_sound_glass_defaults(), + groups = {snappy = 2, cracky = 3}, + recipe = { + {"default:obsidian_glass", "default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass", "default:obsidian_glass"} + } +}) + +minetest.register_node("glass_stained:pane_bar_top_pane_single", { + description = "Spiked Steel Railing Pane (Single)", + drawtype = "nodebox", + tiles = {"blank.png", "blank.png", "glass_stained_bar_fancy.png"}, + wield_image = "glass_stained_bar_fancy.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = false, + node_box = { + type = "fixed", + fixed = thick_nodeboxes["single"], + }, + selection_box = { + type = "fixed", + fixed = selection_boxes["single"], + }, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("glass_stained:pane_bar_top_pane_offset", { + description = "Spiked Steel Railing Pane (Offset)", + drawtype = "nodebox", + tiles = {"blank.png", "blank.png", "glass_stained_bar_fancy.png"}, + wield_image = "glass_stained_bar_fancy.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = false, + node_box = { + type = "fixed", + fixed = thick_nodeboxes["offset"], + }, + selection_box = { + type = "fixed", + fixed = selection_boxes["offset"], + }, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_craft({ + output = "glass_stained:pane_bar_top_pane_single", + recipe = { + {"xpanes:bar_top_flat"} + }, +}) + +minetest.register_craft({ + output = "glass_stained:pane_bar_top_pane_offset", + recipe = { + {"glass_stained:pane_bar_top_pane_single"} + }, +}) + +minetest.register_craft({ + output = "glass_stained:pane_bar_top_pane_single", + recipe = { + {"glass_stained:pane_bar_top_pane_offset"} + }, +}) \ No newline at end of file diff --git a/mods/glass_stained/licence.txt b/mods/glass_stained/licence.txt new file mode 100644 index 00000000..64a2fed6 --- /dev/null +++ b/mods/glass_stained/licence.txt @@ -0,0 +1,63 @@ +LICENSE FOR CODE: +================= + + +MIT License + +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. + + + + +LICENSE FOR MEDIA: +================== + + +Licenses of media (textures, models and sounds) +----------------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) + +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/ \ No newline at end of file diff --git a/mods/glass_stained/mod.conf b/mods/glass_stained/mod.conf new file mode 100644 index 00000000..3d894975 --- /dev/null +++ b/mods/glass_stained/mod.conf @@ -0,0 +1,7 @@ +name=glass_stained +description=A mod that adds fancy stained glass and spiked iron railing. +depends=default,xpanes,dye + +release = 6066 +author = v-rob +title = Fancy Stained Glass diff --git a/mods/glass_stained/screenshot.png b/mods/glass_stained/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..08e7b20a8dc6055210576a45534eec988a78956f GIT binary patch literal 307904 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%0Ds#6GG29Ui8`j`O_cxzW_hl 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 literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_1.png b/mods/glass_stained/textures/glass_stained_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4a64576c4e0de264aa9c13e4ba6848324d88cd55 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)0$gg$y$t3?4HAMK}vQ zB8wRqxP?KOkzv*x37{Z*iKnkC`$IN17DGj|Tji&LLQati{gRIC#t}5#BZvD;iG=)oo1=OOB|39<&Yu$CK7F~L1P>o`M{jva m<*OYHQ!0QWHnKbwc`OWvv}4pxG@kVZxx&-c&t;ucLK6UbWKMGc literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_10.png b/mods/glass_stained/textures/glass_stained_10.png new file mode 100644 index 0000000000000000000000000000000000000000..66aadeb6839ff08c84ee6f95d005de8cef5f636b GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPt8wZQ1^2x^yML;2`%#er@=ltB<)VvZPmw~}IF(p-@ zJhLQ2!QIn0;6&G+6rf;;r;B5V#p$<~H*y{@5OBVj{ypw)cSWc4K|NdFOKeUG4@5X! zmIf65ZxJ%%J{7P^BecQtkPPGA&U@$n8P3<$vTZ7O{zm)1Do6Rg+Sbq8KZqRKzI_9; X@3TVZ7YmDigKYJ5^>bP0l+XkKW6n=) literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_11.png b/mods/glass_stained/textures/glass_stained_11.png new file mode 100644 index 0000000000000000000000000000000000000000..3c715e9100c8ab2cf213f2c6cccd37d6a563ab74 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPt8wV?cA&+jYBv42yGbEzKIX^cyHLnE7Wnl14Oi5KJ z&n(GMaQE~LIMKBy1t{3<>Eak-aeC?Gje-pdJg)mKqstFvu1FPFGncKbh+*xag+fAK z%VXZzDokKJ&?qm-m=L$^j@GiP)@%JHS+2e3D_GfeLMN-W%3yu9(4_=lC$SysirPA! zY;|tjG3opTNy7JAe$2g@ad+;2H_OJ*pu_#z8I!EUWilgu!?8U3;xSb cR|CR8-&p;um%#er@=ltB<)VvZPmw~}IF(p-@ zJhLQ2!QIn0;6&G+6rf;-r;B5V#p$J!4+=IY@UZmv?ENuCD5FU$w@K)Ur|B<7w$=$N zzMp-=KO`}mU{aW%!Y3(PW0`ZcqCeyZQ+(%Sa*-^9+hHnV0( zC~R@E?Ou62@XTlH4@KXql;Y0C`TtwM4x)~nzWLg7#@}=KmD?s}R66aN2J(xitDnm{ Hr-UW|8g_ZT literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_14.png b/mods/glass_stained/textures/glass_stained_14.png new file mode 100644 index 0000000000000000000000000000000000000000..968069d0dcf258b582f547eb20e5e1e73d3bdd3d GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-BP%1T1rx8$BcPCMW=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<1J6rb(s;uvCa`e^V*QD;RCn-@1?4J)yE-`KNySq6bZhia>TS;bsg4pO~0G+-Ajyu3wya47?wBk#l&7) Q77en`)78&qol`;+0Mx`t5dZ)H literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_17.png b/mods/glass_stained/textures/glass_stained_17.png new file mode 100644 index 0000000000000000000000000000000000000000..23a02c8ff930cab207d7b6d3d25b4646d5b64b16 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-BP)Y}#lnA6l7T`}nIRD+&iT2ysd*(pE(3#aVoIt) zd1gt5g1e`0z=^IsDL_GgPZ!4!i_^&|2?;;WJ1{0BCL|=x&{im5h&1?ln4SHe9h=C; z^R7I6;$e%sBwLIu3=9J}*zPg7tzuEy#-MDL;La>4)o~+8Vk4uqR0j_a!}km&`Gx)q Qsz4Tcy85}Sb4q9e0K9ZS7ytkO literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_18.png b/mods/glass_stained/textures/glass_stained_18.png new file mode 100644 index 0000000000000000000000000000000000000000..f76007874f8d00b9ed64bb3b97045ad834b7b924 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-BP)ZEEx7zgdgV}7!wi`5)xJ<-Y8~>+|YXP=)*%< zY$Aru0c`B|>_Rr4cje*p;Sp(SG;f%w)!3nXpo90uMTZtPrEMZ^IS2aKl$ebP0l+XkKWbH(+ literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_2.png b/mods/glass_stained/textures/glass_stained_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c84c2dfed99c86c3053f10df045ca5573928dce0 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-Ba66+Cg1nPtUw{D%#er@=ltB<)VvZPmw~}IF(p-@ zJhLQ2!QIn0;6&G+6rf;@r;B5V#p$DyHwrc=@VLtRO_*39#+|LUaa)0yUl3i{t;gq%U(;G1IVWw>_7b|E=BQjXA@Lh!qnVfyCa#o`a_!Ij)aL z`4!RppI_(tQ%3e3#nFGOFQ)MoY_qZ(lU=tn?*D&GdddlFMb6&~VnMF+ MboFyt=akR{0I14fy#N3J literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_3.png b/mods/glass_stained/textures/glass_stained_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f8017a641f8520cabfdb397d9831285237c534b5 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)0$gg$y$t3?4HAMK}vQ zB8wRqxP?KOkzv*x37{Z*iKnkC`$IN17Cpmf=9z{-A*sxeh!W@g+}zZ>5+Ij>!8b7_ zRiQkyBtya7(>LHm*PaxhV40_jV~EA+x0g2xHYo74K9oP#D8txRz?QAPF^#RwKsiNO z*Q8vgJ?O$OtsVT6)Cy-=Rv78CFr4M+-BP1vnCJQKv(zi4{CC+b9nnIsuNAY;QJrS_ z&GbgQ`FEaY`X9s@KFkuFy`$=siL&kYZLv?4op;yol#YGQ{q$DQ!J21xd_nH=boFyt I=akR{0A8(EV*mgE literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_4.png b/mods/glass_stained/textures/glass_stained_4.png new file mode 100644 index 0000000000000000000000000000000000000000..3dd14f9aeb530f01c1bd8445f021531a1726b73f GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)0$gg$y$t3?4HAMK}vQ zB8wRqxP?KOkzv*x37{Z*iKnkC`$IN17CmLrK8Z@8kW^+!M2T~LZfwIf4CVJY9O zr8`d-PT^a#hj*V!uu#^+Cug@!X2^1Ux#amH!{aL~-L@Xuw)6R;i*~mcO=N%Y?L~1+ z_@*{}akb5CYZw`VxU;0M=SAwinBN^cUEgTS_Y;TTSlaWf4V-w=P3j=XO`fiPF6*2U FngCvzSor_| literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_5.png b/mods/glass_stained/textures/glass_stained_5.png new file mode 100644 index 0000000000000000000000000000000000000000..deaf5cae7aa3bc4edf540de03c0931960d418c21 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)0$gg$y$t3?4HAMK}vQ zB8wRqxP?KOkzv*x37{Z*iKnkC`$IN17CpXzKo=gMkW^+!M2T~LZf;w1@OzfF5yCfm){E2xp7n*m9 z$ahL_@m3ZTaSDB`*)``!{m#!vj%*j3^TD}t(X-FV|9_bB?8>jno6XSkIqHu7LC=3n zjz`pH?^0i-p2ZdHm^&x@Y{^*;s|U4admr>pUM!~RQ^emi&DUKdRPZcE)}1V=D_b@_ ue{kyg>Nz(|Pn<4!X6&G?{$24$`CR*_Y>^99N~3&0PWN>6b6Mw<&;$VJ2W)l# literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_6.png b/mods/glass_stained/textures/glass_stained_6.png new file mode 100644 index 0000000000000000000000000000000000000000..33b6710f7356a55cd9b7534156d9443717cc5dab GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)0$gg$y$t3?4HAMK}vQ zB8wRqxP?KOkzv*x37{Z*iKnkC`$IN17CpuT?;_^{g`_e=B1)X|b8}PkN`PDj2H(V# zRE6@)k_-iRPv3wOU3*f1f=!+-jv*GOuTD1PYfuni5r1@8;i3MuFH^o;`P16+d!|`j zlZ(UAV{17W^YZ#d`7|F-Xb;?>*zU3??$qg9Zd&}$HfS-d_+D$!B|mY-lsBQ}9#1B8 zct+fEdsMcZlciy8=-(^l&7Y*3?#;;R@)rL8wo&G6Lu7RT literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_7.png b/mods/glass_stained/textures/glass_stained_7.png new file mode 100644 index 0000000000000000000000000000000000000000..6735f5d466702e046bff3669d412aade1f403767 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPt8wU%InZ4cFMxc;XW=KSdbAE1aYF-JD%fR59n3Aec zo>`Ki;O^-gaH4BZ3Q%yDr;B5V#p$)d8+nf?@YpD^eemd<;v2NY@4u>TDVJF#Xa5nl z|3^W*gEsh ain;rZQ)>)Q)EKyf{O0NE=d#Wzp$PyMYJNKa literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_8.png b/mods/glass_stained/textures/glass_stained_8.png new file mode 100644 index 0000000000000000000000000000000000000000..7159bcfbbe90bb0ccbd3fc38136cbfe1ac264476 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPt8wZPkV2!itcA$_{W=KSdbAE1aYF-JD%fR59n3Aec zo>`Ki;O^-gaH4BZ3Q%ynr;B5V#p$J!5Aq&X;Bl1~y#8jA;30vTis?okRcUQ}f^IML zBp2AaM>(XI5=su^IxqCuH`B7Z|AGsHSU=A zURU)}t>wozZMqBF^Z}lzzf4lXy=4$Q@Embp}-doi( Xcvh9TF3fE!0(s2S)z4*}Q$iB}f$@B- literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_9.png b/mods/glass_stained/textures/glass_stained_9.png new file mode 100644 index 0000000000000000000000000000000000000000..a2879f95ef06bc5aa5c164b76f4283ce36006541 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPt8wZQ9^8B6ZUw}eVnIRD+&iT2ysd*(pE(3#aVoIt) zd1gt5g1e`0z=^IsDL}zUPZ!4!i_^&|2?;;WJ1{0BB_t#i=*+1+u(9A7BO4oA+fF7X z_GeriGC=W!9UEpnJkWZTN8-_mS2HCvSb9P}GU=r&TZ>LFXX_O2C^XaicrjwZH1W2w aI0l9#r_**HQqbH0vf9(t&t;ucLK6U@AWFRe literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_bar_fancy.png b/mods/glass_stained/textures/glass_stained_bar_fancy.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3c02fdc2f15e5f3a5a15bdebcff9a27feff215 GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6n3BBRT^Rni_n+Ah4nJ za0`PlBg3pY5H=O_J?fj3?|Y>B2!y|LT5c)978nDmtIixKk6XB^5Fd}F26ad zj(h*N9-WZR$!XsZ{ERo1+b0Myb=l_gZr*ix>%H(jE+^hC_CL+*@Ay?f^WxLD6Y`TU z&lQQx4=FL-;mdkH^RDfZ$geYIERKKk=UvR(wd+sw87@lVS+!asT5i4L@o?@g?-cRb zzl3G;Gr!hP=4$KZU-{#C+h&<*9`~aiT<^NhTNc4~&g=5uqw?2XJoB1Pc~k&B#^CAd K=d#Wzp$P!Kn|qr8 literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_edge.png b/mods/glass_stained/textures/glass_stained_edge.png new file mode 100644 index 0000000000000000000000000000000000000000..75aa84b679c4c41ba889859e6c79ac195f8c8c1d GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-BP$!H?1Rr6b$~*$nIRD+&iT2ysd*(pE(3#eQEFmI zYKlU6W=V#EyQgnJie4%^P(0St#WBRT~% z%X{E?$s(SH)`JHs8zu4$9)uC%zE i5NL{1m?EXg$IS4UOHNkoF7IlP3p`!@T-G@yGywokh)0(I literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/glass_stained_palette.png b/mods/glass_stained/textures/glass_stained_palette.png new file mode 100644 index 0000000000000000000000000000000000000000..732c750a7eb39c02953898ccd9bb6588c8755fd3 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ&0V4mNy#E0tkmT*|!tfsi7wla=87RV8;1OBO zz`!jG!i)^F=12eq*-JcqUD+QqvNEU}-d(sN5GW*-84^+AoS&PUnpXnkGBEfirlcyA zXO?6rxO@5roaow<0u)s8ba4#fxSl*mTVX@JXOenz>3*ZbN9@Gg&fgQ4)Qh>4&cIM; V#A$QyOG6dN3{O`-mvv4FO#n6`H4Xp( literal 0 HcmV?d00001 diff --git a/mods/glass_stained/textures/xpanes_edge_obsidian.png b/mods/glass_stained/textures/xpanes_edge_obsidian.png new file mode 100644 index 0000000000000000000000000000000000000000..c91b8ade46d772076b679ea08242a926b3a5778b GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP-BP$y#kJ`6;mw-aDnIRD+&iT2ysd*(pE(3#eQEFmI zYKlU6W=V#EyQgnJie4%^P~6(n#WBRo6|j0s5#1Rj_+#QRKajQ0^-&)Cy^ yoBNAt!wd%JFmF@w2feH_eC6Zs%J&{~%w=GRW#%+rZ+PP*$b3&%KbLh*2~7ZVIXq(k literal 0 HcmV?d00001 diff --git a/mods/protector/README.md b/mods/protector/README.md new file mode 100644 index 00000000..47806bb7 --- /dev/null +++ b/mods/protector/README.md @@ -0,0 +1,152 @@ +Protector Redo mod [protect] + +Protector redo for minetest is a mod that protects a players builds by placing +a block that stops other players from digging or placing blocks in that area. + +based on glomie's mod, remade by Zeg9 and rewritten by TenPlus1. + +https://forum.minetest.net/viewtopic.php?f=11&t=9376 + +Change log: + +- 0.1 - Initial release +- 0.2 - Texture update +- 0.3 - Added Protection Logo to blend in with player builds +- 0.4 - Code tweak for 0.4.10+ +- 0.5 - Added protector.radius variable in init.lua (default: 5) +- 0.6 - Added Protected Doors (wood and steel) and Protected Chest +- 0.7 - Protected Chests now have "To Chest" and "To Inventory" buttons to copy + contents across, also chests can be named +- 0.8 - Updated to work with Minetest 0.4.12, simplified textures +- 0.9 - Tweaked code +- 1.0 - Only owner can remove protector +- 1.1 - Set 'protector_pvp = true' in minetest.conf to disable pvp in protected + areas except your own, also setting protector_pvp_spawn higher than 0 will + disable pvp around spawn area with the radius you entered +- 1.2 - Shift and click support added with Minetest 0.4.13 to quickly copy stacks + to and from protected chest +- 1.3 - Moved protector on_place into node itself, protector zone display changed + from 10 to 5 seconds, general code tidy +- 1.4 - Changed protector recipes to give single item instead of 4, added + button + to interface, tweaked and tidied code, added admin command /delprot to remove + protectors in bulk from banned/old players +- 1.5 - Added much requested protected trapdoor +- 1.6 - Added protector_drop (true or false) and protector_hurt (hurt by this num) + variables to minetest.conf settings to stop players breaking protected + areas by dropping tools and hurting player. +- 1.7 - Included an edited version of WTFPL doors mod since protected doors didn't + work with the doors mod in the latest daily build... Now it's fine :) + added support for "protection_bypass" privelage. +- 1.8 - Added 'protector_flip' setting to stop players using lag to grief into + another players house, it flips them around to stop them digging. +- 1.9 - Renamed 'protector_pvp_spawn' setting to 'protector_spawn' which protects + an area around static spawnpoint and disables pvp if active. + (note: previous name can still be used) +- 2.0 - Added protector placement tool (thanks to Shara) so that players can easily + stand on a protector, face in a direction and it places a new one at a set + distance to cover protection radius. Added /protector_show command (thanks agaran) + Protectors and chest cannot be moved by mesecon pistons or machines. +- 2.1 - Added 'protector_night_pvp' setting so night-time becomes a free for all and + players can hurt one another even inside protected areas (not spawn protected) +- 2.2 - Updated protector tool so that player only needs to stand nearby (2 block radius) + It can also place vertically (up and down) as well. New protector recipe added. +- 2.3 - Localise many of the protector functions and tidy code. +- 2.4 - Update to newer functions, Minetest 0.4.16 needed to run now. +- 2.5 - Added HUD text to show when player is inside a protected area (updates every 5 seconds) +- 2.6 - Add protection against CSM tampering, updated Intllib support (thanks codexp), tweaked block textures +- 2.7 - Remove protection field entity when protector has been dug +- 2.8 - Added 'protector_show_interval' setting to minetest.conf [default is 5], make protection field glow in dark. +- 2.9 - Added MineClone2 recipes for protection block but no official support as yet +- 3.0 - Added PlayerFactions support, 'protector_hud_interval' setting and listing in advanced settings for mod values. +- 3.1 - Ability to hide protection blocks using /protector_hide and /protector_show , italian local added (thanks Hamlet) +- 3.2 - Defaults to Minetest translation if found, otherwise intllib fallback if loaded, locale files updated for both. Added 'protector_msg' setting for player text. +- 3.3 - Added support for playerfactions new api (thanks louisroyer), added limiter to protection radius of 22. +- 3.4 - Player flip and hurt functions moved to minetest.register_protection_violation function (thanks hlqkj), added 'protector_crafts' setting, changed wood doors n chests to immediate_dig for mineclone2 fix. Upped protector radius limit to 30. +- 3.5 - Store settings in global, reduce screenshot, tweak door sounds, use node template, add name check to commands, add commands to add and remove member names, tweak & tidy code. + +Lucky Blocks: 10 + + +Usage: (requires server privelage) + +list names to remove + + /protector_remove + +remove specific user names + + /protector_remove name1 name2 + +reset names on remove list + + /protector_remove - + +Whenever a player is near any protectors with name1 or name2 then it will be +replaced by an air block. + + +show owner name to replace + + /protector_replace + +replace owner with new name + + /protector_replace owner new_owner + +reset names on replace list + + /protector_replace - + +show protected areas of your nearby protectors (max of 5) + + /protector_show_area + +A players own protection blocks can be hidden and shown using the following: + + /protector_hide + /protector_show + +Adding members to local protection can be done by using + + /protector_add_member + +Removing members from local protection can be done by using + + /protector_del_member + + +The following lines can be added to your minetest.conf file to configure specific features of the mod: + +protector_radius = 5 +- Sets the area around each protection node so that other players cannot dig, place or enter through protected doors or chests. + +protector_pvp = true +- true or false this setting disabled pvp inside of protected areas for all players apart from those listed on the protector node. + +protector_night_pvp = false +- when true this setting enables pvp at night time only, even inside protected areas, requires protector_pvp to be active to work. + +protector_spawn = 10 +- Sets an area 10 nodes around static spawnpoint that is protected. + +protector_hurt = 2 +- When set to above 0, players digging in protected areas will be hurt by 2 health points (or whichever number it's set to) + +protector_flip = true +- When true players who dig inside a protected area will flipped around to stop them using lag to grief into someone else's build + +protector_show_interval +- Number of seconds the protection field is visible, defaults to 5 seconds. + +protector_recipe = true +- When true allows players to craft protection blocks + +protector_msg = true +- When true shows protection messages in players chat when trying to interact in someone else's area + + +Protector Tool + +Can be crafted with a protector surrounded by steel ingots and is used to place new protectors at a set distance of protector.radius in all directions including up and down simply by looking in a direction. + +Use by standing near an existing protector, looking in a direction and using as a tool, hold sneak/shift to place new protector containing member list from inside nearest one. diff --git a/mods/protector/admin.lua b/mods/protector/admin.lua new file mode 100644 index 00000000..cc548c1a --- /dev/null +++ b/mods/protector/admin.lua @@ -0,0 +1,249 @@ + +-- translation and default name vars + +local S = core.get_translator("protector") +local removal_names = "" +local replace_names = "" + +-- remove protection command + +core.register_chatcommand("protector_remove", { + params = S(""), + description = S("Remove Protectors around players (separate names with spaces)"), + privs = {server = true}, + + func = function(name, param) + + if param == "-" then + + core.chat_send_player(name, S("Name List Reset")) + + removal_names = "" ; return + end + + if param ~= "" then + removal_names = param + end + + core.chat_send_player(name, + S("Protector Names to remove: @1", removal_names)) + end +}) + +-- replace protection command + +core.register_chatcommand("protector_replace", { + params = S(" "), + description = S("Replace Protector Owner with name provided"), + privs = {server = true}, + + func = function(name, param) + + -- reset list to empty + if param == "-" then + + core.chat_send_player(name, S("Name List Reset")) + + replace_names = "" ; return + end + + -- check and set replacement name + if param ~= "" then + + local names = param:split(" ") ; if not names[2] then return end + + if names[2] ~= string.match(names[2], "[%w_-]+") then + core.chat_send_player(name, S("Invalid player name!")) ; return + end + + if names[2]:len() > 25 then + core.chat_send_player(name, S("Player name too long")) ; return + end + + replace_names = param + end + + -- show name info + if replace_names ~= "" then + + local names = replace_names:split(" ") + + core.chat_send_player(name, S("Replacing Protector name @1 with @2", + names[1] or "", names[2] or "")) + end + end +}) + +-- Abm to remove or replace protectors within active player area + +core.register_abm({ + nodenames = {"protector:protect", "protector:protect2", "protector:protect_hidden"}, + interval = 5, + chance = 1, + catch_up = false, + + action = function(pos, node) + + if removal_names == "" and replace_names == "" then return end + + local meta = core.get_meta(pos) ; if not meta then return end + local owner = meta:get_string("owner") + + if removal_names ~= "" then + + local names = removal_names:split(" ") + + for _, n in pairs(names) do + + if n == owner then + core.set_node(pos, {name = "air"}) ; return + end + end + end + + if replace_names ~= "" then + + local names = replace_names:split(" ") + + if names[1] and names[2] and owner == names[1] then + + meta:set_string("owner", names[2]) + meta:set_string("infotext", S("Protection (owned by @1)", names[2])) + end + end + end +}) + +-- show protection areas of nearby protectors owned by you (thanks agaran) + +local r = protector.radius + +core.register_chatcommand("protector_show_area", { + params = "", + description = S("Show protected areas of your nearby protectors"), + privs = {}, + + func = function(name, param) + + local player = core.get_player_by_name(name) + local pos = player:get_pos() + + -- find the protector nodes + local pos = core.find_nodes_in_area( + {x = pos.x - r, y = pos.y - r, z = pos.z - r}, + {x = pos.x + r, y = pos.y + r, z = pos.z + r}, + {"protector:protect", "protector:protect2", "protector:protect_hidden"}) + + local meta, owner + + -- show a maximum of 5 protected areas only + for n = 1, math.min(#pos, 5) do + + meta = core.get_meta(pos[n]) + owner = meta:get_string("owner") or "" + + if owner == name + or core.check_player_privs(name, {protection_bypass = true}) then + core.add_entity(pos[n], "protector:display") + end + end + end +}) + +-- ability to hide protection blocks (borrowed from doors mod :) + +core.register_node("protector:protect_hidden", { + description = "Hidden Protector", + drawtype = "airlike", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + -- has to be walkable for falling nodes to stop falling + walkable = true, + pointable = false, + diggable = false, + buildable_to = false, + floodable = false, + drop = "", + groups = {not_in_creative_inventory = 1, unbreakable = 1}, + is_ground_content = false, + on_blast = function() end, + -- 1px block to stop falling nodes replacing protector + collision_box = { + type = "fixed", fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32} + } +}) + +-- make own protectors visible in area + +core.register_chatcommand("protector_show", { + params = "", + description = S("Show your nearby protection blocks"), + privs = {interact = true}, + + func = function(name, param) + + local player = core.get_player_by_name(name) + + if not player then + return false, S("Player not found.") + end + + local pos = player:get_pos() + + local a = core.find_nodes_in_area( + {x = pos.x - r, y = pos.y - r, z = pos.z - r}, + {x = pos.x + r, y = pos.y + r, z = pos.z + r}, + {"protector:protect_hidden"}) + + local meta, owner + + for _, row in pairs(a) do + + meta = core.get_meta(row) + owner = meta:get_string("owner") or "" + + if owner == name + or core.check_player_privs(name, {protection_bypass = true}) then + core.swap_node(row, {name = "protector:protect"}) + end + end + end +}) + +-- make own protectors invisible in area + +core.register_chatcommand("protector_hide", { + params = "", + description = S("Hide your nearby protection blocks"), + privs = {interact = true}, + + func = function(name, param) + + local player = core.get_player_by_name(name) + + if not player then + return false, S("Player not found.") + end + + local pos = player:get_pos() + + local a = core.find_nodes_in_area( + {x = pos.x - r, y = pos.y - r, z = pos.z - r}, + {x = pos.x + r, y = pos.y + r, z = pos.z + r}, + {"protector:protect", "protector:protect2"}) + + local meta, owner + + for _, row in pairs(a) do + + meta = core.get_meta(row) + owner = meta:get_string("owner") or "" + + if owner == name + or core.check_player_privs(name, {protection_bypass = true}) then + core.swap_node(row, {name = "protector:protect_hidden"}) + end + end + end +}) diff --git a/mods/protector/chest.lua b/mods/protector/chest.lua new file mode 100644 index 00000000..df1181ae --- /dev/null +++ b/mods/protector/chest.lua @@ -0,0 +1,253 @@ + +-- translation + +local S = core.get_translator("protector") +local F = core.formspec_escape + +-- MineClone support + +local mcl = core.get_modpath("mcl_core") +local mcf = core.get_modpath("mcl_formspec") + +-- Are crafts enabled? + +local protector_crafts = core.settings:get_bool("protector_crafts") ~= false + +-- Protected Chest + +local chest_size = mcl and (9 * 3) or (8 * 4) + +core.register_node("protector:chest", { + description = S("Protected Chest"), + tiles = { + "default_chest_top.png", "default_chest_top.png", + "default_chest_side.png", "default_chest_side.png", + "default_chest_side.png", "default_chest_front.png^protector_logo.png" + }, + paramtype2 = "facedir", + groups = {dig_immediate = 2, unbreakable = 1}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + + local meta = core.get_meta(pos) + local inv = meta:get_inventory() + + meta:set_string("infotext", S("Protected Chest")) + meta:set_string("name", S("Protected Chest")) + inv:set_size("main", chest_size) + end, + + can_dig = function(pos,player) + + local meta = core.get_meta(pos) + local inv = meta:get_inventory() + + if inv:is_empty("main") then + + if not core.is_protected(pos, player:get_player_name()) then + return true + end + end + end, + + on_metadata_inventory_put = function(pos, listname, index, stack, player) + + core.log("action", player:get_player_name() + .. " moves stuff to protected chest at " .. core.pos_to_string(pos)) + end, + + on_metadata_inventory_take = function(pos, listname, index, stack, player) + + core.log("action", player:get_player_name() + .. " takes stuff from protected chest at " .. core.pos_to_string(pos)) + end, + + on_metadata_inventory_move = function( + pos, from_list, from_index, to_list, to_index, count, player) + + core.log("action", player:get_player_name() + .. " moves stuff inside protected chest at " .. core.pos_to_string(pos)) + end, + + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + + if core.is_protected(pos, player:get_player_name()) then + return 0 + end + + return stack:get_count() + end, + + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + + if core.is_protected(pos, player:get_player_name()) then + return 0 + end + + return stack:get_count() + end, + + allow_metadata_inventory_move = function( + pos, from_list, from_index, to_list, to_index, count, player) + + if core.is_protected(pos, player:get_player_name()) then + return 0 + end + + return count + end, + + on_rightclick = function(pos, node, clicker) + + if core.is_protected(pos, clicker:get_player_name()) then return end + + local meta = core.get_meta(pos) ; if not meta then return end + + local spos = pos.x .. "," .. pos.y .. "," ..pos.z + local formspec + + -- mineclone support + if mcl and mcf then + + formspec = "size[9,8.75]" + .. "label[0,0;" .. core.formspec_escape( + core.colorize("#313131", "Protected Chest")) .. "]" + .. "list[nodemeta:" .. spos .. ";main;0,0.5;9,3;]" + .. mcl_formspec.get_itemslot_bg(0,0.5,9,3) + .. "image_button[3.0,3.5;1.05,0.8;protector_up_icon.png;protect_up;]" + .. "image_button[4.0,3.5;1.05,0.8;protector_down_icon.png;protect_down;]" + .. "label[0,4.0;" .. core.formspec_escape( + core.colorize("#313131", "Inventory")) .. "]" + .. "list[current_player;main;0,4.5;9,3;9]" + .. mcl_formspec.get_itemslot_bg(0,4.5,9,3) + .. "list[current_player;main;0,7.74;9,1;]" + .. mcl_formspec.get_itemslot_bg(0,7.74,9,1) + .. "listring[nodemeta:" .. spos .. ";main]" + .. "listring[current_player;main]" + + else -- default formspec + + formspec = "size[8,9]" + .. "list[nodemeta:".. spos .. ";main;0,0.3;8,4;]" + + .. "image_button[-0.01,4.26;1.05,0.8;protector_up_icon.png;protect_up;]" + .. "image_button[0.98,4.26;1.05,0.8;protector_down_icon.png;protect_down;]" + .. "tooltip[protect_up;" .. S("To Chest") .. "]" + .. "tooltip[protect_down;" .. S("To Inventory") .. "]" + + .. "field[2.3,4.8;4,0.25;protect_name;;" + .. meta:get_string("name") .. "]" + .. "button[5.99,4.5;2.05,0.25;protect_rename;" .. S("Rename") .. "]" + + .. "list[current_player;main;0,5;8,1;]" + .. "list[current_player;main;0,6.08;8,3;8]" + .. "listring[nodemeta:" .. spos .. ";main]" + .. "listring[current_player;main]" + end + + core.show_formspec(clicker:get_player_name(), + "protector:chest_" .. core.pos_to_string(pos), formspec) + end, + + on_blast = function() end +}) + +-- Container transfer helper + +local function to_from(src, dst) + + local stack, item, leftover + local size = dst:get_size("main") + + for i = 1, size do + + stack = src:get_stack("main", i) + item = stack:get_name() + + if item ~= "" and dst:room_for_item("main", item) then + + leftover = dst:add_item("main", stack) + + if leftover and not leftover:is_empty() then + src:set_stack("main", i, leftover) + else + src:set_stack("main", i, nil) + end + end + end +end + +-- Protected Chest formspec buttons + +core.register_on_player_receive_fields(function(player, formname, fields) + + if string.sub(formname, 0, 16) ~= "protector:chest_" then return end + + local pos_s = string.sub(formname, 17) + local pos = core.string_to_pos(pos_s) + + if core.is_protected(pos, player:get_player_name()) then return end + + local meta = core.get_meta(pos) ; if not meta then return end + local chest_inv = meta:get_inventory() ; if not chest_inv then return end + local player_inv = player:get_inventory() + + -- copy contents of player inventory to chest + if fields.protect_up then + + to_from(player_inv, chest_inv) + + -- copy contents of chest to player inventory + elseif fields.protect_down then + + to_from(chest_inv, player_inv) + + elseif fields.protect_name or fields.protect_rename then + + -- change chest infotext to display name + if fields.protect_name ~= "" then + + if fields.protect_name ~= string.match(fields.protect_name, "[%w%s_-]+") + or fields.protect_name:len() > 35 then + return + end + + meta:set_string("name", fields.protect_name) + meta:set_string("infotext", fields.protect_name) + else + meta:set_string("name", S("Protected Chest")) + meta:set_string("infotext", S("Protected Chest")) + end + + end +end) + +-- Protected Chest recipes + +if protector_crafts then + + if mcl then + + core.register_craft({ + output = "protector:chest", + recipe = { {"mcl_chests:chest", "mcl_core:gold_ingot"} } + }) + else + core.register_craft({ + output = "protector:chest", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "default:copper_ingot", "group:wood"}, + {"group:wood", "group:wood", "group:wood"} + } + }) + + core.register_craft({ + output = "protector:chest", + recipe = { {"default:chest", "default:copper_ingot"} } + }) + end +end diff --git a/mods/protector/doors.lua b/mods/protector/doors.lua new file mode 100644 index 00000000..5c751784 --- /dev/null +++ b/mods/protector/doors.lua @@ -0,0 +1,521 @@ + +-- doors code from an old client re-used + +local S = core.get_translator("protector") + +-- MineClone support + +local mcl = core.get_modpath("mcl_core") + +-- Are crafts enabled? + +local protector_crafts = core.settings:get_bool("protector_crafts") ~= false + +-- Registers a door + +local function register_door(name, def) + + def.groups.not_in_creative_inventory = 1 + def.groups.handy = 1 + def.groups.prot_door = 1 + + local box = {{-0.5, -0.5, -0.5, 0.5, 0.5, -0.5 + 1.5/16}} + + def.node_box_bottom = box + def.node_box_top = box + def.selection_box_bottom = box + def.selection_box_top = box + + core.register_craftitem(name, { + description = def.description, + inventory_image = def.inventory_image, + + on_place = function(itemstack, placer, pointed_thing) + + if pointed_thing.type ~= "node" then return itemstack end + + local ptu = pointed_thing.under + local nu = core.get_node(ptu) + + if core.registered_nodes[nu.name] + and core.registered_nodes[nu.name].on_rightclick then + return core.registered_nodes[nu.name].on_rightclick( + ptu, nu, placer, itemstack) + end + + local pt = pointed_thing.above + local pt2 = {x = pt.x, y = pt.y, z = pt.z} + + pt2.y = pt2.y + 1 + + if not core.registered_nodes[core.get_node(pt).name].buildable_to + or not core.registered_nodes[core.get_node(pt2).name].buildable_to + or not placer or not placer:is_player() then + return itemstack + end + + if core.is_protected(pt, placer:get_player_name()) + or core.is_protected(pt2, placer:get_player_name()) then + core.record_protection_violation(pt, placer:get_player_name()) + return itemstack + end + + local p2 = core.dir_to_facedir(placer:get_look_dir()) + local pt3 = {x = pt.x, y = pt.y, z = pt.z} + + if p2 == 0 then pt3.x = pt3.x - 1 + elseif p2 == 1 then pt3.z = pt3.z + 1 + elseif p2 == 2 then pt3.x = pt3.x + 1 + elseif p2 == 3 then pt3.z = pt3.z - 1 + end + + if core.get_item_group(core.get_node(pt3).name, "prot_door") == 0 then + core.set_node(pt, {name = name .. "_b_1", param2 = p2}) + core.set_node(pt2, {name = name .. "_t_1", param2 = p2}) + else + core.set_node(pt, {name = name .. "_b_2", param2 = p2}) + core.set_node(pt2, {name = name .. "_t_2", param2 = p2}) + + core.get_meta(pt):set_int("right", 1) + core.get_meta(pt2):set_int("right", 1) + end + + if not core.settings:get_bool("creative_mode") then + itemstack:take_item() + end + + core.sound_play(def.sounds.place, {pos = pt2}, true) + + return itemstack + end + }) + + local tt = def.tiles_top + local tb = def.tiles_bottom + + local function after_dig_node(pos, name, digger) + + local node = core.get_node(pos) + + if node.name == name then + core.node_dig(pos, node, digger) + end + end + + local function on_rightclick(pos, dir, check_name, replace, replace_dir, params) + + pos.y = pos.y + dir + + if core.get_node(pos).name ~= check_name then return end + + local p2 = core.get_node(pos).param2 + + p2 = params[p2 + 1] + + core.swap_node(pos, {name = replace_dir, param2 = p2}) + + pos.y = pos.y - dir + + core.swap_node(pos, {name = replace, param2=p2}) + + core.sound_play(def.open_sound, + {pos = pos, gain = 0.3, max_hear_distance = 10}, true) + end + + local function on_rotate(pos, node, dir, user, check_name, mode, new_param2) + + if mode ~= screwdriver.ROTATE_FACE then return false end + + pos.y = pos.y + dir + + if core.get_node(pos).name ~= check_name then return false end + + if core.is_protected(pos, user:get_player_name()) then + core.record_protection_violation(pos, user:get_player_name()) + return false + end + + local node2 = core.get_node(pos) + + node2.param2 = (node2.param2 + 1) % 4 + + core.swap_node(pos, node2) + + pos.y = pos.y - dir + + node.param2 = (node.param2 + 1) % 4 + + core.swap_node(pos, node) + + return true + end + + core.register_node(name .. "_b_1", { + tiles = {tb[2], tb[2], tb[2], tb[2], tb[1], tb[1] .. "^[transformfx"}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = "clip", + is_ground_content = false, + node_dig_prediction = "", + drop = name, + drawtype = "nodebox", + node_box = {type = "fixed", fixed = def.node_box_bottom}, + selection_box = {type = "fixed", fixed = def.selection_box_bottom}, + groups = def.groups, + _mcl_hardness = 0.8, + _mcl_blast_resistance = 1, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + pos.y = pos.y + 1 + after_dig_node(pos, name.."_t_1", digger) + end, + + on_rightclick = function(pos, node, clicker) + + if not core.is_protected(pos, clicker:get_player_name()) then + on_rightclick(pos, 1, name .. "_t_1", name .. "_b_2", + name .. "_t_2", {1,2,3,0}) + end + end, + + on_rotate = function(pos, node, user, mode, new_param2) + return on_rotate(pos, node, 1, user, name .. "_t_1", mode) + end, + + sounds = def.sounds, + sunlight_propagates = def.sunlight, + on_blast = function() end + }) + + core.register_node(name .. "_t_1", { + tiles = {tt[2], tt[2], tt[2], tt[2], tt[1], tt[1] .. "^[transformfx"}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = "clip", + is_ground_content = false, + node_dig_prediction = "", + drop = "", + drawtype = "nodebox", + node_box = {type = "fixed", fixed = def.node_box_top}, + selection_box = {type = "fixed", fixed = def.selection_box_top}, + groups = def.groups, + _mcl_hardness = 0.8, + _mcl_blast_resistance = 1, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + pos.y = pos.y - 1 + after_dig_node(pos, name .. "_b_1", digger) + end, + + on_rightclick = function(pos, node, clicker) + if not core.is_protected(pos, clicker:get_player_name()) then + on_rightclick(pos, -1, name .. "_b_1", name .. "_t_2", + name .. "_b_2", {1,2,3,0}) + end + end, + + on_rotate = function(pos, node, user, mode, new_param2) + return on_rotate(pos, node, -1, user, name .. "_b_1", mode) + end, + + sounds = def.sounds, + sunlight_propagates = def.sunlight, + on_blast = function() end + }) + + core.register_node(name .. "_b_2", { + tiles = {tb[2], tb[2], tb[2], tb[2], tb[1] .. "^[transformfx", tb[1]}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = "clip", + is_ground_content = false, + node_dig_prediction = "", + drop = name, + drawtype = "nodebox", + node_box = {type = "fixed", fixed = def.node_box_bottom}, + selection_box = {type = "fixed", fixed = def.selection_box_bottom}, + groups = def.groups, + _mcl_hardness = 0.8, + _mcl_blast_resistance = 1, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + pos.y = pos.y + 1 + after_dig_node(pos, name .. "_t_2", digger) + end, + + on_rightclick = function(pos, node, clicker) + if not core.is_protected(pos, clicker:get_player_name()) then + on_rightclick(pos, 1, name .. "_t_2", name .. "_b_1", + name .. "_t_1", {3,0,1,2}) + end + end, + + on_rotate = function(pos, node, user, mode, new_param2) + return on_rotate(pos, node, 1, user, name .. "_t_2", mode) + end, + + sounds = def.sounds, + sunlight_propagates = def.sunlight, + on_blast = function() end + }) + + core.register_node(name .. "_t_2", { + tiles = {tt[2], tt[2], tt[2], tt[2], tt[1] .. "^[transformfx", tt[1]}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = "clip", + is_ground_content = false, + node_dig_prediction = "", + drop = "", + drawtype = "nodebox", + node_box = {type = "fixed", fixed = def.node_box_top}, + selection_box = {type = "fixed", fixed = def.selection_box_top}, + groups = def.groups, + _mcl_hardness = 0.8, + _mcl_blast_resistance = 1, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + pos.y = pos.y - 1 + after_dig_node(pos, name .. "_b_2", digger) + end, + + on_rightclick = function(pos, node, clicker) + if not core.is_protected(pos, clicker:get_player_name()) then + on_rightclick(pos, -1, name .. "_b_2", name .. "_t_1", + name .. "_b_1", {3,0,1,2}) + end + end, + + on_rotate = function(pos, node, user, mode, new_param2) + return on_rotate(pos, node, -1, user, name .. "_b_2", mode) + end, + + sounds = def.sounds, + sunlight_propagates = def.sunlight, + on_blast = function() end + }) +end + +-- Protected Wooden Door + +local name = "protector:door_wood" + +register_door(name, { + description = S("Protected Wooden Door"), + inventory_image = "doors_wood.png^protector_logo.png", + groups = { + snappy = 1, choppy = 2, dig_immediate = 2, unbreakable = 1, axey = 1, handy = 1 + }, + tiles_bottom = {"doors_wood_b.png^protector_logo.png", "doors_brown.png"}, + tiles_top = {"doors_wood_a.png", "doors_brown.png"}, + sounds = default.node_sound_wood_defaults(), + open_sound = "default_dug_node", + sunlight = false +}) + +if protector_crafts then + + if mcl then + + core.register_craft({ + output = name, + recipe = { {"mcl_doors:wooden_door", "mcl_core:gold_ingot"} } + }) + else + core.register_craft({ + output = name, + recipe = { + {"group:wood", "group:wood"}, + {"group:wood", "default:copper_ingot"}, + {"group:wood", "group:wood"} + } + }) + + core.register_craft({ + output = name, + recipe = { {"doors:door_wood", "default:copper_ingot"} } + }) + end +end + +-- Protected Steel Door + +local name = "protector:door_steel" + +register_door(name, { + description = S("Protected Steel Door"), + inventory_image = "doors_steel.png^protector_logo.png", + groups = { + snappy = 1, cracky = 1, handy = 1, + level = (mcl and 0 or 2), pickaxey = 2, unbreakable = 1 + }, + tiles_bottom = {"doors_steel_b.png^protector_logo.png", "doors_grey.png"}, + tiles_top = {"doors_steel_a.png", "doors_grey.png"}, + sounds = default.node_sound_metal_defaults(), + open_sound = "default_place_node_metal", + sunlight = false, +}) + +if protector_crafts then + + if mcl then + + core.register_craft({ + output = name, + recipe = { {"mcl_doors:iron_door", "mcl_core:gold_ingot"} } + }) + else + core.register_craft({ + output = name, + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:copper_ingot"}, + {"default:steel_ingot", "default:steel_ingot"} + } + }) + + core.register_craft({ + output = name, + recipe = { {"doors:door_steel", "default:copper_ingot"} } + }) + end +end + +----trapdoor---- + +local function register_trapdoor(name, def) + + local name_closed = name + local name_opened = name .. "_open" + + def.on_rightclick = function (pos, node, clicker, itemstack, pointed_thing) + + if core.is_protected(pos, clicker:get_player_name()) then return end + + local newname = node.name == name_closed and name_opened or name_closed + + core.sound_play(def.open_sound, + {pos = pos, gain = 0.3, max_hear_distance = 10}, true) + + core.swap_node(pos, + {name = newname, param1 = node.param1, param2 = node.param2}) + end + + -- Common trapdoor configuration + def.drawtype = "nodebox" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.use_texture_alpha = "clip" + def.is_ground_content = false + def.node_dig_prediction = "" + + local def_opened = table.copy(def) + local def_closed = table.copy(def) + + def_closed.node_box = { + type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.selection_box = { + type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.tiles = { def.tile_front, def.tile_front, def.tile_side, def.tile_side, + def.tile_side, def.tile_side } + + def_opened.node_box = { + type = "fixed", fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.selection_box = { + type = "fixed", fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.tiles = { def.tile_side, def.tile_side, + def.tile_side .. "^[transform3", + def.tile_side .. "^[transform1", + def.tile_front, def.tile_front } + + def_opened.drop = name_closed + def_opened.groups.not_in_creative_inventory = 1 + + core.register_node(name_opened, def_opened) + core.register_node(name_closed, def_closed) +end + +-- Protected Wooden Trapdoor + +register_trapdoor("protector:trapdoor", { + description = S("Protected Trapdoor"), + inventory_image = "doors_trapdoor.png^protector_logo.png", + wield_image = "doors_trapdoor.png^protector_logo.png", + tile_front = "doors_trapdoor.png^protector_logo.png", + tile_side = "doors_trapdoor_side.png", + groups = {snappy = 1, choppy = 2, dig_immediate = 2, unbreakable = 1, axey = 1}, + _mcl_hardness = 0.8, + _mcl_blast_resistance = 1, + sounds = default.node_sound_wood_defaults(), + open_sound = "default_dug_node" +}) + +if protector_crafts then + + if mcl then + + core.register_craft({ + output = "protector:trapdoor", + recipe = { {"mcl_doors:trapdoor", "mcl_core:gold_ingot"} } + }) + else + core.register_craft({ + output = "protector:trapdoor 2", + recipe = { + {"group:wood", "default:copper_ingot", "group:wood"}, + {"group:wood", "group:wood", "group:wood"} + } + }) + + core.register_craft({ + output = "protector:trapdoor", + recipe = { {"doors:trapdoor", "default:copper_ingot"} } + }) + end +end + +-- Protected Steel Trapdoor + +register_trapdoor("protector:trapdoor_steel", { + description = S("Protected Steel Trapdoor"), + inventory_image = "doors_trapdoor_steel.png^protector_logo.png", + wield_image = "doors_trapdoor_steel.png^protector_logo.png", + tile_front = "doors_trapdoor_steel.png^protector_logo.png", + tile_side = "doors_trapdoor_steel_side.png", + groups = { + snappy = 1, bendy = 2, cracky = 1, level = (mcl and 0 or 2), + unbreakable = 1, pickaxey = 2, handy = 1 + }, + _mcl_hardness = 1, + _mcl_blast_resistance = 1, + sounds = default.node_sound_metal_defaults(), + open_sound = "default_place_node_metal" +}) + +if protector_crafts then + + if mcl then + + core.register_craft({ + output = "protector:trapdoor_steel", + recipe = { {"mcl_doors:iron_trapdoor", "mcl_core:gold_ingot"} } + }) + else + core.register_craft({ + output = "protector:trapdoor_steel", + recipe = { + {"default:copper_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"} + } + }) + + core.register_craft({ + output = "protector:trapdoor_steel", + recipe = { {"doors:trapdoor_steel", "default:copper_ingot"} } + }) + end +end diff --git a/mods/protector/hud.lua b/mods/protector/hud.lua new file mode 100644 index 00000000..1c8da003 --- /dev/null +++ b/mods/protector/hud.lua @@ -0,0 +1,82 @@ + +-- translation and protector radius + +local S = core.get_translator("protector") +local radius = protector.radius + +-- hud settings + +local hud = {} +local hud_timer = 0 +local hud_interval = (tonumber(core.settings:get("protector_hud_interval")) or 4) +local hud_style = core.has_feature("hud_def_type_field") + +if hud_interval > 0 then + +core.register_globalstep(function(dtime) + + hud_timer = hud_timer + dtime + + if hud_timer < hud_interval then return end + + hud_timer = 0 + + for _, player in pairs(core.get_connected_players()) do + + local name = player:get_player_name() + local pos = vector.round(player:get_pos()) + local hud_text = "" + + local protectors = core.find_nodes_in_area( + {x = pos.x - radius , y = pos.y - radius , z = pos.z - radius}, + {x = pos.x + radius , y = pos.y + radius , z = pos.z + radius}, + {"protector:protect","protector:protect2", "protector:protect_hidden"}) + + if #protectors > 0 then + + local npos = protectors[1] + local meta = core.get_meta(npos) + local nodeowner = meta:get_string("owner") + local members = meta:get_string("members"):split(" ") + + hud_text = S("Owner: @1", nodeowner) + + if #members > 0 then + hud_text = hud_text .. " [" .. #members .. "]" + end + end + + if not hud[name] then + + hud[name] = {} + + local hud_tab = { + name = "Protector Area", + number = 0xFFFF22, + position = {x = 0, y = 0.95}, + offset = {x = 8, y = -8}, + text = hud_text, + scale = {x = 200, y = 60}, + alignment = {x = 1, y = -1}, + } + + if hud_style then + hud_tab["type"] = "text" + else + hud_tab["hud_elem_type"] = "text" + end + + hud[name].id = player:hud_add(hud_tab) + + return + else + player:hud_change(hud[name].id, "text", hud_text) + end + end +end) + +core.register_on_leaveplayer(function(player) + hud[player:get_player_name()] = nil +end) + +end -- END hud_interval > 0 diff --git a/mods/protector/init.lua b/mods/protector/init.lua new file mode 100644 index 00000000..a281bba2 --- /dev/null +++ b/mods/protector/init.lua @@ -0,0 +1,808 @@ + +-- default support (for use with MineClone2 and other [games] + +if not core.global_exists("default") then + + default = { + node_sound_stone_defaults = function(table) return {} end, + node_sound_wood_defaults = function(table) return {} end, + node_sound_metal_defaults = function(table) return {} end, + gui_bg = "", gui_bg_img = "", gui_slots = "" + } +end + +if core.get_modpath("mcl_sounds") then + default.node_sound_stone_defaults = mcl_sounds.node_sound_stone_defaults + default.node_sound_wood_defaults = mcl_sounds.node_sound_wood_defaults + default.node_sound_metal_defaults = mcl_sounds.node_sound_metal_defaults +end + +-- modpath, formspec helper and translator + +local MP = core.get_modpath(core.get_current_modname()) +local F = core.formspec_escape +local S = core.get_translator("protector") + +-- global table + +protector = { + mod = "redo", + max_shares = 12, + radius = tonumber(core.settings:get("protector_radius")) or 5 +} + +-- radius limiter (minetest cannot handle node volume of more than 4096000) + +if protector.radius > 30 then protector.radius = 30 end + +-- playerfactions check + +local factions_available = core.global_exists("factions") + +if factions_available then protector.max_shares = 8 end + +-- localize math + +local math_floor, math_pi = math.floor, math.pi + +-- settings + +local protector_flip = core.settings:get_bool("protector_flip") or false +local protector_hurt = tonumber(core.settings:get("protector_hurt")) or 0 +local protector_spawn = tonumber(core.settings:get("protector_spawn") + or core.settings:get("protector_pvp_spawn")) or 0 +local protector_show = tonumber(core.settings:get("protector_show_interval")) or 5 +local protector_recipe = core.settings:get_bool("protector_recipe") ~= false +local protector_msg = core.settings:get_bool("protector_msg") ~= false + +-- get static spawn position + +local statspawn = core.string_to_pos(core.settings:get("static_spawnpoint")) + or {x = 0, y = 2, z = 0} + +-- return list of members as a table + +local function get_member_list(meta) + + return meta:get_string("members"):split(" ") +end + +-- write member list table in protector meta as string + +local function set_member_list(meta, list) + + meta:set_string("members", table.concat(list, " ")) +end + +-- check for owner name + +local function is_owner(meta, name) + + return name == meta:get_string("owner") +end + +-- check for member name + +local function is_member(meta, name) + + if factions_available and meta:get_int("faction_members") == 1 then + + if factions.version == nil then + + -- backward compatibility + if factions.get_player_faction(name) ~= nil + and factions.get_player_faction(meta:get_string("owner")) == + factions.get_player_faction(name) then + return true + end + else + -- is member if player and owner share at least one faction + local player_factions = factions.get_player_factions(name) + local owner = meta:get_string("owner") + + if player_factions ~= nil and player_factions ~= false then + + for _, f in ipairs(player_factions) do + + if factions.player_is_in_faction(f, owner) then return true end + end + end + end + end + + for _, n in pairs(get_member_list(meta)) do + + if n == name then return true end + end + + return false +end + +-- add player name to table as member + +local function add_member(meta, name) + + -- Validate player name for MT compliance + if name ~= string.match(name, "[%w_-]+") then return end + + -- Constant (20) defined by player.h + if name:len() > 25 then return end + + -- does name already exist? + if is_owner(meta, name) or is_member(meta, name) then return end + + local list = get_member_list(meta) + + if #list >= protector.max_shares then return end + + table.insert(list, name) + + set_member_list(meta, list) +end + +-- remove player name from table + +local function del_member(meta, name) + + local list = get_member_list(meta) + + for i, n in pairs(list) do + + if n == name then + table.remove(list, i) ; break + end + end + + set_member_list(meta, list) +end + +-- protector interface + +local function protector_formspec(meta) + + local formspec = "size[8,7]" + .. default.gui_bg + .. default.gui_bg_img + .. "label[2.5,0;" .. F(S("-- Protector interface --")) .. "]" + .. "label[0,1;" .. F(S("PUNCH node to show protected area")) .. "]" + .. "label[0,2;" .. F(S("Members:")) .. "]" + .. "button_exit[2.5,6.2;3,0.5;close_me;" .. F(S("Close")) .. "]" + .. "field_close_on_enter[protector_add_member;false]" + + local members = get_member_list(meta) + local i = 0 + local checkbox_faction = false + + -- Display the checkbox only if the owner is member of at least 1 faction + if factions_available then + + if factions.version == nil then + + -- backward compatibility + if factions.get_player_faction(meta:get_string("owner")) then + checkbox_faction = true + end + else + local player_factions = factions.get_player_factions(meta:get_string("owner")) + + if player_factions ~= nil and type(player_factions) == "table" + and #player_factions >= 1 then + checkbox_faction = true + end + end + end + + if checkbox_faction then + + formspec = formspec .. "checkbox[0,5;faction_members;" + .. F(S("Allow faction access")) + .. ";" .. (meta:get_int("faction_members") == 1 and + "true" or "false") .. "]" + end + + for n = 1, #members do + + if i < protector.max_shares then + + -- show username + formspec = formspec .. "button[" .. (i % 4 * 2) + .. "," .. math_floor(i / 4 + 3) + .. ";1.5,.5;protector_member;" .. F(members[n]) .. "]" + + -- username remove button + .. "button[" .. (i % 4 * 2 + 1.25) .. "," + .. math_floor(i / 4 + 3) + .. ";.75,.5;protector_del_member_" .. F(members[n]) .. ";X]" + end + + i = i + 1 + end + + if i < protector.max_shares then + + -- user name entry field + formspec = formspec .. "field[" .. (i % 4 * 2 + 1 / 3) .. "," + .. (math_floor(i / 4 + 3) + 1 / 3) + .. ";1.433,.5;protector_add_member;;]" + + -- username add button + .."button[" .. (i % 4 * 2 + 1.25) .. "," + .. math_floor(i / 4 + 3) .. ";.75,.5;protector_submit;+]" + end + + return formspec +end + +-- check if pos is inside a protected spawn area + +local function inside_spawn(pos, radius) + + if protector_spawn <= 0 then return false end + + if pos.x < statspawn.x + radius and pos.x > statspawn.x - radius + and pos.y < statspawn.y + radius and pos.y > statspawn.y - radius + and pos.z < statspawn.z + radius and pos.z > statspawn.z - radius then + + return true + end +end + +-- show protection message if enabled + +local function show_msg(player_name, msg) + + -- if messages disabled or no player name provided + if protector_msg == false or not player_name or player_name == "" then return end + + core.chat_send_player(player_name, msg) +end + +-- Infolevel: +-- 0 for no info +-- 1 for "This area is owned by !" if you can't dig +-- 2 for "This area is owned by . +-- 3 for checking protector overlaps + +function protector.can_dig(r, pos, digger, onlyowner, infolevel) + + if not digger or not pos then return false end + + -- protector_bypass privileged users can override protection + if infolevel == 1 + and core.check_player_privs(digger, {protection_bypass = true}) then + return true + end + + -- infolevel 3 is only used to bypass priv check, change to 1 now + if infolevel == 3 then infolevel = 1 end + + -- is spawn area protected ? + if inside_spawn(pos, protector_spawn) then + + show_msg(digger, S("Spawn @1 has been protected up to a @2 block radius.", + core.pos_to_string(statspawn), protector_spawn)) + + return false + end + + -- find the protector nodes + local pos = core.find_nodes_in_area( + {x = pos.x - r, y = pos.y - r, z = pos.z - r}, + {x = pos.x + r, y = pos.y + r, z = pos.z + r}, + {"protector:protect", "protector:protect2", "protector:protect_hidden"}) + + local meta, owner, members + + for n = 1, #pos do + + meta = core.get_meta(pos[n]) + owner = meta:get_string("owner") or "" + members = meta:get_string("members") or "" + + -- node change and digger isn't owner + if infolevel == 1 and owner ~= digger then + + -- and you aren't on the member list + if onlyowner or not is_member(meta, digger) then + + show_msg(digger, S("This area is owned by @1", owner) .. "!") + + return false + end + end + + -- when using protector as tool, show protector information + if infolevel == 2 then + + core.chat_send_player(digger, + S("This area is owned by @1", owner) .. ".") + + core.chat_send_player(digger, + S("Protection located at: @1", core.pos_to_string(pos[n]))) + + if members ~= "" then + core.chat_send_player(digger, S("Members: @1.", members)) + end + + return false + end + + end + + -- show when you can build on unprotected area + if infolevel == 2 then + + if #pos < 1 then + core.chat_send_player(digger, S("This area is not protected.")) + end + + core.chat_send_player(digger, S("You can build here.")) + end + + return true +end + +-- add protector hurt and flip to protection violation function + +core.register_on_protection_violation(function(pos, name) + + local player = core.get_player_by_name(name) + + if player and player:is_player() then + + -- hurt player if protection violated + if protector_hurt > 0 and player:get_hp() > 0 then + + -- This delay fixes item duplication bug (thanks luk3yx) + core.after(0.1, function(player) + player:set_hp(player:get_hp() - protector_hurt) + end, player) + end + + -- flip player when protection violated + if protector_flip then + + -- yaw + 180° + local yaw = player:get_look_horizontal() + math_pi + + if yaw > 2 * math_pi then + yaw = yaw - 2 * math_pi + end + + player:set_look_horizontal(yaw) + + -- invert pitch + player:set_look_vertical(-player:get_look_vertical()) + + -- if digging below player, move up to avoid falling through hole + local pla_pos = player:get_pos() + + if pos.y < pla_pos.y then + player:set_pos({x = pla_pos.x, y = pla_pos.y + 0.8, z = pla_pos.z}) + end + end + end +end) + +-- backup old is_protected function + +local old_is_protected = core.is_protected + +-- check for protected area, return true if protected and digger isn't on list + +function core.is_protected(pos, digger) + + digger = digger or "" -- nil check + + -- is area protected against digger? + if not protector.can_dig(protector.radius, pos, digger, false, 1) then + return true + end + + -- otherwise can dig or place + return old_is_protected(pos, digger) +end + +-- make sure protection block doesn't overlap another protector's area + +local function check_overlap(itemstack, placer, pointed_thing) + + if pointed_thing.type ~= "node" then return itemstack end + + local pos = pointed_thing.above + local name = placer:get_player_name() + + -- make sure protector doesn't overlap onto protected spawn area + if inside_spawn(pos, protector_spawn + protector.radius) then + + core.chat_send_player(name, + S("Spawn @1 has been protected up to a @2 block radius.", + core.pos_to_string(statspawn), protector_spawn)) + + return itemstack + end + + -- make sure protector doesn't overlap any other player's area + if not protector.can_dig(protector.radius * 2, pos, name, true, 3) then + + core.chat_send_player(name, + S("Overlaps into above players protected area")) + + return itemstack + end + + return core.item_place(itemstack, placer, pointed_thing) +end + +-- remove protector display entities + +local function del_display(pos) + + local objects = core.get_objects_inside_radius(pos, 0.5) + + for _, v in ipairs(objects) do + + if v and v:get_luaentity() and v:get_luaentity().name == "protector:display" then + v:remove() + end + end +end + +-- temporary position store + +local player_pos = {} + +-- stone texture + +local stone_tex = "default_stone.png" + +if core.get_modpath("nc_terrain") then + stone_tex = "nc_terrain_stone.png" +end + +-- protector default + +local def = { + + description = S("Protection Block") .. " (" .. S("USE for area check") .. ")", + tiles = { + stone_tex .. "^protector_overlay.png", + stone_tex .. "^protector_overlay.png", + stone_tex .. "^protector_overlay.png^protector_logo.png" + }, + drawtype = "nodebox", + node_box = {type = "fixed", fixed = {{-0.499 ,-0.499, -0.499, 0.499, 0.499, 0.499}}}, + sounds = default.node_sound_stone_defaults(), + groups = {dig_immediate = 2, unbreakable = 1}, + is_ground_content = false, + paramtype = "light", + light_source = 4, + walkable = true, + + on_place = check_overlap, + + after_place_node = function(pos, placer) + + local meta = core.get_meta(pos) + + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("members", "") + meta:set_string("infotext", + S("Protection (owned by @1)", meta:get_string("owner"))) + end, + + on_use = function(itemstack, user, pointed_thing) + + if pointed_thing.type ~= "node" then return end + + protector.can_dig(protector.radius, pointed_thing.under, + user:get_player_name(), false, 2) + end, + + on_rightclick = function(pos, node, clicker, itemstack) + + local meta = core.get_meta(pos) + local name = clicker:get_player_name() + + if meta and protector.can_dig(1, pos, name, true, 1) then + + player_pos[name] = pos + + core.show_formspec(name, "protector:node", protector_formspec(meta)) + end + end, + + on_punch = function(pos, node, puncher) + + if core.is_protected(pos, puncher:get_player_name()) then return end + + core.add_entity(pos, "protector:display") + end, + + can_dig = function(pos, player) + + return player and protector.can_dig(1, pos, player:get_player_name(), true, 1) + end, + + on_blast = function() end, + + after_destruct = del_display +} + +-- protection node + +core.register_node("protector:protect", table.copy(def)) + +-- default recipe and alternative for MineClone2 + +if protector_recipe then + + local item_gold = "default:gold_ingot" + local item_stone = "default:stone" + + if core.get_modpath("mcl_core") then + item_gold = "mcl_core:gold_ingot" + item_stone = "mcl_core:stone" + end + + core.register_craft({ + output = "protector:protect", + recipe = { + {item_stone, item_stone, item_stone}, + {item_stone, item_gold, item_stone}, + {item_stone, item_stone, item_stone} + } + }) +end + +-- protection logo + +def.description = S("Protection Logo") .. " (" .. S("USE for area check") .. ")" +def.tiles = {"protector_logo.png"} +def.wield_image = "protector_logo.png" +def.inventory_image = "protector_logo.png" +def.use_texture_alpha = "clip" +def.paramtype2 = "wallmounted" +def.legacy_wallmounted = true +def.sunlight_propagates = true +def.node_box = { + type = "wallmounted", + wall_top = {-0.375, 0.4375, -0.5, 0.375, 0.5, 0.5}, + wall_bottom = {-0.375, -0.5, -0.5, 0.375, -0.4375, 0.5}, + wall_side = {-0.5, -0.5, -0.375, -0.4375, 0.5, 0.375} +} +def.selection_box = {type = "wallmounted"} + +core.register_node("protector:protect2", table.copy(def)) + +-- recipes to switch between protectors + +core.register_craft({ + output = "protector:protect", recipe = {{"protector:protect2"}} +}) + +core.register_craft({ + output = "protector:protect2", recipe = {{"protector:protect"}} +}) + +-- check formspec buttons or when name entered + +core.register_on_player_receive_fields(function(player, formname, fields) + + if formname ~= "protector:node" then return end + + local name = player:get_player_name() + local pos = player_pos[name] + + if not name or not pos then return end + + local add_member_input = fields.protector_add_member + + -- reset formspec until close button pressed + if (fields.close_me or fields.quit) + and (not add_member_input or add_member_input == "") then + player_pos[name] = nil + return + end + + -- only owner can add names + if not protector.can_dig(1, pos, player:get_player_name(), true, 1) then + return + end + + -- are we adding member to a protection node ? (csm protection) + local nod = core.get_node(pos).name + + if nod ~= "protector:protect" and nod ~= "protector:protect2" then + player_pos[name] = nil + return + end + + local meta = core.get_meta(pos) ; if not meta then return end + + -- add faction members + if factions_available and fields.faction_members ~= nil then + meta:set_int("faction_members", fields.faction_members == "true" and 1 or 0) + end + + -- add member [+] + if add_member_input then + + for _, i in pairs(add_member_input:split(" ")) do + add_member(meta, i) + end + end + + -- remove member [x] + for field, value in pairs(fields) do + + if string.sub(field, 0, + string.len("protector_del_member_")) == "protector_del_member_" then + + del_member(meta, string.sub(field,string.len("protector_del_member_") + 1)) + end + end + + core.show_formspec(name, formname, protector_formspec(meta)) +end) + +-- display entity shown when protector node is punched + +core.register_entity("protector:display", { + + initial_properties = { + physical = false, + collisionbox = {0, 0, 0, 0, 0, 0}, + visual = "wielditem", + -- wielditem seems to be scaled to 1.5 times original node size + visual_size = {x = 0.67, y = 0.67}, + textures = {"protector:display_node"}, + glow = 10 + }, + + timer = 0, + + on_step = function(self, dtime) + + self.timer = self.timer + dtime + + -- remove after set number of seconds + if self.timer > protector_show then self.object:remove() end + end +}) + +-- Display-zone node, Do NOT place the display as a node, +-- it is made to be used as an entity (see above) + +local r = protector.radius + +core.register_node("protector:display_node", { + tiles = {"protector_display.png"}, + use_texture_alpha = "clip", + walkable = false, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-(r+.55), -(r+.55), -(r+.55), -(r+.45), (r+.55), (r+.55)}, -- sides + {-(r+.55), -(r+.55), (r+.45), (r+.55), (r+.55), (r+.55)}, + {(r+.45), -(r+.55), -(r+.55), (r+.55), (r+.55), (r+.55)}, + {-(r+.55), -(r+.55), -(r+.55), (r+.55), (r+.55), -(r+.45)}, + {-(r+.55), (r+.45), -(r+.55), (r+.55), (r+.55), (r+.55)}, -- top + {-(r+.55), -(r+.55), -(r+.55), (r+.55), -(r+.45), (r+.55)}, -- bottom + {-.55,-.55,-.55, .55,.55,.55} -- middle (surrounding protector) + } + }, + selection_box = {type = "regular"}, + paramtype = "light", + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, + drop = "", + on_blast = function() end +}) + +-- load mod sections + +dofile(MP .. "/doors.lua") +dofile(MP .. "/chest.lua") +dofile(MP .. "/pvp.lua") +dofile(MP .. "/admin.lua") +dofile(MP .. "/tool.lua") +dofile(MP .. "/hud.lua") + +if core.get_modpath("lucky_block") then + dofile(MP .. "/lucky_block.lua") +end + +-- stop mesecon pistons from pushing protectors + +if core.get_modpath("mesecons_mvps") then + mesecon.register_mvps_stopper("protector:protect") + mesecon.register_mvps_stopper("protector:protect2") + mesecon.register_mvps_stopper("protector:protect_hidden") + mesecon.register_mvps_stopper("protector:chest") +end + +-- player command to add member names to local protection + +core.register_chatcommand("protector_add_member", { + params = "", + description = S("Add member names to local protection"), + privs = {interact = true}, + + func = function(name, param) + + if param == "" then return end + + local to_add = param:split(" ") + local player = core.get_player_by_name(name) + local pos = player:get_pos() + + -- find the protector nodes + local pos = core.find_nodes_in_area( + {x = pos.x - r, y = pos.y - r, z = pos.z - r}, + {x = pos.x + r, y = pos.y + r, z = pos.z + r}, + {"protector:protect", "protector:protect2", "protector:protect_hidden"}) + + local meta, owner + + for n = 1, #pos do + + meta = core.get_meta(pos[n]) + owner = meta:get_string("owner") or "" + + if owner == name + or core.check_player_privs(name, {protection_bypass = true}) then + + for m = 1, #to_add do + add_member(meta, to_add[m]) + end + + core.add_entity(pos[n], "protector:display") + end + end + end +}) + +-- player command to remove member names from local protection + +core.register_chatcommand("protector_del_member", { + params = "", + description = S("Remove member names from local protection"), + privs = {interact = true}, + + func = function(name, param) + + if param == "" then return end + + local to_del = param:split(" ") + local player = core.get_player_by_name(name) + local pos = player:get_pos() + + -- find the protector nodes + local pos = core.find_nodes_in_area( + {x = pos.x - r, y = pos.y - r, z = pos.z - r}, + {x = pos.x + r, y = pos.y + r, z = pos.z + r}, + {"protector:protect", "protector:protect2", "protector:protect_hidden"}) + + local meta, owner + + for n = 1, #pos do + + meta = core.get_meta(pos[n]) + owner = meta:get_string("owner") or "" + + if owner == name + or core.check_player_privs(name, {protection_bypass = true}) then + + for m = 1, #to_del do + del_member(meta, to_del[m]) + end + + core.add_entity(pos[n], "protector:display") + end + end + end +}) + + +print ("[MOD] Protector Redo loaded") diff --git a/mods/protector/license.txt b/mods/protector/license.txt new file mode 100644 index 00000000..c3380e06 --- /dev/null +++ b/mods/protector/license.txt @@ -0,0 +1,33 @@ +The MIT License (MIT) + +Copyright (c) 2025 TenPlus1 + +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. + + +Original doors mod code (WTFPL license) + +Textures by TenPlus1 (CC0) unless mentioned below + +Textures from original Minetest doors mod (CC-BY-SA 3.0) + doors_*.png +..default_chest*.png + +Textures by Sirrobzeroone (CC0) + protector_tool.png diff --git a/mods/protector/locale/protector.de.tr b/mods/protector/locale/protector.de.tr new file mode 100644 index 00000000..ccf59fe4 --- /dev/null +++ b/mods/protector/locale/protector.de.tr @@ -0,0 +1,57 @@ +# textdomain: protector +# author: Xanthin and CodeXP +# last update: 2020/Jul/12 + +### admin.lua ### +Remove Protectors around players (separate names with spaces)=Entferne Störschützer von bestimmten Namen in der Nähe von Spielern (trenne Namen durch Leerzeichen) += +Replace Protector Owner with name provided=Ersetze Besitzer der Störschützer mit neuem Besitzer + = +Replacing Protector name '@1' with '@2'=Ersetze Besitzer der Störschützer von '@1' mit '@2' +Show protected areas of your nearby protectors=Zeige geschützte Bereiche der Störschützer in der Nähe +Protector Names to remove: @1=Störschutznamen zum Entfernen: @1 +Name List Reset=Namensliste zurückgesetzt +Invalid player name!= +Player name too long= +Player not found.= + +### doors_chest.lua ### +Protected Wooden Door=Geschützte Holztür +Protected Steel Door=Geschützte Stahltür +Protected Trapdoor=Geschützte Falltür +Protected Steel Trapdoor=Geschützte Stahlfalltür +Protected Chest=Geschützte Truhe +To Chest=Zur Truhe +To Inventory=Zum Inventar +Protected Chest (@1)=Geschützte Truhe (@1) + +### init.lua ### +-- Protector interface --=-- Störschutz-Interface -- +PUNCH node to show protected area=SCHLAGE Node, um geschützten Bereich anzuzeigen oder +USE for area check=BENUTZE für Bereichsprüfung +Members:=Mitglieder: +Close=Schließen +Protection located at: @1=Störschutz befindet sich bei: @1 +Members: @1.=Mitglieder: @1. +Allow faction access= +This area is not protected.=Dieser Bereich ist nicht geschützt. +You can build here.=Du kannst hier bauen. +Overlaps into above players protected area=Überlappung im geschützen Bereich eines Spielers +Protection Block=Störschutzblock +Protection (owned by @1)=Störschutz (gehört @1) +Protection Logo=Störschutzlogo +[MOD] Protector Redo loaded=[MOD] Protector Redo geladen +Spawn @1 has been protected up to a @2 block radius.=Spawn @1 ist geschützt mit einem Radius von @2 Blöcke. +This area is owned by @1=Dieser Bereich gehört @1 + +### hud.lua ### +Owner: @1=Besitzer: @1 + +### tool.lua ### +Protector Placer Tool (stand near protector, face direction and use)=Störschutz Platzier-Werkzeug (stehe neben Störschutz, schaue in die gewünschte Richtung und anwenden) +Protector already in place!=Störschutz is bereits platziert! +No protectors available to place!=Keine Störschützer mehr im Inventar! +"Protector placed at @1"=Störschutz befindet sich bei: @1 +Out of bounds!= +Cannot place protector, already protected at @1= +Cannot place protector, container at @1= \ No newline at end of file diff --git a/mods/protector/locale/protector.es.tr b/mods/protector/locale/protector.es.tr new file mode 100644 index 00000000..45891652 --- /dev/null +++ b/mods/protector/locale/protector.es.tr @@ -0,0 +1,57 @@ +# textdomain: protector +# author: universales +# last update: 2020-02-27 + +### admin.lua ### +Remove Protectors around players (separate names with spaces)=Eliminar protectores alrededor de los jugadores (nombres separados con espacios) += +Replace Protector Owner with name provided=Reemplace el propietario del protector con el nombre proporcionado + = +Replacing Protector name '@1' with '@2'=Reemplazando el nombre del protector '@1' a '@2' +Show protected areas of your nearby protectors=Mostrar áreas protegidas de sus protectores cercanos +Protector Names to remove: @1=Nombres de protectores para eliminar: @1 +Name List Reset=Restablecer lista de nombres +Invalid player name!= +Player name too long= +Player not found.= + +### doors_chest.lua ### +Protected Wooden Door=Puerta de madera protegida +Protected Steel Door=Puerta de hierro protegida +Protected Trapdoor=Trampilla Protegida +Protected Steel Trapdoor=Trampilla de hierro protegida +Protected Chest=Cofre protegido +To Chest=Al cofre +To Inventory=Al inventario +Protected Chest (@1)=Cofre protegido (@1) + +### init.lua ### +-- Protector interface --=-- Interfaz del protector -- +PUNCH node to show protected area=nodo de perforación para mostrar el área protegida +USE for area check=Usar para chequeo del área +Members:=Miembros: +Close=Cerrar +Protection located at: @1=Protección ubicada en: @1 +Members: @1.=Miembros: @1. +Allow faction access= +This area is not protected.=Esta área no está protegida. +You can build here.=Puedes construir aquí. +Overlaps into above players protected area=Se superpone en el área protegida de los jugadores anteriores +Protection Block=Bloque de protección +Protection (owned by @1)=Protegido (Propiedad de @1) +Protection Logo=Logotipo de la protección +[MOD] Protector Redo loaded=[MOD] Protector recargado +Spawn @1 has been protected up to a @2 block radius.=Spawn @1 ha sido protegido hasta un radio de bloque @2. +This area is owned by @1=Esta área es propiedad de @1 + +### hud.lua ### +Owner: @1=Propietario: @1 + +### tool.lua ### +Protector Placer Tool (stand near protector, face direction and use)=Herramienta de colocación del protector (pararse cerca del protector, dirección de la cara y uso) +Protector already in place!=¡El protector ya está en este lugar! +No protectors available to place!=¡No hay protectores disponibles para colocar! +Protector placed at @1=Protector colocado en @1 +Out of bounds!= +Cannot place protector, already protected at @1= +Cannot place protector, container at @1= \ No newline at end of file diff --git a/mods/protector/locale/protector.fr.tr b/mods/protector/locale/protector.fr.tr new file mode 100644 index 00000000..38361e57 --- /dev/null +++ b/mods/protector/locale/protector.fr.tr @@ -0,0 +1,57 @@ +# textdomain: protector +# author: CodeXP and TenPlus1 +# last update: 2020/Jul/12 + +### admin.lua ### +Remove Protectors around players (separate names with spaces)=Retirer les protecteurs près des joueurs avec les noms fournis (noms séparés avec des espaces) += +Replace Protector Owner with name provided=Remplacer le propriétaire du protecteur par le nom fourni + = +Replacing Protector name '@1' with '@2'= +Show protected areas of your nearby protectors=Affichez les zones protégées de vos protecteurs à proximité +Protector Names to remove: @1=Noms de protecteurs à supprimer: @1 +Name List Reset=Liste de noms réinitialiser +Invalid player name!= +Player name too long= +Player not found.= + +### doors_chest.lua ### +Protected Wooden Door=Porte en bois protégée +Protected Steel Door=Porte en acier protégée +Protected Trapdoor=Trappe protégé +Protected Steel Trapdoor=Trap en acier protégé +Protected Chest=Coffre protégé +To Chest=Vers le coffre +To Inventory=Vers l'inventaire +Protected Chest (@1)=Coffre protégé (@1) + +### init.lua ### +-- Protector interface --=-- Interface Protector -- +PUNCH node to show protected area=TAPÉ le bloc pour afficher la zone protégée +USE for area check=UTILISER pour vérifier la zone +Members:=Membres: +Close=Fermer +Protection located at: @1=Protection située à: @1 +Members: @1.=Membres: @1. +Allow faction access= +This area is not protected.=msgstr "Cette zone n'est pas protégée. +You can build here.=Vous pouvez construire ici. +Overlaps into above players protected area=Vous chevauché une zone protégé. +Protection Block=Bloc de protection +Protection (owned by @1)=Protection (détenue par @1) +Protection Logo=Logo de protection +[MOD] Protector Redo loaded=[MOD] Protector Redo chargé +Spawn @1 has been protected up to a @2 block radius.= +This area is owned by @1=Cette zone appartient à @1! + +### hud.lua ### +Owner: @1=Propriétaire: @1 + +### tool.lua ### +Protector Placer Tool (stand near protector, face direction and use)=Outil de placement du protecteur (se tenir près du protecteur, direction du visage et utilisation) +Protector already in place!=Protecteur déjà en place! +No protectors available to place!=Aucun protecteur disponible à placer! +Protector placed at @1=Protection située à: @1 +Out of bounds!= +Cannot place protector, already protected at @1= +Cannot place protector, container at @1= \ No newline at end of file diff --git a/mods/protector/locale/protector.it.tr b/mods/protector/locale/protector.it.tr new file mode 100644 index 00000000..4c202649 --- /dev/null +++ b/mods/protector/locale/protector.it.tr @@ -0,0 +1,57 @@ +# textdomain: protector +# author: Xanthin and CodeXP +# last update: 2018/Jul/10 + +### admin.lua ### +Remove Protectors around players (separate names with spaces)=Elimina i protettori attorno ai giocatori (separa i nomi con gli spazi) += +Replace Protector Owner with name provided=Sostituisci il proprietario del protettore col nome fornito + = +Replacing Protector name '@1' with '@2'=Sostituzione del nome del protettore '@1' con '@2' +Show protected areas of your nearby protectors=Mostra le aree protette dei protettori vicino a te +Protector Names to remove: @1=Nomi dei protettori da eliminare: @1 +Name List Reset=Azzera l'elenco dei nomi +Invalid player name!= +Player name too long= +Player not found.= + +### doors_chest.lua ### +Protected Wooden Door=Porta di legno protetta +Protected Steel Door=Porta d'acciaio protetta +Protected Trapdoor=Botola protetta +Protected Steel Trapdoor=Botola d'acciaio protetta +Protected Chest=Baule protetto +To Chest=Al baule +To Inventory=All'inventario +Protected Chest (@1)=Baule protetto (@1) + +### init.lua ### +-- Protector interface --=-- Interfaccia protettore -- +PUNCH node to show protected area=COLPISCI il nodo per mostrare l'area protetta +USE for area check=USA per controllare l'area +Members:=Membri: +Close=Chiudi +Protection located at: @1=Protezione collocata a: @1 +Members: @1.=Membri: @1. +Allow faction access= +This area is not protected.=Quest'area non è protetta. +You can build here.=Qui puoi costruire. +Overlaps into above players protected area=Si sovrappone ad un'area sovrastante protetta dai giocatori +Protection Block=Blocco di protezione +Protection (owned by @1)=Protezione (di proprietà di @1) +Protection Logo=Logo di protezione +[MOD] Protector Redo loaded=[MOD] Protector Redo caricato +Spawn @1 has been protected up to a @2 block radius.=Lo spawn @1 è stato protetto fino a un raggio di @2 blocchi. +This area is owned by @1=Quest'area è di proprietà di @1 + +### hud.lua ### +Owner: @1=Proprietario: @1 + +### tool.lua ### +Protector Placer Tool (stand near protector, face direction and use)=Strumento di posizionamento protettore (stai vicino al protettore, guarda la direzione e usa) +Protector already in place!=Protettore già presente! +No protectors available to place!=Nessun protettore disponibile da posizionare! +Protector placed at @1=Protettore posizionato a @1 +Out of bounds!= +Cannot place protector, already protected at @1= +Cannot place protector, container at @1= \ No newline at end of file diff --git a/mods/protector/locale/protector.ru.tr b/mods/protector/locale/protector.ru.tr new file mode 100644 index 00000000..2c6c9049 --- /dev/null +++ b/mods/protector/locale/protector.ru.tr @@ -0,0 +1,62 @@ +# textdomain: protector +# author: SkyBuilder1717 +# last update: 2025/Jan/27 + +### admin.lua ### +Remove Protectors around players (separate names with spaces)=Удалить Защитников вокруг игроков (отделяйте имена с помощью пробела) +=<игроки> +Replace Protector Owner with name provided=Заменить Владельца Защитника с доставленным именем + =<владелец> <новый владелец> +Replacing Protector name '@1' with '@2'=Замена Имени Защитника '@1' с '@2' +Show protected areas of your nearby protectors=Показать защищённые зоны Защитниками с вами неподалёку +Protector Names to remove: @1=Имена Защитников чтобы удалить: @1 +Name List Reset=Сброс Список Имён +Invalid player name!=Неправильное имя игрока! +Player name too long=Имя игрока слишком длинное +Player not found.=Игрок не найден. + +### doors_chest.lua ### +Protected Wooden Door=Защищённая Деревянная Дверь +Protected Steel Door=Защищённая Стальная Дверь +Protected Trapdoor=Защищённый Люк +Protected Steel Trapdoor=Защищённый Стальной Люк +Protected Chest=Защищённый Сундук +To Chest=В Сундук +To Inventory=В Инвентарь +Protected Chest (@1)=Защищённый Сундук (@1) + +### init.lua ### +-- Protector interface --=-- Интерфейс Защитника -- +PUNCH node to show protected area=УДАРЬТЕ по блоку чтобы показать защищённую зону +USE for area check=ИСПОЛЬЗУЙТЕ для проверки зоны +Members:=Участники: +Close=Закрыть +Allow faction access=Разрешить частичный доступ +Protection located at: @1=Защитник расположен на: @1 +Members: @1.=Участники: @1. +This area is not protected.=Эта зона не защищена. +You can build here.=Вы можете здесь строить. +Overlaps into above players protected area=Перекрывает защищенную зону вышеперечисленных игроков +Protection Block=Блок Защиты +Protection (owned by @1)=Защита (владелец: @1) +Protection Logo=Логотип Защиты +[MOD] Protector Redo loaded=[MOD] Protector Redo загружен +Spawn @1 has been protected up to a @2 block radius.=Спавн @1 был защищён радиусом в блоках @2. +This area is owned by @1=Эта зона принадлежит @1. + +### pvp.lua ### +[Protector] on_punchplayer called with nil objects=on_punchplayer вызван на нулевом объекте +[Protector] pvp_protect not active, update your version of Luanti=[Protector] pvp_protect не активен, обновите версию Luanti +[Protector] pvp_protect is disabled=[Protector] pvp_protect выключен + +### hud.lua ### +Owner: @1=Владелец: @1 + +### tool.lua ### +Protector Placer Tool (stand near protector, face direction and use)=Инструмент Размещения Защитника (встаньте рядом с Защитником, повернитесь к нему и используйте предмет) +Protector already in place!=Защитник уже стоит на этом месте! +No protectors available to place!=Нет доступных Защитников чтобы поставить! +Out of bounds!=За пределами! +Protector placed at @1=Защитник размещён на @1 +Cannot place protector, already protected at @1=Нельзя поставить Защитник, другой Защитник уже на @1 +Cannot place protector, container at @1=Нельзя поставить Защитник, контейнер на @1 \ No newline at end of file diff --git a/mods/protector/locale/protector.tr.tr b/mods/protector/locale/protector.tr.tr new file mode 100644 index 00000000..97a0d84d --- /dev/null +++ b/mods/protector/locale/protector.tr.tr @@ -0,0 +1,57 @@ +# textdomain: protector +# author: CodeXP and TenPlus1 +# last update: 2020/Jul/12 + +### admin.lua ### +Remove Protectors around players (separate names with spaces)=Ismi verilen oyuncuların yanındaki korumaları kaldır. (İsimleri boşlukla ayır) += +Replace Protector Owner with name provided=Koruyucu Sahibini belirtilen adla değiştirin + = +Replacing Protector name '@1' with '@2'='@1' Koruyucu adını '@2' ile değiştirin +Show protected areas of your nearby protectors=Yakındaki koruyucuların korunan alanlarını göster +Protector Names to remove: @1=Silinecek korumaların isimleri: @1 +Name List Reset=İsim listesini sıfırla +Invalid player name!= +Player name too long= +Player not found.= + +### doors_chest.lua ### +Protected Wooden Door=Korumalı ahşap kapı +Protected Steel Door=Korumalı çelik kapı +Protected Trapdoor=Korumalı tuzak kapısı +Protected Steel Trapdoor=Korumalı çelik tuzak kapısı +Protected Chest=Korumalı sandık +To Chest=Sandığa +To Inventory=Envantere +Protected Chest (@1)=Korumalı sandık (@1) + +### init.lua ### +-- Protector interface --=-- Koruyucu arayüz -- +PUNCH node to show protected area=Korunan alanı göstermek için yumruk +USE for area check=Bölge kontrolü için kullan +Members:=Üyeler +Close=Kapat +Protection located at: @1=Korumanın bulunduğu yer @1 +Members: @1.=Üyeler @1. +Allow faction access= +This area is not protected.=Bu alan korumalı değildir. +You can build here.=Buraya inşaa edebilirsiniz. +Overlaps into above players protected area=Yukarıdaki oyuncuların koruma alanı ile çakışıyor +Protection Block=Koruma kutusu +Protection (owned by @1)=Koruma (@1 sahibidir) +Protection Logo=Koruma arması +[MOD] Protector Redo loaded=[MOD] Protector Redo yüklendi +Spawn @1 has been protected up to a @2 block radius.=Spawn @1, @2 blok yarıçapa kadar korunur. +This area is owned by @1=Burasının sahibi @1! + +### hud.lua ### +Owner: @1=Sahip: @1 + +### tool.lua ### +Protector Placer Tool (stand near protector, face direction and use)=Koruyucu Yerleştirme Aleti (koruyucunun yanında durun, yüz yönü ve kullanım) +Protector already in place!=Koruyucu zaten yerinde! +No protectors available to place!=Yerleştirilecek koruyucu yok! +Protector placed at @1=Korumanın bulunduğu yer @1 +Out of bounds!= +Cannot place protector, already protected at @1= +Cannot place protector, container at @1= \ No newline at end of file diff --git a/mods/protector/locale/protector.uk.tr b/mods/protector/locale/protector.uk.tr new file mode 100644 index 00000000..fffab3a1 --- /dev/null +++ b/mods/protector/locale/protector.uk.tr @@ -0,0 +1,56 @@ +# textdomain: protector + +Protector Redo=Захист +Lets players craft special blocks to protect their builds or disable PVP in areas.=Дозволяє гравцям створювати спеціальні блоки для захисту їхніх споруд або вимкнення PVP на певних територіях. + +### admin.lua ### +Remove Protectors around players (separate names with spaces)=Видалити захист поряд із гравцями (перечислити імена, розділяючи пробілами) +=<список імен> +Replace Protector Owner with name provided=Замінити власника захисту новим власником + =<ім'я власника> <ім'я нового власника> +Replacing Protector name '@1' with '@2'=Заміняється власник захисту із '@1' на '@2' +Show protected areas of your nearby protectors=Показати найближчі захищені території +Protector Names to remove: @1=Імена, які будуть видалені: @1 +Name List Reset=Очистити список імен + +### doors_chest.lua ### +Protected Wooden Door=Захищені дерев'яні двері +Protected Steel Door=Захищені сталеві двері +Protected Trapdoor=Захищений дерев'яний люк +Protected Steel Trapdoor=Захищений сталевий люк +Protected Chest=Захищена скриня +To Chest=В скриню +To Inventory=В інвентар +Protected Chest (@1)=Захищена скриня (@1) + +### init.lua ### +-- Protector interface --=-- Налаштування захисту -- +PUNCH node to show protected area=ВДАРИТИ блок для підсвітки захищеної території +USE for area check=ЛКМ для перевірки захищеної території +Members:=Учасники: +Close=Закрити +Protection located at: @1=Захист знаходиться на координатах: @1 +Members: @1.=Учасники: @1. +This area is not protected.=Територія вільна. +You can build here.=Тут можна будувати. +Overlaps into above players protected area=Блок захисту не може бути встановлений тут, десь поруч є територія іншого гравця +Protection Block=Блок захисту території +Protection (owned by @1)=Захист території гравця @1 +Protection Logo=Захисний знак +[MOD] Protector Redo loaded=[МОД] Protector Redo завантажено +Spawn @1 has been protected up to a @2 block radius.=Спавн @1 захищений у радіусі @2 блока. +This area is owned by @1=Ця територія належить гравцю @1 + +### pvp.lua ### +[Protector] on_punchplayer called with nil objects=[Захист] on_punchplayer викликана із нульовими об'єктами +[Protector] pvp_protect not active, update your version of Minetest=[Захист] pvp_protect неактивний, оновіть версію Luanti +[Protector] pvp_protect is disabled=[Защита] pvp_protect вимкнений + +### hud.lua ### +Owner: @1=Територія належить @1 + +### tool.lua ### +Protector Placer Tool (stand near protector, face direction and use)=Інструмент встановлення захисту (встаньте поруч із захистом, поверніться в потрібному напрямку і використайте) +Protector already in place!=Захист уже встановлено! +No protectors available to place!=У вас немає блоків захисту території в інвентарю! +Protector placed at @1=Захист знаходиться на координатах @1 diff --git a/mods/protector/locale/template.txt b/mods/protector/locale/template.txt new file mode 100644 index 00000000..90ea1fcc --- /dev/null +++ b/mods/protector/locale/template.txt @@ -0,0 +1,59 @@ +# textdomain: protector +# author: ? +# last update: 2020/Jul/12 + +### admin.lua ### +Remove Protectors around players (separate names with spaces)= += +Replace Protector Owner with name provided= + = +Replacing Protector name '@1' with '@2'= +Show protected areas of your nearby protectors= +Protector Names to remove: @1= +Name List Reset= +Invalid player name!= +Player name too long= +Player not found.= + +### doors_chest.lua ### +Protected Wooden Door= +Protected Steel Door= +Protected Trapdoor= +Protected Steel Trapdoor= +Protected Chest= +To Chest= +To Inventory= +Protected Chest (@1)= + +### init.lua ### +-- Protector interface --= +PUNCH node to show protected area= +USE for area check= +Members:= +Close= +Protection located at: @1= +Members: @1.= +Allow faction access= +This area is not protected.= +You can build here.= +Overlaps into above players protected area= +Protection Block= +Protection (owned by @1)= +Protection Logo= +[MOD] Protector Redo loaded= +Spawn @1 has been protected up to a @2 block radius.= +This area is owned by @1= +Add member names to local protection +Remove member names from local protection + +### hud.lua ### +Owner: @1= + +### tool.lua ### +Protector Placer Tool (stand near protector, face direction and use)= +Protector already in place!= +Out of bounds!= +No protectors available to place!= +Protector placed at @1= +Cannot place protector, already protected at @1= +Cannot place protector, container at @1= diff --git a/mods/protector/lucky_block.lua b/mods/protector/lucky_block.lua new file mode 100644 index 00000000..7a69e816 --- /dev/null +++ b/mods/protector/lucky_block.lua @@ -0,0 +1,15 @@ + +-- add lucky blocks + +lucky_block:add_blocks({ + {"dro", {"protector:protect"}, 2}, + {"dro", {"protector:protect2"}, 2}, + {"dro", {"protector:door_wood"}, 2}, + {"dro", {"protector:door_steel"}, 2}, + {"exp", 5, true}, + {"dro", {"protector:trapdoor"}, 2}, + {"dro", {"protector:trapdoor_steel"}, 2}, + {"dro", {"protector:tool"}, 1}, + {"dro", {"protector:chest"}, 1}, + {"exp"} +}) diff --git a/mods/protector/mod.conf b/mods/protector/mod.conf new file mode 100644 index 00000000..9f877321 --- /dev/null +++ b/mods/protector/mod.conf @@ -0,0 +1,7 @@ +name = protector +description = Lets players craft special blocks to protect their builds or disable PVP in areas. +optional_depends = default, lucky_block, mesecons_mvps, playerfactions, mcl_core, mcl_formspec, mcl_sounds +min_minetest_version = 5.0 +release = 30961 +author = TenPlus1 +title = Protector Redo diff --git a/mods/protector/pvp.lua b/mods/protector/pvp.lua new file mode 100644 index 00000000..5d222506 --- /dev/null +++ b/mods/protector/pvp.lua @@ -0,0 +1,70 @@ + +-- get static spawn position + +local statspawn = core.string_to_pos(core.settings:get("static_spawnpoint")) + or {x = 0, y = 2, z = 0} + +-- is spawn protected + +local protector_spawn = tonumber(core.settings:get("protector_spawn") + or core.settings:get("protector_pvp_spawn")) or 0 + +-- is night-only pvp enabled + +local protector_night_pvp = core.settings:get_bool("protector_night_pvp") + +-- disables PVP in your own protected areas + +if core.settings:get_bool("enable_pvp") +and core.settings:get_bool("protector_pvp") then + + if core.register_on_punchplayer then + + core.register_on_punchplayer(function(player, hitter, + time_from_last_punch, tool_capabilities, dir, damage) + + if not player or not hitter then + print("[MOD] Protector - on_punchplayer called with nil objects") + return false + end + + if not hitter:is_player() then return false end + + -- no pvp at spawn area + local pos = player:get_pos() + + if pos.x < statspawn.x + protector_spawn + and pos.x > statspawn.x - protector_spawn + and pos.y < statspawn.y + protector_spawn + and pos.y > statspawn.y - protector_spawn + and pos.z < statspawn.z + protector_spawn + and pos.z > statspawn.z - protector_spawn then + return true + end + + -- do we enable pvp at night time only ? + if protector_night_pvp then + + -- get time of day + local tod = core.get_timeofday() or 0 + + if tod > 0.2 and tod < 0.8 then + -- + else + return false + end + end + + -- is player being punched inside a protected area ? + if core.is_protected(pos, hitter:get_player_name()) then + return true + end + + return false + end) + else + print("[MOD] Protector - pvp_protect not active, update your version of Minetest") + end +else + print("[MOD] Protector - pvp_protect is disabled") +end diff --git a/mods/protector/screenshot.jpg b/mods/protector/screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..07cefc036bfa9f52fe631bb2b4e13dffd345afff GIT binary patch literal 65656 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≫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 WOC%AxhVRT@qBG0LBX#({_5TNC%nKs` literal 0 HcmV?d00001 diff --git a/mods/protector/settingtypes.txt b/mods/protector/settingtypes.txt new file mode 100644 index 00000000..7cd6b559 --- /dev/null +++ b/mods/protector/settingtypes.txt @@ -0,0 +1,35 @@ +# Size of protected area around protection node limiting player interaction +protector_radius (Protector Radius [max 30]) int 5 + +# Flips player around when accessing protected area to stop lag griefing +protector_flip (Protector Flip) bool false + +# Hurts player by amount entered when accessing protected area, 0 to disable +protector_hurt (Protector Hurt) int 0 + +# Sets a protected area around spawn by node radius given +protector_spawn (Protector Spawn) int 0 + +# Enables PVP inside of protected areas +protector_pvp (Protector PVP) bool false + +# When true will allow PVP inside protected spawn area +protector_pvp_spawn (Protector PVP Spawn) int 0 + +# When true will allow PVP inside all protected areas at night time only +protector_night_pvp (Protector Night PVP) bool false + +# Interval in seconds that protection field is shown +protector_show_interval (Protector Show Interval) int 5 + +# Interval in seconds that HUD ownership text is updated, 0 to disable +protector_hud_interval (Protector HUD Interval) int 5 + +# Enables craft recipe for protection block +protector_recipe (Enable Protector recipe) bool true + +# Enables craft recipes for protected doors and chest +protector_crafts (Enable Protector door/chest recipes) bool true + +# Enables protection messages in player chat +protector_msg (Enable Protector Messages) bool true diff --git a/mods/protector/textures/default_chest_front.png b/mods/protector/textures/default_chest_front.png new file mode 100644 index 0000000000000000000000000000000000000000..f4132794d52be74ba00fc1a05fd403fac4ae7277 GIT binary patch literal 421 zcmV;W0b2fvP)i&K4LJ(h4fd|)}Lf=h&H zLXT)Oby_pmu656)Y`~XZu7*#Kb4!G4MT>1goOVBpWiV}2FKSRK-QC@|u%qC!dc~Y& zzLs61d_{+CM1p2Nz__cUqocE{p6j=Mc6N54fmoDxPm^{|mw8KwZcBJ!K5tn$lWaGU zYBh#mEPz=jWJ@J{RU=tkP^|y}0J2F$K~xwSZNWui!!Q5@z?Cd!Guz>$%=G_{wfA%e z*WN;vk})QQ^Dw*s2*+GX-?@VoV&4O(j+y0L)b(z6#|Hp~%T?|vrG%)s;vZGT7RJ8U z#VjTn08d=l*A4O8LORI+u!*?S_Wowm^QL|PkSL}3czbz1*uCfhoSi3%jH8!XCQkrD zoBe59D|pj90$3wagb+2UuA>0}i+V2Kwbn6Cv;e?#`SbNTmmlSx#8izWM; P00000NkvXXu0mjfwQRVu literal 0 HcmV?d00001 diff --git a/mods/protector/textures/default_chest_side.png b/mods/protector/textures/default_chest_side.png new file mode 100644 index 0000000000000000000000000000000000000000..44a65a43d3c3f2ba44bceb519a0696e1ba441800 GIT binary patch literal 375 zcmV--0f_#IP)n`5knO{RcJoOVB!a5-&MFKSRK;In$zuXoa@aHD)h zf@VK%ST=rFCF{3-pn+J3ZcC(oM}}W4WJ@JsV)uan0065=L_t&-(`C+A5`!=dMbXH@ z-MB%3P}BSV*B6mr?&lfJ= zdsUum4#6X1C?EZJP^f8bSOa-|wF`=iC+qn|{rj V3gJ4$MZo|7002ovPDHLkV1iD9pBn%G literal 0 HcmV?d00001 diff --git a/mods/protector/textures/default_chest_top.png b/mods/protector/textures/default_chest_top.png new file mode 100644 index 0000000000000000000000000000000000000000..1fbdbb94c966b39145bb0f06d30619afb5ba81f8 GIT binary patch literal 418 zcmV;T0bTxyP)nsh*fXFYILEX|{8#G7NJgI1=1NtAU-k#a-k;In$zuXoa@aJiCM zwU1VxfK#S~QIT*zdtp40Y&wEtIDB0)iDE8wS1oK%C}&9`>$iThkYbm5Q>TGSifA}x zPAvL-GKl~H0J}*T^13?f3z@BBeJ!TX$7^M7Dv;V5Xr&G90(|D|=Fb>@h zfFN=yBb)iwm}C#&LacSpY}TvQmm2^avRwQ|ob#T9z5_UlSeIf}MX9v90yq~+D|MT7 zPn1^xI%m?YrASJ-lNEqh*=LNUX_C0j`WryWInQk-nNJh52Qcm;62xsJ8QUHJ1ke6? z-W8!j^kMAf)4=R*X8+q)c0kn>r;gfe_Q+w!YS1S)Bpeg M07*qoM6N<$f@c=8ZU6uP literal 0 HcmV?d00001 diff --git a/mods/protector/textures/doors_brown.png b/mods/protector/textures/doors_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..8c8e3d898f41a2e9e859f2717d0a5729cec260b9 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{F!VDx;H*&N9DgFST5LY)72_H)tM*}e@LvcGj z(aqaii-A&-o-U3d9M_Wt5(*L$5(F5WSlKuX8a60OFbIEOG_;G)*$!01;OXk;vd$@? F2>>+r7bO4y literal 0 HcmV?d00001 diff --git a/mods/protector/textures/doors_grey.png b/mods/protector/textures/doors_grey.png new file mode 100644 index 0000000000000000000000000000000000000000..ad110c7d52a3be5f972b7f060a92df2c7e007058 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{F#0(@?ef+Beq<8{+LR=?In9$qX+tt<8-Q8W+ zE!GPZm+*9P4B@z*%)rRr#%93D#Ool%#%Ex_z@WN-sc}=|$@@Sx44$rjF6*2UngIFS B8g2jp literal 0 HcmV?d00001 diff --git a/mods/protector/textures/doors_steel.png b/mods/protector/textures/doors_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..042a1bc061e862a24b0a2caae6370a4f746a1eb1 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0Xo0t83AsMMsYwjow-N z8pvlX3GxeOaCmkj4aiaRba4#fh)z!U@&A5fTNsI(6#ay?gui?Yn&W@|iPdwr}5l?%cV92M<1Y@L=c8orZ>nhYlT5Q&SV#Yf%W) z%vciS7tG-B>_!@p)8^^o7$R}mw?C5aumOjQVfRMa^*jG3a);y^$@{;^G!eS6X{q(& zgp3udf?ZhzMa7?39aX!1wl%`F41=Ba2;`Kd#IboMVb`|GFUf&SyiIZ1% zwwc9s9e(8Gb!KUT$v&kMBGUOA>ze*IZ4F6#*R89!$`2*S5B{<>lns+S<9fxy{YZ&(F`x%ge#R!X_prGcz+TE-pL5 zYnA{20EtONK~xyiHI0D|10e`QOGR#|)9wF%b~LwZVzl*9F!4R7!OT$Nso*8i*h(CD z(|zylx9q~?ZbDiOw8%?DD|;tBM-fgm31p8V%<)gm6ifvK3NX`%2v7`-U8U*zrGTg7 z#>?~RfC6d7M{8v>BQsYVEPC&Kt+{lCwpiA8xhSb)jB)9d^!NdQa0LjPaAQvZ0000< KMNUMnLSTZ7zjes~ literal 0 HcmV?d00001 diff --git a/mods/protector/textures/doors_trapdoor.png b/mods/protector/textures/doors_trapdoor.png new file mode 100644 index 0000000000000000000000000000000000000000..e92c8b2e1a8aa8593be3e37a933ce4ea1ab58b75 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!eSlAhE0AtWGniT7I5EdO(OW&( zNxd_}Xj+xSAdr&KH*Mz;w$(pxq3fu6{1-oD!M`3J^VYMRXaT?Nax=@_ssX=Hnqa_XYr_Gh*wKa><16T%-gwQTwA^t4!`_wpWw zj4ZqLrc4H_MSInr_o(mrFrof~cBAC)Z_j?tSd*dC@i(v2Hk6Yg_MPt=Rh1&ujrSSK X4r`y5J-E>X=mG{$S3j3^P6ljy?ggsL_^Ji xg5sVojv*Y^lM@&k0~8V>SXl&^&Zzn`G3?nZ{*uYv`T|f1gQu&X%Q~loCIHdY8#e#| literal 0 HcmV?d00001 diff --git a/mods/protector/textures/doors_wood.png b/mods/protector/textures/doors_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..d3a62ab156db2d81442bcef039fed5148d09e9bd GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0YyCl{4Hyt~5}p(1ZCf zkk42WA7~I`NswPKgTu2MX+TcDr;B5V#O2Wb+d_vGI9vqv8!}9mo%~;)Wmu+mwlX3$ zJ%XX=T+=-Vo+Q>ed#9HK_tZJ)omsb2zEd%Wk7rHrUcL#bE!%pyi=vKQDw*-KGO8(6 z;p<(uq_4q?nLD?dJxf0o`D3o)?Nj?Fm#uBsweN43k@B|vN7rn)sw$DQymQJ-!NsfG ms(X45UX~CSTzM&_hEePlo8kxMzq5c&WAJqKb6Mw<&;$UzR%Vz0 literal 0 HcmV?d00001 diff --git a/mods/protector/textures/doors_wood_b.png b/mods/protector/textures/doors_wood_b.png new file mode 100644 index 0000000000000000000000000000000000000000..966509827e65cdfec58d15fb9f8182220b762dbf GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Q-Dv1YpRcGy02=2hjNmqa)!UU zyQx&XyHZksX{@WFkEKkYtz2%PW@?aGq?3GRm}P#5R;-Vai?M{7nwo>YSYDL1fq}tX zD?>4$X>&YX977~7yY`3k9X8-`&OA9O{gTDwf8n~V3~!t5d9o%Py7Jtn_?%|ri_YZR zX5xb1qkitySd(i1>X1mVOSM{cmPV4^szn@(yzR4#-8(J>>2K)f)1Pr?W51oz2d&*w zUE7vy-NkZQJooJD_#H1USxh)7@%S9C@pnTzdAp*1_C(nW&X@V_1%+!Cixo{d5vU}% l+Q;ok!S{R8hS|11m@1dE?X~Q1O{PXU?`L&K^IDds7X#uBQ6X*^F?Dkv@99eLP6ylFewT-H{^$2_9-adP z2oNB^He9GEyI59I*b0E}&ADQIL7Tqt%ynNl1WAI$PidO&i&v|&$}38LZOSMjWoc1S zVVRp7bC2Z=C#d7HLuDad5|QW~0A{;zYNr;NhteAp_9PUyzW;bHQ4?q0pL+00C=;oj zGtW_gZQM9D(=a+R#ygc?aQpZ8M0c;DKW`_wI}!+{X*MVCXv=`1k3L(Xk6y701xBM8 zlM@cCt}KAh_aG%n1yvYvcXfBI>`m5M484Z)HmCEuPXs86x(Z-6RimuqnAoJnB{xoH z??ZmN0s`34+%ba>o#SxXtw@q{OT&NWuMv)u5#X86o&W$!i_&L5k9eZ$t8#I!{5U*T z2kfQ+2*eylrp3t6*Mn7K%`j$;0N~h3CeIszf72E!G&mUR8ykA=0^*tj&t-*kbpt%d8u(HLz;h#7B_jYlei2x(E-p%h zK?WIoQ|DaJhi? zuj5FFiNK6$dC;3ouLNe7ocFVIF`PYgr+Ar_~T_o)5+Z_muy!0Kf@ tY2|-=VdmC^D-D6nZoCd>dsEUg89v-+70_Ja_!y{#!PC{xWt~$(698Yh8(07U literal 0 HcmV?d00001 diff --git a/mods/protector/textures/protector_down_icon.png b/mods/protector/textures/protector_down_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f1161a2f99189c1f05b69b04b34966823c2b4e0c GIT binary patch literal 481 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&%@6Piab*EA7#RK!R>1H#;~vm` zj3q&S!3+-1ZlnP@A3R+gLn>~)y_(3^WWdw*FpibgG4SBo-}8OzB$Aaj@Ln@jdtcnR zKGS{%2gq+=!1U@f-`9VC9-p;0FRtBM-;{U9rg68qWnMvL#pOSl?9Ik!#WUZXGl^f~ z``+;yP+(>Fi8=HC=%$?aztiYc7bG0|NqE+ZDe|?f_S>S~2Zad#z43BykDztIVb9OG zeD56I{+nnWaGt-Wx9e~BEQhW2g2Ec#^?$f)75u-dCU$22UZ;uw*7^jjsP7gQd41nW zxcgrHvQD+1@!3pFnezSs%7wW^>bP0l+XkKcs?!v literal 0 HcmV?d00001 diff --git a/mods/protector/textures/protector_overlay.png b/mods/protector/textures/protector_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..00261da0c46091aaf5a4bc106e3913480edf9aa6 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`)}AhoAr_~T6C^SYbR5Z32+U^& z0pX>32?tY+6lW(kB#B?R)4=8wx5!grlF))?1%Z>E>{m(;9$;o*6=IQFtWF)~W)|`r?6> zGC7{YegVEKSFhN(dHuNyXC6Lzu=9}DKcF(kk|4ie28U-i(tsQbPZ!4!j_b(@4y?ip zOpY^YEUprD=_r28*U|9&9TUglT(y=o-=GGALp%$ZPV%&{Oj^L?!OZ5)N Qi42g%p00i_>zopr05?xHf&c&j literal 0 HcmV?d00001 diff --git a/mods/protector/textures/protector_up_icon.png b/mods/protector/textures/protector_up_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4c475929b6fd957a91c0f18cc402fb10829b1306 GIT binary patch literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&%@6Piab;lyvKamkR`9|^z!c~{ z#*!evUX-WS-M zSg+K^8~5JctV8|spXWl&nRO4}AG-a|r|iQ<`(`%b_wgm2@t?VM3)S|Y5K{jhUcjDM zRew}U=g#_lM~?oUI( 1.2 then vec.y = -gap -- up + elseif pit < -1.2 then vec.y = gap -- down + elseif dir == 0 then vec.z = gap -- north + elseif dir == 1 then vec.x = gap -- east + elseif dir == 2 then vec.z = -gap -- south + elseif dir == 3 then vec.x = -gap -- west + end + + -- new position + pos.x = pos.x + vec.x + pos.y = pos.y + vec.y + pos.z = pos.z + vec.z + + -- does placing a protector overlap existing area + if not protector.can_dig(r * 2, pos, user:get_player_name(), true, 3) then + + core.chat_send_player(name, + S("Overlaps into above players protected area")) + + return + end + + -- does a protector already exist ? + if #core.find_nodes_in_area(vector.subtract(pos, 1), vector.add(pos, 1), + {"protector:protect", "protector:protect2", + "protector:protect_hidden"}) > 0 then + + core.chat_send_player(name, S("Protector already in place!")) + + return + end + + -- do not place protector out of map bounds or replace bedrock + if #core.find_nodes_in_area(pos, pos, {"ignore", "mcl_core:bedrock"}) > 0 then + + core.chat_send_player(name, S("Out of bounds!")) + + return + end + + -- do we have protectors to use ? + local nod + local inv = user:get_inventory() + + if not inv:contains_item("main", "protector:protect") + and not inv:contains_item("main", "protector:protect2") then + + core.chat_send_player(name, + S("No protectors available to place!")) + + return + end + + -- take protector (block first then logo) + if inv:contains_item("main", "protector:protect") then + + inv:remove_item("main", "protector:protect") + + nod = "protector:protect" + + elseif inv:contains_item("main", "protector:protect2") then + + inv:remove_item("main", "protector:protect2") + + nod = "protector:protect2" + end + + -- do not replace containers with inventory space + local inv = core.get_inventory({type = "node", pos = pos}) + + if inv then + core.chat_send_player(name, + S("Cannot place protector, container at @1", + core.pos_to_string(pos))) + return + end + + -- protection check for other mods like Areas + if core.is_protected(pos, name) then + + core.chat_send_player(name, + S("Cannot place protector, already protected at @1", + core.pos_to_string(pos))) + return + end + + -- place protector + core.set_node(pos, {name = nod, param2 = 1}) + + -- set protector metadata + local meta = core.get_meta(pos) + + meta:set_string("owner", name) + meta:set_string("infotext", "Protection (owned by " .. name .. ")") + + -- copy members across if holding sneak when using tool + if user:get_player_control().sneak then + meta:set_string("members", members) + else + meta:set_string("members", "") + end + + core.chat_send_player(name, + S("Protector placed at @1", core.pos_to_string(pos))) + end +}) + +-- tool recipe + +local df = "default:steel_ingot" + +if core.get_modpath("mcl_core") then + df = "mcl_core:iron_ingot" +end + +core.register_craft({ + output = "protector:tool", + recipe = { + {df, df, df}, + {df, "protector:protect", df}, + {df, df, df} + } +}) diff --git a/mods/ropes/LICENSE.md b/mods/ropes/LICENSE.md new file mode 100644 index 00000000..368b3328 --- /dev/null +++ b/mods/ropes/LICENSE.md @@ -0,0 +1,19 @@ +## MIT License + +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. diff --git a/mods/ropes/README.md b/mods/ropes/README.md new file mode 100644 index 00000000..b9a0663a --- /dev/null +++ b/mods/ropes/README.md @@ -0,0 +1,17 @@ +# Ropes + +This mod adds "rope boxes", blocks that when placed in world will automatically lower a rope at 1 meter per second until it reaches a fixed maximum length. The basic rope box produces 50m of rope by default and there are up to eight additional rope box types that produce multiples of that rope length - 100m, 150m, and so forth up to 450m. The number of rope boxes and the length of a standard rope length can be configured via the settings menu. + +The rope stops lowering if it reaches an obstruction. Ropes can be cut using an axe or other choppy tool at any location and when they're cut the bottom half of the rope will disappear, dropping any climbers. The same happens to the entire rope if the rope box at the top of the rope is removed. Cutting the rope doesn't reduce the maximum length of rope the rope box will produce if it's removed and rebuilt again. Ropes are flammable. They respect protection settings - if the player that placed the rope box isn't permitted to build in an area then the rope descending from that box will treat it as an obstruction. + +Also included is a rope ladder that behaves similarly, though it only comes in one standard maximum length - 50m by default, again changeable in settings. + +This mod will also enhance default wood ladders and steel ladders to make them "extendable", capable of building upward independent of support to a setting-defined limit (defaulting to 5 nodes for wood and 15 nodes for steel ladders). This can be disabled if undesired. + +This mod retains optional backward compatibility with the crafting items from the vines mod (anything with group "vines" can be used to make rope boxes and rope ladders). Ropes can also be made from cotton, available via an optional dependency on the farming mod. + +In-game documentation is provided via an optional dependency on the doc mod. + +## Interaction with other mods + +By default ropes and rope ladders only extend downward into "air" nodes. Other mods can modify this behaviour to add other nodes as valid targets for ropes to extend into using either of two mechanisms: either add `ropes_can_extend_into = 1` to the node definition's groups list or add a dependency on the ropes mod to your mod and then set `ropes.can_extend_into_nodes[target_node_name] = true`. There is also a configuration setting, `ropes_can_extend_into_airlike`, that will allow ropes to extend into any node with `drawtype = "airlike"` in its definition. Note that in cases where ropes extend into non-air nodes the rope will still be replaced with an "air" node when it's eventually destroyed. \ No newline at end of file diff --git a/mods/ropes/bridge.lua b/mods/ropes/bridge.lua new file mode 100644 index 00000000..78489aa5 --- /dev/null +++ b/mods/ropes/bridge.lua @@ -0,0 +1,88 @@ +local S = ropes.S + +if ropes.bridges_enabled then + +local bridge_on_place = function(itemstack, placer, pointed_thing) + -- Shall place item and return the leftover itemstack. + -- The placer may be any ObjectRef or nil. + -- default: minetest.item_place + if placer == nil then + return minetest.item_place(itemstack, placer, pointed_thing) + end + + local above = pointed_thing.above + local under = pointed_thing.under + + if above.x == under.x and above.z == under.z and above.y > under.y then + -- we're aimed downward at a buildable node from above. + -- determine the direction the placer lies relative to this node. + local new_under = vector.new(under) + local placer_pos = placer:get_pos() + local diff_x = placer_pos.x - under.x + local diff_z = placer_pos.z - under.z + if math.abs(diff_x) > math.abs(diff_z) then + -- placer is displaced along the X axis relative to the target + if diff_x > 0 then + new_under.x = under.x - 1 + else + new_under.x = under.x + 1 + end + else + -- placer is displaced along the Z axis relative to the target + if diff_z > 0 then + new_under.z = under.z - 1 + else + new_under.z = under.z + 1 + end + end + if minetest.registered_nodes[minetest.get_node(new_under).name].buildable_to then + local new_pointed_thing = {type="node", under=new_under, above={x=new_under.x, y=new_under.y+1, z=new_under.z}} + return minetest.item_place(itemstack, placer, new_pointed_thing) + end + end + + return minetest.item_place(itemstack, placer, pointed_thing) +end + +minetest.register_node("ropes:wood_bridge", { + description = S("Wooden Bridge"), + _doc_items_longdesc = ropes.doc.wooden_bridge_longdesc, + _doc_items_usagehelp = ropes.doc.wooden_bridge_usagehelp, + tiles = { + "default_wood.png", "default_wood.png", + "default_wood.png^[transformR270", "default_wood.png^[transformR90", + "default_wood.png^[transformR270", "default_wood.png^[transformR90", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = {choppy = 2, flammable = 2, oddly_breakable_by_hand = 1, flow_through = 1, fence = 1, wall = 1}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + {-0.5, 0.375, -0.5, 0.5, 0.5, 0.5}, -- Platform + {-0.375, -0.5, -0.5, 0.375, -0.375, -0.4375}, -- x beam4 + {-0.375, -0.5, 0.4375, 0.375, -0.375, 0.5}, -- x beam3 + {0.375, -0.5, -0.4375, 0.5, -0.375, 0.4375}, -- z beam2 + {-0.5, -0.5, -0.4375, -0.375, -0.375, 0.4375}, -- z beam1 + {0.375, -0.5, -0.5, 0.5, 0.375, -0.4375}, -- upright4 + {0.375, -0.5, 0.4375, 0.5, 0.375, 0.5}, -- upright3 + {-0.5, -0.5, -0.5, -0.375, 0.375, -0.4375}, -- upright2 + {-0.5, -0.5, 0.4375, -0.375, 0.375, 0.5}, -- upright1 + } + }, + on_place = bridge_on_place, +}) + +minetest.register_craft({ + output = "ropes:wood_bridge 5", + recipe = { + {"group:stick", "stairs:slab_wood", "group:stick"}, + {"group:stick", "", "group:stick"}, + {"group:stick", "group:stick", "group:stick"}, + } +}) + +end diff --git a/mods/ropes/crafts.lua b/mods/ropes/crafts.lua new file mode 100644 index 00000000..e09bc16e --- /dev/null +++ b/mods/ropes/crafts.lua @@ -0,0 +1,90 @@ +local S = ropes.S + +if minetest.get_modpath("farming") then +-- this doesn't work reliably due to side effects of https://github.com/minetest/minetest/issues/5518 +-- local old_def = minetest.registered_craftitems["farming:cotton"] +-- if old_def then +-- old_def.groups["thread"] = 1 +-- minetest.override_item("farming:cotton", { +-- groups = old_def.groups +-- }) +-- end + minetest.register_craft({ + output = 'ropes:ropesegment', + recipe = { + {'farming:cotton','farming:cotton'}, + {'farming:cotton','farming:cotton'}, + {'farming:cotton','farming:cotton'}, + } + }) + + if farming.mod == "redo" or farming.mod == "undo" then + minetest.register_craft({ + output = 'ropes:ropesegment', + recipe = { + {'farming:hemp_rope'}, + {'farming:hemp_rope'}, + } + }) + end +end + +if minetest.get_modpath("hemp") then + minetest.register_craft({ + output = 'ropes:ropesegment', + recipe = { + {'hemp:hemp_rope'}, + {'hemp:hemp_rope'}, + } + }) +end + +if minetest.get_modpath("cottages") then + minetest.register_craft({ + output = 'ropes:ropesegment', + recipe = { + {'cottages:rope'}, + {'cottages:rope'}, + } + }) +end + +if minetest.get_modpath("moreblocks") then + minetest.register_craft({ + output = 'ropes:ropesegment', + recipe = { + {'moreblocks:rope','moreblocks:rope'}, + {'moreblocks:rope','moreblocks:rope'}, + {'moreblocks:rope','moreblocks:rope'}, + } + }) +end + +minetest.register_craft({ + output = 'ropes:ropesegment', + recipe = { + {'group:thread','group:thread'}, + {'group:thread','group:thread'}, + {'group:thread','group:thread'}, + } +}) + +minetest.register_craftitem("ropes:ropesegment", { + description = S("Rope Segment"), + _doc_items_longdesc = ropes.doc.ropesegment_longdesc, + _doc_items_usagehelp = ropes.doc.ropesegment_usage, + groups = {vines = 1}, + inventory_image = "ropes_item.png", +}) + +local cotton_burn_time = 1 +ropes.wood_burn_time = minetest.get_craft_result({method="fuel", width=1, items={ItemStack("default:wood")}}).time +ropes.rope_burn_time = cotton_burn_time * 6 +local stick_burn_time = minetest.get_craft_result({method="fuel", width=1, items={ItemStack("default:stick")}}).time +ropes.ladder_burn_time = ropes.rope_burn_time * 2 + stick_burn_time * 3 + +minetest.register_craft({ + type = "fuel", + recipe = "ropes:ropesegment", + burntime = ropes.rope_burn_time, +}) \ No newline at end of file diff --git a/mods/ropes/depends.txt b/mods/ropes/depends.txt new file mode 100644 index 00000000..0df1ec96 --- /dev/null +++ b/mods/ropes/depends.txt @@ -0,0 +1,7 @@ +default +farming? +vines? +doc? +loot? +hemp? +cottages? diff --git a/mods/ropes/description.txt b/mods/ropes/description.txt new file mode 100644 index 00000000..846f150d --- /dev/null +++ b/mods/ropes/description.txt @@ -0,0 +1 @@ +Adds rope boxes of various lengths and also rope ladders. \ No newline at end of file diff --git a/mods/ropes/doc.lua b/mods/ropes/doc.lua new file mode 100644 index 00000000..11033885 --- /dev/null +++ b/mods/ropes/doc.lua @@ -0,0 +1,53 @@ +ropes.doc = {} + +if not minetest.get_modpath("doc") then + return +end + +local S = ropes.S + +ropes.doc.ropesegment_longdesc = S("Rope segments are bundles of fibre twisted into robust cables.") +ropes.doc.ropesegment_usage = S("This craft item is useful for creating rope ladders, or for spooling on wooden spindles to hang and climb upon.") + +ropes.doc.ropeladder_longdesc = S("A hanging rope ladder that automatically extends downward.") +ropes.doc.ropeladder_usage = S("After a rope ladder is placed on a vertical wall it will begin extending downward until it reaches its maximum length (@1 meters). If the rope ladder is removed all of the ladder below the point of removal will disappear. A rope ladder can be severed partway down using an axe or similar tool, and the ladder below the point where it is cut will collapse. No rope is actually lost in the process, though, and if the uppermost section of the ladder is removed and replaced the ladder will re-extend to the same maximum length as before.", ropes.ropeLadderLength) + +local rope_length_doc = S("Rope boxes have a certain amount of rope contained within them specified in the name of the node, and have a limit to how much rope they can support that depends on the material they're made of. The different lengths can be crafted by combining and splitting up rope boxes in the crafting grid. For example, you can craft a @1m rope box by putting a @2m rope box and a rope segment in the crafting grid, or a @3m rope box and two rope segments in the crafting grid. Two rope segments can be recovered by putting the @4m rope box in the crafting grid by itself.", ropes.ropeLength*3, ropes.ropeLength*2, ropes.ropeLength, ropes.ropeLength*3) .. "\n" + +if ropes.woodRopeBoxMaxMultiple == 1 then + rope_length_doc = rope_length_doc .. "\n" .. S("Wood") .. " " .. S("rope boxes can hold @1m of rope.", ropes.ropeLength) +elseif ropes.woodRopeBoxMaxMultiple > 1 then + rope_length_doc = rope_length_doc .. "\n" .. S("Wood") .. " " .. S("rope boxes can hold rope lengths from @1m to @2m.", ropes.ropeLength, ropes.ropeLength*ropes.woodRopeBoxMaxMultiple) +end + +if ropes.copperRopeBoxMaxMultiple == 1 then + rope_length_doc = rope_length_doc .. "\n" .. S("Copper") .. " " .. S("rope boxes can hold @1m of rope.", ropes.ropeLength) +elseif ropes.copperRopeBoxMaxMultiple > 1 then + rope_length_doc = rope_length_doc .. "\n" .. S("Copper") .. " " .. S("rope boxes can hold rope lengths from @1m to @2m.", ropes.ropeLength, ropes.ropeLength*ropes.copperRopeBoxMaxMultiple) +end + +if ropes.steelRopeBoxMaxMultiple == 1 then + rope_length_doc = rope_length_doc .. "\n" .. S("Steel") .. " " .. S("rope boxes can hold @1m of rope.", ropes.ropeLength) +elseif ropes.steelRopeBoxMaxMultiple > 1 then + rope_length_doc = rope_length_doc .. "\n" .. S("Steel") .. " " .. S("rope boxes can hold rope lengths from @1m to @2m.", ropes.ropeLength, ropes.ropeLength*ropes.steelRopeBoxMaxMultiple) +end + +ropes.doc.ropebox_longdesc = S("Ropes are hung by placing rope boxes, which automatically lower a rope of fixed length below them. They can be climbed and cut.") +ropes.doc.ropebox_usage = rope_length_doc .. "\n\n" .. + S("When a rope box is placed the rope will immediately begin lowering from it at one meter per second. The rope will only descend when its end is in the vicinity of an active player, suspending its journey when no players are nearby, so a long descent may require a player to climb down the rope as it goes. If you are near the bottom end of a rope that's extending you'll be automatically carried down with it. The rope will stop when it encounters and obstruction, but will resume lowering if the obstruction is removed.") .. "\n\n" .. + S("A rope can be severed midway using an axe or other similar tool. The section of rope below the cut will collapse and disappear, potentially causing players who were hanging on to it to fall. The remaining rope will not resume descent on its own, but the rope box at the top of the rope \"remembers\" how long the rope was and if it is deconstructed and replaced it will still have the same maximum length of rope as before - no rope is permanently lost when a rope is severed like this.") + +if ropes.extending_ladder_enabled then + ropes.doc.ladder_longdesc = S("A ladder for climbing. It can reach greater heights when placed against a supporting block.") + ropes.doc.ladder_usagehelp = S("Right-clicking on a ladder with a stack of identical ladder items will automatically add new ladder segments to the top, provided it hasn't extended too far up beyond the last block behind it providing support.") +end + +ropes.doc.wooden_bridge_longdesc = S("A wooden platform with support struts useful for bridging gaps.") +ropes.doc.wooden_bridge_usagehelp = S("This behaves like most structural blocks except in one circumstance: when placed on top of a block with buildable space on the side facing away from you, this block will not be built on top but instead will extend out from that far side of the target block. This allows a platform to be easily built that juts out away from the location you're standing on.") + +doc.add_entry_alias("nodes", "ropes:ropeladder_top", "nodes", "ropes:ropeladder") +doc.add_entry_alias("nodes", "ropes:ropeladder_top", "nodes", "ropes:ropeladder_bottom") +doc.add_entry_alias("nodes", "ropes:ropeladder_top", "nodes", "ropes:ropeladder_falling") + +doc.add_entry_alias("nodes", "ropes:rope", "nodes", "ropes:rope_bottom") +doc.add_entry_alias("nodes", "ropes:rope", "nodes", "ropes:rope_top") diff --git a/mods/ropes/extendingladder.lua b/mods/ropes/extendingladder.lua new file mode 100644 index 00000000..4999f4f1 --- /dev/null +++ b/mods/ropes/extendingladder.lua @@ -0,0 +1,251 @@ +local S = ropes.S + +if ropes.extending_ladder_enabled then + +local wood_recipe = { + {"group:stick", "", "group:stick"}, + {"group:stick", "", "group:stick"}, + {"group:stick", "group:stick", "group:stick"}, + } +local wood_name = S("Wooden Extendable Ladder") + +local steel_recipe = { + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + } +local steel_name = S("Steel Extendable Ladder") + +-- Overlay texture: by 1F616EMO, CC0 +local texture_overlay = "^ropes_ropeladder_overlay.png" + +if ropes.replace_default_ladders then + +minetest.unregister_item("default:ladder_wood") +minetest.unregister_item("default:ladder_steel") +minetest.clear_craft({output = "default:ladder_wood"}) +minetest.clear_craft({output = "default:ladder_steel"}) + +local wallmounted_to_facedir = +{[0] = 15, -- ceiling +[1] = 13, -- floor +[2] = 1, -- +X +[3] = 3, -- -X +[4] = 0, -- +Z +[5] = 2, -- -Z +} + +minetest.register_lbm({ + label = "Switch from wallmounted default ladders to rope mod extending ladders", + name = "ropes:wallmounted_ladder_to_facedir_ladder", + nodenames = {"default:ladder_wood", "default:ladder_steel"}, + run_at_every_load = false, + action = function(pos, node) + local new_node = {param2 = wallmounted_to_facedir[node.param2]} + if (node.name == "default:ladder_wood") then + new_node.name = "ropes:ladder_wood" + else + new_node.name = "ropes:ladder_steel" + end + minetest.set_node(pos, new_node) + end, +}) + +wood_recipe = { + {"group:stick", "", "group:stick"}, + {"group:stick", "group:stick", "group:stick"}, + {"group:stick", "", "group:stick"}, + } +wood_name = S("Wooden Ladder") + +steel_recipe = { + {'default:steel_ingot', '', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', '', 'default:steel_ingot'}, + } +steel_name = S("Steel Ladder") + +texture_overlay = "" + +else + -- Swap between normal and extendable ladders + minetest.register_craft({ + type = "shapeless", + output = "ropes:ladder_wood", + recipe = {"default:ladder_wood"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = "ropes:ladder_steel", + recipe = {"default:ladder_steel"}, + }) +end + +minetest.register_craft({ + output = "ropes:ladder_wood 5", + recipe = wood_recipe, +}) + +minetest.register_craft({ + output = 'ropes:ladder_steel 15', + recipe = steel_recipe, +}) + +local ladder_extender = function(pos, node, clicker, itemstack, pointed_thing, ladder_node, standing_limit) + -- on_rightclick can be called by other mods, make sure we have all the parameters we need + if pointed_thing == nil or itemstack == nil then + return itemstack + end + + local clicked_stack = ItemStack(itemstack) + + -- true if we're pointing up at the ladder from below and there's a buildable space below it + -- this check allows us to extend ladders downward + local pointing_directly_below = + pointed_thing.above.x == pos.x and + pointed_thing.above.z == pos.z and + pointed_thing.above.y == pos.y - 1 and + minetest.registered_nodes[minetest.get_node(pointed_thing.above).name].buildable_to + + if clicked_stack:get_name() == ladder_node and not pointing_directly_below then + local param2 = minetest.get_node(pos).param2 + local dir = minetest.facedir_to_dir(param2) + local scan_limit = pos.y + 6 -- Only add ladder segments up to five nodes above the one clicked on + pos.y = pos.y + 1 + while pos.y < scan_limit and minetest.get_node(pos).name == ladder_node do + param2 = minetest.get_node(pos).param2 + pos.y = pos.y + 1 + end + if pos.y < scan_limit and minetest.registered_nodes[minetest.get_node(pos).name].buildable_to then + + -- scan downward behind the ladder to find support + local behind_pos = vector.add(pos, minetest.facedir_to_dir(param2)) + local target_height = pos.y - standing_limit - 1 + while behind_pos.y > target_height and minetest.registered_nodes[minetest.get_node(behind_pos).name].buildable_to do + behind_pos.y = behind_pos.y - 1 + end + + -- If there's enough support, build a new ladder segment + if behind_pos.y > target_height then + if minetest.is_protected(pos, clicker:get_player_name()) then + minetest.record_protection_violation(pos, clicker:get_player_name()) + else + minetest.set_node(pos, {name=ladder_node, param2=param2}) + if not minetest.settings:get_bool("creative_mode") then + clicked_stack:take_item(1) + end + end + end + end + elseif clicked_stack:get_definition().type == "node" then + return minetest.item_place_node(itemstack, clicker, pointed_thing) + end + return clicked_stack +end + +minetest.register_node("ropes:ladder_wood", { + description = wood_name, + _doc_items_longdesc = ropes.doc.ladder_longdesc, + _doc_items_usagehelp = ropes.doc.ladder_usagehelp, + tiles = {"default_wood.png","default_wood.png","default_wood.png^[transformR270","default_wood.png^[transformR270","default_ladder_wood.png"}, + use_texture_alpha = "clip", + inventory_image = "default_ladder_wood.png" .. texture_overlay, + wield_image = "default_ladder_wood.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, 0.375, -0.25, 0.5, 0.5}, -- Upright1 + {0.25, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Upright2 + {-0.4375, 0.3125, 0.4375, 0.4375, 0.4375, 0.5}, -- Rung_4 + {-0.4375, -0.1875, 0.4375, 0.4375, -0.0625, 0.5}, -- Rung_2 + {-0.4375, -0.4375, 0.4375, 0.4375, -0.3125, 0.5}, -- Rung_1 + {-0.4375, 0.0625, 0.4375, 0.4375, 0.1875, 0.5}, -- Rung_3 + } + }, + groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2, flow_through = 1}, + sounds = default.node_sound_wood_defaults(), + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + return ladder_extender(pos, node, clicker, itemstack, pointed_thing, "ropes:ladder_wood", ropes.extending_wood_ladder_limit) + end, +}) + +minetest.register_node("ropes:ladder_steel", { + description = steel_name, + _doc_items_longdesc = ropes.doc.ladder_longdesc, + _doc_items_usagehelp = ropes.doc.ladder_usagehelp, + tiles = {"default_steel_block.png","default_steel_block.png","default_steel_block.png","default_steel_block.png","default_ladder_steel.png"}, + use_texture_alpha = "clip", + inventory_image = "default_ladder_steel.png" .. texture_overlay, + wield_image = "default_ladder_steel.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, 0.3125, -0.25, 0.5, 0.5}, -- Upright1 + {0.25, -0.5, 0.3125, 0.4375, 0.5, 0.5}, -- Upright2 + {-0.25, 0.3125, 0.375, 0.25, 0.4375, 0.5}, -- Rung_4 + {-0.25, -0.1875, 0.375, 0.25, -0.0625, 0.5}, -- Rung_2 + {-0.25, -0.4375, 0.375, 0.25, -0.3125, 0.5}, -- Rung_1 + {-0.25, 0.0625, 0.375, 0.25, 0.1875, 0.5}, -- Rung_3 + } + }, + groups = {cracky = 2, flow_through = 1}, + sounds = default.node_sound_metal_defaults(), + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + return ladder_extender(pos, node, clicker, itemstack, pointed_thing, "ropes:ladder_steel", ropes.extending_steel_ladder_limit) + end, +}) + +else + +-- Table of possible wallmounted values +local facedir_to_wallmounted = { + 4, -- +Z + 2, -- +X + 5, -- -Z + 3, -- -X + 1, -- -Y + 0, -- +Y +} +-- Mapping from facedir value to index in facedir_to_dir. +local facedir_to_wallmounted_map = { + [0]=1, 2, 3, 4, + 5, 2, 6, 4, + 6, 2, 5, 4, + 1, 5, 3, 6, + 1, 6, 3, 5, + 1, 4, 3, 2, +} + +minetest.register_lbm({ + label = "Switch from ropes ladders to wallmounted default ladders", + name = "ropes:facedir_ladder_to_wallmounted_ladder", + nodenames = {"ropes:ladder_wood", "ropes:ladder_steel"}, + run_at_every_load = false, + action = function(pos, node) + local new_node = {param2 = facedir_to_wallmounted[facedir_to_wallmounted_map[node.param2 % 32]]} + if (node.name == "ropes:ladder_wood") then + new_node.name = "default:ladder_wood" + else + new_node.name = "default:ladder_steel" + end + minetest.set_node(pos, new_node) + end, +}) + +end diff --git a/mods/ropes/functions.lua b/mods/ropes/functions.lua new file mode 100644 index 00000000..6a366f9e --- /dev/null +++ b/mods/ropes/functions.lua @@ -0,0 +1,115 @@ +ropes.can_place_rope_in_node = function(target_node_name) + if ropes.can_extend_into_nodes[target_node_name] == true then + return true + end + local target_def = minetest.registered_nodes[target_node_name] + if target_def then + if target_def.drawtype == "airlike" and ropes.can_extend_into_airlike then + return true + end + if target_def.groups and target_def.groups.ropes_can_extend_into then + return true + end + end + return false +end + +ropes.make_rope_on_timer = function(rope_node_name) + return function(pos, elapsed) + local currentend = minetest.get_node(pos) + local currentmeta = minetest.get_meta(pos) + local currentlength = currentmeta:get_int("length_remaining") + local placer_name = currentmeta:get_string("placer") + local newpos = {x=pos.x, y=pos.y-1, z=pos.z} + local newnode = minetest.get_node(newpos) + local oldnode = minetest.get_node(pos) + if currentlength > 1 and (not minetest.is_protected(newpos, placer_name) + or minetest.check_player_privs(placer_name, "protection_bypass")) then + if ropes.can_place_rope_in_node(newnode.name) then + minetest.add_node(newpos, {name=currentend.name, param2=oldnode.param2}) + local newmeta = minetest.get_meta(newpos) + newmeta:set_int("length_remaining", currentlength-1) + newmeta:set_string("placer", placer_name) + minetest.set_node(pos, {name=rope_node_name, param2=oldnode.param2}) + ropes.move_players_down(pos, 1) + else + local timer = minetest.get_node_timer( pos ) + timer:start( 1 ) + end + end + end +end + +local data = {} +local c_air = minetest.get_content_id("air") + +ropes.destroy_rope = function(pos, nodes) + local top = pos.y + local bottom = pos.y-15 + local voxel_manip = minetest.get_voxel_manip() + + local finished = false + local ids_to_destroy = {} + for _, node in pairs(nodes) do + if minetest.registered_nodes[node] then + ids_to_destroy[minetest.get_content_id(node)] = true + end + end + + while not finished do + local emin, emax = voxel_manip:read_from_map({x=pos.x, y=bottom, z=pos.z}, {x=pos.x, y=top, z=pos.z}) + voxel_manip:get_data(data) + local voxel_area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} + bottom = emin.y + for y = top, bottom, -1 do + local index = voxel_area:index(pos.x, y, pos.z) + if ids_to_destroy[data[index]] then + data[index] = c_air + else + finished = true + break + end + end + voxel_manip:set_data(data) + voxel_manip:write_to_map() + voxel_manip:update_map() + top = bottom - 1 + bottom = bottom - 15 + end +end + + +ropes.hanging_after_destruct = function(pos, top_node, middle_node, bottom_node) + local node = minetest.get_node(pos) + if node.name == top_node or node.name == middle_node or node.name == bottom_node then + return -- this was done by another ladder or rope node changing this one, don't react + end + + pos.y = pos.y + 1 -- one up + local node_above = minetest.get_node(pos) + if node_above.name == middle_node then + minetest.swap_node(pos, {name=bottom_node, param2=node_above.param2}) + end + + pos.y = pos.y - 2 -- one down + local node_below = minetest.get_node(pos) + if node_below.name == middle_node then + ropes.destroy_rope(pos, {middle_node, bottom_node}) + elseif node_below.name == bottom_node then + minetest.swap_node(pos, {name="air"}) + end +end + +ropes.move_players_down = function(pos, radius) + local all_objects = minetest.get_objects_inside_radius({x=pos.x, y=pos.y+radius, z=pos.z}, radius) + local players = {} + local _,obj + for _,obj in pairs(all_objects) do + if obj:is_player() then + local obj_pos = obj:get_pos() + if math.abs(obj_pos.x-pos.x) < 0.5 and math.abs(obj_pos.z-pos.z) < 0.5 then + obj:set_pos({x=obj_pos.x, y=obj_pos.y-1, z=obj_pos.z}, true) + end + end + end +end diff --git a/mods/ropes/i18n.py b/mods/ropes/i18n.py new file mode 100644 index 00000000..d33bbb04 --- /dev/null +++ b/mods/ropes/i18n.py @@ -0,0 +1,418 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Script to generate the template file and update the translation files. +# Copy the script into the mod or modpack root folder and run it there. +# +# Copyright (C) 2019 Joachim Stolberg, 2020 FaceDeer, 2020 Louis Royer +# LGPLv2.1+ + +from __future__ import print_function +import os, fnmatch, re, shutil, errno +from sys import argv as _argv + +# Running params +params = {"recursive": False, + "help": False, + "mods": False, + "verbose": False, + "folders": [] +} +# Available CLI options +options = {"recursive": ['--recursive', '-r'], + "help": ['--help', '-h'], + "mods": ['--installed-mods'], + "verbose": ['--verbose', '-v'] +} + +# Strings longer than this will have extra space added between +# them in the translation files to make it easier to distinguish their +# beginnings and endings at a glance +doublespace_threshold = 60 + +def set_params_folders(tab: list): + '''Initialize params["folders"] from CLI arguments.''' + # Discarding argument 0 (tool name) + for param in tab[1:]: + stop_param = False + for option in options: + if param in options[option]: + stop_param = True + break + if not stop_param: + params["folders"].append(os.path.abspath(param)) + +def set_params(tab: list): + '''Initialize params from CLI arguments.''' + for option in options: + for option_name in options[option]: + if option_name in tab: + params[option] = True + break + +def print_help(name): + '''Prints some help message.''' + print(f'''SYNOPSIS + {name} [OPTIONS] [PATHS...] +DESCRIPTION + {', '.join(options["help"])} + prints this help message + {', '.join(options["recursive"])} + run on all subfolders of paths given + {', '.join(options["mods"])} + run on locally installed modules + {', '.join(options["verbose"])} + add output information +''') + + +def main(): + '''Main function''' + set_params(_argv) + set_params_folders(_argv) + if params["help"]: + print_help(_argv[0]) + elif params["recursive"] and params["mods"]: + print("Option --installed-mods is incompatible with --recursive") + else: + # Add recursivity message + print("Running ", end='') + if params["recursive"]: + print("recursively ", end='') + # Running + if params["mods"]: + print(f"on all locally installed modules in {os.path.abspath('~/.minetest/mods/')}") + run_all_subfolders("~/.minetest/mods") + elif len(params["folders"]) >= 2: + print("on folder list:", params["folders"]) + for f in params["folders"]: + if params["recursive"]: + run_all_subfolders(f) + else: + update_folder(f) + elif len(params["folders"]) == 1: + print("on folder", params["folders"][0]) + if params["recursive"]: + run_all_subfolders(params["folders"][0]) + else: + update_folder(params["folders"][0]) + else: + print("on folder", os.path.abspath("./")) + if params["recursive"]: + run_all_subfolders(os.path.abspath("./")) + else: + update_folder(os.path.abspath("./")) + +#group 2 will be the string, groups 1 and 3 will be the delimiters (" or ') +#See https://stackoverflow.com/questions/46967465/regex-match-text-in-either-single-or-double-quote +pattern_lua = re.compile(r'[\.=^\t,{\(\s]N?S\(\s*(["\'])((?:\\\1|(?:(?!\1)).)*)(\1)[\s,\)]', re.DOTALL) +pattern_lua_bracketed = re.compile(r'[\.=^\t,{\(\s]N?S\(\s*\[\[(.*?)\]\][\s,\)]', re.DOTALL) + +# Handles "concatenation" .. " of strings" +pattern_concat = re.compile(r'["\'][\s]*\.\.[\s]*["\']', re.DOTALL) + +pattern_tr = re.compile(r'(.+?[^@])=(.*)') +pattern_name = re.compile(r'^name[ ]*=[ ]*([^ \n]*)') +pattern_tr_filename = re.compile(r'\.tr$') +pattern_po_language_code = re.compile(r'(.*)\.po$') + +#attempt to read the mod's name from the mod.conf file. Returns None on failure +def get_modname(folder): + try: + with open(os.path.join(folder, "mod.conf"), "r", encoding='utf-8') as mod_conf: + for line in mod_conf: + match = pattern_name.match(line) + if match: + return match.group(1) + except FileNotFoundError: + pass + return None + +#If there are already .tr files in /locale, returns a list of their names +def get_existing_tr_files(folder): + out = [] + for root, dirs, files in os.walk(os.path.join(folder, 'locale/')): + for name in files: + if pattern_tr_filename.search(name): + out.append(name) + return out + +# A series of search and replaces that massage a .po file's contents into +# a .tr file's equivalent +def process_po_file(text): + # The first three items are for unused matches + text = re.sub(r'#~ msgid "', "", text) + text = re.sub(r'"\n#~ msgstr ""\n"', "=", text) + text = re.sub(r'"\n#~ msgstr "', "=", text) + # comment lines + text = re.sub(r'#.*\n', "", text) + # converting msg pairs into "=" pairs + text = re.sub(r'msgid "', "", text) + text = re.sub(r'"\nmsgstr ""\n"', "=", text) + text = re.sub(r'"\nmsgstr "', "=", text) + # various line breaks and escape codes + text = re.sub(r'"\n"', "", text) + text = re.sub(r'"\n', "\n", text) + text = re.sub(r'\\"', '"', text) + text = re.sub(r'\\n', '@n', text) + # remove header text + text = re.sub(r'=Project-Id-Version:.*\n', "", text) + # remove double-spaced lines + text = re.sub(r'\n\n', '\n', text) + return text + +# Go through existing .po files and, if a .tr file for that language +# *doesn't* exist, convert it and create it. +# The .tr file that results will subsequently be reprocessed so +# any "no longer used" strings will be preserved. +# Note that "fuzzy" tags will be lost in this process. +def process_po_files(folder, modname): + for root, dirs, files in os.walk(os.path.join(folder, 'locale/')): + for name in files: + code_match = pattern_po_language_code.match(name) + if code_match == None: + continue + language_code = code_match.group(1) + tr_name = modname + "." + language_code + ".tr" + tr_file = os.path.join(root, tr_name) + if os.path.exists(tr_file): + if params["verbose"]: + print(f"{tr_name} already exists, ignoring {name}") + continue + fname = os.path.join(root, name) + with open(fname, "r", encoding='utf-8') as po_file: + if params["verbose"]: + print(f"Importing translations from {name}") + text = process_po_file(po_file.read()) + with open(tr_file, "wt", encoding='utf-8') as tr_out: + tr_out.write(text) + +# from https://stackoverflow.com/questions/600268/mkdir-p-functionality-in-python/600612#600612 +# Creates a directory if it doesn't exist, silently does +# nothing if it already exists +def mkdir_p(path): + try: + os.makedirs(path) + except OSError as exc: # Python >2.5 + if exc.errno == errno.EEXIST and os.path.isdir(path): + pass + else: raise + +# Converts the template dictionary to a text to be written as a file +# dKeyStrings is a dictionary of localized string to source file sets +# dOld is a dictionary of existing translations and comments from +# the previous version of this text +def strings_to_text(dkeyStrings, dOld, mod_name): + lOut = [f"# textdomain: {mod_name}\n"] + + dGroupedBySource = {} + + for key in dkeyStrings: + sourceList = list(dkeyStrings[key]) + sourceList.sort() + sourceString = "\n".join(sourceList) + listForSource = dGroupedBySource.get(sourceString, []) + listForSource.append(key) + dGroupedBySource[sourceString] = listForSource + + lSourceKeys = list(dGroupedBySource.keys()) + lSourceKeys.sort() + for source in lSourceKeys: + localizedStrings = dGroupedBySource[source] + localizedStrings.sort() + lOut.append("") + lOut.append(source) + lOut.append("") + for localizedString in localizedStrings: + val = dOld.get(localizedString, {}) + translation = val.get("translation", "") + comment = val.get("comment") + if len(localizedString) > doublespace_threshold and not lOut[-1] == "": + lOut.append("") + if comment != None: + lOut.append(comment) + lOut.append(f"{localizedString}={translation}") + if len(localizedString) > doublespace_threshold: + lOut.append("") + + + unusedExist = False + for key in dOld: + if key not in dkeyStrings: + val = dOld[key] + translation = val.get("translation") + comment = val.get("comment") + # only keep an unused translation if there was translated + # text or a comment associated with it + if translation != None and (translation != "" or comment): + if not unusedExist: + unusedExist = True + lOut.append("\n\n##### not used anymore #####\n") + if len(key) > doublespace_threshold and not lOut[-1] == "": + lOut.append("") + if comment != None: + lOut.append(comment) + lOut.append(f"{key}={translation}") + if len(key) > doublespace_threshold: + lOut.append("") + return "\n".join(lOut) + '\n' + +# Writes a template.txt file +# dkeyStrings is the dictionary returned by generate_template +def write_template(templ_file, dkeyStrings, mod_name): + # read existing template file to preserve comments + existing_template = import_tr_file(templ_file) + + text = strings_to_text(dkeyStrings, existing_template[0], mod_name) + mkdir_p(os.path.dirname(templ_file)) + with open(templ_file, "wt", encoding='utf-8') as template_file: + template_file.write(text) + + +# Gets all translatable strings from a lua file +def read_lua_file_strings(lua_file): + lOut = [] + with open(lua_file, encoding='utf-8') as text_file: + text = text_file.read() + #TODO remove comments here + + text = re.sub(pattern_concat, "", text) + + strings = [] + for s in pattern_lua.findall(text): + strings.append(s[1]) + for s in pattern_lua_bracketed.findall(text): + strings.append(s) + + for s in strings: + s = re.sub(r'"\.\.\s+"', "", s) + s = re.sub("@[^@=0-9]", "@@", s) + s = s.replace('\\"', '"') + s = s.replace("\\'", "'") + s = s.replace("\n", "@n") + s = s.replace("\\n", "@n") + s = s.replace("=", "@=") + lOut.append(s) + return lOut + +# Gets strings from an existing translation file +# returns both a dictionary of translations +# and the full original source text so that the new text +# can be compared to it for changes. +def import_tr_file(tr_file): + dOut = {} + text = None + if os.path.exists(tr_file): + with open(tr_file, "r", encoding='utf-8') as existing_file : + # save the full text to allow for comparison + # of the old version with the new output + text = existing_file.read() + existing_file.seek(0) + # a running record of the current comment block + # we're inside, to allow preceeding multi-line comments + # to be retained for a translation line + latest_comment_block = None + for line in existing_file.readlines(): + line = line.rstrip('\n') + if line[:3] == "###": + # Reset comment block if we hit a header + latest_comment_block = None + continue + if line[:1] == "#": + # Save the comment we're inside + if not latest_comment_block: + latest_comment_block = line + else: + latest_comment_block = latest_comment_block + "\n" + line + continue + match = pattern_tr.match(line) + if match: + # this line is a translated line + outval = {} + outval["translation"] = match.group(2) + if latest_comment_block: + # if there was a comment, record that. + outval["comment"] = latest_comment_block + latest_comment_block = None + dOut[match.group(1)] = outval + return (dOut, text) + +# Walks all lua files in the mod folder, collects translatable strings, +# and writes it to a template.txt file +# Returns a dictionary of localized strings to source file sets +# that can be used with the strings_to_text function. +def generate_template(folder, mod_name): + dOut = {} + for root, dirs, files in os.walk(folder): + for name in files: + if fnmatch.fnmatch(name, "*.lua"): + fname = os.path.join(root, name) + found = read_lua_file_strings(fname) + if params["verbose"]: + print(f"{fname}: {str(len(found))} translatable strings") + + for s in found: + sources = dOut.get(s, set()) + sources.add(f"### {os.path.basename(fname)} ###") + dOut[s] = sources + + if len(dOut) == 0: + return None + templ_file = os.path.join(folder, "locale/template.txt") + write_template(templ_file, dOut, mod_name) + return dOut + +# Updates an existing .tr file, copying the old one to a ".old" file +# if any changes have happened +# dNew is the data used to generate the template, it has all the +# currently-existing localized strings +def update_tr_file(dNew, mod_name, tr_file): + if params["verbose"]: + print(f"updating {tr_file}") + + tr_import = import_tr_file(tr_file) + dOld = tr_import[0] + textOld = tr_import[1] + + textNew = strings_to_text(dNew, dOld, mod_name) + + if textOld and textOld != textNew: + print(f"{tr_file} has changed.") + shutil.copyfile(tr_file, f"{tr_file}.old") + + with open(tr_file, "w", encoding='utf-8') as new_tr_file: + new_tr_file.write(textNew) + +# Updates translation files for the mod in the given folder +def update_mod(folder): + modname = get_modname(folder) + if modname is not None: + process_po_files(folder, modname) + print(f"Updating translations for {modname}") + data = generate_template(folder, modname) + if data == None: + print(f"No translatable strings found in {modname}") + else: + for tr_file in get_existing_tr_files(folder): + update_tr_file(data, modname, os.path.join(folder, "locale/", tr_file)) + else: + print("Unable to find modname in folder " + folder) + +# Determines if the folder being pointed to is a mod or a mod pack +# and then runs update_mod accordingly +def update_folder(folder): + is_modpack = os.path.exists(os.path.join(folder, "modpack.txt")) or os.path.exists(os.path.join(folder, "modpack.conf")) + if is_modpack: + subfolders = [f.path for f in os.scandir(folder) if f.is_dir()] + for subfolder in subfolders: + update_mod(subfolder + "/") + else: + update_mod(folder) + print("Done.") + +def run_all_subfolders(folder): + for modfolder in [f.path for f in os.scandir(folder) if f.is_dir()]: + update_folder(modfolder + "/") + + +main() diff --git a/mods/ropes/init.lua b/mods/ropes/init.lua new file mode 100644 index 00000000..c3c4fe89 --- /dev/null +++ b/mods/ropes/init.lua @@ -0,0 +1,66 @@ +ropes = { + name = 'ropes', +} + +-- internationalization boilerplate +local modname = minetest.get_current_modname() +local MP = minetest.get_modpath(modname) +ropes.S = minetest.get_translator(modname) + +ropes.ropeLength = tonumber(minetest.settings:get("ropes_rope_length")) or 50 +ropes.woodRopeBoxMaxMultiple = tonumber(minetest.settings:get("ropes_wood_rope_box_max_multiple")) or 2 +ropes.copperRopeBoxMaxMultiple = tonumber(minetest.settings:get("ropes_copper_rope_box_max_multiple")) or 5 +ropes.steelRopeBoxMaxMultiple = tonumber(minetest.settings:get("ropes_steel_rope_box_max_multiple")) or 9 +ropes.create_all_definitions = minetest.settings:get_bool("ropes_create_all_definitions") + +ropes.ropeLadderLength = tonumber(minetest.settings:get("ropes_rope_ladder_length")) or 50 + +ropes.extending_ladder_enabled = minetest.settings:get_bool("ropes_extending_ladder_enabled") +if ropes.extending_ladder_enabled == nil then + ropes.extending_ladder_enabled = true +end +ropes.replace_default_ladders = minetest.settings:get_bool("ropes_replace_default_ladders") + +ropes.extending_wood_ladder_limit = tonumber(minetest.settings:get("ropes_extending_wood_ladder_limit")) or 5 +ropes.extending_steel_ladder_limit = tonumber(minetest.settings:get("ropes_extending_steel_ladder_limit")) or 15 + +ropes.bridges_enabled = minetest.settings:get_bool("ropes_bridges_enabled") +if ropes.bridges_enabled == nil then + ropes.bridges_enabled = true +end + +ropes.can_extend_into_airlike = minetest.settings:get_bool("ropes_can_extend_into_airlike") +ropes.can_extend_into_nodes = {["air"] = true} +if minetest.get_modpath("nether") then + ropes.can_extend_into_nodes["nether:fumes"] = true +end + +dofile( MP .. "/doc.lua" ) +dofile( MP .. "/functions.lua" ) +dofile( MP .. "/crafts.lua" ) +dofile( MP .. "/ropeboxes.lua" ) +dofile( MP .. "/ropeladder.lua" ) +dofile( MP .. "/extendingladder.lua" ) +dofile( MP .. "/bridge.lua" ) +dofile( MP .. "/loot.lua" ) + +for i=1,5 do + minetest.register_alias(string.format("vines:%irope_block", i), string.format("ropes:%irope_block", i)) +end +minetest.register_alias("vines:rope", "ropes:rope") +minetest.register_alias("vines:rope_bottom", "ropes:rope_bottom") +minetest.register_alias("vines:rope_end", "ropes:rope_bottom") +minetest.register_alias("vines:rope_top", "ropes:rope_top") +minetest.register_alias("vines:ropeladder_top", "ropes:ropeladder_top") +minetest.register_alias("vines:ropeladder", "ropes:ropeladder") +minetest.register_alias("vines:ropeladder_bottom", "ropes:ropeladder_bottom") +minetest.register_alias("vines:ropeladder_falling", "ropes:ropeladder_falling") +minetest.register_alias("vines:rope_block", "ropes:steel5rope_block") +for i=1,9 do + minetest.register_alias(string.format("ropes:%irope_block", i), string.format("ropes:steel%irope_block", i)) +end +minetest.register_alias("castle:ropes", "ropes:rope") +minetest.register_alias("castle:ropebox", "ropes:steel1rope_block") +minetest.register_alias("castle:box_rope", "ropes:rope") + +print("[Ropes] Loaded!") diff --git a/mods/ropes/locale/ropes.es.tr b/mods/ropes/locale/ropes.es.tr new file mode 100644 index 00000000..fee2e594 --- /dev/null +++ b/mods/ropes/locale/ropes.es.tr @@ -0,0 +1,71 @@ +# textdomain: ropes + + +### bridge.lua ### + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Wooden Bridge=Puente de madera + +### crafts.lua ### + +Rope Segment=Segmento de cuerda + +### doc.lua ### + +A hanging rope ladder that automatically extends downward.=Una escalera de cuerda colgante que se extiende automáticamente hacia abajo. + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +A ladder for climbing. It can reach greater heights when placed against a supporting block.=Una escalera para subir. Puede alcanzar mayores alturas cuando se coloca contra un bloque de soporte. + +A rope can be severed midway using an axe or other similar tool. The section of rope below the cut will collapse and disappear, potentially causing players who were hanging on to it to fall. The remaining rope will not resume descent on its own, but the rope box at the top of the rope "remembers" how long the rope was and if it is deconstructed and replaced it will still have the same maximum length of rope as before - no rope is permanently lost when a rope is severed like this.=Una cuerda puede ser cortada a mitad de camino usando un hacha u otra herramienta similar. La sección de la cuerda debajo del corte se colapsará y desaparecerá, lo que puede causar que los jugadores que estaban colgados de ella se caigan. El resto de la cuerda no volverá a descender por sí sola, pero la caja de la cuerda en la parte superior de la cuerda "recuerda" la longitud de la cuerda y si es deconstruida y reemplazada tendrá la misma longitud máxima de cuerda que antes - ninguna cuerda se pierde permanentemente cuando una cuerda es cortada de esta manera. + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +A wooden platform with support struts useful for bridging gaps.=Una plataforma de madera con puntales de soporte útil para salvar huecos. + +After a rope ladder is placed on a vertical wall it will begin extending downward until it reaches its maximum length (@1 meters). If the rope ladder is removed all of the ladder below the point of removal will disappear. A rope ladder can be severed partway down using an axe or similar tool, and the ladder below the point where it is cut will collapse. No rope is actually lost in the process, though, and if the uppermost section of the ladder is removed and replaced the ladder will re-extend to the same maximum length as before.=Después de colocar una escalera de cuerda en una pared vertical, comenzará a extenderse hacia abajo hasta que alcance su longitud máxima (@1 metro). Si se retira la escalera de cuerda, desaparecerá toda la escalera por debajo del punto de extracción. Una escalera de cuerda puede ser cortada hasta la mitad usando un hacha o una herramienta similar, y la escalera por debajo del punto donde es cortada colapsará. Sin embargo, no se pierde ninguna cuerda en el proceso, y si la sección superior de la escalera se retira y se reemplaza, la escalera se volverá a extender a la misma longitud máxima que antes. + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Right-clicking on a ladder with a stack of identical ladder items will automatically add new ladder segments to the top, provided it hasn't extended too far up beyond the last block behind it providing support.=Al hacer clic con el botón derecho en una escalera con una pila de elementos de escalera idénticos, se agregarán automáticamente nuevos segmentos de escalera a la parte superior, siempre que no se haya extendido demasiado más allá del último bloque detrás de ella que brinda soporte. + +Rope boxes have a certain amount of rope contained within them specified in the name of the node, and have a limit to how much rope they can support that depends on the material they're made of. The different lengths can be crafted by combining and splitting up rope boxes in the crafting grid. For example, you can craft a @1m rope box by putting a @2m rope box and a rope segment in the crafting grid, or a @3m rope box and two rope segments in the crafting grid. Two rope segments can be recovered by putting the @4m rope box in the crafting grid by itself.=Las cajas de cuerdas tienen una cierta cantidad de cuerda contenida dentro de ellas especificada en el nombre del nodo, y tienen un límite en la cantidad de cuerda que pueden soportar que depende del material del que están hechas. Las diferentes longitudes se pueden realizar combinando y dividiendo las cajas de cuerda en la rejilla de elaboración. Por ejemplo, puedes crear una caja de cuerda de @1m poniendo una caja de cuerda de @2m y un segmento de cuerda en la rejilla de artesanía, o una caja de cuerda de @3m y dos segmentos de cuerda en la rejilla de artesanía. Se pueden recuperar dos segmentos de cable colocando solo la caja de cable de @4m en la rejilla de fabricación. + +Rope segments are bundles of fibre twisted into robust cables.=Los segmentos de cable son haces de fibras trenzadas en cables robustos. + +Ropes are hung by placing rope boxes, which automatically lower a rope of fixed length below them. They can be climbed and cut.=Las cuerdas se cuelgan colocando cajas de cuerda, que bajan automáticamente una cuerda de longitud fija por debajo de ellas. Se pueden escalar y cortar. + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +This behaves like most structural blocks except in one circumstance: when placed on top of a block with buildable space on the side facing away from you, this block will not be built on top but instead will extend out from that far side of the target block. This allows a platform to be easily built that juts out away from the location you're standing on.=Esto se comporta como la mayoría de los bloques estructurales, excepto en una circunstancia: cuando se coloca encima de un bloque con un espacio edificable en el lado que mira hacia afuera, este bloque no se construirá en la parte superior, sino que se extenderá desde ese lado más alejado del bloque objetivo. . Esto permite construir fácilmente una plataforma que sobresale del lugar en el que se encuentra. + +This craft item is useful for creating rope ladders, or for spooling on wooden spindles to hang and climb upon.=Esta objeto es útil para crear escaleras de cuerda, o para enrollar en husillos de madera para colgar y trepar. + +When a rope box is placed the rope will immediately begin lowering from it at one meter per second. The rope will only descend when its end is in the vicinity of an active player, suspending its journey when no players are nearby, so a long descent may require a player to climb down the rope as it goes. If you are near the bottom end of a rope that's extending you'll be automatically carried down with it. The rope will stop when it encounters and obstruction, but will resume lowering if the obstruction is removed.=Cuando se coloca una caja de cuerda, la cuerda comienza a descender inmediatamente a un metro por segundo. La cuerda sólo descenderá cuando su final esté cerca de un jugador activo, suspendiendo su viaje cuando no haya jugadores cerca, por lo que un largo descenso puede requerir que el jugador baje por la cuerda a medida que avanza. Si estás cerca del extremo inferior de una cuerda que se está extendiendo, serás arrastrado automáticamente hacia abajo con ella. La cuerda se detendrá cuando se encuentre con una obstrucción, pero volverá a bajar si se retira la obstrucción. + +rope boxes can hold @1m of rope.=Las cajas de cuerdas pueden mantener @1m de cuerda. +rope boxes can hold rope lengths from @1m to @2m.=Las cajas de cuerda pueden contener longitudes de cuerda de @1m a @2m. + +### doc.lua ### +### ropeboxes.lua ### + +Copper=cobre +Steel=acero +Wood=madera + +### extendingladder.lua ### + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Steel Extendable Ladder=Escalera extensible de acero +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Steel Ladder=Escalera de acero +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Wooden Extendable Ladder=Escalera extensible de madera +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Wooden Ladder=Escalera de madera + +### ropeboxes.lua ### + +@1 Ropebox @2m=Caja de cuerda de @1 de @2m +Rope=Cuerda + +### ropeladder.lua ### + +Rope Ladder=Escalera de cuerda diff --git a/mods/ropes/locale/ropes.ru.tr b/mods/ropes/locale/ropes.ru.tr new file mode 100644 index 00000000..67e4b8ef --- /dev/null +++ b/mods/ropes/locale/ropes.ru.tr @@ -0,0 +1,70 @@ +# textdomain: ropes + +### bridge.lua ### + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Wooden Bridge=Деревянный мост + +### crafts.lua ### + +Rope Segment=Сегмент каната + +### doc.lua ### + +A hanging rope ladder that automatically extends downward.=Подвесная веревочная лестница, которая автоматически выдвигается вниз. + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +A ladder for climbing. It can reach greater heights when placed against a supporting block.=Лестница для подъема. Она может достигать большей высоты, если ее приставить к опорному блоку. + +A rope can be severed midway using an axe or other similar tool. The section of rope below the cut will collapse and disappear, potentially causing players who were hanging on to it to fall. The remaining rope will not resume descent on its own, but the rope box at the top of the rope "remembers" how long the rope was and if it is deconstructed and replaced it will still have the same maximum length of rope as before - no rope is permanently lost when a rope is severed like this.=Веревку можно перерезать на полпути с помощью топора или другого похожего инструмента. Часть веревки в месте разреза разрушится и исчезнет, ​​что может привести к падению игроков, которые на ней висели. Оставшаяся веревка не возобновит спуск сама по себе, но коробка для веревок наверху «помнит», какой длины была веревка, и если ее разобрать и заменить, она все равно будет иметь ту же максимальную длину веревки, что и раньше — ни одна веревка не теряется навсегда, когда веревка перерезана таким образом. + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +A wooden platform with support struts useful for bridging gaps.=Деревянная платформа с опорными стойками, используемая для перекрытия щелей. + +After a rope ladder is placed on a vertical wall it will begin extending downward until it reaches its maximum length (@1 meters). If the rope ladder is removed all of the ladder below the point of removal will disappear. A rope ladder can be severed partway down using an axe or similar tool, and the ladder below the point where it is cut will collapse. No rope is actually lost in the process, though, and if the uppermost section of the ladder is removed and replaced the ladder will re-extend to the same maximum length as before.=После того, как веревочная лестница будет размещена на вертикальной стене, она начнет удлиняться вниз, пока не достигнет своей максимальной длины (@1 метр). Если веревочную лестницу убрать, вся лестница ниже точки удаления исчезнет. Веревочную лестницу можно перерезать наполовину с помощью топора или подобного инструмента, и лестница ниже точки, где она перерезана, рухнет. Однако в этом процессе веревка фактически не теряется, и если снять и заменить самую верхнюю часть лестницы, лестница снова удлинится до той же максимальной длины, что и раньше. + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Right-clicking on a ladder with a stack of identical ladder items will automatically add new ladder segments to the top, provided it hasn't extended too far up beyond the last block behind it providing support.=Щелчок правой кнопкой мыши по лестнице со стопкой идентичных элементов лестницы автоматически добавит новые сегменты лестницы наверх, при условии, что она не выступает слишком далеко за пределы последнего блока позади нее, обеспечивающего поддержку. + +Rope boxes have a certain amount of rope contained within them specified in the name of the node, and have a limit to how much rope they can support that depends on the material they're made of. The different lengths can be crafted by combining and splitting up rope boxes in the crafting grid. For example, you can craft a @1m rope box by putting a @2m rope box and a rope segment in the crafting grid, or a @3m rope box and two rope segments in the crafting grid. Two rope segments can be recovered by putting the @4m rope box in the crafting grid by itself.=Ящики для веревок содержат определенное количество веревки, указанное в названии узла, и имеют ограничение на то, сколько веревки они могут поддерживать, в зависимости от материала, из которого они сделаны. Различные длины могут быть созданы путем объединения и разделения ящиков для веревок в сетке крафта. Например, вы можете создать ящик для веревки @1m, поместив ящик для веревки @2m и сегмент веревки в сетку крафта, или ящик для веревки @3m и два сегмента веревки в сетку крафта. Два сегмента веревки можно получить, поместив ящик для веревки @4m в сетку крафта отдельно. + +Rope segments are bundles of fibre twisted into robust cables.=Сегменты каната представляют собой пучки волокон, скрученные в прочные тросы. + +Ropes are hung by placing rope boxes, which automatically lower a rope of fixed length below them. They can be climbed and cut.=Канаты подвешиваются путем размещения ящиков для канатов, которые автоматически опускают под ними канат фиксированной длины. По ним можно лазить и резать. + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +This behaves like most structural blocks except in one circumstance: when placed on top of a block with buildable space on the side facing away from you, this block will not be built on top but instead will extend out from that far side of the target block. This allows a platform to be easily built that juts out away from the location you're standing on.=Он ведет себя как большинство структурных блоков, за исключением одного обстоятельства: при размещении на блоке с пространством для строительства на стороне, обращенной от вас, этот блок не будет построен сверху, а вместо этого будет выступать из дальней стороны целевого блока. Это позволяет легко построить платформу, которая выступает из того места, где вы стоите. + +This craft item is useful for creating rope ladders, or for spooling on wooden spindles to hang and climb upon.=Этот предмет ручной работы пригодится для создания веревочных лестниц или для наматывания на деревянные стержни, чтобы можно было повесить веревку или залезть на нее. + +When a rope box is placed the rope will immediately begin lowering from it at one meter per second. The rope will only descend when its end is in the vicinity of an active player, suspending its journey when no players are nearby, so a long descent may require a player to climb down the rope as it goes. If you are near the bottom end of a rope that's extending you'll be automatically carried down with it. The rope will stop when it encounters and obstruction, but will resume lowering if the obstruction is removed.=Когда вы размещаете ящик с веревкой, веревка немедленно начнет опускаться с него со скоростью один метр в секунду. Веревка будет опускаться только тогда, когда ее конец находится в непосредственной близости от активного игрока, приостанавливая свое движение, когда поблизости нет игроков, поэтому для длительного спуска игроку может потребоваться спускаться по веревке по мере ее движения. Если вы находитесь около нижнего конца удлиняющейся веревки, вы автоматически будете унесены ею вниз. Веревка остановится, когда столкнется с препятствием, но возобновит спуск, если препятствие будет устранено. + +rope boxes can hold @1m of rope.=Ящики для веревок вмещают до 1 м веревки. +rope boxes can hold rope lengths from @1m to @2m.=Ящики для веревок могут вмещать веревки длиной от @1 до @2 метров. + +### doc.lua ### +### ropeboxes.lua ### + +Copper=Медный +Steel=Стальной +Wood=Древесный + +### extendingladder.lua ### + +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Steel Extendable Ladder=Стальная раздвижная лестница +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Steel Ladder=Стальная лестница +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Wooden Extendable Ladder=Деревянная раздвижная лестница +#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE +Wooden Ladder=Деревянная лестница + +### ropeboxes.lua ### + +@1 Ropebox @2m=@1 веревочный ящик @2м +Rope=Веревка + +### ropeladder.lua ### + +Rope Ladder=Веревочная лестница diff --git a/mods/ropes/locale/template.txt b/mods/ropes/locale/template.txt new file mode 100644 index 00000000..620d0ee3 --- /dev/null +++ b/mods/ropes/locale/template.txt @@ -0,0 +1,62 @@ +# textdomain: ropes + + +### bridge.lua ### + +Wooden Bridge= + +### crafts.lua ### + +Rope Segment= + +### doc.lua ### + +A hanging rope ladder that automatically extends downward.= + +A ladder for climbing. It can reach greater heights when placed against a supporting block.= + +A rope can be severed midway using an axe or other similar tool. The section of rope below the cut will collapse and disappear, potentially causing players who were hanging on to it to fall. The remaining rope will not resume descent on its own, but the rope box at the top of the rope "remembers" how long the rope was and if it is deconstructed and replaced it will still have the same maximum length of rope as before - no rope is permanently lost when a rope is severed like this.= + +A wooden platform with support struts useful for bridging gaps.= + +After a rope ladder is placed on a vertical wall it will begin extending downward until it reaches its maximum length (@1 meters). If the rope ladder is removed all of the ladder below the point of removal will disappear. A rope ladder can be severed partway down using an axe or similar tool, and the ladder below the point where it is cut will collapse. No rope is actually lost in the process, though, and if the uppermost section of the ladder is removed and replaced the ladder will re-extend to the same maximum length as before.= + +Right-clicking on a ladder with a stack of identical ladder items will automatically add new ladder segments to the top, provided it hasn't extended too far up beyond the last block behind it providing support.= + +Rope boxes have a certain amount of rope contained within them specified in the name of the node, and have a limit to how much rope they can support that depends on the material they're made of. The different lengths can be crafted by combining and splitting up rope boxes in the crafting grid. For example, you can craft a @1m rope box by putting a @2m rope box and a rope segment in the crafting grid, or a @3m rope box and two rope segments in the crafting grid. Two rope segments can be recovered by putting the @4m rope box in the crafting grid by itself.= + +Rope segments are bundles of fibre twisted into robust cables.= + +Ropes are hung by placing rope boxes, which automatically lower a rope of fixed length below them. They can be climbed and cut.= + +This behaves like most structural blocks except in one circumstance: when placed on top of a block with buildable space on the side facing away from you, this block will not be built on top but instead will extend out from that far side of the target block. This allows a platform to be easily built that juts out away from the location you're standing on.= + +This craft item is useful for creating rope ladders, or for spooling on wooden spindles to hang and climb upon.= + +When a rope box is placed the rope will immediately begin lowering from it at one meter per second. The rope will only descend when its end is in the vicinity of an active player, suspending its journey when no players are nearby, so a long descent may require a player to climb down the rope as it goes. If you are near the bottom end of a rope that's extending you'll be automatically carried down with it. The rope will stop when it encounters and obstruction, but will resume lowering if the obstruction is removed.= + +rope boxes can hold @1m of rope.= +rope boxes can hold rope lengths from @1m to @2m.= + +### doc.lua ### +### ropeboxes.lua ### + +Copper= +Steel= +Wood= + +### extendingladder.lua ### + +Steel Extendable Ladder= +Steel Ladder= +Wooden Extendable Ladder= +Wooden Ladder= + +### ropeboxes.lua ### + +@1 Ropebox @2m= +Rope= + +### ropeladder.lua ### + +Rope Ladder= diff --git a/mods/ropes/loot.lua b/mods/ropes/loot.lua new file mode 100644 index 00000000..ed512be2 --- /dev/null +++ b/mods/ropes/loot.lua @@ -0,0 +1,56 @@ +if not minetest.get_modpath("loot") then + return +end + +loot.register_loot({ + weights = { generic = 300 }, + payload = { + stack = ItemStack("ropes:ropesegment"), + min_size = 1, + max_size = 50, + }, +}) + +if ropes.ropeLadderLength > 0 then +loot.register_loot({ + weights = { generic = 150 }, + payload = { + stack = ItemStack("ropes:ropeladder_top"), + min_size = 1, + max_size = 20, + }, +}) +end + +if ropes.woodRopeBoxMaxMultiple > 0 then +loot.register_loot({ + weights = { generic = 100 }, + payload = { + stack = ItemStack("ropes:wood1rope_block"), + min_size = 1, + max_size = 20, + }, +}) +end + +if ropes.copperRopeBoxMaxMultiple > 0 then +loot.register_loot({ + weights = { generic = 75 }, + payload = { + stack = ItemStack("ropes:copper1rope_block"), + min_size = 1, + max_size = 15, + }, +}) +end + +if ropes.steelRopeBoxMaxMultiple > 0 then +loot.register_loot({ + weights = { generic = 50 }, + payload = { + stack = ItemStack("ropes:steel1rope_block"), + min_size = 1, + max_size = 10, + }, +}) +end \ No newline at end of file diff --git a/mods/ropes/mod.conf b/mods/ropes/mod.conf new file mode 100644 index 00000000..5ca16dc2 --- /dev/null +++ b/mods/ropes/mod.conf @@ -0,0 +1,7 @@ +name = ropes +description = Adds rope boxes and ladders +depends = default +optional_depends = cottages, doc, farming, hemp, loot, vines +release = 29152 +author = FaceDeer +title = Ropes diff --git a/mods/ropes/ropeboxes.lua b/mods/ropes/ropeboxes.lua new file mode 100644 index 00000000..79d60724 --- /dev/null +++ b/mods/ropes/ropeboxes.lua @@ -0,0 +1,363 @@ +-- internationalization boilerplate +local S = ropes.S + +local function rope_box_tiles(count, tint) + return { + string.format("ropes_ropebox_front_%i.png^[colorize:%s^ropes_ropebox_front_%i.png^ropes_%i.png", count, tint, count, count), + string.format("ropes_ropebox_front_%i.png^[colorize:%s^ropes_ropebox_front_%i.png^ropes_%i.png", count, tint, count, count), + string.format("ropes_ropebox_side.png^[colorize:%s^ropes_ropebox_side.png", tint), + string.format("ropes_ropebox_side.png^[colorize:%s^ropes_ropebox_side.png", tint), + string.format("ropes_ropebox_front_%i.png^[colorize:%s^ropes_ropebox_front_%i.png^ropes_%i.png", count, tint, count, count), + string.format("ropes_ropebox_front_%i.png^[colorize:%s^ropes_ropebox_front_%i.png^ropes_%i.png", count, tint, count, count), + } +end + +local rope_box_data = { +{ + node={ + {-0.125, -0.125, -0.25, 0.125, 0.125, 0.25}, -- pulley + {-0.125, -0.25, -0.125, 0.125, 0.25, 0.125}, -- pulley + {-0.125, -0.1875, -0.1875, 0.125, 0.1875, 0.1875}, -- pulley_core + {-0.1875, -0.5, -0.125, -0.125, 0.125, 0.125}, -- support + {0.125, -0.5, -0.125, 0.1875, 0.125, 0.125}, -- support + }, + --selection = {-0.1875, -0.5, -0.25, 0.1875, 0.25, 0.25}, -- selection + tiles = 1, +}, +{ + node={ + {-0.1875, -0.125, -0.25, 0.1875, 0.125, 0.25}, -- pulley + {-0.1875, -0.25, -0.125, 0.1875, 0.25, 0.125}, -- pulley + {-0.1875, -0.1875, -0.1875, 0.1875, 0.1875, 0.1875}, -- pulley_core + {-0.25, -0.5, -0.125, -0.1875, 0.125, 0.125}, -- support + {0.1875, -0.5, -0.125, 0.25, 0.125, 0.125}, -- support + }, + --selection = {-0.1875, -0.5, -0.25, 0.1875, 0.25, 0.25}, -- selection + tiles = 2, +}, +{ + node={ + {-0.25, -0.125, -0.25, 0.25, 0.125, 0.25}, -- pulley + {-0.25, -0.25, -0.125, 0.25, 0.25, 0.125}, -- pulley + {-0.25, -0.1875, -0.1875, 0.25, 0.1875, 0.1875}, -- pulley_core + {-0.3125, -0.5, -0.125, -0.25, 0.125, 0.125}, -- support + {0.25, -0.5, -0.125, 0.3125, 0.125, 0.125}, -- support + }, + --selection = {-0.3125, -0.5, -0.25, 0.3125, 0.25, 0.25}, -- selection + tiles = 3, +}, +{ + node={ + {-0.3125, -0.125, -0.25, 0.3125, 0.125, 0.25}, -- pulley + {-0.3125, -0.25, -0.125, 0.3125, 0.25, 0.125}, -- pulley + {-0.3125, -0.1875, -0.1875, 0.3125, 0.1875, 0.1875}, -- pulley_core + {-0.375, -0.5, -0.125, -0.3125, 0.125, 0.125}, -- support + {0.3125, -0.5, -0.125, 0.375, 0.125, 0.125}, -- support + }, + --selection = {-0.375, -0.5, -0.25, 0.375, 0.25, 0.25}, -- selection + tiles = 4, +}, +{ + node={ + {-0.375, -0.125, -0.25, 0.375, 0.125, 0.25}, -- pulley + {-0.375, -0.25, -0.125, 0.375, 0.25, 0.125}, -- pulley + {-0.375, -0.1875, -0.1875, 0.375, 0.1875, 0.1875}, -- pulley_core + {-0.4375, -0.5, -0.125, -0.375, 0.125, 0.125}, -- support + {0.375, -0.5, -0.125, 0.4375, 0.125, 0.125}, -- support + }, + --selection = {-0.4375, -0.5, -0.25, 0.4375, 0.25, 0.25}, -- selection + tiles = 5, +}, +{ + node={ + {-0.1875, -0.1875, -0.3125, 0.1875, 0.1875, 0.3125}, -- pulley + {-0.1875, -0.3125, -0.1875, 0.1875, 0.3125, 0.1875}, -- pulley + {-0.1875, -0.25, -0.25, 0.1875, 0.25, 0.25}, -- pulley_core + {-0.25, -0.5, -0.125, -0.1875, 0.125, 0.125}, -- support + {0.1875, -0.5, -0.125, 0.25, 0.125, 0.125}, -- support + }, + --selection = {-0.1875, -0.5, -0.3125, 0.1875, 0.3125, 0.3125}, -- selection + tiles = 2, +}, +{ + node={ + {-0.25, -0.1875, -0.3125, 0.25, 0.1875, 0.3125}, -- pulley + {-0.25, -0.3125, -0.1875, 0.25, 0.3125, 0.1875}, -- pulley + {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, -- pulley_core + {-0.3125, -0.5, -0.125, -0.25, 0.125, 0.125}, -- support + {0.25, -0.5, -0.125, 0.3125, 0.125, 0.125}, -- support + }, + --selection = {-0.3125, -0.5, -0.3125, 0.3125, 0.3125, 0.3125}, -- selection + tiles = 3, +}, +{ + node={ + {-0.3125, -0.1875, -0.3125, 0.3125, 0.1875, 0.3125}, -- pulley + {-0.3125, -0.3125, -0.1875, 0.3125, 0.3125, 0.1875}, -- pulley + {-0.3125, -0.25, -0.25, 0.3125, 0.25, 0.25}, -- pulley_core + {-0.375, -0.5, -0.125, -0.3125, 0.125, 0.125}, -- support + {0.3125, -0.5, -0.125, 0.375, 0.125, 0.125}, -- support + }, + --selection = {-0.375, -0.5, -0.3125, 0.375, 0.3125, 0.3125}, -- selection + tiles = 4, +}, +{ + node={ + {-0.375, -0.1875, -0.3125, 0.375, 0.1875, 0.3125}, -- pulley + {-0.375, -0.3125, -0.1875, 0.375, 0.3125, 0.1875}, -- pulley + {-0.375, -0.25, -0.25, 0.375, 0.25, 0.25}, -- pulley_core + {-0.4375, -0.5, -0.125, -0.375, 0.125, 0.125}, -- support + {0.375, -0.5, -0.125, 0.4375, 0.125, 0.125}, -- support + }, + --selection_bottom = {-0.4375, -0.5, -0.3125, 0.4375, 0.3125, 0.3125}, -- selection + tiles = 5, +} +} + +local function register_rope_block(multiple, max_multiple, name_prefix, node_prefix, tint, flammable) + local node_name = string.format("ropes:%s%irope_block", node_prefix, multiple) + local rope_block_def = { + description = S("@1 Ropebox @2m", name_prefix, ropes.ropeLength*multiple), + _doc_items_create_entry = false, + drawtype="nodebox", + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + climbable = true, + tiles = rope_box_tiles(rope_box_data[multiple].tiles, tint), + use_texture_alpha = "clip", + is_ground_content = false, + node_box = { + type = "fixed", + fixed = rope_box_data[multiple].node + }, + selection_box = {type="regular"}, + collision_box = {type="regular"}, + groups = {attached_node = 1, choppy=2, oddly_breakable_by_hand=1, rope_block = 1}, + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + local target_node = minetest.get_node(pointed_thing.under) + local target_def = minetest.registered_nodes[target_node.name] + if target_def.walkable == false then + return itemstack + end + end + return minetest.item_place(itemstack, placer, pointed_thing) + end, + + after_place_node = function(pos, placer) + local pos_below = {x=pos.x, y=pos.y-1, z=pos.z} + local placer_name = placer:get_player_name() + + if minetest.is_protected(pos_below, placer_name) and not minetest.check_player_privs(placer, "protection_bypass") then + return + end + + local node_below = minetest.get_node(pos_below) + if ropes.can_place_rope_in_node(node_below.name) then + minetest.add_node(pos_below, {name="ropes:rope_bottom"}) + local meta = minetest.get_meta(pos_below) + meta:set_int("length_remaining", ropes.ropeLength*multiple) + meta:set_string("placer", placer:get_player_name()) + end + end, + + after_destruct = function(pos) + local pos_below = {x=pos.x, y=pos.y-1, z=pos.z} + ropes.destroy_rope(pos_below, {'ropes:rope', 'ropes:rope_bottom'}) + end + } + + -- If this number is higher than permitted, we still want to register the block (in case + -- some were already placed in-world) but we want to hide it from creative inventory + -- and if someone digs it we want to disintegrate it into its component parts to prevent + -- reuse. + if multiple > max_multiple then + rope_block_def.groups.not_in_creative_inventory = 1 + rope_block_def.drop = string.format("ropes:%s1rope_block %i", node_prefix, multiple) + end + + if flammable then + rope_block_def.groups.flammable = flammable + + minetest.register_craft({ + type = "fuel", + recipe = node_name, + burntime = ropes.rope_burn_time * multiple + ropes.wood_burn_time, + }) + end + + minetest.register_node(node_name, rope_block_def) + + if (multiple ~= 1) then + -- Only register a recipe to craft this if it's within the permitted multiple range + if multiple <= max_multiple then + for i = 1, multiple-1 do + local rec = {string.format("ropes:%s%irope_block", node_prefix, i)} + for n = 1, multiple-i do + table.insert(rec, "ropes:ropesegment") + end + minetest.register_craft({ + output = node_name, + type = "shapeless", + recipe = rec + }) + end + end + + -- Always allow players to disintegrate this into component parts, in case + -- there were some in inventory and the setting was changed. + minetest.register_craft({ + output = "ropes:ropesegment", + type = "shapeless", + recipe = { + node_name + }, + replacements = { + {node_name, string.format('ropes:%s%irope_block', node_prefix, multiple-1)}, + }, + }) + end + + if minetest.get_modpath("doc") then + doc.add_entry_alias("nodes", "ropes:rope", "nodes", node_name) + end +end + +local rope_def = { + description = S("Rope"), + _doc_items_longdesc = ropes.doc.ropebox_longdesc, + _doc_items_usagehelp = ropes.doc.ropebox_usage, + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + drop = "", + tiles = { "ropes_3.png", "ropes_3.png", "ropes_3.png", "ropes_3.png", "ropes_5.png", "ropes_5.png" }, + use_texture_alpha = "clip", + is_ground_content = false, + groups = {choppy=2, flammable=2, not_in_creative_inventory=1}, + sounds = { + footstep = {name = "ropes_creak", gain = 0.8, max_hear_distance = 6}, + dig = "__group", + dug = "__group", + }, + drawtype = "nodebox", + node_box = { + type = "connected", + fixed = {-1/16, -1/2, -1/16, 1/16, 1/2, 1/16}, + connect_top = {-1/16, 1/2, -1/16, 1/16, 3/4, 1/16} + }, + connects_to = {"group:rope_block"}, + connect_sides = {"top"}, + selection_box = { + type = "fixed", + fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}, + }, + after_destruct = function(pos) + ropes.hanging_after_destruct(pos, "ropes:rope_top", "ropes:rope", "ropes:rope_bottom") + end, +} + +local rope_extension_timer = ropes.make_rope_on_timer("ropes:rope") + +local rope_bottom_def = { + description = S("Rope"), + _doc_items_create_entry = false, + walkable = false, + climbable = true, + sunlight_propagates = true, + paramtype = "light", + drop = "", + tiles = { "ropes_3.png", "ropes_3.png", "ropes_3.png", "ropes_3.png", "ropes_5.png", "ropes_5.png" }, + use_texture_alpha = "clip", + is_ground_content = false, + drawtype = "nodebox", + groups = {choppy=2, flammable=2, not_in_creative_inventory=1}, + sounds = { + footstep = {name = "ropes_creak", gain = 0.8, max_hear_distance = 6}, + dig = "__group", + dug = "__group", + }, + node_box = { + type = "connected", + fixed = { + {-1/16, -3/8, -1/16, 1/16, 1/2, 1/16}, + {-2/16, -5/16, -2/16, 2/16, -1/16, 2/16}, + }, + connect_top = {-1/16, 1/2, -1/16, 1/16, 3/4, 1/16} + }, + connects_to = {"group:rope_block"}, + connect_sides = {"top"}, + selection_box = { + type = "fixed", + fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}, + }, + + on_construct = function( pos ) + local timer = minetest.get_node_timer( pos ) + timer:start( 1 ) + end, + + on_timer = rope_extension_timer, + + after_destruct = function(pos) + ropes.hanging_after_destruct(pos, "ropes:rope_top", "ropes:rope", "ropes:rope_bottom") + end, +} + +minetest.register_node("ropes:rope", rope_def) +minetest.register_node("ropes:rope_bottom", rope_bottom_def) + +if ropes.woodRopeBoxMaxMultiple > 0 or ropes.create_all_definitions then + if ropes.woodRopeBoxMaxMultiple > 0 then + minetest.register_craft({ + output = "ropes:wood1rope_block", + recipe = { + {'group:wood'}, + {'group:vines'} + } + }) + end + for i = 1,9 do + if ropes.woodRopeBoxMaxMultiple >= i or ropes.create_all_definitions then + register_rope_block(i, ropes.woodRopeBoxMaxMultiple, S("Wood"), "wood", "#86683a", 2) + end + end +end + +if ropes.copperRopeBoxMaxMultiple > 0 or ropes.create_all_definitions then + if ropes.copperRopeBoxMaxMultiple > 0 then + minetest.register_craft({ + output = "ropes:copper1rope_block", + recipe = { + {'default:copper_ingot'}, + {'group:vines'} + } + }) + end + for i = 1,9 do + if ropes.copperRopeBoxMaxMultiple >= i or ropes.create_all_definitions then + register_rope_block(i, ropes.copperRopeBoxMaxMultiple, S("Copper"), "copper", "#c88648") + end + end +end + +if ropes.steelRopeBoxMaxMultiple > 0 or ropes.create_all_definitions then + if ropes.steelRopeBoxMaxMultiple > 0 then + minetest.register_craft({ + output = "ropes:steel1rope_block", + recipe = { + {'default:steel_ingot'}, + {'group:vines'} + } + }) + end + for i = 1,9 do + if ropes.steelRopeBoxMaxMultiple >= i or ropes.create_all_definitions then + register_rope_block(i, ropes.steelRopeBoxMaxMultiple, S("Steel"), "steel", "#ffffff") + end + end +end diff --git a/mods/ropes/ropeladder.lua b/mods/ropes/ropeladder.lua new file mode 100644 index 00000000..d805a16c --- /dev/null +++ b/mods/ropes/ropeladder.lua @@ -0,0 +1,193 @@ +if ropes.ropeLadderLength == 0 and not ropes.create_all_definitions then + return +end + +local S = ropes.S + +if ropes.ropeLadderLength > 0 then + minetest.register_craft({ + output = "ropes:ropeladder_top", + recipe = { + {'','group:stick',''}, + {'group:vines','group:stick','group:vines'}, + {'','group:stick',''}, + } + }) +end + +minetest.register_craft({ + type = "fuel", + recipe = "ropes:ropeladder_top", + burntime = ropes.ladder_burn_time, +}) + +local rope_ladder_top_def = { + description = S("Rope Ladder"), + _doc_items_longdesc = ropes.doc.ropeladder_longdesc, + _doc_items_usagehelp = ropes.doc.ropeladder_usage, + drawtype = "signlike", + tiles = {"default_ladder_wood.png^ropes_ropeladder_top.png"}, + use_texture_alpha = "clip", + is_ground_content = false, + inventory_image = "default_ladder_wood.png^ropes_ropeladder_top.png", + wield_image = "default_ladder_wood.png^ropes_ropeladder_top.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + climbable = true, + sunlight_propagates = true, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + + }, + groups = { choppy=2, oddly_breakable_by_hand=1,flammable=2}, + sounds = default.node_sound_wood_defaults(), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + local target_node = minetest.get_node(pointed_thing.under) + local target_def = minetest.registered_nodes[target_node.name] + if target_def.walkable == false then + return itemstack + end + end + return minetest.item_place(itemstack, placer, pointed_thing) + end, + + after_place_node = function(pos, placer) + local pos_below = {x=pos.x, y=pos.y-1, z=pos.z} + local node_below = minetest.get_node(pos_below) + local this_node = minetest.get_node(pos) + local placer_name = placer:get_player_name() + -- param2 holds the facing direction of this node. If it's 0 or 1 the node is "flat" and we don't want the ladder to extend. + if ropes.can_place_rope_in_node(node_below.name) and this_node.param2 > 1 + and (not minetest.is_protected(pos_below, placer_name) + or minetest.check_player_privs(placer_name, "protection_bypass")) then + minetest.add_node(pos_below, {name="ropes:ropeladder_bottom", param2=this_node.param2}) + local meta = minetest.get_meta(pos_below) + meta:set_int("length_remaining", ropes.ropeLadderLength) + meta:set_string("placer", placer_name) + end + end, + after_destruct = function(pos) + local pos_below = {x=pos.x, y=pos.y-1, z=pos.z} + ropes.destroy_rope(pos_below, {"ropes:ropeladder", "ropes:ropeladder_bottom", "ropes:ropeladder_falling"}) + end, +} + +if ropes.ropeLadderLength == 0 then + rope_ladder_top_def.groups.not_in_creative_inventory = 1 +end + +minetest.register_node("ropes:ropeladder_top", rope_ladder_top_def) + +minetest.register_node("ropes:ropeladder", { + description = S("Rope Ladder"), + _doc_items_create_entry = false, + drop = "", + drawtype = "signlike", + tiles = {"default_ladder_wood.png^ropes_ropeladder.png"}, + use_texture_alpha = "clip", + is_ground_content = false, + inventory_image = "default_ladder_wood.png^ropes_ropeladder.png", + wield_image = "default_ladder_wood.png^ropes_ropeladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + climbable = true, + sunlight_propagates = true, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + }, + groups = {choppy=2, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + + after_destruct = function(pos) + ropes.hanging_after_destruct(pos, "ropes:ropeladder_falling", "ropes:ropeladder", "ropes:ropeladder_bottom") + end, +}) + +local ladder_extender = ropes.make_rope_on_timer("ropes:ropeladder") + +minetest.register_node("ropes:ropeladder_bottom", { + description = S("Rope Ladder"), + _doc_items_create_entry = false, + drop = "", + drawtype = "signlike", + tiles = {"default_ladder_wood.png^ropes_ropeladder_bottom.png"}, + use_texture_alpha = "clip", + is_ground_content = false, + inventory_image = "default_ladder_wood.png^ropes_ropeladder_bottom.png", + wield_image = "default_ladder_wood.png^ropes_ropeladder_bottom.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + climbable = true, + sunlight_propagates = true, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + + }, + groups = {choppy=2, flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + on_construct = function( pos ) + local timer = minetest.get_node_timer( pos ) + timer:start( 1 ) + end, + on_timer = ladder_extender, + + after_destruct = function(pos) + ropes.hanging_after_destruct(pos, "ropes:ropeladder_falling", "ropes:ropeladder", "ropes:ropeladder_bottom") + end, +}) + +minetest.register_node("ropes:ropeladder_falling", { + description = S("Rope Ladder"), + _doc_items_create_entry = false, + drop = "", + drawtype = "signlike", + tiles = {"default_ladder_wood.png^ropes_ropeladder.png"}, + use_texture_alpha = "clip", + is_ground_content = false, + inventory_image = "default_ladder_wood.png^ropes_ropeladder.png", + wield_image = "default_ladder_wood.png^ropes_ropeladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + climbable = true, + sunlight_propagates = true, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + + }, + groups = {flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + on_construct = function( pos ) + local timer = minetest.get_node_timer( pos ) + timer:start( 1 ) + end, + on_timer = function( pos, elapsed ) + local pos_below = {x=pos.x, y=pos.y-1, z=pos.z} + local node_below = minetest.get_node(pos_below) + + if (node_below.name ~= "ignore") then + ropes.destroy_rope(pos_below, {'ropes:ropeladder', 'ropes:ropeladder_bottom', 'ropes:ropeladder_falling'}) + minetest.swap_node(pos, {name="air"}) + else + local timer = minetest.get_node_timer( pos ) + timer:start( 1 ) + end + end +}) diff --git a/mods/ropes/screenshot.png b/mods/ropes/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..1366a4f2b6ce242b126343c4591b2fee7a20c361 GIT binary patch literal 109876 zcmce+bx>Ph7%kdT3ba^oE$&hr0t6^fBxs>nfZ`UQc!3lv#oa=1Xwl*=PH`y|4N|-i zJh)5om*0KwzL|UH&inK2%$X#6&pBr&=iA?2-&!l`jg|`GbK2*R9z7xitG?EK^yqOS z=HSD_!Sw7mZggYbaIDl-UO#&H@AajvBn8v+%uN;I`REZo*?-65N155wm`+?Tu%;63 z3f40mX{jvDSFsidfD1A`9QrKm{h=;Z){%L;y!xB z^a%V~Ue9-auML)HI}?DqlpI=Inm#-iUYxA8visB}%!KELE3fdGSvR?qE17#JnH!P> zWsl#OjW^2w7WTdunpoK~?)nNlaOK#uqMQRMrJ?cD8LGqcOx z#=m#jDRKw99HmdOA&7Th4@%0)?Y2LnT@L+&ZYV}29sfsb*RctB_J4nTT>3xS)57Ba z8f9YUf6e&S|2^pV|2g{q43_?%&;4Id{ok+rzmEPtxBY+b`+pq$|9evZ+m!Fs^LN$X zygfBf%eyYkJKaS4X@(|0Y%$*Quli~fkbJFIDWB?=j1USpT)dfJ^hc%+yF(7o?TxCQl5)5hT;PaVWFfw*Bpz_-tLD<;*_Vj>bUW@L_Xx-VHTf3wQH z4Pqt;xy!(=2|FLA{#wB%+ZowSo+Bn0_ zZtx>|qE~p>`EUi(hT^}!YxQvDt?$NFg0|&kueXpK0*#~A33s@6y=3OOVtru>M|Pc) zxe;RF5=)-fKSVX>{?2z#G6XJvtygx^qz(n5)7hRWS^kdsJkznw?2g(+8E-;DH#hI@A2=UpJ*>`@J$QZQijK@r>?C#@{ZZc*SC0@R7*kuj zVrV~PO=Qum1#zFSXzCsp8VPwJbJGJBuTOwiFp5(8esPgZ7(-IEjv{h4yVtl#%BIsTFwIgE5S%B<~TB&m1?7iR8>CB!4SA0AAD#FbF0DSnC@j$$hL&*KRAXTJl#Pnck_8+Q;-0ZB+FfKHZfDXNMx6x965c9u7M^ zVTk3M$IFjYbPz^PVV)X=fWFHBl5l1nYRifqqoEMuAjZ=Oq81ef7>pP52;{in6HD{w zLp#;CXDSn(C3FWJeIcGh{3<~X*48({18h_xiws~;pHT?!i$1+ZH8n74!ef#rwWwh! zo%M%EbZJm}aVbNbE+r)~nYJ2=#y_87+q6_dVXPSn-wx8xr+{=|rVe^_mX zKJJ$bD4f~7jT0m|AnJMJP?>NY$dsx(h0ZJmXv=k6n?`wh^T4M%Oq_IdxvB;B&9DC!B-}f{|1yPj(jVdJGA?<84?|o-NDJyCCNh<4Ay;lh#LfkFbUDZt-ht$K`PEw|PySo}mN( zb}a&|cA|X&E3TIl5J}ZeFBy?dCx`13hKz(+AcS1ZZ3l{S$8KV=kc1m zLcuswv_cK2$5=hP7mpb#PRnN7wX|gR;hyLMCxGaMY_X8b@$NHK1cjWW94bH^@Xy)h zK$xMVZobyp)_2;ei*k-J{EK7t+gk~@ZUA6lp9YgsS0u^q~%J~l6XJ>_(Ja2RN? ze-IyN3%eR4=4FS9)5Z3aWqW$Hc=o1{z|1T(z?mD=PDgbS)6bmgNl|%|^v?D|jL@(r3 zdlC9&XWr_k^xZL5Ep@a*okO<8>Mc>EyOoxqwM-%BEzWai}M@ z<&%Bb@aSkAT$i8w*AK0dQ|+pEE&qrFdCA1VM- zc{$}3s`9q=2b0dqd5@MZgoj={4OCV;≦tBF9=i)?Ia*XnMZUA@ze`efr~yTHICc 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 literal 0 HcmV?d00001 diff --git a/mods/ropes/settingtypes.txt b/mods/ropes/settingtypes.txt new file mode 100644 index 00000000..87faf737 --- /dev/null +++ b/mods/ropes/settingtypes.txt @@ -0,0 +1,58 @@ +#The shortest rope will extend for this many meters. Longer ropes come in +#multiples of this length. +#Changing this value will not affect ropes that already exist in-world. +ropes_rope_length (Rope length) int 50 1 30000 + +#Rope ladders will extend this far at maximum. +#Changing this value will not affect rope ladders that already exist in-world. +#Setting this to 0 disables rope ladders. +ropes_rope_ladder_length (Rope ladder length) int 50 0 30000 + +#Sets the maximum length multiple wooden rope box permitted to be crafted. +#So for example if the rope length is set to 50 and this is set to 2, +#the longest possible wooden rope box a player can craft has 100 meters of rope. +#Allowed values run from 0 to 9. 0 disables wood rope boxes. +ropes_wood_rope_box_max_multiple (Maximum wood_rope box multiple) int 2 0 9 + +#Sets the maximum length multiple copper rope box permitted to be crafted. +#So for example if the rope length is set to 50 and this is set to 5, +#the longest possible copper rope box a player can craft has 250 meters of rope. +#Allowed values run from 0 to 9. 0 disables copper rope boxes. +ropes_copper_rope_box_max_multiple (Maximum copper rope box multiple) int 5 0 9 + +#Sets the maximum length multiple steel rope box permitted to be crafted. +#So for example if the rope length is set to 50 and this is set to 9, +#the longest possible steel rope box a player can craft has 450 meters of rope. +#Allowed values run from 0 to 9. 0 disables steel rope boxes. +ropes_steel_rope_box_max_multiple (Maximum steel rope box multiple) int 9 0 9 + +#If this is set to true, then the mod will generate definitions for the rope boxes +#that are otherwise not permitted by the settings above. These rope boxes +#will not be craftable and will not be available in the creative inventory, +#but they will continue to exist if they were placed "in world" and a player +#can deconstruct them to retrieve their rope components. This setting is +#intended for the situation where you have an established world and you want +#to reduce the number of rope boxes available to players without turning +#existing rope boxes into "unknown node"s. +ropes_create_all_definitions (Create all rope box definitions) bool false + +#Extending ladders are capable of standing on their own, to a defined limit. +#A ladder can extend to its unsupported limit before needing another node +#behind it to provide a new point of support. Right-clicking on an existing +#ladder with a stack of ladders will add new ladder segments to its top. +ropes_extending_ladder_enabled (Enable extendable ladders) bool true + +#If extending ladders are enabled, this setting will cause them to replace +#the default ladders entirely. +ropes_replace_default_ladders (Replace default ladders with extendable ladders) bool false + +ropes_extending_wood_ladder_limit (Unsupported limit of wooden ladders) int 5 +ropes_extending_steel_ladder_limit (Unsupported limit of steel ladders) int 15 + +#These nodes make it easier to build bridges by extending out away +#from the player as they're placed +ropes_bridges_enabled (Enable bridges) bool true + +#Allows ropes and rope ladders to extend into all "airlike" nodes. +#Note that ropes will leave "air" nodes behind when destroyed. +ropes_can_extend_into_airlike (Ropes can extend into all nodes with drawtype airlike) bool false \ No newline at end of file diff --git a/mods/ropes/sounds/license.txt b/mods/ropes/sounds/license.txt new file mode 100644 index 00000000..c5f29d02 --- /dev/null +++ b/mods/ropes/sounds/license.txt @@ -0,0 +1 @@ +ropes_creak.ogg - by jergonda from https://www.freesound.org/people/jergonda/sounds/254735/ under public domain via CC 0 \ No newline at end of file diff --git a/mods/ropes/sounds/ropes_creak.1.ogg b/mods/ropes/sounds/ropes_creak.1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c6f1b688485a295ec1830dd44bd5050bcb073d2d GIT binary patch literal 8446 zcmcgx2{e@N_kV>*S-ugngb-7fr0fzZ8QCUfr;LaR86jEw(qfmjWh})cF%*q`YcV5a z$y%5x+bGLqi7;mV&y4T)x1Im_pZ_`kbN=sn=RNm%?(^LHJoj_&eeU~?rKjgPXdCn& z7yDfSd$xUSL4IgAuK*^Gt=V~NNH-fBizs5VWX}Azi^(amw$l_?X8hZ=i+xLwB;eb5 zUAv-UiT0Gf>g9HUC0^Q8`pDtKM-OWp(f$Jr5ClJC#3@4?ON73m&n5TEfdSH1Xus{C z+s4%9>?wUFWq8);ytzIXlS0^-p0m;C1msCWn=P&l!qC`Ee;0EGld?E(ZgdKv&kfqf zmgeTCENoaZOio!Kw#NUH+M4+@bCSmW>Jfk)kQPQYeCST6@o(|y{Q50!X;~r=9;Z}Fbd5AfoK*H7vZK_Pc1mug_ zcKAf_sH>b^V$RRutC5yd1vkvoQcEQC3$$| z9Ju*Z@zK+R#pPaY1QCw%37%9nh+Ojo;w6_UsR0C*GihOOU2sfaK+py z*#<>H5C<5y%jA`i`GQ>6qF&e1f8JYar6CCVQ_)?N{ci}kWyJOxXCrny@dz79{9!C< z)M;FVjs6O|Esy+kuEdaACXA}TN(!ZJK_CD@mxQ$L-6G0y%fz?|DV+3wCJm@bIlH!y zX*urEXaS>YOlW%zn87jy*kiMFjDQgs10Jw~bi^6hvj=W*Frq|2hZ<2jde@QZyfh1) z4+W_fI&E_KNeC1SFLdtgt4U!b4nKeiC^Lj16VwQz|9r@@%m6kluzjz43Rqx_5KAZ; z$dlOG7GN@?SK<^x&IB!Ik}CHhRmn6>uf2kKoA;eG-*dkIywBi@kL!vLx&JbGUQ^*AS#f!LSMK4}>KYHf%Ki}J)$P`1+ z4hWJY`b(JjOA!5;yJA^bnjMk`F>Eby3avy;J!%H_*n6^T*~wZX@SLsB-ynb?%!?SH z2ksBR6o5$6GwnTU{=dALhTR4M=aax+2%t9HP0&8`YGt1~R`m6Q&`zNvaKs!Ad0O-U zzA#0`O{gyi-YS6T4uw5A7iUU^VG-~b4XX~wxrWt!0K7k-lOQQ_%Mb*R_tdt_L<^`9 zq}>Jf6C`4G8EuzI-wppD9fL43{UdtZvqEiWmt(de_Z3X%CPY4(mZv{umXABv^ zfMa=^<66YvUdrj88~~%wAyK)~K^82d)AR!-4T12&rS~}iQG7;l$(VEmTsbq{p#zil z$3(AWDZz zJ|o>tNgn?|TcHSu;*!CpBCf))%vEhMhTJ-iVTZh7Fappaj}>)Hz*i1=&&s_PM#QS6 ze{zd|H89|Y`=@fXDG4M~x!aa<(Ewwi0m{}ln42e8yh14SCq#Bbg>0CAiv*YhfYNCKH446E+kgI8{*ypNhesx zsZpfUQxWh#j1siDWMU8qZWg_6FFwlom8$iHefI^^N zwLCz;i|_+r9Kqon90n-RXNU3zzT^h-lLN{eP!0)d19m7JNbV9^AR&tyD(pQkd?|m2 z$i66+%UT0Vsohh1FZySaX{+2xz9Wiz)3+O)Dauc`J}93lrVf{Xwj0IqBwq;8rkEjS zR=gLx8ySm*pqK1i;J5QhcS;6yVjl$EN<&0Y5qo1ADbXm_3XJOOwY7t8-&P z?0Tztbeo#O@WRNCOh58gBMccT0s!3-UPW6W;5dMyA{Hx*EKwscJ*q_vnJAAHM&W7( z9LzuyEV4!zit7FfK|vSa{oqzOg}in9P6-FJ2u>j2+5mijh8p2Pz!?~pi2-;d0U($R zP?0bho!X#~0T^JA0JXos0Zk?YG?}OY3e-cKe4r}Oh`VZWc()B}k09Hf0In_?U||GL zM0A>R11mfD2mxHCrPBuxAVDF(zFUTlP^7WDjSebfzZjm8$087MxJo`FZ&=1B1PbQ? zf(=`c=~ki)zz0|jc;m8TKse#?cBox4>FHodr5Fl^#b$b!yc)1Gh81Cl+)D5S2awnB zVyF@vNCjrNeg|+I3quzdff+I`j_*2T>Ulf=4a*K_c8EJhl<8FR>C6y13Ev7yMPPhH zEHmP{o&Xp?PEG}k>mcHp3{!bvDlVCH5Ry!gSOLpqzz@o2uzYrF1_C5afbG_d3>zKb zxGV+&aS$7`+XyC~!EA!Ef@e!qK`I;$%h=7-VFLm?!v+C^Z7H{b!{vb(Zl)+$5#WM( zEaf&}EuhmB{FteL`OHXX3I%I{VQn1XMW73C(;Yx(I?!7HtjAh3-~vC(_`AuRYFboa zg8Nh)^|E{hCK=BcG%AOlGl_x(bgA|H> zkbXD8u+82|%!nZE(Q+dJ7LzU{Ycwr{uu6zi3ra9lJtCTG#QkR4Eg|WZuq;@WArut_ zUO?D6IMt!%uh6B56M3>x%};ot!vZquw+v;DYPE7iaoyuCf~3_9t!ukEWlpB3{He6B z`q~&lP!rSrgcqzFT-%`I5VV^|djF$`H9YY<6Lux?Ch;ZnrwH7?&*DRDQT$L;49C5D z9v-D{$F|8DBct=*jkC+0beG#20G{03+$@@dMgR43y#F6;R+T=f)?+Kf#>OTPost-v zlolVKlp1?KIW-|IB|R}UIVmkUDK0T73F6uQJ_XHbe4-hgp>wN3Y*Xy-g>!5*gTtzL zfB7s?7~yF0LL;S)<7+iGq_%psWO_4PGvY?%lS_f6H%bj_v?*$`!Y;=el%`d0oYYf( zwsE;-@M=U6*y{wkfw-}71HQD3GuVh^FwS{3{wf`ErR^yk{iN_w8U5O7RCs*4bR709 zm_F7-~^P!WGg<`ceoM!7#l8PDq@aAi!X^m;EM9*O7k12;;m?o*}s%doWLyX^!QJp&25S6!D-R5;I z?D_1{2DR*{ZgAXuld1%Dg}yKsMz0Ih(lHQ%gLm`S-NXA~uM$mjJ9Y9@HTCM2(h`sA z%&4;ScaijnXogkeVXEuc{z~z=_l?nGxiu5N!n&Pv+sZQ%EH4=?XL)^(lwyml?r<%$At@TfX@sM4HozMjH0e{&{BmhoN#X;vk{ct=&8oUK$I ze?znBeG!nouV6ILa_GibMMIP>BcV{`^X@mtR3oNTBN`o5#F=>mSf}PJqd5!pLg%Hg z0jGz~ONgI~q0d|8rz{lfJm>9OcHm6Y>(CY6?;~O#j>S*)4Ci}Bqd&i^c<9n?+3Zbf znhkGkNd`G${9TzZql-5{-RJV=@;YB3f6e+^bcxBQ2i>jlgofi~QeRxWx2t=vj0FpK zN-k5fxs81>PNDt;^qTy~2dgWj;|6`Dn8jkzaLx2{+cj%yG%n=lvyr4kLPx%T|NJ?H zhQINnvQ%T4Kwh=@cqi1$iy{?z&aV9?4{(xre(;6BQcAwDVx)XuCH*GeXF*^klR^JR z4I_3s-bbdzoV_rp`@SIZ+Tg?bz}Qh`*POaXI-#_y?=>!Ex-8NZEFYLn1(lzTJD{@f z8bxq0IoSsfbtvXmr_7L*@RaP=d;!Y0`G@(;q8tOTCEs)X)bbjTL8}d3To{~_()Rgf zKBCTyWKEwoo!)VlvCfdnE>aF#N9jho5Z4MLp4|?%-RMlV>CEhC;J~Pz;$I5-KG>T5 z_fb6#wi& zq1!daPu}6{3o&_#)&V+(pDCy}8?_hMua~u5n0`EntG%&UJA!Ley_d8UaNTm6v-19vR z=S-w*Q?;6AQNd@yJ3)1OtFx46GyA7s+4craf$MZahV7smF7*1;t;A z`!1r2k=Wei>r>qSEwgwaJT1@XwwwajAo-~WH|=q~+Be#_8r;;|!#`IF@^nH5Pzwez zOa5ek^h|!U6Uz583q6p^DnYXr!R-LkQ1zQ$HJ2Hb{qPEvla) z*QF3$3-RRRRns?g$kjV)s^WKgiqO|TS~gaM7p^*?Z@i?%(-)jV79WhB8aP>TD};Ob zpdh|8E9kEK2YD3Iv}r_*wBYwOdw0q^eb=aPZ!Jls&YVRPL}=Bs7o?T$ydS+%JLk-P zExf?Ee)4TcFPM-SO|RN%92%Jo>Yil`PE~`oz2wiDav=2Htj%Rd&@hoAWt#f_k#`3d zo{r+q9^SrMM*i)h+a(qS7R29iFt@s;EeVc&)Dg8l(n1y< zzVdVJ`^fhAa21Y-jby6RCjEtvPteWM?<;lTo?Tq3DCZz*P`h1w(=h&{lV)T|u~#=a zpxoYXwtKDQY4%37-rlu3fi9JBk(YaKhHIVy#s0_-3#4qr@a*L8AE#fh(JW3XC-S}0 za``hBmi7Ej$dYFvJ}@@g&!CDbx1t(n{(@^l3HZ-U)we<1A^9YAYoxJ2%oVm$F(f6>KqhBeu zYI5@i{!IIYp8bv|2MOYGwP`O$8NHP2%0$N4*e}%h)F?Ub+u8M2zpN(zm1&w|aw(~4 zePVW*edM4?WA^}J?fEs|ykz^e2b`_9d?t5t+M%^O*9UP!XuB}FuJpWq&y}Bvqxv^{ z$iWsGl0UXL>xUDMot@&wy|+lUR+D0Ngr&N_pt$kqY(4M zY58ZnSIMvG#o@<2Z;MjZ+BeY)RvHncBcmUN%xLt-Pyq@jn=Ela z;({i$U@Z|QQe0ddPI_cJUH|A9*GR;{mW+@u2AH=mlyj5fyMEmfr_z*jce+NXRCcO_ zT}{^5pmWk`Yl>oCB9-JTAPGe1Xs=39lteyd7%<)s>8|7~ciAxJXc$P&8@0x3;%htszd*cJ1b%>y*fZUXp4to7v<&SK9sB z_JMvZ?pI4Drt)}^AFnw&l8z6O)%NRcAJ!}*^Gq(yCR;LGXsZ;`N4@q!1W2&Jh-yKs7_rJez1^PQ_#sMceA)-#Xz z5mnwCs830%Ax^oPvCiHZnMNLp&~)OxweU%!va>ict5S{Qea@5NvM%Kshlq`)5qhq{ zF)M1Z0m?OSq~3y9(Ox(ff0;|Oc4zV9HYe?c5-yDjO;roVW6lvir9Qg;kfU`3s&`R6 zw9EUr!pvrJq$7o3F$ms&BpQ(}<)N0kioq(el=X=lwS9uoNl!(HxACpk*W+#aRESO8 zlKvQWeS=5&>TBKmI9*GlLjuYzyw6BQx(aV(N{}T^V+7AOqs;4m78UDR&^2=~*NqK` zO^h6mt`EZw8&?>e*3`|RECulm&n9A=!zxFv(tR^ai>U_X52IcVm8#txr9Oenmx3m* zS8Y;PSL*U*e9a;nX2!#3szo#3=Zi-~yKc^$vK0YEC9u$=v!8qk{SG}1Z}EFi_&T|? z;+HRNi+*}4P}ZX1cZI9&q_;nV-et}Ec?DOozgf_vIG10)%w^o7Uv_}Aos>*-*d%>_ zHrXKkvB@!1HM%8Kx86h+c#r!-g3s$mD_#;9tcRKM6~k@_Fs#?GW)s}B}D2V4z%Rem{goq@a-}v z3MI`26gK>z_1*+gRspU&$+c3C<$<+VuhKy2!DbUV}qg1Ddv)xf>&fjA2?B$)5Qa zXWxF4hPE(4zh7PU9z-$pP#Ln=HmZdoYaSt)v+)J&g81d(_Q2Wm9-2R|treC%V$=jP zsKfyx?sl*2)1rvQk;NYxO?Szf;Qi|NN{yv~XWdR$8j%`(X_$A4;#3rNJbLy)?iGjL zXM^i&nmMA^t`n|Y&$(H4+a;W0BatN#;-7xvtz64cmaT0s7ytW%(#yhCid6?Iq~7b5 z*kq(GmOl&qjFvjlugtkI^&)1*G>a4IpX@n{)UQ|dCRWtC>fF*Lek>1X{2tsKYtDWB z#TtC7Ztf`*yIMi%bp^Ixz8iLQA~b&OXMD`&=iwDc+bre~I zeJEx%d4T%9sMa^g>p-B0nQK=B&TrmtPq@_MT8v(7^wLbF-$P2c1~whnYVfu=0V%sIqyto K)3to@o&N>=f0h0K literal 0 HcmV?d00001 diff --git a/mods/ropes/sounds/ropes_creak.2.ogg b/mods/ropes/sounds/ropes_creak.2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c0b135994317096f78eb387bf72fc29f1f8f5f26 GIT binary patch literal 8509 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 literal 0 HcmV?d00001 diff --git a/mods/ropes/sounds/ropes_creak.3.ogg b/mods/ropes/sounds/ropes_creak.3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d7a4c964744bb7ca66f131771e10ebd8c8f3c840 GIT binary patch literal 7360 zcmb_G?dL-ygr%_mA)Wx{d3c>pItUuJ^T^bDO!im_xkK-_Ik5 zRbozX@Eea5PoNLU!Ho=0@w~QO<(#Zs{h!BU2Cw|*fmiZ?(Qs&b=jOVVe?MQ>tm;t& zY-=}PS7kGj3)0ig!IG;TX@XQ!MXRZ*sj4IQnt6G<`I4N-PTu~gH9&kb_%py;n3!8& z+?_}+KHiS!h+xXl?D+8`CoIe{&Lkf%q^rNbFIh)L<^1{c%FZMwC$dj~x1+KT$wkH2 z$;a2zN#)N{6)uOYqNcH5Q(Z#^3B;U8NZ$YlPd6gc(Z}nYn>RAh?Htn35UIKqHiJK6 zU}1*G7e#e!etX_1FVGw>l=nO zQ#77^T9xApbAKqXdM@RS9@s{H2x|dDiPbseen&AV4ubAw?Tz}jcayOA6G5mNf`kwG zi5lM)HGM4c{)3DVztEX=aJ>0}+|lc_qfvD07-zQ(x!~-*DcK4IPuyys?0f%Y_=Pfe z`B4Zuc}ld(SCo&t&Jlw6|JoasqZQL<9Zx@#!54A8kQcfPL2H5BM&rk#$0uYOf9W<( z{=e_4StJBOSNA$1*8B+pzqI%c!*slejo>z{#1=zIY=dDQJ^U-`nk=!|ywHGO`rwTZOE{rZLyJG5Q!A4bgZDr&Ma_>r?%zga zFga=DA_EkWf@UH9^RtHw18`V){SL=Cu)zpXu2K@vC$Z`lVDbV#C63@_j7c)a@iH~> z`%Dsa-xtI0@lS`3i=A#c?bSNtWk2KfrN!yXj8jL8lWmey7t_m@V{6+Q@ZT@j^~-Ca z%Q1Zbb?_dIp&b?E1}BaO5{544XhroN1@VZHJrghImgEwYlpB=t;HDH;1Ox`42A<2= z+_1@tT>wD>5G2X=lQ8y^VEe&daS=wYfsmls zPDvag?PJI9Hw8X^Jlr^CbLv2Vxs}(SAOI2gVUu;iTLYi~M1ro#$Nk6umoE$~F9ecL zqUufv9+%f(a1<@?a*!qQ^iJv~G3+sd(gDXvgdBt2jKap{q~NOK&{6Ivx;Z~8k4|ku zvuO7@1O@t2DG2P5*3+XSsnXp%_%BCB$pX%Tk;1C_3{b&V$PUiRFHrQ6-LZQ=&E#0OJ!On!yy`!$LYXnAD^t z;BjsY!1ykaxCx7sjG*FhN=Z~gU0Oo3fiXQi4sRk`5|5|ICbr>l=p?FxrxL5(p-=;? zSY;@ch@Yis7*h;@Dqx%r+sI>rT>(`(e6opDhkdflJAeUH@k!I;@t(5uHY|#<%4l<_ zV=~*^_vTf>Ht2}66lO`A`v~pnHvCPnU58tbIUE8bi;6Ji8mFK+oeqWCfMFubipSql zDzO2^b2%h0CBUfDVA+H)m;;{(j65a*FxcYcLgx2w1K_#HSzrUGQeqJdQIEOCtGLFk z$$Mc{e;a2Z$R`*rfT6*(^Z=?59wV!&p0&9%m@{_d5hh4&9zM{5w$>iXl2+uoycdGr zBItEp*Gos>@$O0>)ZZl{PU3Kk)5p+&0$TEz zI5aB_v>z0TnFQJ~Jcpul)V{CI(LWLRKnubFLma{|+>uap+9!escaBb@5^kYa=i>1m z=p;P6mWuaKV&QQpm@;Kl-2o(63+52!fC6hDS0RW10uETqLU>sh2zs=J5BzP&YKlvQ4oN}Kl{h>F_z0k3rI9zG=m-F2E`nGG&LVRP z`a3v~U@A@nyjbWJD9p5XOR7J$TInAzvHat`{)6DkyYD0HT3Pt5yYS z0M=AcQ~Us`y;TSX006CDe1P@#u6G1Fwa(JQFTP2{&f}YlrJv7&SkGMXrhh7UqU|Z0dP2ixEqh8^5 zpF9{o*zpLwIGr2Uy!|+B5LZ0DHZ9>K2o(rDs5h`}MmWe06muJqFN;bA8N=FyRe*=l zlH3GhAq;`=HX?<29nL2ZJ|!-f`JDg{#XaglQb(+ZQQv84tc4Qauy4PkEELBF9YVeX zXOZ>|ssnrxFa$|=2SyvQiZ<9BxHYWa5MahX_kx&z!tkGfG=P4t;0rq8qf?ILtGDlQ zee7BFkqzL*yWhDA(3Yh&VRP=lp#o5<4bo^9An&VSM`?IGpg@m;(~$xo=ccFwg$X;a zRAo(MaJ^+P5gtNt7(CIO6j0kBiz$yeDW+g85Gnm`16(e#_F!m$HUUDD;?Yo+%W;53 z$YW&?l)%RaJy^Tb#o9ziQ9?+Wi^ERnGV&ep4?cb2!<}2CT#Aav(LkyHVMG8h?t!Z0 z2T{SHcKpr2?WISE=x`YVTn61Abc5Ae1ad>%8^bDt+6=1#vE>eBVHl=4AiHz=Q4nYxrj`+_`@%zzaf<4jfO_>}Kr9 z{@&U>zK5kN*IKw%;~*qBxDKt=S%qs02qu?`yaPkC3gLfw_GeH3+1>v!B?<-H?ST-O zbG;iCO(Jwnv|f$aV3XntvbIIT*o$?LOd zphGILti$UuAk{!81;X0fdqG#He{v{b4oFbOxGfvbx3MzUCKFKm1o9Y$&t4a_2atXk zzFid6Y-*B2;bV@(#VtmNQ#ey4R!T^H8G;yrL$L@U4W$D%lr4JnZN!JAvr-q8-_Csl zXUFWf@XdPs=O}UL?``CtW!s6A&2Ou1$jWaKy|+}~&LKS+rF`}jppSTQTx0HD2>LDm z9t!yBB7ZnC2P)PGVIRQ*m2TMtMQ$(>!Mp6R6!+^DKJxYGl7mmCSBp+|}l*xpC-7lUhllp!B-Dz$WxH(HwES;9b0+ zd%pJd81w_Qd=FlLz8++bFoZgS+ItJiUB;{e1%cNZw>WQm{YS`+Oid(AU?`-`6LE+;@kx zF8uP9E6}=kd3WNlgufCNM=O`CZgy=}SQn)}DfC8p&*r~wNcJIp^TWl&ybAYz9IDss z*2Ui`9@Z`S?0I0cHYYao%Q5YNi;FH9o@+iNbK=#lJ;}N!VpjD12H6$ED*Deb<#oz> zFWzV+T6ptETzswB zE<}JhviBG2)tSp-+ zh>-vKazF)AH@n>2hyl}0#F8FaQ}!Kgh5bb-=DGKm!{7H0pAH{;#>c!eEjDdusqga) zFPG|B@#XsH!vO}5Z|{$8VogFt(spr=(XmBm zCUa$ePp2H)=K5zSyLS1!GsC~DC!^4EO8v(Cxs@$1V(9PU|FUg;6<u2+)JgvuEsmoPTQqocdV@#lWa zc7<`G9Ncs#UX+fU!c;vTj(!>)*77Cx%WPkeRJ>(ES5u7h_?z6=I$LG^9|NySs#~-V z-~(&a6$xnD_V%|4ze^^*S%md}JzhkBZB8kBsT@YPym}dgTH)vpC1}d2o4jk0XEJu@ z>MN$^j!$aI=|}4p?x>e6>dc8~`_RJpicR+myBPEw)4T9F$ksJlvcxHocXWu)!&$Gw zk>JC5%sg@oA%D}&NqSPbas5HX{r#DRrO)Rk4Mn)-_{J0PQAOn{9Y23%|5`(jW*0Gg z<71CC%S_57)bC$B=-tc751UOLx6=+_sGljfS?+(*Z8mE4*|aj;Sz^3qa_QSE6ZH8J zujH%B9;PANeGZI#d@<=X^JtX(ebFtb#7`!<=je4*@1?n+*4!eAjAO8qo%=GyEVF+c zQ8Bl;i}A3s8@m>J-P`rN@lC?r11UrIZ4x{`P8yvnu+tA6l2?EJSSrmoZ%cm0@N!Oa zaDmEzZm_ItK$Nmcta+{YnF|>oX4EVq4{*ZXRuq&bt}E?V!8h1liC&uU+gZ$5RIzgh z7d~i2l`mIl=h06?j2*1ePi)o@LqQSWnY%dJ<5%kGtdUytE@QS=ex=QBKHF4I^Xo$O zo8z-(^R3PtyV9=N5C#2-3XxjXIVL#~oRE7E!MC~K)B5yV?-<$jTd@n|yt}nancB|&x4*L{+(`9G( z!GX}pqt8FhJ^GbWF;@F3;YVoB0?E#BNX2TlX#0_n?tj;!WIE@P`w(p*8 zob+nQ`5DxG!@N5%SG*`jN2Bw})Lj3El%5LMKWJ(nyWKSY>U4xg#qw9XpLMt0NX`Vt zgo{M(w@y|b)~1~~O2)X;9XnoWQwy{OG$+y$f+SdD?AA=pjuoR`3s1AMN2TNa6V&^B zKl~2n9Fs4_^pBKZC~=W0O@90IS&ebQ+1A9$8jaGdu!Wo8^91U9c(}*zih_*OAVbM= z+rd34&Zfq#CCyV8#-2$f*mUeQ${J}Da=3b8z*{`Hmc88PE7G(4)f3mlteKD z+9wq;!E|i#7fU6)qNS02-{(ZX;Czb`k%sP_Ek+Wh4U_SU$JNt_q(aIY^T$u*lb_i8 zaf*V;s8>HQbH)AJV9N@|U2RgKG85JImx?>m*qt&s zx0GSonDOQN*;CFK#rnjL(X1u0^Bl|E>qaw^Z$6C=2X{T09o6jq9-Z^>OIoy?zfkXl z?l%sizG9R9hRu{#d_chT=SS_q)ZQPV>AhcizPw)vn_n4NX*63TWqg-N&%?~jO?=$x zwtm3H+o%tGXu?@^BK5H0Tu-@FHp6V-)rDUl+TPFUS`ahM+1}{nv4ZXMa`w63+!(89?=pg8d&+-(KP7O*SLuB8hJ{pye#3s9Q?H-I?v%^AB;(^f z(&Y~9jXd}{g%iygJTQ|xIX@TjY)Mwn9AW6OL^|U#?-Q;Ume1eiDm6b*hMBE9vRzxb z+&zsJZM8%Fm*)MUDt)u!9lAxzlBJ#G(*>R6C6nS)ixowa5g``Q`Dmk-RCz?0zLoxl zbFPeQGY6MWB=f`e_VKku;(x5riUUXQE;^T(+?;p*<>|Zp!dZON!x_4e{H50J5Z}V| zhErCY3!}$75>E|e*M&wSqbe!c6aawU@bh{a)CUEbrLH*|j4fkfvE& z+U}G5wrl$H!ij_RP8l6V>a!1l!9G?0{6tluZk?k!TGNLd&CpbhA}M`;yS!c7Vp&GD z?mhV#46Tj_;!^JAKNkGUPCU!^I$c5DYu5jX68-%~_*@637bds84)9sjPoiFZB090ZA={`8~j_;F6=&3j)2O)njy=`uMy~iy?1s)d4wz zz4G}Gt+E4?!E?P6wabmcA?1ZqmIY7wZf6WAjcL!ahn6OKV(2Ij98h?k!A6$Zx#l#8@HpAU`oC`-<~SN7qhT}S_B&5U3z|8kn`@OVbB zN87_`Pg}jy1-8bG7>9btp4%OnZQCLHQD(o3UeDXA<*HQ88>2r6nVbil{F+}E h#F9@_eizwG2o|^ZceYQHR#=+LgQJIs5As3K{{VFLF(?24 literal 0 HcmV?d00001 diff --git a/mods/ropes/textures/ropes_1.png b/mods/ropes/textures/ropes_1.png new file mode 100644 index 0000000000000000000000000000000000000000..7529284d049b88781ffbe0e64f05edfef1adf5f2 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}LV!<*E08{T@L+3e>yaZz+S=NV z9zA;O*s(*04(;8$_rQSzX=!Qg?d|F^oTi$hmin^x#&SB!qOMlzz7E=f&iW1}N(Sl@ z#u`HQrpke?2ELBECYs`!a-14+T)vKa4yMYk7AlM16f^_v;3*061K9}&|0hZ;19Fl) zT^vIy;zG~4a~*LIa1IPFJ$Eki(%<~d3<-@))qAh_Yj3Ste(~?WL>qySyHi+}RVuM% za5Ft+5;**iE3j#Qo!o&sd$9w1^VJ)DPqr~mW1DcrWVK4;HZP$WeS(Kf=4!v>;N4%(LbvO3D5 z#u`EnCQ1&b%B~hFCYs`!a-6=7y1tHj8gg8Lt_Ci1?iK^>;3*061K9}&|0hZ;19B=n zT^vIy;zG~4^Bp$eak&_9bn22_)jR*|GBYwBIg|Av?0@j`H@}``g#NYHP@KpzS=s8c zgR|241*{9A&)I*ddCT-G({g+DE9su=|6~?7RPMfco~iA5frZJ1X|}4XSuJ`Z9nv*g slXkHQ6f0#cP!uUq@;SJ>iY@dZw_!HxyVHWKY#;}Dy85}Sb4q9e0HrHvnE(I) literal 0 HcmV?d00001 diff --git a/mods/ropes/textures/ropes_3.png b/mods/ropes/textures/ropes_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c24ddc92594183225d3a96b541d63e01fb9a0ac0 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}LV!<*E08{T@L+3e>yaZzjvhU_ zckkW<2M(mAr5!qSsI9H7y}kX|v12;QqJhr(2I>-~nxdBavi8Pu_NK}XCQ7bW>b?%z zzK*);GMs^~2Cfz=nsS`R8bT(T;=Yc08gg6?rph1cJ+1@o;3*061K9}&|0hZ;19Eyi zT^vIy;(X7$i!mAUFbB*@*){jxvitw1@$`!~m;KUy`86eIVbvN(U;m#>zoeZ0Hg2&B z`Le08LF8gIZ_~kvS2h1R8fsc4N&KoU4)L)!dGRUg%)U~d)3xuS`fzJBI8bT(T;-;FSmin^x#&Y(i$_^$< z4yMYkR_eYE+P;pu>N1>xt_H3aD!z_-8gg8ka-27nlJkIe@RS7kf$W5X{}Uya0Xg$L zT^vIy;%v{miyc-FU5RDo%?}L&ezPBTlw5bSC7E5-YK6qNo&R;CGq!J@m3up1-i;%fCG&mlYz0f6f1&5=3l^s4 ztNs>T$GQAPit56ti5^xl@Ln`884{YRZP!M1^(A*>`@gTW`JIb2-aLfz|^$izv-`d)* xTqt8*S~c71`N9~dsQC)N&U#3z>r9Ylu(PXW|8?S|+yo1t<>#Jl^sl!)MYqLHAU@><&bp+I_tYysA$S@I+!Z^I_eo~2x-W1nP`gpI_h4T z`K$=2RG}ouFPOous?utvbp?`Eds|B-Fem~yH zob&#?TI1I{rp$A=8#b#(t2YLzaQc`!%uu@T!TW>pZaQ@NOLA~1q=hwa|22Qtq+hYSLtg!N-10&-<*mb0HlG*13StbaX8%9Xk}C2c?yk+6 z>$e}o9n0OtDsx!sjN*ekYOLwZeg`XjbQ~HlGtGN*@z@^|h2*h^gme(|LYA^lkc+@RQ?N!UgElEtX%@`~Wx~;Zf;Gylu z@b2*XIRPbigwH+D`1G1{gYL!k2Xh&!{SN9D&Ntv%H!^cW!rS6^yrK8GL}gMZFVdQ&MBb@0993AQUCw| literal 0 HcmV?d00001 diff --git a/mods/ropes/textures/ropes_ropebox_front_4.png b/mods/ropes/textures/ropes_ropebox_front_4.png new file mode 100644 index 0000000000000000000000000000000000000000..32ebe4602e77038998310d783eb8a300ea64e45b GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}LV!<*E09)~;dHf9_jS-VP?s>( z6t&cswKtZtH&u2pQPPm((oq)mb=38B)C+Xh4|Fxql;bqk5OOe8cC}D3(G&-2#}Bf? z@Av~%D3k>Gf$YQtmR8obcJ@vcl~ptQJ4=#*3Kn>}IEGZj*`9Y7JFLLdlIXoCJlsI< z$G`18pA{m{ZU2=n(Pr(sHu;LrlHYUVFI?1;o%+{to0q}rMdx_41bYGuWWC=yXfQ7f zt)IZSgQuyqg73j)jyWGHq~=_HF)ee-!#5jtrhdy~+*f)dJ^$KG|HtZi`U@?VltHDAYVaIP9c56s)-Q@Aq_B$ibY3{(6_cC^X OJmcx==d#Wzp$PzoXl)Jv literal 0 HcmV?d00001 diff --git a/mods/ropes/textures/ropes_ropebox_front_5.png b/mods/ropes/textures/ropes_ropebox_front_5.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8305f4c2ccdae12a63cc69580755132532c857 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}LV!<*E09)~;WSW}Fx3?Gb8P$&uV1KEiQEUm0>>&)NCNY;IM7Q_oNL5 z5B~o*nmFn8oV45T?(TXMbB^zEUA}O@?ltvSU)fu@Trpd;?WU~oJVi^T?hd{FbVf-r zw@nwm$%{yErlcHUy}wy~!IFlEIrll|M@`bQ)l|0UjypU3UG__d^{n|E``Vsm2fgP! zpQmBcbiwQXd{!OKC5j(P50<(p_9kRHS+C=CUYyX=#CdFM(z&E9Qj1Nr%lhZ6J$Eka c;NyFB3|k-Y^eokvbOw3N)78&qol`;+0Cd!GTL1t6 literal 0 HcmV?d00001 diff --git a/mods/ropes/textures/ropes_ropebox_side.png b/mods/ropes/textures/ropes_ropebox_side.png new file mode 100644 index 0000000000000000000000000000000000000000..fda8d5437e7b868e92fd219797358e8a881fa6a2 GIT binary patch literal 411 zcmV;M0c8G(P)`dqP=JS=y3SqBPl*m-14igW(|VKfD#OD>i}s;?1ESgi z;7@{~{bB)7Rw>$mGwfouax$ARu}S+)T$U`MSh|zeY`_5CRa%$hnZZH^Nxm83F9{{} zyWY)sw1ikic1S%_{FLF3?lzT{V0)NaSHu~(>29$yZon=cvv{1Ln#YTwc>v#XKC^8q zH#3Z|K{=FOmh!7;*`d5&O|Vv_onsZHP&BW?oPo+>oqT7Nk}mtvRE@V{(!Gj1v2N zf7Y@HnFM?G>Nv3}g(iL3CNoOCm()hK<>;6BNac9*W%@}LgbL<)vz7((HD#!GX4%cF z@SB)#-59G|6)#_rsG1)l-&tS^bV-1xt%H@p2kkfAK#pEXkRQmIBmm>5FEWA3D?D8s zLnOj`&$x>dH-F#Mm-<=w&DhYO#kqQ-O6RQ!B212A#|q_NcuFO! zT&&sPW5DEDf4SqEA#2;_<0qz{H9S~gSNf7E`Toy{wdOa=*q=<&>N)(eWS@(~bw77b qmhIJnPtJZk@?rh<-xfXjzke{E=a6_M)pY0^$jP3relF{r5}E*rOMjjK literal 0 HcmV?d00001 diff --git a/mods/ropes/textures/ropes_ropeladder_bottom.png b/mods/ropes/textures/ropes_ropeladder_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..71f91b0fc071782d01fe997a4ec3605497de1706 GIT binary patch literal 415 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf`~aU2S0G&xDOVgJRhu9)wbX4v zqtEObuXGQN{2=j#?JNv3}g(iL3CNoOCm()f!BrBHrNac9*W%@}LgbL<)vz7((HD#!GX4%cF z@S9O$-x#Y~6)#_rsG1)l-&tS^bcutN0g!|+0z7TG*chK0U)})Z8S z7T&rLsH4u)#W6%8y!Xsj(Zc~EE(b*y&zvdwzW&{QGj%J!IV&0@Ig33ewHT`$br3ij zX~s}B$x0&iQqETI9*0ZkLmvHq!PNV?;HCK0i^o6wx#I0E@%Yy96szuM+zL~+9E!-_ zw!5~ea7C$zynBJo)5;FzDJ6`5UZ34veZYCrygm1(PW-|;agpSlINxwFklQ_7{an^L HB{Ts5(*lD& literal 0 HcmV?d00001 diff --git a/mods/ropes/textures/ropes_ropeladder_overlay.png b/mods/ropes/textures/ropes_ropeladder_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..7fd285f6cac5103c8f4ff2151b92311ed2db819a GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9E0CV^pGn6hg%!wRED7=p zW^j0RBMrz=^mK6ysbEZIU^>Re_Kcb5kGw=mxq-wt1C4DAt{apVL^0e<Uy-PqA0ppbUj${-{pBs4U1>(;Fu9UbN6<=x%gob%u7 z0HyUyg8V>kM+JJR zR_oP1yQ*SR-1p@wp4-1KR@7wMqrul?bYbF^V;+;MmQGEonADQ$AvCkr{QdpQ%&WFW zUVi(`P5yA9v${+I54ZH=Z+rS b@lRU*!z4++SgTe~DWM4ff?SOp literal 0 HcmV?d00001 diff --git a/mods/sandwiches/init.lua b/mods/sandwiches/init.lua index d322f41c..ac9f2b51 100644 --- a/mods/sandwiches/init.lua +++ b/mods/sandwiches/init.lua @@ -115,7 +115,6 @@ if minetest.get_modpath("moretrees") and sandwiches.ingredient_support.choco the dofile(sandwiches.path .. "/luas/nutella.lua") end - if minetest.get_modpath("bushes_classic") or sandwiches.ingredient_support.berry then -- BREAD PUDDING -- diff --git a/mods/sandwiches/luas/bbq.lua b/mods/sandwiches/luas/bbq.lua index b38a661f..7abec8d7 100644 --- a/mods/sandwiches/luas/bbq.lua +++ b/mods/sandwiches/luas/bbq.lua @@ -4,7 +4,7 @@ if minetest.global_exists("farming") and farming.mod == "redo" then -- need pe minetest.register_craftitem("sandwiches:hamwich", { description = "Hamwich", on_use = minetest.item_eat(11, "sandwiches:bread_crumbs"), - groups = {food_sandwich = 1}, + groups = {food_sandwich = 1, eatable = 11}, inventory_image = "hamwich.png" }) minetest.register_craft({ @@ -21,7 +21,7 @@ end minetest.register_craftitem("sandwiches:jerky_sandwich", { description = "Jerky sandwich", on_use = minetest.item_eat(11, "sandwiches:bread_crumbs"), - groups = {food_sandwich = 1}, + groups = {food_sandwich = 1, eatable = 11}, inventory_image = "jerky_sandwich.png" }) minetest.register_craft({ diff --git a/mods/sandwiches/luas/cucina_vegana.lua b/mods/sandwiches/luas/cucina_vegana.lua index cf1b59ca..731023ef 100644 --- a/mods/sandwiches/luas/cucina_vegana.lua +++ b/mods/sandwiches/luas/cucina_vegana.lua @@ -10,7 +10,7 @@ end minetest.register_craftitem("sandwiches:tasty_asparagus_sandwich", { description = "Tasty asparagus sandwich", on_use = minetest.item_eat(7, "sandwiches:bread_crumbs"), - groups = {food = 7, food_sandwich = 1, food_vegan = 1}, + groups = {food = 7, food_sandwich = 1, food_vegan = 1, eatable = 7}, inventory_image = "tasty_asparagus_sandwich.png" }) minetest.register_craft({ @@ -27,7 +27,7 @@ if sandwiches.ingredient_support.meat then minetest.register_craftitem("sandwiches:ham_and_asparagus_sandwich", { description = "Ham and asparagus sandwich", on_use = minetest.item_eat(7, "sandwiches:bread_crumbs"), - groups = {food = 7, food_sandwich = 1}, + groups = {food = 7, food_sandwich = 1, eatable = 7}, inventory_image = "ham_and_asparagus_sandwich.png" }) minetest.register_craft({ @@ -42,7 +42,7 @@ if sandwiches.ingredient_support.meat then minetest.register_craftitem("sandwiches:club_sandwich", { description = "Club sandwich", on_use = minetest.item_eat(18, "sandwiches:bread_crumbs"), - groups = {food = 18, food_sandwich = 1, }, + groups = {food = 18, food_sandwich = 1, eatable = 18}, inventory_image = "club_sandwich.png" }) minetest.register_craft({ @@ -60,7 +60,7 @@ end -- if ham is present minetest.register_craftitem("sandwiches:tasty_tofu_sandwich", { description = "Tofu and asparagus sandwich", on_use = minetest.item_eat(8, "sandwiches:bread_crumbs"), - groups = {food = 8, food_sandwich = 1, food_vegan = 1}, + groups = {food = 8, food_sandwich = 1, food_vegan = 1, eatable = 8}, inventory_image = "tasty_tofu_sandwich.png" }) minetest.register_craft({ @@ -75,7 +75,7 @@ minetest.register_craft({ minetest.register_craftitem("sandwiches:tofu_sandwich", { description = "Tofu sandwich", on_use = minetest.item_eat(7, "sandwiches:bread_crumbs"), - groups = {food = 7, food_sandwich = 1, food_vegan = 1}, + groups = {food = 7, food_sandwich = 1, food_vegan = 1, eatable = 7}, inventory_image = "tofu_sandwich.png" }) @@ -91,7 +91,7 @@ minetest.register_craft({ minetest.register_craftitem("sandwiches:gourmet_sandwich", { description = "Gourmet sandwich", on_use = minetest.item_eat(12, "sandwiches:bread_crumbs"), - groups = {food = 12, food_sandwich = 1}, + groups = {food = 12, food_sandwich = 1, eatable = 12}, inventory_image = "gourmet_vegan_sandwich.png" }) minetest.register_alias("sandwiches:gourmet_meat_sandwich", "sandwiches:gourmet_sandwich") diff --git a/mods/sandwiches/luas/ethereal.lua b/mods/sandwiches/luas/ethereal.lua index 4e82c7fa..919664f9 100644 --- a/mods/sandwiches/luas/ethereal.lua +++ b/mods/sandwiches/luas/ethereal.lua @@ -3,28 +3,28 @@ minetest.register_craftitem("sandwiches:strawberry_jam", { description = "Strawberry jam", on_use = minetest.item_eat(2), - groups = {food_jam = 1, }, + groups = {food_jam = 1, eatable = 2}, inventory_image = "strawberry_jam.png" }) minetest.register_craftitem("sandwiches:strawberry_jam_sandwich", { description = "Strawberry Jam Sandwich", on_use = minetest.item_eat(7, "sandwiches:bread_crumbs"), - groups = {food_sandwich = 1}, + groups = {food_sandwich = 1, eatable = 7}, inventory_image = "strawberry_jam_sandwich.png" }) minetest.register_craftitem("sandwiches:banana_and_chocolate_sandwich", { description = "Banana and chocolate sandwich", on_use = minetest.item_eat(7, "sandwiches:bread_crumbs"), - groups = {food_sandwich = 1}, + groups = {food_sandwich = 1, eatable = 7}, inventory_image = "banana_and_chocolate_sandwich.png" }) minetest.register_craftitem("sandwiches:elvis_sandwich", { description = "Elvis sandwich", on_use = minetest.item_eat(8, "sandwiches:bread_crumbs"), - groups = {food_sandwich = 1}, + groups = {food_sandwich = 1, eatable = 8}, inventory_image = "elvis_sandwich.png" }) diff --git a/mods/sandwiches/luas/fish.lua b/mods/sandwiches/luas/fish.lua index f0eecb51..497f66d0 100644 --- a/mods/sandwiches/luas/fish.lua +++ b/mods/sandwiches/luas/fish.lua @@ -1,7 +1,7 @@ minetest.register_craftitem("sandwiches:cooked_salmon", { description = "Cooked Salmon", on_use = minetest.item_eat(4), - groups = {food = 4, food_fish_cooked = 1, food_salmon = 1, flammable = 1}, + groups = {food = 4, food_fish_cooked = 1, food_salmon = 1, flammable = 1, eatable = 4}, inventory_image = "sandwiches_salmon_cooked.png" }) minetest.register_craft({ @@ -21,7 +21,7 @@ if minetest.global_exists("farming") and farming.mod == "redo" then minetest.register_craftitem("sandwiches:lox_sandwich", { description = "Lox sandwich", on_use = minetest.item_eat(12, "sandwiches:bread_crumbs"), - groups = {food = 12, food_sandwich = 1, flammable = 1}, + groups = {food = 12, food_sandwich = 1, flammable = 1, eatable = 12}, inventory_image = "lox_sandwich.png" }) minetest.register_craft({ @@ -40,7 +40,7 @@ if sandwiches.ingredient_support.meat then minetest.register_craftitem("sandwiches:cooked_trout", { description = "Cooked Trout", on_use = minetest.item_eat(4), - groups = {food = 4, food_fish_cooked = 1, food_trout = 1, flammable = 1}, + groups = {food = 4, food_fish_cooked = 1, food_trout = 1, flammable = 1, eatable = 4}, inventory_image = "sandwiches_trout_cooked.png" }) minetest.register_craft({ @@ -53,7 +53,7 @@ minetest.register_craft({ minetest.register_craftitem("sandwiches:trout_sandwich", { description = "Trout sandwich", on_use = minetest.item_eat(13, "sandwiches:bread_crumbs"), - groups = {food = 13, food_sandwich = 1, flammable = 1}, + groups = {food = 13, food_sandwich = 1, flammable = 1, eatable = 13}, inventory_image = "trout_sandwich.png" }) minetest.register_craft({ diff --git a/mods/sandwiches/luas/meat.lua b/mods/sandwiches/luas/meat.lua index cadf0958..09c08b84 100644 --- a/mods/sandwiches/luas/meat.lua +++ b/mods/sandwiches/luas/meat.lua @@ -6,14 +6,14 @@ end minetest.register_craftitem("sandwiches:ham", { description = "Ham", on_use = minetest.item_eat(3), - groups = {food = 3, food_ham = 1, food_meat = 1, flammable = 1}, + groups = {food = 3, food_ham = 1, food_meat = 1, flammable = 1, eatable = 3}, inventory_image = "sandwiches_ham.png" }) minetest.register_craftitem("sandwiches:chicken_strips", { description = "Chicken strips", on_use = minetest.item_eat(2), - groups = {food = 2, food_chicken_strips = 1, food_meat = 1, flammable = 1}, + groups = {food = 2, food_chicken_strips = 1, food_meat = 1, flammable = 1, eatable = 2}, inventory_image = "sandwiches_chicken_strips.png" }) minetest.register_craft({ @@ -26,13 +26,13 @@ minetest.register_craft({ minetest.register_craftitem("sandwiches:raw_bacon", { description = "Raw Bacon", on_use = minetest.item_eat(1), - groups = {food = 1, food_bacon_raw = 1, food_meat = 1, flammable = 1}, + groups = {food = 1, food_bacon_raw = 1, food_meat = 1, flammable = 1, eatable = 1}, inventory_image = "sandwiches_raw_bacon.png" }) minetest.register_craftitem("sandwiches:crispy_bacon", { description = "Crispy Bacon", on_use = minetest.item_eat(3), - groups = {food = 3, food_bacon = 1, food_meat = 1, flammable = 1}, + groups = {food = 3, food_bacon = 1, food_meat = 1, flammable = 1, eatable = 3}, inventory_image = "sandwiches_crispy_bacon.png" }) minetest.register_craft({ diff --git a/mods/sandwiches/luas/nutella.lua b/mods/sandwiches/luas/nutella.lua index 125a8fd1..1c2a7d08 100644 --- a/mods/sandwiches/luas/nutella.lua +++ b/mods/sandwiches/luas/nutella.lua @@ -15,14 +15,14 @@ minetest.register_node("sandwiches:noyella_block", { minetest.register_craftitem("sandwiches:noyella_sandwich", { description = "noyella sandwich", on_use = minetest.item_eat(8, "sandwiches:bread_crumbs"), - groups = {food_sandwich = 1}, + groups = {food_sandwich = 1, eatable = 8}, inventory_image = "noyella_sandwich.png" }) minetest.register_craftitem("sandwiches:noyella_spread", { description = "Noyella spread", on_use = minetest.item_eat(2), - groups = {food_nutella = 1, food_noyella = 1, food_chocolate_spead = 1, flammable = 1}, + groups = {food_nutella = 1, food_noyella = 1, food_chocolate_spead = 1, flammable = 1, eatable = 2}, inventory_image = "noyella_spread.png" }) diff --git a/mods/sandwiches/luas/toasts.lua b/mods/sandwiches/luas/toasts.lua index bb4b2e96..68c4aa1e 100644 --- a/mods/sandwiches/luas/toasts.lua +++ b/mods/sandwiches/luas/toasts.lua @@ -10,7 +10,7 @@ end minetest.register_craftitem("sandwiches:grilled_hot_cheesy_sandwich", { description = "Grilled hot cheese sandwich", on_use = minetest.item_eat(10, "sandwiches:bread_crumbs"), - groups = {food = 10, food_sandwich = 1, food_toasted = 1}, + groups = {food = 10, food_sandwich = 1, food_toasted = 1, eatable = 10}, inventory_image = "grilled_hot_cheesy_sandwich.png" }) minetest.register_craft({ @@ -27,7 +27,7 @@ minetest.register_craft({ minetest.register_craftitem("sandwiches:garlic_bread", { description = "Garlic bread", on_use = minetest.item_eat(4, "sandwiches:bread_crumbs"), - groups = {food = 4, food_garlic_bread = 1}, + groups = {food = 4, food_garlic_bread = 1, eatable = 4}, inventory_image = "sandwiches_garlic_bread_slice.png" }) minetest.register_craft({ @@ -43,9 +43,10 @@ minetest.register_craft({ minetest.register_craftitem("sandwiches:tasty_garlic_sandwich", { description = "Tasty garlic sandwich", on_use = minetest.item_eat(16, "sandwiches:bread_crumbs"), - groups = {food = 16, food_sandwich = 1, food_toasted = 1}, + groups = {food = 16, food_sandwich = 1, food_toasted = 1, eatable = 16}, inventory_image = "tasty_garlic_sandwich.png" }) + minetest.register_craft({ output = "sandwiches:tasty_garlic_sandwich", recipe = { @@ -58,7 +59,7 @@ minetest.register_craft({ minetest.register_craftitem("sandwiches:fancy_garlic_sandwich", { description = "Fancy garlic sandwich", on_use = minetest.item_eat(18, "sandwiches:bread_crumbs"), - groups = {food = 18, food_sandwich = 1, food_toasted = 1}, + groups = {food = 18, food_sandwich = 1, food_toasted = 1, eatable = 18}, inventory_image = "fancy_garlic_sandwich.png" }) minetest.register_craft({ @@ -81,7 +82,7 @@ if minetest.registered_items["sandwiches:ham"] then minetest.register_craftitem("sandwiches:croque_monsieur", { description = "Croque Monsier", on_use = minetest.item_eat(13, "sandwiches:bread_crumbs"), - groups = {food = 13, food_sandwich = 1, food_toasted = 1}, + groups = {food = 13, food_sandwich = 1, food_toasted = 1, eatable = 13}, inventory_image = "croque_monsieur.png" }) minetest.register_craft({ @@ -101,7 +102,7 @@ if minetest.registered_items["sandwiches:chicken_strips"] then minetest.register_craftitem("sandwiches:croque_madame", { description = "Croque madame", on_use = minetest.item_eat(16, "sandwiches:bread_crumbs"), - groups = {food = 16, food_sandwich = 1, food_toasted = 1}, + groups = {food = 16, food_sandwich = 1, food_toasted = 1, eatable = 16}, inventory_image = "croque_madame.png" }) minetest.register_craft({ diff --git a/mods/sandwiches/luas/xfarming.lua b/mods/sandwiches/luas/xfarming.lua index 9017aacb..1522d0fc 100644 --- a/mods/sandwiches/luas/xfarming.lua +++ b/mods/sandwiches/luas/xfarming.lua @@ -18,7 +18,7 @@ minetest.register_craftitem("sandwiches:po_boy_sandwich", { description = "Po\'boy sandwich", on_use = minetest.item_eat(7, "sandwiches:bread_crumbs"), - groups = {food = 7, food_sandwich = 1}, + groups = {food = 7, food_sandwich = 1, eatable = 7}, inventory_image = "po_boy_sandwich.png" }) minetest.register_craft({ diff --git a/mods/x_farming/nodes.lua b/mods/x_farming/nodes.lua index d00d9d3b..d470c16d 100644 --- a/mods/x_farming/nodes.lua +++ b/mods/x_farming/nodes.lua @@ -55,7 +55,7 @@ local donut_def = { destroy_by_lava_flow = 1, compostability = 85, food = 2, - eatable = 1, + eatable = 3, -- ALL flammable = 2, attached_node = 1, @@ -109,7 +109,7 @@ local donut_chocolate_def = { destroy_by_lava_flow = 1, compostability = 85, food = 2, - eatable = 1, + eatable = 4, -- ALL flammable = 2, attached_node = 1, @@ -165,7 +165,7 @@ local fries_def = { destroy_by_lava_flow = 1, compostability = 85, food = 2, - eatable = 1, + eatable = 6, -- ALL flammable = 2, attached_node = 1, @@ -221,7 +221,7 @@ local pumpkin_pie_def = { destroy_by_lava_flow = 1, compostability = 100, food = 2, - eatable = 1, + eatable = 6, -- ALL flammable = 2, attached_node = 1, @@ -327,7 +327,7 @@ local fish_stew_def = { compost = 100, -- MCL food = 3, - eatable = 6, + eatable = 8, compostability = 100, handy = 1, deco_block = 1, diff --git a/mods/x_farming/pumpkin.lua b/mods/x_farming/pumpkin.lua index 08eb1b26..5541feec 100644 --- a/mods/x_farming/pumpkin.lua +++ b/mods/x_farming/pumpkin.lua @@ -222,7 +222,7 @@ if minetest.get_modpath('farming') then minetest.register_craftitem("x_farming:pumpkin_slice", { description = S("Pumpkin Slice"), inventory_image = "farming_pumpkin_slice.png", - groups = {compostability = 48, food_pumpkin_slice = 1}, + groups = {compostability = 48, food_pumpkin_slice = 1, eatable = 2}, on_use = minetest.item_eat(2), })