From a75c8d427e07430599219dd77261b1a0e3d414ef Mon Sep 17 00:00:00 2001 From: kay27 Date: Mon, 21 Mar 2022 19:05:21 +0400 Subject: [PATCH 01/93] Fix rabbit crash --- mods/ENTITIES/mobs_mc/rabbit.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/ENTITIES/mobs_mc/rabbit.lua b/mods/ENTITIES/mobs_mc/rabbit.lua index 34c568a30..e63c0d594 100644 --- a/mods/ENTITIES/mobs_mc/rabbit.lua +++ b/mods/ENTITIES/mobs_mc/rabbit.lua @@ -76,6 +76,7 @@ local function spawn_rabbit(pos) local biome_data = minetest.get_biome_data(pos) local biome_name = biome_data and minetest.get_biome_name(biome_data.biome) or "" local mob = minetest.add_entity(pos, mob_name) + if not mob then return end local self = mob:get_luaentity() local texture if biome_name:find("Desert") then From f49d7da65580a5a710edd5169eb1c5a880c90560 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Wed, 23 Mar 2022 13:42:36 +0000 Subject: [PATCH 02/93] Upload Textures 1/2 --- mods/ITEMS/mcl_beds/textures/portal.png | Bin 0 -> 7075 bytes .../mcl_beds/textures/respawn_anchor_bottom.png | Bin 0 -> 6603 bytes .../mcl_beds/textures/respawn_anchor_side0.png | Bin 0 -> 6731 bytes .../mcl_beds/textures/respawn_anchor_side1.png | Bin 0 -> 6880 bytes .../mcl_beds/textures/respawn_anchor_side2.png | Bin 0 -> 6871 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/ITEMS/mcl_beds/textures/portal.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_bottom.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_side0.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_side1.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_side2.png diff --git a/mods/ITEMS/mcl_beds/textures/portal.png b/mods/ITEMS/mcl_beds/textures/portal.png new file mode 100644 index 0000000000000000000000000000000000000000..160ad95f38aa07e2ce2acce31ba22b27b75cae9e GIT binary patch literal 7075 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beds/textures/respawn_anchor_bottom.png b/mods/ITEMS/mcl_beds/textures/respawn_anchor_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..d5d332c15cafa5701183d7b93ec0b3a95052eec4 GIT binary patch literal 6603 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 bdqUM9)8abyrp+Xns1TB!v+XhKt+D?Cw|c_C literal 0 HcmV?d00001 From 6521e1f22e2ef242ab8b536153868339d2da1a6e Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Wed, 23 Mar 2022 13:43:03 +0000 Subject: [PATCH 03/93] Upload Textures 2/2 --- .../mcl_beds/textures/respawn_anchor_side3.png | Bin 0 -> 6876 bytes .../mcl_beds/textures/respawn_anchor_side4.png | Bin 0 -> 6871 bytes .../mcl_beds/textures/respawn_anchor_top_off.png | Bin 0 -> 6601 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_side3.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_side4.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_top_off.png diff --git a/mods/ITEMS/mcl_beds/textures/respawn_anchor_side3.png b/mods/ITEMS/mcl_beds/textures/respawn_anchor_side3.png new file mode 100644 index 0000000000000000000000000000000000000000..f0728943c2d6c10145c113f0bbb362732b9550d4 GIT binary patch literal 6876 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beds/textures/respawn_anchor_side4.png b/mods/ITEMS/mcl_beds/textures/respawn_anchor_side4.png new file mode 100644 index 0000000000000000000000000000000000000000..e9bea53717765275c6a7dd8b8c8b1843bb9f29f8 GIT binary patch literal 6871 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 T^vy`HW+60(HI%$n8{_^53$e8L literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beds/textures/respawn_anchor_top_off.png b/mods/ITEMS/mcl_beds/textures/respawn_anchor_top_off.png new file mode 100644 index 0000000000000000000000000000000000000000..a180e96e7deee1fd6f3f539d047f482700f62676 GIT binary patch literal 6601 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 Date: Wed, 23 Mar 2022 13:44:18 +0000 Subject: [PATCH 04/93] upload main lua script --- mods/ITEMS/mcl_beds/respawn_anchor.lua | 166 +++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 mods/ITEMS/mcl_beds/respawn_anchor.lua diff --git a/mods/ITEMS/mcl_beds/respawn_anchor.lua b/mods/ITEMS/mcl_beds/respawn_anchor.lua new file mode 100644 index 000000000..882e1963a --- /dev/null +++ b/mods/ITEMS/mcl_beds/respawn_anchor.lua @@ -0,0 +1,166 @@ +--TODO: Add sounds for the respawn anchor + +--Nether ends at y -29077 +--Nether roof at y -28933 + + +minetest.register_node("mcl_beds:respawn_anchor",{ + description="respawn anchor", + tiles = { + "respawn_anchor_top_off.png", + "respawn_anchor_bottom.png", + "respawn_anchor_side0.png" + }, + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall + { 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall + {-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall + {-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall + {-0.5, -0.5, -0.5, 0.5, -0.47, 0.5}, -- Bottom level, -0.47 because -0.5 is so low that you can see the texture of the block below through + } + }, + on_rightclick = function(pos, node, player, itemstack) + minetest.log("tried to charge") + minetest.log(player.get_player_name(player)) + minetest.log(itemstack.get_name(itemstack)) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_1"}) + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + end + end + end, + groups = {pickaxey=1, material_stone=1}, + _mcl_hardness = 22.5 +}) +minetest.register_node("mcl_beds:respawn_anchor_charged_1",{ + description="respawn anchor", + tiles = { + "portal.png", + "respawn_anchor_bottom.png", + "respawn_anchor_side1.png" + }, + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall + { 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall + {-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall + {-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level + } + }, + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_2"}) + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + end + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 +}) + +minetest.register_node("mcl_beds:respawn_anchor_charged_2",{ + description="respawn anchor", + tiles = { + "portal.png", + "respawn_anchor_bottom.png", + "respawn_anchor_side2.png" + }, + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall + { 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall + {-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall + {-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level + } + }, + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_3"}) + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + end + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 +}) + +minetest.register_node("mcl_beds:respawn_anchor_charged_3",{ + description="respawn anchor", + tiles = { + "portal.png", + "respawn_anchor_bottom.png", + "respawn_anchor_side3.png" + }, + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall + { 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall + {-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall + {-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level + } + }, + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_4"}) + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + end + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 +}) + +minetest.register_node("mcl_beds:respawn_anchor_charged_4",{ + description="respawn anchor", + tiles = { + "portal.png", + "respawn_anchor_bottom.png", + "respawn_anchor_side4.png" + }, + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall + { 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall + {-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall + {-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level + } + }, + on_rightclick = function(pos, node, player, itemstack) + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 +}) From 1dd81decd5a990e1f0edf206d407d0c07bf2e00a Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Wed, 23 Mar 2022 13:45:14 +0000 Subject: [PATCH 05/93] update init.lua to load the respawn anchors --- mods/ITEMS/mcl_beds/init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/ITEMS/mcl_beds/init.lua b/mods/ITEMS/mcl_beds/init.lua index 4c25b5390..ad9dbdded 100644 --- a/mods/ITEMS/mcl_beds/init.lua +++ b/mods/ITEMS/mcl_beds/init.lua @@ -10,3 +10,4 @@ local modpath = minetest.get_modpath("mcl_beds") dofile(modpath .. "/functions.lua") dofile(modpath .. "/api.lua") dofile(modpath .. "/beds.lua") +dofile(modpath .. "/respawn_anchor.lua") \ No newline at end of file From d97c7b29c6197055095cf77168d1f21aba45d5f0 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Wed, 23 Mar 2022 13:46:11 +0000 Subject: [PATCH 06/93] update dependencies --- mods/ITEMS/mcl_beds/mod.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_beds/mod.conf b/mods/ITEMS/mcl_beds/mod.conf index c3378d1f0..cc3f3ff18 100644 --- a/mods/ITEMS/mcl_beds/mod.conf +++ b/mods/ITEMS/mcl_beds/mod.conf @@ -2,4 +2,4 @@ name = mcl_beds author = BlockMen description = depends = playerphysics -optional_depends = mcl_sounds, mcl_worlds, mcl_wool, mcl_dye, mcl_explosions, mcl_weather, mcl_spawn, doc +optional_depends = mcl_sounds, mcl_worlds, mcl_wool, mcl_dye, mcl_explosions, mcl_weather, mcl_spawn, doc, mcl_nether \ No newline at end of file From fb6315ea62d70c8caa74b4924780a272429ed971 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Wed, 23 Mar 2022 13:51:28 +0000 Subject: [PATCH 07/93] add crafting recepie --- mods/ITEMS/mcl_beds/respawn_anchor.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mods/ITEMS/mcl_beds/respawn_anchor.lua b/mods/ITEMS/mcl_beds/respawn_anchor.lua index 882e1963a..98c983b60 100644 --- a/mods/ITEMS/mcl_beds/respawn_anchor.lua +++ b/mods/ITEMS/mcl_beds/respawn_anchor.lua @@ -164,3 +164,8 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_4",{ groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, _mcl_hardness = 22.5 }) + +minetest.register_craft({ output = "mcl_beds:respawn_anchor", + recipe = { {"mcl_core:crying_obsidian", "mcl_core:crying_obsidian", "mcl_core:crying_obsidian"}, + {"mcl_nether:glowstone", "mcl_nether:glowstone", "mcl_nether:glowstone"}, + {"mcl_core:crying_obsidian", "mcl_core:crying_obsidian", "mcl_core:crying_obsidian"} } }) \ No newline at end of file From a32531c8f667d099520a1e653d21c0277f945b1c Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Wed, 23 Mar 2022 13:52:53 +0000 Subject: [PATCH 08/93] update mcl_spawm to support respawn anchors --- mods/PLAYER/mcl_spawn/init.lua | 59 +++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/mods/PLAYER/mcl_spawn/init.lua b/mods/PLAYER/mcl_spawn/init.lua index de4db5094..2af279b2c 100644 --- a/mods/PLAYER/mcl_spawn/init.lua +++ b/mods/PLAYER/mcl_spawn/init.lua @@ -452,10 +452,61 @@ function mcl_spawn.get_player_spawn_pos(player) if bgroup ~= 1 and bgroup ~= 2 then -- Bed is destroyed: if player and player:is_player() then - player:get_meta():set_string("mcl_beds:spawn", "") + + local function split(s, delimiter) --this is just a common function to split strings, since it is way harder to do in lua like in python, java etc. + result = {}; + for match in (s..delimiter):gmatch("(.-)"..delimiter) do + table.insert(result, match); + end + return result; + end + minetest.log(player:get_meta():get_string("mcl_beds:spawn")) + s = split(player:get_meta():get_string("mcl_beds:spawn"), ",") + x = nil + y = nil + z = nil + for key, value in pairs(s) do + if key == 1 then + value = value:sub(2) + x = tonumber(value) + else + if key == 2 then + y = tonumber(value) + else + if key == 3 then + value = value:sub(1, -2) + z = tonumber(value) + end + end + end + end + + checkblock = {x = x, y = y, z = z} + + if minetest.get_node(checkblock).name == "mcl_beds:respawn_anchor_charged_1" then + minetest.set_node(checkblock, {name="mcl_beds:respawn_anchor"}) + player:set_pos(checkblock) + else + if minetest.get_node(checkblock).name == "mcl_beds:respawn_anchor_charged_2" then + minetest.set_node(checkblock, {name="mcl_beds:respawn_anchor_charged_1"}) + player:set_pos(checkblock) + else + if minetest.get_node(checkblock).name == "mcl_beds:respawn_anchor_charged_3" then + minetest.set_node(checkblock, {name="mcl_beds:respawn_anchor_charged_2"}) + player:set_pos(checkblock) + else + if minetest.get_node(checkblock).name == "mcl_beds:respawn_anchor_charged_4" then + minetest.set_node(checkblock, {name="mcl_beds:respawn_anchor_charged_3"}) + player:set_pos(checkblock) + else + player:get_meta():set_string("mcl_beds:spawn", "") + minetest.chat_send_player(player:get_player_name(), S("Your spawn bed was missing or blocked, and you had no charged respawn anchor")) + return mcl_spawn.get_world_spawn_pos(), false + end + end + end + end end - minetest.chat_send_player(player:get_player_name(), S("Your spawn bed was missing or blocked.")) - return mcl_spawn.get_world_spawn_pos(), false end -- Find spawning position on/near the bed free of solid or damaging blocks iterating a square spiral 15x15: @@ -531,4 +582,4 @@ minetest.after(respawn_search_initial_delay, function() storage:set_int("mcl_spawn_dir_step", dir_step) storage:set_int("mcl_spawn_dir_ind", dir_ind) end) -end) +end) \ No newline at end of file From fc59d05679a09e84ea4ed25117416ac31fbe9697 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Wed, 23 Mar 2022 13:54:53 +0000 Subject: [PATCH 09/93] remove debug logging 1/2 --- mods/PLAYER/mcl_spawn/init.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/mods/PLAYER/mcl_spawn/init.lua b/mods/PLAYER/mcl_spawn/init.lua index 2af279b2c..ca6aa97b1 100644 --- a/mods/PLAYER/mcl_spawn/init.lua +++ b/mods/PLAYER/mcl_spawn/init.lua @@ -460,7 +460,6 @@ function mcl_spawn.get_player_spawn_pos(player) end return result; end - minetest.log(player:get_meta():get_string("mcl_beds:spawn")) s = split(player:get_meta():get_string("mcl_beds:spawn"), ",") x = nil y = nil From 6c41b8a265550330474b9b2dffa6cc758b3b2e64 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Wed, 23 Mar 2022 13:55:38 +0000 Subject: [PATCH 10/93] remove debug logging 2/2 --- mods/ITEMS/mcl_beds/respawn_anchor.lua | 3 --- 1 file changed, 3 deletions(-) diff --git a/mods/ITEMS/mcl_beds/respawn_anchor.lua b/mods/ITEMS/mcl_beds/respawn_anchor.lua index 98c983b60..61e32144a 100644 --- a/mods/ITEMS/mcl_beds/respawn_anchor.lua +++ b/mods/ITEMS/mcl_beds/respawn_anchor.lua @@ -23,9 +23,6 @@ minetest.register_node("mcl_beds:respawn_anchor",{ } }, on_rightclick = function(pos, node, player, itemstack) - minetest.log("tried to charge") - minetest.log(player.get_player_name(player)) - minetest.log(itemstack.get_name(itemstack)) if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_1"}) else From 1c12f3da19e1d5bb83abfbb65d0d3e015ac90ef0 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Wed, 23 Mar 2022 21:11:03 +0000 Subject: [PATCH 11/93] Charging no longer not consuming --- mods/ITEMS/mcl_beds/respawn_anchor.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mods/ITEMS/mcl_beds/respawn_anchor.lua b/mods/ITEMS/mcl_beds/respawn_anchor.lua index 61e32144a..0e96ce25d 100644 --- a/mods/ITEMS/mcl_beds/respawn_anchor.lua +++ b/mods/ITEMS/mcl_beds/respawn_anchor.lua @@ -25,6 +25,7 @@ minetest.register_node("mcl_beds:respawn_anchor",{ on_rightclick = function(pos, node, player, itemstack) if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_1"}) + itemstack:take_item() else if pos.y < -29077 or pos.y > -28933 then mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) @@ -55,6 +56,7 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_1",{ on_rightclick = function(pos, node, player, itemstack) if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_2"}) + itemstack:take_item() else if pos.y < -29077 or pos.y > -28933 then mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) @@ -88,6 +90,7 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_2",{ on_rightclick = function(pos, node, player, itemstack) if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_3"}) + itemstack:take_item() else if pos.y < -29077 or pos.y > -28933 then mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) @@ -121,6 +124,7 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_3",{ on_rightclick = function(pos, node, player, itemstack) if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_4"}) + itemstack:take_item() else if pos.y < -29077 or pos.y > -28933 then mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) From 7ad5f7c66e1c5b97245e004700e50a0ee2532275 Mon Sep 17 00:00:00 2001 From: CableGuy67 Date: Thu, 24 Mar 2022 17:44:09 +0000 Subject: [PATCH 12/93] Incorrect fortune effect on a non-ore This Easter Egg had almost a year. Time to put it to bed. --- mods/ITEMS/mcl_nether/init.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/mods/ITEMS/mcl_nether/init.lua b/mods/ITEMS/mcl_nether/init.lua index 35da05553..90bdaa800 100644 --- a/mods/ITEMS/mcl_nether/init.lua +++ b/mods/ITEMS/mcl_nether/init.lua @@ -78,7 +78,6 @@ minetest.register_node("mcl_nether:netheriteblock", { _mcl_blast_resistance = 1200, _mcl_hardness = 50, _mcl_silk_touch_drop = true, - _mcl_fortune_drop = mcl_core.fortune_drop_ore }) -- For eternal fire on top of netherrack and magma blocks From 9e72966f91eddb5af98447a6529c8c2bc0f37bac Mon Sep 17 00:00:00 2001 From: CableGuy67 Date: Thu, 24 Mar 2022 18:42:45 +0000 Subject: [PATCH 13/93] missed the comma on the previous line When removing the last line the previous comma wasn't removed. --- mods/ITEMS/mcl_nether/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_nether/init.lua b/mods/ITEMS/mcl_nether/init.lua index 90bdaa800..d5201e682 100644 --- a/mods/ITEMS/mcl_nether/init.lua +++ b/mods/ITEMS/mcl_nether/init.lua @@ -77,7 +77,7 @@ minetest.register_node("mcl_nether:netheriteblock", { sounds = mcl_sounds.node_sound_stone_defaults(), _mcl_blast_resistance = 1200, _mcl_hardness = 50, - _mcl_silk_touch_drop = true, + _mcl_silk_touch_drop = true }) -- For eternal fire on top of netherrack and magma blocks From 86bef3e0556b5d06952528be20bc79082104a962 Mon Sep 17 00:00:00 2001 From: kay27 Date: Fri, 25 Mar 2022 02:33:15 +0400 Subject: [PATCH 14/93] Merge master into testing --- mods/ITEMS/mcl_beds/init.lua | 1 + mods/ITEMS/mcl_beds/mod.conf | 2 +- mods/ITEMS/mcl_beds/respawn_anchor.lua | 172 ++++++++++++++++++ mods/ITEMS/mcl_beds/textures/portal.png | Bin 0 -> 7075 bytes .../textures/respawn_anchor_bottom.png | Bin 0 -> 6603 bytes .../textures/respawn_anchor_side0.png | Bin 0 -> 6731 bytes .../textures/respawn_anchor_side1.png | Bin 0 -> 6880 bytes .../textures/respawn_anchor_side2.png | Bin 0 -> 6871 bytes .../textures/respawn_anchor_side3.png | Bin 0 -> 6876 bytes .../textures/respawn_anchor_side4.png | Bin 0 -> 6871 bytes .../textures/respawn_anchor_top_off.png | Bin 0 -> 6601 bytes mods/ITEMS/mcl_nether/init.lua | 3 +- mods/PLAYER/mcl_spawn/init.lua | 58 +++++- 13 files changed, 229 insertions(+), 7 deletions(-) create mode 100644 mods/ITEMS/mcl_beds/respawn_anchor.lua create mode 100644 mods/ITEMS/mcl_beds/textures/portal.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_bottom.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_side0.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_side1.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_side2.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_side3.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_side4.png create mode 100644 mods/ITEMS/mcl_beds/textures/respawn_anchor_top_off.png diff --git a/mods/ITEMS/mcl_beds/init.lua b/mods/ITEMS/mcl_beds/init.lua index 4c25b5390..ad9dbdded 100644 --- a/mods/ITEMS/mcl_beds/init.lua +++ b/mods/ITEMS/mcl_beds/init.lua @@ -10,3 +10,4 @@ local modpath = minetest.get_modpath("mcl_beds") dofile(modpath .. "/functions.lua") dofile(modpath .. "/api.lua") dofile(modpath .. "/beds.lua") +dofile(modpath .. "/respawn_anchor.lua") \ No newline at end of file diff --git a/mods/ITEMS/mcl_beds/mod.conf b/mods/ITEMS/mcl_beds/mod.conf index c3378d1f0..cc3f3ff18 100644 --- a/mods/ITEMS/mcl_beds/mod.conf +++ b/mods/ITEMS/mcl_beds/mod.conf @@ -2,4 +2,4 @@ name = mcl_beds author = BlockMen description = depends = playerphysics -optional_depends = mcl_sounds, mcl_worlds, mcl_wool, mcl_dye, mcl_explosions, mcl_weather, mcl_spawn, doc +optional_depends = mcl_sounds, mcl_worlds, mcl_wool, mcl_dye, mcl_explosions, mcl_weather, mcl_spawn, doc, mcl_nether \ No newline at end of file diff --git a/mods/ITEMS/mcl_beds/respawn_anchor.lua b/mods/ITEMS/mcl_beds/respawn_anchor.lua new file mode 100644 index 000000000..0e96ce25d --- /dev/null +++ b/mods/ITEMS/mcl_beds/respawn_anchor.lua @@ -0,0 +1,172 @@ +--TODO: Add sounds for the respawn anchor + +--Nether ends at y -29077 +--Nether roof at y -28933 + + +minetest.register_node("mcl_beds:respawn_anchor",{ + description="respawn anchor", + tiles = { + "respawn_anchor_top_off.png", + "respawn_anchor_bottom.png", + "respawn_anchor_side0.png" + }, + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall + { 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall + {-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall + {-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall + {-0.5, -0.5, -0.5, 0.5, -0.47, 0.5}, -- Bottom level, -0.47 because -0.5 is so low that you can see the texture of the block below through + } + }, + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_1"}) + itemstack:take_item() + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + end + end + end, + groups = {pickaxey=1, material_stone=1}, + _mcl_hardness = 22.5 +}) +minetest.register_node("mcl_beds:respawn_anchor_charged_1",{ + description="respawn anchor", + tiles = { + "portal.png", + "respawn_anchor_bottom.png", + "respawn_anchor_side1.png" + }, + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall + { 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall + {-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall + {-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level + } + }, + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_2"}) + itemstack:take_item() + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + end + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 +}) + +minetest.register_node("mcl_beds:respawn_anchor_charged_2",{ + description="respawn anchor", + tiles = { + "portal.png", + "respawn_anchor_bottom.png", + "respawn_anchor_side2.png" + }, + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall + { 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall + {-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall + {-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level + } + }, + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_3"}) + itemstack:take_item() + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + end + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 +}) + +minetest.register_node("mcl_beds:respawn_anchor_charged_3",{ + description="respawn anchor", + tiles = { + "portal.png", + "respawn_anchor_bottom.png", + "respawn_anchor_side3.png" + }, + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall + { 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall + {-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall + {-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level + } + }, + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_4"}) + itemstack:take_item() + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + end + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 +}) + +minetest.register_node("mcl_beds:respawn_anchor_charged_4",{ + description="respawn anchor", + tiles = { + "portal.png", + "respawn_anchor_bottom.png", + "respawn_anchor_side4.png" + }, + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall + { 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall + {-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall + {-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level + } + }, + on_rightclick = function(pos, node, player, itemstack) + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 +}) + +minetest.register_craft({ output = "mcl_beds:respawn_anchor", + recipe = { {"mcl_core:crying_obsidian", "mcl_core:crying_obsidian", "mcl_core:crying_obsidian"}, + {"mcl_nether:glowstone", "mcl_nether:glowstone", "mcl_nether:glowstone"}, + {"mcl_core:crying_obsidian", "mcl_core:crying_obsidian", "mcl_core:crying_obsidian"} } }) \ No newline at end of file diff --git a/mods/ITEMS/mcl_beds/textures/portal.png b/mods/ITEMS/mcl_beds/textures/portal.png new file mode 100644 index 0000000000000000000000000000000000000000..160ad95f38aa07e2ce2acce31ba22b27b75cae9e GIT binary patch literal 7075 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beds/textures/respawn_anchor_bottom.png b/mods/ITEMS/mcl_beds/textures/respawn_anchor_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..d5d332c15cafa5701183d7b93ec0b3a95052eec4 GIT binary patch literal 6603 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 bdqUM9)8abyrp+Xns1TB!v+XhKt+D?Cw|c_C literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beds/textures/respawn_anchor_side3.png b/mods/ITEMS/mcl_beds/textures/respawn_anchor_side3.png new file mode 100644 index 0000000000000000000000000000000000000000..f0728943c2d6c10145c113f0bbb362732b9550d4 GIT binary patch literal 6876 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beds/textures/respawn_anchor_side4.png b/mods/ITEMS/mcl_beds/textures/respawn_anchor_side4.png new file mode 100644 index 0000000000000000000000000000000000000000..e9bea53717765275c6a7dd8b8c8b1843bb9f29f8 GIT binary patch literal 6871 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 T^vy`HW+60(HI%$n8{_^53$e8L literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_beds/textures/respawn_anchor_top_off.png b/mods/ITEMS/mcl_beds/textures/respawn_anchor_top_off.png new file mode 100644 index 0000000000000000000000000000000000000000..a180e96e7deee1fd6f3f539d047f482700f62676 GIT binary patch literal 6601 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 Date: Fri, 25 Mar 2022 11:20:07 +0700 Subject: [PATCH 15/93] Fix some formatting issues --- mods/ENTITIES/extra_mobs/dolphin.lua | 2 +- mods/ENTITIES/extra_mobs/piglin.lua | 4 +- mods/ITEMS/mcl_mushroom/init.lua | 677 ++++++++++++++------------- 3 files changed, 355 insertions(+), 328 deletions(-) diff --git a/mods/ENTITIES/extra_mobs/dolphin.lua b/mods/ENTITIES/extra_mobs/dolphin.lua index 11cafff70..7d4ee7d2e 100644 --- a/mods/ENTITIES/extra_mobs/dolphin.lua +++ b/mods/ENTITIES/extra_mobs/dolphin.lua @@ -246,4 +246,4 @@ water-16, water) --spawn egg -mobs:register_egg("extra_mobs:dolphin", S("dolphin"), "extra_mobs_spawn_icon_dolphin.png", 0) +mobs:register_egg("extra_mobs:dolphin", S("Dolphin"), "extra_mobs_spawn_icon_dolphin.png", 0) diff --git a/mods/ENTITIES/extra_mobs/piglin.lua b/mods/ENTITIES/extra_mobs/piglin.lua index 35fa8a2f4..60eb7fb32 100644 --- a/mods/ENTITIES/extra_mobs/piglin.lua +++ b/mods/ENTITIES/extra_mobs/piglin.lua @@ -296,5 +296,5 @@ minetest.LIGHT_MAX+1, mobs_mc.spawn_height.nether_min, mobs_mc.spawn_height.nether_max) -- spawn eggs -mobs:register_egg("extra_mobs:piglin", S("piglin"), "extra_mobs_spawn_icon_piglin.png", 0) -mobs:register_egg("extra_mobs:piglin_brute", S("piglin Brute"), "extra_mobs_spawn_icon_piglin.png", 0) +mobs:register_egg("extra_mobs:piglin", S("Piglin"), "extra_mobs_spawn_icon_piglin.png", 0) +mobs:register_egg("extra_mobs:piglin_brute", S("Piglin Brute"), "extra_mobs_spawn_icon_piglin.png", 0) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index 9e44fdcf3..1cbd318b8 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -3,7 +3,7 @@ local S = minetest.get_translator("mcl_mushroom") -- function grow() function grow_twisting_vines(pos, moreontop) local y = pos.y + 1 - while not (moreontop == 0) do + while not (moreontop == 0) do if minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air" then minetest.set_node({x = pos.x, y = y, z = pos.z}, {name="mcl_mushroom:twisting_vines"}) moreontop = moreontop - 1 @@ -13,18 +13,18 @@ function grow_twisting_vines(pos, moreontop) else moreontop = 0 end - end + end end -- Warped fungus -- Crimson fungus ---Functions and Biomes +-- Functions and Biomes -- WARNING: The most comments are in german. Please Translate with an translater if you don't speak good german minetest.register_node("mcl_mushroom:warped_fungus", { - description = S("Warped Fungus Mushroom"), + description = S("Warped Fungus Mushroom"), drawtype = "plantlike", tiles = { "farming_warped_fungus.png" }, inventory_image = "farming_warped_fungus.png", @@ -33,7 +33,6 @@ minetest.register_node("mcl_mushroom:warped_fungus", { paramtype = "light", walkable = false, groups = {dig_immediate=3,mushroom=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,deco_block=1, compostability=65}, - light_source = 1, selection_box = { type = "fixed", @@ -43,22 +42,22 @@ minetest.register_node("mcl_mushroom:warped_fungus", { on_rightclick = function(pos, node, pointed_thing, itemstack) if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then - itemstack:take_item() - local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_mushroom:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then + itemstack:take_item() + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_mushroom:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then local random = math.random(1, 5) if random == 1 then generate_warped_tree(pos) end - end - end - end, - _mcl_blast_resistance = 0, - stack_max = 64, + end + end + end, + _mcl_blast_resistance = 0, + stack_max = 64, }) minetest.register_node("mcl_mushroom:twisting_vines", { - description = S("Twisting Vines"), + description = S("Twisting Vines"), drawtype = "plantlike", tiles = { "twisting_vines_plant.png" }, inventory_image = "twisting_vines.png", @@ -117,12 +116,12 @@ minetest.register_node("mcl_mushroom:nether_sprouts", { drop = "", _mcl_shears_drop = true, _mcl_silk_touch_drop = false, - _mcl_blast_resistance = 0, - stack_max = 64, + _mcl_blast_resistance = 0, + stack_max = 64, }) minetest.register_node("mcl_mushroom:warped_roots", { - description = S("Warped Roots"), + description = S("Warped Roots"), drawtype = "plantlike", tiles = { "warped_roots.png" }, inventory_image = "warped_roots.png", @@ -137,26 +136,26 @@ minetest.register_node("mcl_mushroom:warped_roots", { }, node_placement_prediction = "", _mcl_silk_touch_drop = false, - _mcl_blast_resistance = 0, - stack_max = 64, + _mcl_blast_resistance = 0, + stack_max = 64, }) minetest.register_node("mcl_mushroom:warped_wart_block", { - description = S("Warped Wart Block"), - tiles = {"warped_wart_block.png"}, - groups = {handy=1,hoe=7,swordy=1, compostability=85, deco_block=1, }, - stack_max = 64, - _mcl_hardness = 2, + description = S("Warped Wart Block"), + tiles = {"warped_wart_block.png"}, + groups = {handy=1,hoe=7,swordy=1, compostability=85, deco_block=1, }, + stack_max = 64, + _mcl_hardness = 2, }) minetest.register_node("mcl_mushroom:shroomlight", { - description = S("Shroomlight"), - tiles = {"shroomlight.png"}, - groups = {handy=1,hoe=7,swordy=1, leaves=1, deco_block=1, compostability=65, }, - stack_max = 64, - _mcl_hardness = 2, - -- this is 15 in Minecraft - light_source = 14, + description = S("Shroomlight"), + tiles = {"shroomlight.png"}, + groups = {handy=1,hoe=7,swordy=1, leaves=1, deco_block=1, compostability=65, }, + stack_max = 64, + _mcl_hardness = 2, + -- this is 15 in Minecraft + light_source = 14, }) minetest.register_node("mcl_mushroom:warped_hyphae", { @@ -212,29 +211,29 @@ minetest.register_node("mcl_mushroom:warped_checknode", { }) minetest.register_node("mcl_mushroom:warped_hyphae_wood", { - description = S("Warped Hyphae Wood"), - tiles = {"warped_hyphae_wood.png"}, - groups = {handy=5,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 2, + description = S("Warped Hyphae Wood"), + tiles = {"warped_hyphae_wood.png"}, + groups = {handy=5,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, + --paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 2, }) -mcl_stairs.register_stair_and_slab_simple("warped_hyphae_wood", "mcl_mushroom:warped_hyphae_wood", S("Warped Stair"), S("Warped Slab"), S("Double Warped Slab")) +mcl_stairs.register_stair_and_slab_simple("warped_hyphae_wood", "mcl_mushroom:warped_hyphae_wood", S("Warped Stair"), S("Warped Slab"), S("Double Warped Slab"), "woodlike") minetest.register_craft({ - output = "mcl_mushroom:warped_hyphae_wood 4", - recipe = { - {"mcl_mushroom:warped_hyphae"}, - } + output = "mcl_mushroom:warped_hyphae_wood 4", + recipe = { + {"mcl_mushroom:warped_hyphae"}, + } }) minetest.register_craft({ - output = "mcl_mushroom:warped_nylium 2", - recipe = { - {"mcl_mushroom:warped_wart_block"}, - {"mcl_nether:netherrack"}, - } + output = "mcl_mushroom:warped_nylium 2", + recipe = { + {"mcl_mushroom:warped_wart_block"}, + {"mcl_nether:netherrack"}, + } }) minetest.register_abm({ @@ -245,11 +244,11 @@ minetest.register_abm({ action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) if nodepos.name == "mcl_mushroom:warped_nylium" or nodepos.name == "mcl_nether:netherrack" then - if pos.y < -28400 then - generate_warped_tree(pos) - end + if pos.y < -28400 then + generate_warped_tree(pos) + end end - end + end }) minetest.register_abm({ @@ -260,27 +259,26 @@ minetest.register_abm({ action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) if nodepos.name == "air" then - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_mushroom:warped_nylium" }) - local randomg = math.random(1, 400) - if randomg <= 5 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_fungus" }) - elseif randomg > 5 and randomg <= 15 then - local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } - generate_warped_tree(pos1) - elseif randomg > 15 and randomg <= 45 then - grow_twisting_vines({ x = pos.x, y = pos.y, z = pos.z } ,math.random(1, 4)) - elseif randomg > 45 and randomg <= 50 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_fungus" }) - elseif randomg > 50 and randomg <= 150 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:nether_sprouts" }) - elseif randomg > 150 and randomg <= 250 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_roots" }) - end - + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_mushroom:warped_nylium" }) + local randomg = math.random(1, 400) + if randomg <= 5 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_fungus" }) + elseif randomg > 5 and randomg <= 15 then + local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } + generate_warped_tree(pos1) + elseif randomg > 15 and randomg <= 45 then + grow_twisting_vines({ x = pos.x, y = pos.y, z = pos.z } ,math.random(1, 4)) + elseif randomg > 45 and randomg <= 50 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_fungus" }) + elseif randomg > 50 and randomg <= 150 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:nether_sprouts" }) + elseif randomg > 150 and randomg <= 250 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_roots" }) + end else - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) end - end + end }) @@ -297,7 +295,7 @@ minetest.register_abm({ minetest.register_node("mcl_mushroom:crimson_fungus", { - description = S("Crimson Fungus Mushroom"), + description = S("Crimson Fungus Mushroom"), drawtype = "plantlike", tiles = { "farming_crimson_fungus.png" }, inventory_image = "farming_crimson_fungus.png", @@ -306,7 +304,6 @@ minetest.register_node("mcl_mushroom:crimson_fungus", { paramtype = "light", walkable = false, groups = {dig_immediate=3,mushroom=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,enderman_takable=1,deco_block=1, compostability=65}, - light_source = 1, selection_box = { type = "fixed", @@ -315,23 +312,22 @@ minetest.register_node("mcl_mushroom:crimson_fungus", { node_placement_prediction = "", on_rightclick = function(pos, node, pointed_thing, itemstack) if pointed_thing:get_wielded_item():get_name() == "mcl_dye:white" then - itemstack:take_item() - local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if nodepos.name == "mcl_mushroom:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then - local random = math.random(1, 5) - if random == 1 then - generate_crimson_tree(pos) - end - end + itemstack:take_item() + local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if nodepos.name == "mcl_mushroom:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then + local random = math.random(1, 5) + if random == 1 then + generate_crimson_tree(pos) + end + end end - end, + end, _mcl_blast_resistance = 0, - - stack_max = 64, + stack_max = 64, }) minetest.register_node("mcl_mushroom:crimson_roots", { - description = S("Crimson Roots"), + description = S("Crimson Roots"), drawtype = "plantlike", tiles = { "crimson_roots.png" }, inventory_image = "crimson_roots.png", @@ -346,87 +342,90 @@ minetest.register_node("mcl_mushroom:crimson_roots", { }, node_placement_prediction = "", _mcl_silk_touch_drop = false, - _mcl_blast_resistance = 0, - stack_max = 64, + _mcl_blast_resistance = 0, + stack_max = 64, }) minetest.register_node("mcl_mushroom:crimson_hyphae", { - description = S("Crimson Hyphae"), - tiles = {"crimson_hyphae.png", - "crimson_hyphae.png", - "crimson_hyphae_side.png", - "crimson_hyphae_side.png", - "crimson_hyphae_side.png", - "crimson_hyphae_side.png", - }, - groups = {handy=5,axey=1, bark=1, building_block=1, material_wood=1,}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 2, + description = S("Crimson Hyphae"), + tiles = { + "crimson_hyphae.png", + "crimson_hyphae.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + "crimson_hyphae_side.png", + }, + groups = {handy=5,axey=1, bark=1, building_block=1, material_wood=1,}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 2, }) minetest.register_node("mcl_mushroom:crimson_hyphae_wood", { - description = S("Crimson Hyphae Wood"), - tiles = {"crimson_hyphae_wood.png"}, - groups = {handy=5,axey=1, wood=1,building_block=1, material_wood=1,}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 2, + description = S("Crimson Hyphae Wood"), + tiles = {"crimson_hyphae_wood.png"}, + groups = {handy=5,axey=1, wood=1,building_block=1, material_wood=1,}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 2, }) minetest.register_node("mcl_mushroom:crimson_nylium", { - description = S("Crimson Nylium"), - tiles = {"crimson_nylium.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - "mcl_nether_netherrack.png^crimson_nylium_side.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, - is_ground_content = true, - drop = "mcl_nether:netherrack", - _mcl_silk_touch_drop = true, + description = S("Crimson Nylium"), + tiles = { + "crimson_nylium.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + "mcl_nether_netherrack.png^crimson_nylium_side.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack", + _mcl_silk_touch_drop = true, }) minetest.register_node("mcl_mushroom:crimson_checknode", { - description = S("Crimson Checknode - only to check!"), - tiles = {"mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, - is_ground_content = true, - drop = "mcl_nether:netherrack" + description = S("Crimson Checknode - only to check!"), + tiles = { + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack" }) minetest.register_craft({ - output = "mcl_mushroom:crimson_hyphae_wood 4", - recipe = { - {"mcl_mushroom:crimson_hyphae"}, - } + output = "mcl_mushroom:crimson_hyphae_wood 4", + recipe = { + {"mcl_mushroom:crimson_hyphae"}, + } }) minetest.register_craft({ - output = "mcl_mushroom:crimson_nylium 2", - recipe = { - {"mcl_nether:nether_wart"}, - {"mcl_nether:netherrack"}, - } + output = "mcl_mushroom:crimson_nylium 2", + recipe = { + {"mcl_nether:nether_wart"}, + {"mcl_nether:netherrack"}, + } }) -mcl_stairs.register_stair_and_slab_simple("crimson_hyphae_wood", "mcl_mushroom:crimson_hyphae_wood", "Crimson Stair", "Crimson Slab", "Double Crimson Slab") +mcl_stairs.register_stair_and_slab_simple("crimson_hyphae_wood", "mcl_mushroom:crimson_hyphae_wood", "Crimson Stair", "Crimson Slab", "Double Crimson Slab", "woodlike") minetest.register_abm({ label = "mcl_mushroom:crimson_fungus", @@ -436,11 +435,11 @@ minetest.register_abm({ action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) if nodepos.name == "mcl_mushroom:crimson_nylium" or nodepos.name == "mcl_nether:netherrack" then - if pos.y < -28400 then - generate_crimson_tree(pos) - end + if pos.y < -28400 then + generate_crimson_tree(pos) + end end - end + end }) minetest.register_abm({ @@ -451,176 +450,204 @@ minetest.register_abm({ action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) if nodepos.name == "air" then - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_mushroom:crimson_nylium" }) - local randomg = math.random(1, 400) - if randomg <= 10 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_fungus" }) - elseif randomg > 10 and randomg <= 25 then - local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } - generate_crimson_tree(pos1) - elseif randomg > 25 and randomg <= 30 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_fungus" }) - elseif randomg > 30 and randomg <= 130 then - minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_roots" }) - end + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_mushroom:crimson_nylium" }) + local randomg = math.random(1, 400) + if randomg <= 10 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_fungus" }) + elseif randomg > 10 and randomg <= 25 then + local pos1 = { x = pos.x, y = pos.y + 1, z = pos.z } + generate_crimson_tree(pos1) + elseif randomg > 25 and randomg <= 30 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:warped_fungus" }) + elseif randomg > 30 and randomg <= 130 then + minetest.set_node({ x = pos.x, y = pos.y + 1, z = pos.z }, { name = "mcl_mushroom:crimson_roots" }) + end else - minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) + minetest.swap_node({ x = pos.x, y = pos.y, z = pos.z }, { name = "mcl_nether:netherrack" }) end - end + end }) function generate_warped_tree(pos) local breakgrow = false local breakgrow2 = false - -- Baumgenerator - -- erste und zweite Etage + -- Tree generator + -- first and second floor for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then + breakgrow = true + end end - end + end + end - -- dritte und vierte Etage + -- third and fourth floors for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end - end - end + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then + breakgrow = true + end + end + end + end - -- fünfte Etage - if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end + -- fifth floor + if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then + breakgrow = true + end - -- Holz - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:warped_fungus") then breakgrow = true end - for y = pos.y + 1, pos.y + 4 do - if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end - end - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:warped_fungus") then breakgrow2 = true end - if breakgrow == false then - -- Warzen - -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_mushroom:warped_wart_block" }) - end - end - end + -- Wood + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:warped_fungus") then + breakgrow = true + end + for y = pos.y + 1, pos.y + 4 do + if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then + breakgrow = true + end + end + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:warped_fungus") then + breakgrow2 = true + end + if breakgrow == false then + -- Warts + -- first and second floor + for x = pos.x - 2,pos.x + 2 do + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_mushroom:warped_wart_block" }) + end + end + end - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_mushroom:warped_wart_block" }) - end - end - end + -- third and fourth floors + for x = pos.x - 1,pos.x + 1 do + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_mushroom:warped_wart_block" }) + end + end + end - -- fünfte Etage - minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) + -- fifth floor + minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) - -- Pilzlich - local randomgenerate = math.random(1, 2) - if randomgenerate == 1 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) - end - local randomgenerate = math.random(1, 8) - if randomgenerate == 4 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) - end - -- Holz - for y = pos.y, pos.y + 4 do - minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) - --print("Placed at " .. x .. " " .. y .. " " .. z) - end - else - if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_mushroom:warped_fungus" }) end - end + -- Fungal + local randomgenerate = math.random(1, 2) + if randomgenerate == 1 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + end + local randomgenerate = math.random(1, 8) + if randomgenerate == 4 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + end + -- Wood + for y = pos.y, pos.y + 4 do + minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_mushroom:warped_hyphae" }) + --print("Placed at " .. x .. " " .. y .. " " .. z) + end + else + if breakgrow2 == false then + minetest.set_node(pos,{ name = "mcl_mushroom:warped_fungus" }) + end + end end function generate_crimson_tree(pos) local breakgrow = false local breakgrow2 = false - -- Baumgenerator - -- erste und zweite Etage + -- Tree generator + -- first and second floor for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then + breakgrow = true + end end - end + end + end - -- dritte und vierte Etage + -- third and fourth floors for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then breakgrow = true end - end - end - end + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + if not (minetest.get_node({x = x, y = y, z = z}).name == "air") then + breakgrow = true + end + end + end + end - -- fünfte Etage - if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end + -- fifth floor + if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then + breakgrow = true + end - -- Holz - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:crimson_fungus") then breakgrow = true end - for y = pos.y + 1, pos.y + 4 do - if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then breakgrow = true end - end - if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:crimson_fungus") then breakgrow2 = true end - if breakgrow == false then - -- Warzen - -- erste und zweite Etage - for x = pos.x - 2,pos.x + 2 do - for y = pos.y + 3, pos.y + 4 do - for z = pos.z - 2, pos.z + 2 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) - end - end - end + -- Wood + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:crimson_fungus") then + breakgrow = true + end + for y = pos.y + 1, pos.y + 4 do + if not (minetest.get_node({x = pos.x, y = y, z = pos.z}).name == "air") then + breakgrow = true + end + end + if not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "air") and not (minetest.get_node({x = pos.x, y = pos.y, z = pos.z}).name == "mcl_mushroom:crimson_fungus") then + breakgrow2 = true + end + if breakgrow == false then + -- Warts + -- first and second floor + for x = pos.x - 2,pos.x + 2 do + for y = pos.y + 3, pos.y + 4 do + for z = pos.z - 2, pos.z + 2 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) + end + end + end - -- dritte und vierte Etage - for x = pos.x - 1,pos.x + 1 do - for y = pos.y + 5, pos.y + 6 do - for z = pos.z - 1, pos.z + 1 do - minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) - end - end - end + -- third and fourth floors + for x = pos.x - 1,pos.x + 1 do + for y = pos.y + 5, pos.y + 6 do + for z = pos.z - 1, pos.z + 1 do + minetest.set_node({x = x, y = y, z = z}, { name = "mcl_nether:nether_wart_block" }) + end + end + end - -- fünfte Etage - minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) + -- fifth floor + minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) - -- Pilzlich - local randomgenerate = math.random(1, 2) - if randomgenerate == 1 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) - end - local randomgenerate = math.random(1, 8) - if randomgenerate == 4 then - local randomx = math.random(-2, 2) - local randomz = math.random(-2, 2) - minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) - end - -- Holz - for y = pos.y, pos.y + 4 do - minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) - --print("Placed at " .. x .. " " .. y .. " " .. z) - end - else - if breakgrow2 == false then minetest.set_node(pos,{ name = "mcl_mushroom:crimson_fungus" }) end - end + -- Fungal + local randomgenerate = math.random(1, 2) + if randomgenerate == 1 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + end + local randomgenerate = math.random(1, 8) + if randomgenerate == 4 then + local randomx = math.random(-2, 2) + local randomz = math.random(-2, 2) + minetest.set_node({x = pos.x + randomx, y = pos.y + 3, z = pos.z + randomz}, { name = "mcl_mushroom:shroomlight" }) + end + -- Wood + for y = pos.y, pos.y + 4 do + minetest.set_node({x = pos.x, y = y, z = pos.z}, { name = "mcl_mushroom:crimson_hyphae" }) + --print("Placed at " .. x .. " " .. y .. " " .. z) + end + else + if breakgrow2 == false then + minetest.set_node(pos,{ name = "mcl_mushroom:crimson_fungus" }) + end + end end @@ -662,45 +689,45 @@ minetest.register_decoration({ }) ]] minetest.register_ore({ - ore_type = "sheet", - ore = "mcl_mushroom:warped_checknode", - -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally - -- in v6, but instead set with the on_generated function in mcl_mapgen_core. - wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, - clust_scarcity = 14 * 14 * 14, - clust_size = 10, - y_min = -29065, - y_max = -28940, - noise_threshold = 0.0, - noise_params = { - offset = 0.5, - scale = 0.1, - spread = {x = 8, y = 8, z = 8}, - seed = 4996, - octaves = 1, - persist = 0.0 - }, + ore_type = "sheet", + ore = "mcl_mushroom:warped_checknode", + -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally + -- in v6, but instead set with the on_generated function in mcl_mapgen_core. + wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, + clust_scarcity = 14 * 14 * 14, + clust_size = 10, + y_min = -29065, + y_max = -28940, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.1, + spread = {x = 8, y = 8, z = 8}, + seed = 4996, + octaves = 1, + persist = 0.0 + }, }) minetest.register_ore({ - ore_type = "sheet", - ore = "mcl_mushroom:crimson_checknode", - -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally - -- in v6, but instead set with the on_generated function in mcl_mapgen_core. - wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, - clust_scarcity = 10 * 10 * 10, - clust_size = 10, - y_min = -29065, - y_max = -28940, - noise_threshold = 0.0, - noise_params = { - offset = 1, - scale = 0.5, - spread = {x = 12, y = 12, z = 12}, - seed = 12948, - octaves = 1, - persist = 0.0 - }, + ore_type = "sheet", + ore = "mcl_mushroom:crimson_checknode", + -- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally + -- in v6, but instead set with the on_generated function in mcl_mapgen_core. + wherein = {"mcl_nether:netherrack", "mcl_core:stone"}, + clust_scarcity = 10 * 10 * 10, + clust_size = 10, + y_min = -29065, + y_max = -28940, + noise_threshold = 0.0, + noise_params = { + offset = 1, + scale = 0.5, + spread = {x = 12, y = 12, z = 12}, + seed = 12948, + octaves = 1, + persist = 0.0 + }, }) From ddb618c2e368edd8a2c9cee3c164a80b3142032c Mon Sep 17 00:00:00 2001 From: rudzik8 Date: Sat, 26 Mar 2022 20:29:25 +0700 Subject: [PATCH 16/93] Fix comment translation in mcl_mushroom --- mods/ITEMS/mcl_mushroom/init.lua | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index 1cbd318b8..ae9ba0b4b 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -472,7 +472,7 @@ function generate_warped_tree(pos) local breakgrow = false local breakgrow2 = false -- Tree generator - -- first and second floor + -- first and second layer for x = pos.x - 2,pos.x + 2 do for y = pos.y + 3, pos.y + 4 do for z = pos.z - 2, pos.z + 2 do @@ -483,7 +483,7 @@ function generate_warped_tree(pos) end end - -- third and fourth floors + -- third and fourth layers for x = pos.x - 1,pos.x + 1 do for y = pos.y + 5, pos.y + 6 do for z = pos.z - 1, pos.z + 1 do @@ -494,7 +494,7 @@ function generate_warped_tree(pos) end end - -- fifth floor + -- fifth layer if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end @@ -513,7 +513,7 @@ function generate_warped_tree(pos) end if breakgrow == false then -- Warts - -- first and second floor + -- first and second layer for x = pos.x - 2,pos.x + 2 do for y = pos.y + 3, pos.y + 4 do for z = pos.z - 2, pos.z + 2 do @@ -522,7 +522,7 @@ function generate_warped_tree(pos) end end - -- third and fourth floors + -- third and fourth layers for x = pos.x - 1,pos.x + 1 do for y = pos.y + 5, pos.y + 6 do for z = pos.z - 1, pos.z + 1 do @@ -531,7 +531,7 @@ function generate_warped_tree(pos) end end - -- fifth floor + -- fifth layer minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_mushroom:warped_wart_block" }) -- Fungal @@ -563,7 +563,7 @@ function generate_crimson_tree(pos) local breakgrow = false local breakgrow2 = false -- Tree generator - -- first and second floor + -- first and second layer for x = pos.x - 2,pos.x + 2 do for y = pos.y + 3, pos.y + 4 do for z = pos.z - 2, pos.z + 2 do @@ -574,7 +574,7 @@ function generate_crimson_tree(pos) end end - -- third and fourth floors + -- third and fourth layers for x = pos.x - 1,pos.x + 1 do for y = pos.y + 5, pos.y + 6 do for z = pos.z - 1, pos.z + 1 do @@ -585,7 +585,7 @@ function generate_crimson_tree(pos) end end - -- fifth floor + -- fifth layer if not (minetest.get_node({x = pos.x, y = pos.y + 7, z = pos.z}).name == "air") then breakgrow = true end @@ -604,7 +604,7 @@ function generate_crimson_tree(pos) end if breakgrow == false then -- Warts - -- first and second floor + -- first and second layer for x = pos.x - 2,pos.x + 2 do for y = pos.y + 3, pos.y + 4 do for z = pos.z - 2, pos.z + 2 do @@ -613,7 +613,7 @@ function generate_crimson_tree(pos) end end - -- third and fourth floors + -- third and fourth layers for x = pos.x - 1,pos.x + 1 do for y = pos.y + 5, pos.y + 6 do for z = pos.z - 1, pos.z + 1 do @@ -622,7 +622,7 @@ function generate_crimson_tree(pos) end end - -- fifth floor + -- fifth layer minetest.set_node({x = pos.x, y = pos.y + 7, z = pos.z}, { name = "mcl_nether:nether_wart_block" }) -- Fungal From fa4a554b28fdc4dacebdb3a63022b8a6337d2e3e Mon Sep 17 00:00:00 2001 From: rudzik8 Date: Sat, 26 Mar 2022 20:40:22 +0700 Subject: [PATCH 17/93] Fix some format issues in mcl_mushroom (again) just forgot to fix something --- mods/ITEMS/mcl_mushroom/init.lua | 101 ++++++++++++++++--------------- 1 file changed, 52 insertions(+), 49 deletions(-) diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index ae9ba0b4b..46383699a 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -91,15 +91,15 @@ minetest.register_node("mcl_mushroom:twisting_vines", { _mcl_shears_drop = true, _mcl_silk_touch_drop = true, _mcl_fortune_drop = { items = {{items = {"mcl_mushroom:twisting_vines"}, rarity = 3},}, - items = {{items = {"mcl_mushroom:twisting_vines"}, rarity = 1.8181818181818181},}, - "mcl_mushroom:twisting_vines", - "mcl_mushroom:twisting_vines"}, - _mcl_blast_resistance = 0, - stack_max = 64, + items = {{items = {"mcl_mushroom:twisting_vines"}, rarity = 1.8181818181818181},}, + "mcl_mushroom:twisting_vines", + "mcl_mushroom:twisting_vines"}, + _mcl_blast_resistance = 0, + stack_max = 64, }) minetest.register_node("mcl_mushroom:nether_sprouts", { - description = S("Nether Sprouts"), + description = S("Nether Sprouts"), drawtype = "plantlike", tiles = { "nether_sprouts.png" }, inventory_image = "nether_sprouts.png", @@ -159,55 +159,58 @@ minetest.register_node("mcl_mushroom:shroomlight", { }) minetest.register_node("mcl_mushroom:warped_hyphae", { - description = S("Warped Hyphae"), - tiles = {"warped_hyphae.png", - "warped_hyphae.png", - "warped_hyphae_side.png", - "warped_hyphae_side.png", - "warped_hyphae_side.png", - "warped_hyphae_side.png", - }, - groups = {handy=5,axey=1, bark=1, building_block=1, material_wood=1,}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 2, + description = S("Warped Hyphae"), + tiles = { + "warped_hyphae.png", + "warped_hyphae.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + "warped_hyphae_side.png", + }, + groups = {handy=5,axey=1, bark=1, building_block=1, material_wood=1,}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 2, }) minetest.register_node("mcl_mushroom:warped_nylium", { - description = S("Warped Nylium"), - tiles = {"warped_nylium.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - "mcl_nether_netherrack.png^warped_nylium_side.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, - is_ground_content = true, - drop = "mcl_nether:netherrack", - _mcl_silk_touch_drop = true, + description = S("Warped Nylium"), + tiles = { + "warped_nylium.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + "mcl_nether_netherrack.png^warped_nylium_side.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack", + _mcl_silk_touch_drop = true, }) minetest.register_node("mcl_mushroom:warped_checknode", { - description = S("Warped Checknode - only to check!"), - tiles = {"mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - "mcl_nether_netherrack.png", - }, - groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, - paramtype2 = "facedir", - stack_max = 64, - _mcl_hardness = 0.4, - _mcl_blast_resistance = 0.4, - is_ground_content = true, - drop = "mcl_nether:netherrack" + description = S("Warped Checknode - only to check!"), + tiles = { + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + "mcl_nether_netherrack.png", + }, + groups = {pickaxey=1, building_block=1, material_stone=1, not_in_creative_inventory=1}, + paramtype2 = "facedir", + stack_max = 64, + _mcl_hardness = 0.4, + _mcl_blast_resistance = 0.4, + is_ground_content = true, + drop = "mcl_nether:netherrack" }) minetest.register_node("mcl_mushroom:warped_hyphae_wood", { From fc50c815715d64edcbb981c7d547c31415aed4e5 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 28 Mar 2022 16:06:30 +0000 Subject: [PATCH 18/93] update main lua script to add lodestone etc. --- mods/ITEMS/mcl_compass/init.lua | 143 ++++++++++++++++++++++++++++---- 1 file changed, 125 insertions(+), 18 deletions(-) diff --git a/mods/ITEMS/mcl_compass/init.lua b/mods/ITEMS/mcl_compass/init.lua index 458ee8fdb..812c2345f 100644 --- a/mods/ITEMS/mcl_compass/init.lua +++ b/mods/ITEMS/mcl_compass/init.lua @@ -1,3 +1,5 @@ +--TODO: Add advancement + local S = minetest.get_translator(minetest.get_current_modname()) mcl_compass = {} @@ -9,28 +11,58 @@ local compass_frames = 32 -- Timer for random compass spinning local random_timer = 0 -local random_timer_trigger = 0.5 -- random compass spinning tick in seconds. Increase if there are performance problems +local random_timer_trigger = 0.5 -- random compass spinning tick in seconds. Incr ease if there are performance problems local random_frame = math.random(0, compass_frames-1) -function mcl_compass.get_compass_image(pos, dir) +function mcl_compass.get_compass_image(pos, dir, x, y, z) -- Compasses do not work in certain zones - if mcl_worlds.compass_works(pos) then - local spawn = {x=0,y=0,z=0} - local ssp = minetest.setting_get_pos("static_spawnpoint") - if ssp then - spawn = ssp - if type(spawn) ~= "table" or type(spawn.x) ~= "number" or type(spawn.y) ~= "number" or type(spawn.z) ~= "number" then - spawn = {x=0,y=0,z=0} + if mcl_worlds.compass_works(pos) and x ~= nil and y ~= nil and z ~= nil then + local _, dim = mcl_worlds.y_to_layer(y) + local _, playerdim = mcl_worlds.y_to_layer(pos.y) + + if dim == playerdim then --Check if player and compass target are in the same dimension, above check is just if the diemension is valid for the non lodestone compass + local spawn = {x=x,y=y,z=z} + local ssp = minetest.setting_get_pos("static_spawnpoint") + if ssp and x == 0 and y == 0 and z == 0 then + spawn = ssp + if type(spawn) ~= "table" or type(spawn.x) ~= "number" or type(spawn.y) ~= "number" or type(spawn.z) ~= "number" then + spawn = {x=0,y=0,z=0} + end end + local angle_north = math.deg(math.atan2(spawn.x - pos.x, spawn.z - pos.z)) + if angle_north < 0 then angle_north = angle_north + 360 end + local angle_dir = -math.deg(dir) + local angle_relative = (angle_north - angle_dir + 180) % 360 + return math.floor((angle_relative/11.25) + 0.5) % compass_frames + else + return random_frame end - local angle_north = math.deg(math.atan2(spawn.x - pos.x, spawn.z - pos.z)) - if angle_north < 0 then angle_north = angle_north + 360 end - local angle_dir = -math.deg(dir) - local angle_relative = (angle_north - angle_dir + 180) % 360 - return math.floor((angle_relative/11.25) + 0.5) % compass_frames else - return random_frame + if x ~= 0 and y ~= 0 and z~= 0 and x ~= nil and y ~= nil and x~= nil then + local _, dim = mcl_worlds.y_to_layer(y) + local _, playerdim = mcl_worlds.y_to_layer(pos.y) + if dim == playerdim then --already explained that very same if statement above + local spawn = {x=x,y=y,z=z} + local ssp = minetest.setting_get_pos("static_spawnpoint") + if ssp and x == 0 and y == 0 and z == 0 then + spawn = ssp + if type(spawn) ~= "table" or type(spawn.x) ~= "number" or type(spawn.y) ~= "number" or type(spawn.z) ~= "number" then + spawn = {x=0,y=0,z=0} + end + end + local angle_north = math.deg(math.atan2(spawn.x - pos.x, spawn.z - pos.z)) + if angle_north < 0 then angle_north = angle_north + 360 end + local angle_dir = -math.deg(dir) + local angle_relative = (angle_north - angle_dir + 180) % 360 + return math.floor((angle_relative/11.25) + 0.5) % compass_frames + else + return random_frame + end + + else + return random_frame + end end end @@ -52,9 +84,39 @@ minetest.register_globalstep(function(dtime) end if has_compass(player) then local pos = player:get_pos() - local compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal()) for j,stack in pairs(player:get_inventory():get_list("main")) do + x = stack:get_meta():get_string("x") -- i know i could write the pos in meta, but i like this method more, and it is basicly the same, since else there would be one table with 3 values, and i have 3 values on their own + y = stack:get_meta():get_string("y") + z = stack:get_meta():get_string("z") + + x = tonumber(x) + y = tonumber(y) + z = tonumber(z) + + if x == nil or y == nil or z == nil then --checking if the compass has lodestone meta + compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), 0, 0, 0) --no lodestone meta + else + checkblock = {x = x, y = y, z = z} + local function get_far_node(pos) --function that tries to read node normally, and does it even if its unloaded https://dev.minetest.net/minetest.get_node + local node = minetest.get_node(pos) + if node.name == "ignore" then + minetest.get_voxel_manip():read_from_map(pos, pos) + node = minetest.get_node(pos) + end + return node + end + + if get_far_node(checkblock).name == "mcl_compass:lodestone" then --check if lodestone still exists + compass_image = mcl_compass.get_compass_image(pos, player:get_look_horizontal(), x, y, z) + compass_image = compass_image .. "_lodestone" + else -- lodestone got destroyed + compass_image = random_frame .. "_lodestone" + end + + + end + if minetest.get_item_group(stack:get_name(), "compass") ~= 0 and minetest.get_item_group(stack:get_name(), "compass")-1 ~= compass_image then local itemname = "mcl_compass:"..compass_image @@ -81,8 +143,8 @@ for i,img in ipairs(images) do inv = 0 end local use_doc, longdesc, tt - --Why is there no usage help? This should be fixed. - --local usagehelp + --Why is there no usage help? This should be fixed. + --local usagehelp use_doc = i == stereotype_frame if use_doc then tt = S("Points to the world origin") @@ -100,6 +162,18 @@ for i,img in ipairs(images) do stack_max = 64, groups = {not_in_creative_inventory=inv, compass=i, tool=1, disable_repair=1 } }) + + minetest.register_craftitem(itemstring .. "_lodestone", { + description = S("Lodestone Compass"), + _tt_help = tt, + _doc_items_create_entry = use_doc, + _doc_items_longdesc = longdesc, + --_doc_items_usagehelp = usagehelp, + inventory_image = img .. "^[colorize:purple:50", + wield_image = img .. "^[colorize:purple:50", + stack_max = 64, + groups = {not_in_creative_inventory=1, compass=i, tool=1, disable_repair=1 } + }) -- Help aliases. Makes sure the lookup tool works correctly if not use_doc and doc_mod then @@ -116,9 +190,42 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "mcl_compass:lodestone", + recipe = { + {"mcl_core:stonebrickcarved","mcl_core:stonebrickcarved","mcl_core:stonebrickcarved"}, + {"mcl_core:stonebrickcarved", "mcl_nether:netherite_ingot", "mcl_core:stonebrickcarved"}, + {"mcl_core:stonebrickcarved", "mcl_core:stonebrickcarved", "mcl_core:stonebrickcarved"} + } +}) + minetest.register_alias("mcl_compass:compass", "mcl_compass:"..stereotype_frame) -- Export stereotype item for other mods to use mcl_compass.stereotype = "mcl_compass:"..tostring(stereotype_frame) +minetest.register_node("mcl_compass:lodestone",{ + description="Lodestone", + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack).match(itemstack.get_name(itemstack),"mcl_compass:") then + if itemstack.get_name(itemstack) ~= "mcl_compass:lodestone" then + itemstack:get_meta():set_string("x", pos.x) + itemstack:get_meta():set_string("y", pos.y) + itemstack:get_meta():set_string("z", pos.z) + end + end + end, + tiles = { + "lodestone_top.png", + "lodestone_bottom.png", + "lodestone_side1.png", + "lodestone_side2.png", + "lodestone_side3.png", + "lodestone_side4.png" + }, + groups = {pickaxey=1, material_stone=1}, + _mcl_hardness = 1.5, + _mcl_blast_resistance = 6, + sounds = mcl_sounds.node_sound_stone_defaults() +}) \ No newline at end of file From da7be430ce63b894729e7661a6db224e505bfc69 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 28 Mar 2022 16:07:10 +0000 Subject: [PATCH 19/93] update dependencies --- mods/ITEMS/mcl_compass/mod.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_compass/mod.conf b/mods/ITEMS/mcl_compass/mod.conf index 41266222b..b807d678e 100644 --- a/mods/ITEMS/mcl_compass/mod.conf +++ b/mods/ITEMS/mcl_compass/mod.conf @@ -1,4 +1,4 @@ name = mcl_compass description = A compass item which points towards the world origin. -depends = mcl_core, mcl_worlds, mesecons -optional_depends = doc +depends = mcl_core, mcl_worlds, mesecons, mcl_nether, mcl_sounds +optional_depends = doc \ No newline at end of file From dc93dd87e2e805e461226a320f50e6d6ff033b14 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 28 Mar 2022 16:07:51 +0000 Subject: [PATCH 20/93] upload textures 1/2 --- .../mcl_compass/textures/lodestone_bottom.png | Bin 0 -> 6333 bytes .../mcl_compass/textures/lodestone_side1.png | Bin 0 -> 6600 bytes .../mcl_compass/textures/lodestone_side2.png | Bin 0 -> 6583 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_bottom.png create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_side1.png create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_side2.png diff --git a/mods/ITEMS/mcl_compass/textures/lodestone_bottom.png b/mods/ITEMS/mcl_compass/textures/lodestone_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..64ddb76ce2135dcf8cbeba1cae22baa169a3e465 GIT binary patch literal 6333 zcmeHLdpwkB`yV7i2Sq8Zrm2mrIU2@HhA=iG+|`&|HWs<-1q&xzSnhs@9VnmdBnN9 zu9~j3KnsCDOs6~1JmJ5y6fe!G@cW{nF#v&3j}PwUM`-Z+7`C3^rtGj#H=pVx^!wNcCQZ@_p{T99d#Ey`j6Y58Btrb zY+hQKO=VAJ-4)s#GBE4aNM5KhzbkyK;a(e~^oI7&PS4X`n^#iDQc@$DXw#N#@zT2< zk^Fcgt^9RNOip#O4lUlUWmm_VrDr!Ztl5+9`|xtx;Ib#D54}FQwD|Y}(hIM*9xq4v z)@RqEcV2w7lh%3TqW1Q9>~gxntO2tKm)gCwu9lVU_Np;khf>cS_Ht&?uW z6Rk)Y=eMCzQ{(q7?}C0CK3$$xK6K_0cZ}FQ@@7L+Z#DW^%4Shf^N;I~{I0u6ai1nn{Gmfj>y}@Q>m5gqe>4go_$RB-Gsl&0qpiP^_{bm)CsFZmn7h*B32NOA zyg8<~?|bLHh&rtveW!N;hpU8{&H7sRD`&F_cJrr~-dQ@jtun&<_Iu4x)OU%;x9?sx zOSLXQ@CdKH)BSwMRacFT_lC^n`nbS?18O=h6s-P(#>5icRfM>?E~n(Br;r;fR4X;N z_-$XTqV_P^N1R73H;!DSHcWTd^U>kBue>W(ceX^$crwLk3z$$q-iOBGgXYGb=%|g_ zZ!*n)zMf@m5=jN0R_p_o1mA5A$Yr=@ZoW(IZZV0twwu%%)?Gc*W<+o4F9A{7HdFMO zPRY61Ru6k}k`~wfGTV~Tka>av*gI#Gvr_pX54!h&uIlYxE@hYXH%6M40I<&zh2E>F)h;O^>3-K?l%Dmw{u>1j)dRsVI~-RfjPFtK+)TM zS__`m&bU!yV5r&|f!n^l>q5p1md-J|mNu7FKd$ka>b&A=5z#;`>WFT$Ys{H>65-k9 z;Dr~;j2B%By-so`Y$(`qCAN9>${qmj5Eg!;F zvy*hbZ~FI5ck{_^k|H8&)?Y)Z{+Cou8bveyxU;+`y~+E#vd5moTgB_NMD?p{r#9Ta z@MiEZ+GNhO3jVs;BC_3HWN2qo#UO>Fk??IDfIlR7XA)fxbmzZHE9<28B&yI@Zz0hAp%CORM z%9KADD3kY@y@__&c-32TpIAi9C-=_H>$}REzle0D<_}I0z zo?QBhp6N4mo4weMdLs)K^uH`zE_>)!D|)Q?Yij?Me#@63edUcy+w-}8VJ-egD zya?cmE~(+CU8jDi*STy`$K~&g8i=coFt~BjtJ0{^-J;v1ToBQnevv+WPd5&A*0Xv( zJuv2g-*8Sc@GV18rQr@ z(yNw)AHB5p#`}3OjC|9lF9z*@Ydvr*;CVIM^GrZa;UQvK1yMIx>*1ZPDLeBmjhiw* z1h?h}M`>C3P2G3!r;AwE`=_K`Mvf9F6?Sx@-EzVoPS=alvlj5Ef+H}m}UVGOgk+^@PK<8i-f(4UWk_jqVjEO59r;5v6h z+y~Xs+xdr%G-+HsR{P<8OFEZyp?+XrXja#w{T(gh*OJ`7%2b}M=RH1g?6@GJUB0)c z`*7@-c}^5B3ny(4w+Rc**pNG7n9Cb}$?Rz7ArLCjTn7htx`V^Vz6^Kc%*s6Y4_du_BJDUUVHi3_aBOlzUL5XjA!4(x15M2#d0js2ZwAn$LfC{J)9|jl&v1O zs0wptw63b{L=ETXc&Yf170qn!LmvUShUneF?KqJWMBI3_vRKsGQJj9PxXO4NfGa4; zt90cU;LR2%PN7{b%-KmWyMAm+g5DhZZ%JXp8sBY;^e0p~2R!jvscyRT%FGWM=gTdI zyiy190`z*emh~s;B2Q=&gHHby&TCGXQ!}RH&qZ&`pYeM{%7#tc_9fXe!^%nl_ob1j zN=?W5&y>aFl&r)(H`N9?uNc1BV{>~pNFBX3bM*$pHi2Xo%GO59T26rp_>dGp%K1Ejgd(S+ zl)M!9vtk;HLMkEBO;nT*!yV}$6hlZNhKRwT9p&5*0?I}UX)R{4DW0?+Cn(?%6%{Cz ziYQpDOeVv~%rQbS2a6|@$ygi#OCX?O1X>a*kOFeFK(a(ZG0s7QB%qipl5&Ltq=FM* z3WKFo6bfEPPLRW^prag~oN%BRE9oUt7M2bVi12=30G5EmS)p+RG=YqrY!9z87@w>K zk_i=IJ+X2?gvDcUSU&#?3yIV*rOwUBtj-&e4nkVF_P1|i1~NFZG@*{O&ZESc;x zSOO`glyUP|Y%Cm<((`1SRdj~?CmV%~94=p^v{0ZYBU#`loG4h#Q({;k7UDsCI1mZU zjQ;{J<+48?&=>nrto&Obu)9zEU!XtgrHn@?$R0=8O~FWVE>@n*^}QAQ^8p9*yE0D0c32DvE%?Dan;H?mR%s7K-_Bd2t0Sp-l35$(zfE zyrh6aHoPSsPqH${TaqkDmgeS`pFwLNu>?+Y1uGthA&iI30x3VjoB*6|Tt2{oup$9R zX`(n73cMXyT0l`9Ftc(V-VMb;3;|N1*jp&%QBjK6kP1p=Q6a4-%7x-01eJzLFvL<+ z+(gaU101Y!XpQ|R@V_y61qx+?{~OO|=qDCCu~a4$Z*mj6F@qpb`p-On2mZw533oe* zR2)kG51aZQIP39*b%Je$;?PO{y`atGqw$u+<0_>>B9(1`0)XT4OMnoFr91*y$MGdF z5D;)6xZh3`+sAqC-y|{#valqQSxhttSb}IG3oZyI9wMW0fH{dwB$MH~V1CIi5wfK+ zKn&S&;2eO@87?m6IU`Lb@^ATtU_vQ53o&5xs&%A|4kKf2q^Qy!l^nlk6vQ^go$ThK*Z02t}cA6$eV) zWP*Qm|2M#K1{W>}2_(XQ3VkwUT$V`}5ghaQ9DKpS_a*kzg*lNWibDD?{!C=wf6)U> z{msc&>HAHtZ*qN=0$&CGmR;ZE`YHv!3j8g*{@>)%`uxZZ3E=O2GWdZy*|wGhKa5Xh zu3kk$j46Jzs|!-$nQ0;?UkL)CJxB3ULF~^ofG0JibcUnGQx!vfBv$X>;m7d5TtewI zJ8!G{gp_J$H9Ng%+e>ZilMnVVr`?YY7&Od#KF#xf!Slst{o#5mRvU&RcGs-ajO^Gr z&pssekG{U2RnX}ff5k;sWUTPNLG5nc@}?AnJ;#l1HF@dM)K7nV+Tl%jPEXtoVZej8 zhHchOE867ekaUu!c5IF@B1Kw$$x>$|VcWfCS=EVRMAGrWe695aXJ6-SABM&6uD$Tc z%?P~t%hI^|y`Gwjadp{gC>@8j^}ErCgCp_jp_KXiTA~qcqkXsUG%pG1)yhjV0DbCy zh{q!a#@0#^FN=H4cD8jzbmjT!zdm^1@rdcBL$?y$HQbEBMppGD>pdG7I|Qu{u4lQ{ znRV*R%J)s(p}ucz!~W9ZknFUM(Y`e3Y)5B*{SJOh7_(&eb&aaKI#D)RL+XHmIQ)HE z*X!_YoDaWZ44jf`1{e1>K3i6lb*#U3$179y)6Ibf-iGNZm!fpf_ZRS&CeQPG$!vaJ q(f?syApjYZqP?L}W7YHBFBc_{uU0hCTbto?LC_stX{Gi7k^chKtG>izpn4w|HU=Tb3ecPci+!_de*fP*aj{Y9oK=y!;5FP+CXVa+fJNU<6twmkNX;7_E$w!Du*AC_tei z?;iJCUSwfCaj?T!p=oJY8@kNmskUN}b+#zr?1wtnlI~LdUmY#?ICmZ$xbYxhC}DD1 zM9tR8SjOQOr|R9jf;7wRg>9^RQ4btm3IEyL_&N?GMrOVyoooHr%(@tv8=uak>%$kT zPvCM}hb!yq_g7DJ-R9Ps{3x6sS$?1geH<1}-xRaTS<=1y#*&Kn1)-$q_ZPD6$E=t< zQ1Dw&#$NNh(7?(G8_ia8=H-C0`9?QWwq;M-e%`bsW#dk7X4ib~v%;FjT-?B3s|?Xy zlZhwzW!>-Uz54g8r&vd4w(JUd>bI_O_(Impo^tKRbt``LxD(4MnI4u-T+x}~RJx~f z7Iw#p13eukp;`%@0Q>N>TvDNPifNIuh->Y0n3|oSkM@^5f5FEZ1~0tx&GK0re+3alkt!DbP%$HZ_0XZ8Jf6SS0lvS^*MUlijdjIUmn<@RSjFl@jrtd&& zZp*oUE^oSKPV^)9d6zoMVm23Q>(}Jd*Tk|qo?s^QG|vd-AG)bMTkA$KP~FsnG6p3Y zrbM>mLZWl>nZN$&N*?S%b;)zel99^2@~8pQV) zquFswrzIM^Xcs$9oJ-&>s!H6A_DLmOXM|plvQ1sxe`N)(Evj$R4tp&l(awi)lbsSw zIgf*O&YD}+32h-9if0)y=Wp}s+{t+=DymBj7@$AS@O64?ydwYHBMwU^TX$ZmE88Dw>vv=jriLi z+T+|9DLH1wkO%wzWG%y+Omai)F_@A+GqbC@*`&hJ+9hj=3&ARA<|$>_nRQlga`zSu zlqlQtvS!>G(tC1yXK#|cuWSSRcyhy`pu9uQ(9B7k;;wc}kGDVO+-+o}zX{yBw3-)~ zVp%M1vDrIqx4@z9;H{IFUUkne-K-(YcbZgJZ{3;Rpqx#3AdifZ`%jY9)>cisc{`!! zqst2Rys46P!mEz8dIg$kw)XoqtW2~e^cS#;+F!Eh| zO^sWEzhs>_`klAv-u_!HIzBa7=R)FUFYBM0n}Y%EA3h-PX*f z>y{GdEO1`sJjwG?eNdi2zbWH{;p(=P2d-gUV^f|EDLa6KPVC9V@Q0hr?oeyC&1K#x zKU1u=9H#DCCZD=vU4Cq_-$`*ghY;NHcw)sK^3PTVW)6k2UkXy5-){1wW*;^de2tqB9me|SCQGO@A4hMqoS>b_TxPPCpIPs`g{ zWZpXNZ07h=Zm+#MTin}Td8{gVe9}tl;Aj(&K1iOFR9;^)YV5iHJSxSB~)|i zlonAgvoeMBa!SDglBYk3bUAHz{4HMV=G5IQjHAVhET1Lt>09p3X1l2yt~`Gom=#(* zuu#K3j^f~R*E9NGP27NeGxVdgDi{Bzh7cOyIHvi*Vk%f z(dZc$-c|MEhU8dNKmLxB@7$obU8pEofy}0Gy?%JaPI=294_7jqV=>{N$>K}Z8-Aa6 z=UGaAp)h}+(Ubjommf5&rJFXI4LM#}=wkk+@ZGU0PmAiL6)7Ff+a7w<-E4f2te3N| zy}~ZLqpYQcSuj~s(v@daO1!%CxBlW*>s1>!J+F>-aE?enDb;=R!b7^YKw5F7EaG`X ze{XHQa!cc}=p!qm*GhV`mO3=7|6|LE!$ZFCxR{Gcol||@mG||T#CKVBv*#X-(U_6= z`i<~x@eCA7BVOp@!e+U+d>Y!wsLtAuV&`7zIP3Ci--DQ6;=&C>tJ(W(wrpiAF-cmJ zbH>C!3}5uu9;&a2>_4w=QK)Vg1Wc+`>w+N=Ip?BJXc>&-i~-yJ7-NWakgM|*d`uE4154~kdT zQE3|XDUr!tn-~4liCHe}%6gMndCbzfs-p_h4%qoNrMswBnw2zZ0+S@-b6!?~yi?7W zd@EF<B_{O_$6qfTe%H{J7ptg9;?KfOup*)|>utk!4bS>? z^ZbbcNyS)@FXh45NU;pLWKk%lL!=CZLSQAD2L}ozc9_2N7cpod-wxwP@x*(|T;L#~ z`&v2dyVi>ftqpjGCBnn2P9Y)Q|K)$QQI1E}1QHI!ImU*(# zE>by+CS%E1Jg_KI7*534>!X=+zJS4TbsMEXR(6;mrBcSg;UXd;un{DzR33;U(CKs> zo`@q70R#akq9jT%5|Ah?R1_l|uCM}<3uQ{7RDxDxUu@kuBYc`ZHZzuiby0ntCJIxGwHc;>RU)zVMIBd$s}u@T8D+WJVO0Jy_)CLx0+m3;(?~>$EsaQ_(db`5 zOJTVJDRUJo0gojT)jNEM;f8R6NVy5cU?7Z>Ndnays>Cpm;~=30Ro#IwtL4aP7%p-c zR7&MssZ?Z#QF)72QL38?%^YnP#!pg6t*8dWd{xJd_M9^qh*K|_xW5Ab8*z8VSDw42SvZ6d-XN*@A*VNg#~O+tFtGBp3ckAwvR!Es?_K z19$;M2FMVZ2+&}%0HEM$NO_a^Af5z%&90CNlo6mDb_zsl0Le4bT{WSOC&N#BnFX=8Oio&_Wz#a5qL1toQPeBK!gA?UqA)uJP2u4Jb})q zPzZDi2z~AD|K)fjfI#CCY#DewgJS#Xcubt?0{N6orfS4`dNRhQo2eSX43?_Te8Xfi zkr0-DT?U`p;(x%6(I0KW|D-+^Hlpn!l|>;#DoE)aA^A)5e*zp~_(=%C5{2}yTptS= z3Coy!7V&vRhTPxC;{fjS^T22msOH4q_%qsEf1?G2`n!>DitqPueGk_+Mc|vj->d6; zxV|X@-vs_%UH@<4(*N>C0hS<-wGqhsg3bkdhLLv-+B}cNuBeZy-vi}`(-4WC%ze26 zg_>Zb`e>jsvrG}8j*{iMNaxA;sfH-J@_H|TyiiJHxjJ!awcAt6gJ(J!Cpb)4zR*Hw z!ZJ0oEzG^;$vNnrcYS++sbAsXRO^P0(Ef32H#$zNK#!AyGJUA3H#o4EbeGbckWrr; zjXu0*A-_*n~qzAFE^F5>xq}vY%{KL(1U8L z{pa7y-zMx$lD45dRz)44IKThlh^5vVrS0pFt95rLa&b*`ynlniJ*Hiy&&A*SE`Fpv zdlN3GNL@%oizt2uHU;KK=gCQlv(1i~G)sPOl>t95@$yb?d2(av&TB=#*-XGaIQzk# mV-hysFV_F@;N*&>4UK&PyRX4{I=ZSnp;(K&TnnAo#QhiJAp>Rr literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_compass/textures/lodestone_side2.png b/mods/ITEMS/mcl_compass/textures/lodestone_side2.png new file mode 100644 index 0000000000000000000000000000000000000000..fd9a1a2a5d6952131e7c8c7812d54eb8d96f89a7 GIT binary patch literal 6583 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 T;E(~FIt1O()1k_KTjGBM%)j|~ literal 0 HcmV?d00001 From d467060897f18bd16707870d7bb0ee7b64150545 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 28 Mar 2022 16:08:08 +0000 Subject: [PATCH 21/93] upload textures --- .../mcl_compass/textures/lodestone_side3.png | Bin 0 -> 6617 bytes .../mcl_compass/textures/lodestone_side4.png | Bin 0 -> 6589 bytes .../ITEMS/mcl_compass/textures/lodestone_top.png | Bin 0 -> 6404 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_side3.png create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_side4.png create mode 100644 mods/ITEMS/mcl_compass/textures/lodestone_top.png diff --git a/mods/ITEMS/mcl_compass/textures/lodestone_side3.png b/mods/ITEMS/mcl_compass/textures/lodestone_side3.png new file mode 100644 index 0000000000000000000000000000000000000000..43224083df1a2011f4ff7281200642b88bfb3b7f GIT binary patch literal 6617 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 literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_compass/textures/lodestone_side4.png b/mods/ITEMS/mcl_compass/textures/lodestone_side4.png new file mode 100644 index 0000000000000000000000000000000000000000..21dadc9f7db72265e79ec6a3d6b3692f45a1fdfb GIT binary patch literal 6589 zcmeHLcUV)|wht;*a2OHWSYpJ2L&!-bi3vz2LVy8OKoL%IP9TzIav&gL0Z~xF0Sh7w zO}JPQ0ShW9ioysMMn$En6dfIkVgo_%NkGLr^X5Lk_vSz03uLeTTfepTYWsXA&fV3~ zKyRuZ27@u+IN5oi{|!|i9WC_l%-#*S=0F_voTq+QXU@Q_YgRyX!P=LXN z)gN8zQ#jjHf8g;1#TXOX>S=YcCFRrBCmj_fcZRcT2cMQ?j)~pnG5)~o8!di=F;;WG zhy4s^mfn3^RO{gSBzEO`VHu~PuX$!ava;>z)PPuh-y+M)-F=R({q{z4UN-K;nMPpG zkFz`bs+wEdT%~Wf-L+}!qoq)o!Of*V@A0X3)V(pc?PUELv&2`Pt?iQ8)R2JSs~ ze;kl~&|#54qg2bItl(y&#q~}-U0VL86c=}g*%NMu4aPk_oZakLWh5+FtGR*|We8{~ zTH}4NoBHEsTTEY@{;uW0oekC&O=bY_`#CSjap6gaX(^oIa=R^|xtcL&j4#;VYtYc2 z0%WqMIHn^3v=yEdb0@*nZkjU6jO&s7}o!CsuQ0~v3) z>%wk(&~{+VkFi;8+l#IQK)(|6qIyhEo_^#!KYOv+K{?epB)fm= zq1)b``!~CNf#hF&1#A z^!b%74C;Y*Ml}bmn%iUYFm+tss#}$uJw5(8^>-E~y`kAZtHKpk z%{c+zH%ke%ycWLCId@j{lk>}87>vzyy2PL?n^%j^JILgn&+TcJ`|9;vb*`9r^L9+< z2ixWDbH_^>ilGbbW0q93#k&ROJ8RDht<&nty3$`#*IRMOa>M!UPlDsa>gRVK?JSBe zWK4*sZcY})=``*LFIaZHIrmz65p7T5Cj0!(7iq`Rx$E|ynz{a0gCm@3qr?G++_%KH zo35UT*He}pJrR>@bzB_bES;I)(NW>2sJf6e>3eab)4C9oTw_N?RlackU1?_JoPfAC zjRz_9Ebb526VDx(ZbqRuoYHkFd@kvZwy|92`hD@jg zOK}Z(m%C4&#rOLIgdJ`*^Kz_urTQ7vJK-V9`qlHqw>98`;@1W9&W@g%5nZ9_yYbF1 z+K-~CdFDCov>)wXm)V|v;JjQTy5HNiirQW$NC|nqj6{e$;C_N&v1{|C;6R50ljHdX zl^9Fs1F@pDOX3gLR_{CQ&Z{Wep?#dtz0UIC5tl#CPPE^7?X{w`Fo$h;s=%4swk5Is z^!PWTX`$8R*H?e@gpA%CP8h&=upMoi;Mu89LPHkZL%^if!utz%XWt0Bzv#|b503xU zwXB2hXsvdK*67~ply(svath+jpE;Uk*d_1UrD7MY*Gs)qkcaQ)WreSMhsjfcLQ z_liMY7utL2uuj#^z&8y>A86TQ@0*vOY4n^tsqDaeP0dGIwd}WfH!&EEO+s5+caE*? z$LWmDg?+2>sG}q232x4Nf@yK=^9QGAc6YJ6nl)_pU-T*pp5{)icDl^x z(M~PUTKUk?%4Y9IH{QR}od|*ljIyqWtG4l7?$w+X8Uv2tWx3c zX>Z~#9WgPjcwE8P^85L1;p|g@TV4GmYF;7_m z19G!WJ>#TS?GMo{P5WYg)wM94Jo=2k=pBEI&L5+$oe{5}*$~=0rpIdZGT#P&F{UUZ z=Wc^k_0e4}_mj3nF&srSo`f(^Mj)C41hM!F4FzH!`q|!JYAC$WhZcedtdNGt z`LKN`EJ0?EG%6E?C`Q^0QNSvZ+HVmgAfQgEEsxZ38QdOC=|=o8Y=WiB*g!O zlZD7dY7E3Dz#>?TI-)?CiC^Fmq2P0ZzBrF+=TDBH=05R%f&LgTwJ++pGVP@N5S3Am z9UG_emkCMvLWrsUDi9D!bSjmHM>7NCDGVBn=YbXwo(6*?02J`}R5E=86-S~#KnWjK zQK97KLX?L`hZz77rr_xiM8{L;0wSJ4A;NfoNCp9jLLpHtMpC%Rg=i;$qLE&ys34Sz z1kp$qAOpZtK&k*wp$G(c5aQAB0vZ{Hc{Bk)6VTM&sPe$HcIU8hBy-@i#9ag;0;yb# zwwF)>NtKGvTV6sj?1_M?un}oQ8bBwLi4-E$0-%yVgO{DH&lsXqQ^l)3#z&UWme14(=cu2Fo;OyUQ(%ujZ=AxRZ*&&3dnt6)Cz z_dI_E{>0>gPCEr659j=sL;VMiHB_)psIF8VKEl2yyn1LgG?GL@b*Qjd^%!7+{GsqG zz)%=crvQ!P&=x-klmx=)yd7?~k8;I-2oDJO6g-7bA>rvTMS!OQbeJk2 zLm)r~zhqZP1&9)q!`6Xl4WM~On@gQ%?EK;SGyM{;41!g~1(1knci>4DUL+EeOlFc8 zxS?zhXaAo$9&AA+69FO>&xb*@Pl}GFhq-%jGghrkkZ2!Ay>-&pbn9GLaCLe^~|}+v0z~jnE%%!T+W{ z5;ml5E0u+#Ln;VyQ%e5U{9gcv7+i#WSfY^ro$DhZLtzmRg$Qhzh@Rq_26u5aP`st9})_*->-3)fdg;H$vjs_XwPTza41D8Lf* zu~vz`FTicvm507-(Be5e+F?GZeltt+cA^qpnUjwKgBfe2`e_h|~IM(G-)#Ci63$tz%wb z!gUw-vz%vaFvt6uj5Uon{W-{RYgbFU^o=Aj>0)DZ=l#UJg20@r_T|YD?9!$#AJaYFG20GNpUtU2zHnFv;-MU(@ zC$e`mhF_EalMaSv6<_VisT fjMzM*WGl>;)@vX3+^c_p<_yEJceTs635fbPAX*eC literal 0 HcmV?d00001 diff --git a/mods/ITEMS/mcl_compass/textures/lodestone_top.png b/mods/ITEMS/mcl_compass/textures/lodestone_top.png new file mode 100644 index 0000000000000000000000000000000000000000..77c2064e1f85bf9429fa4138a68a6865395c8ceb GIT binary patch literal 6404 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 literal 0 HcmV?d00001 From 1273d59995bca09aecc2dd0674ccb4a24642ae80 Mon Sep 17 00:00:00 2001 From: Johannes Fritz Date: Tue, 29 Mar 2022 12:16:06 -0500 Subject: [PATCH 22/93] Lightning command: Strike player by name --- mods/ENVIRONMENT/lightning/init.lua | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/mods/ENVIRONMENT/lightning/init.lua b/mods/ENVIRONMENT/lightning/init.lua index 3579316e8..59e494858 100644 --- a/mods/ENVIRONMENT/lightning/init.lua +++ b/mods/ENVIRONMENT/lightning/init.lua @@ -238,8 +238,8 @@ after(5, function(dtime) end) minetest.register_chatcommand("lightning", { - params = "[ ]", - description = S("Let lightning strike at the specified position or yourself"), + params = "[ ] | | ", + description = S("Let lightning strike at the specified position or player. No parameter will strike yourself."), privs = { maphack = true }, func = function(name, param) local pos = {} @@ -247,21 +247,21 @@ minetest.register_chatcommand("lightning", { pos.x = tonumber(pos.x) pos.y = tonumber(pos.y) pos.z = tonumber(pos.z) + local player_to_strike if not (pos.x and pos.y and pos.z) then pos = nil + player_to_strike = minetest.get_player_by_name(param) + if not player_to_strike and param == "" then + player_to_strike = minetest.get_player_by_name(name) + end end - if name == "" and pos == nil then + if not player_to_strike and pos == nil then return false, "No position specified and unknown player" end if pos then lightning.strike(pos) - else - local player = minetest.get_player_by_name(name) - if player then - lightning.strike(player:get_pos()) - else - return false, S("No position specified and unknown player") - end + elseif player_to_strike then + lightning.strike(player_to_strike:get_pos()) end return true end, From c9470b826205e326265e3d8fc2523c1080771068 Mon Sep 17 00:00:00 2001 From: PrairieAstronomer Date: Tue, 29 Mar 2022 12:49:39 -0600 Subject: [PATCH 23/93] adds new advancements and minor detail changes --- mods/ENTITIES/mcl_item_entity/init.lua | 2 ++ mods/HUD/mcl_achievements/init.lua | 36 ++++++++++++++++++++++++++ mods/ITEMS/mcl_beds/respawn_anchor.lua | 11 ++++---- mods/ITEMS/mcl_portals/portal_end.lua | 1 + 4 files changed, 45 insertions(+), 5 deletions(-) diff --git a/mods/ENTITIES/mcl_item_entity/init.lua b/mods/ENTITIES/mcl_item_entity/init.lua index e88f4dd80..244c910d5 100644 --- a/mods/ENTITIES/mcl_item_entity/init.lua +++ b/mods/ENTITIES/mcl_item_entity/init.lua @@ -65,6 +65,8 @@ mcl_item_entity.register_pickup_achievement("tree", "mcl:mineWood") mcl_item_entity.register_pickup_achievement("mcl_mobitems:blaze_rod", "mcl:blazeRod") mcl_item_entity.register_pickup_achievement("mcl_mobitems:leather", "mcl:killCow") mcl_item_entity.register_pickup_achievement("mcl_core:diamond", "mcl:diamonds") +mcl_item_entity.register_pickup_achievement("mcl_core:crying_obsidian", "mcl:whosCuttingOnions") +mcl_item_entity.register_pickup_achievement("mcl_nether:ancient_debris", "mcl:hiddenInTheDepths") local function check_pickup_achievements(object, player) if has_awards then diff --git a/mods/HUD/mcl_achievements/init.lua b/mods/HUD/mcl_achievements/init.lua index c963773d1..b1c59fe54 100644 --- a/mods/HUD/mcl_achievements/init.lua +++ b/mods/HUD/mcl_achievements/init.lua @@ -101,6 +101,18 @@ awards.register_achievement("mcl:bookcase", { } }) +awards.register_achievement("mcl:buildIronPickaxe", { + title = S("Isn't It Iron Pick"), + -- TODO: This achievement should support all non-wood pickaxes + description = S("Craft a iron pickaxe using sticks and iron."), + icon = "default_tool_steelpick.png", + trigger = { + type = "craft", + item = "mcl_tools:pick_iron", + target = 1 + } +}) + -- Item pickup achievements: These are awarded when picking up a certain item. -- The achivements are manually given in the mod mcl_item_entity. awards.register_achievement("mcl:diamonds", { @@ -125,6 +137,24 @@ awards.register_achievement("mcl:mineWood", { icon = "default_tree.png", }) +awards.register_achievement("mcl:whosCuttingOnions", { + title = S("Who is Cutting Onions?"), + description = S("Pick up a crying obsidian from the floor."), + icon = "default_obsidian.png^mcl_core_crying_obsidian.png", +}) + +awards.register_achievement("mcl:hiddenInTheDepths", { + title = S("Hidden in the Depths"), + description = S("Pick up an Ancient Debris from the floor."), + icon = "mcl_nether_ancient_debris_side.png", +}) + +awards.register_achievement("mcl:notQuiteNineLives", { + title = S('Not Quite "Nine" Lives'), + description = S("Charge a Respawn Anchor to the maximum."), + icon = "respawn_anchor_side4.png", +}) + -- Smelting achivements: These are awarded when picking up an item from a furnace -- output. They are given in mcl_furnaces. awards.register_achievement("mcl:acquireIron", { @@ -163,6 +193,12 @@ awards.register_achievement("mcl:buildNetherPortal", { icon = "default_obsidian.png", }) +awards.register_achievement("mcl:enterEndPortal", { + title = S("The End?"), + description = S("Or the beginning?\nHint: Enter an end portal."), + icon = "mcl_end_end_stone.png", +}) + -- NON-PC ACHIEVEMENTS (XBox, Pocket Edition, etc.) if non_pc_achievements then diff --git a/mods/ITEMS/mcl_beds/respawn_anchor.lua b/mods/ITEMS/mcl_beds/respawn_anchor.lua index 0e96ce25d..6ea0f4627 100644 --- a/mods/ITEMS/mcl_beds/respawn_anchor.lua +++ b/mods/ITEMS/mcl_beds/respawn_anchor.lua @@ -5,7 +5,7 @@ minetest.register_node("mcl_beds:respawn_anchor",{ - description="respawn anchor", + description="Respawn Anchor", tiles = { "respawn_anchor_top_off.png", "respawn_anchor_bottom.png", @@ -36,7 +36,7 @@ minetest.register_node("mcl_beds:respawn_anchor",{ _mcl_hardness = 22.5 }) minetest.register_node("mcl_beds:respawn_anchor_charged_1",{ - description="respawn anchor", + description="Respawn Anchor", tiles = { "portal.png", "respawn_anchor_bottom.png", @@ -70,7 +70,7 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_1",{ }) minetest.register_node("mcl_beds:respawn_anchor_charged_2",{ - description="respawn anchor", + description="Respawn Anchor", tiles = { "portal.png", "respawn_anchor_bottom.png", @@ -104,7 +104,7 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_2",{ }) minetest.register_node("mcl_beds:respawn_anchor_charged_3",{ - description="respawn anchor", + description="Respawn Anchor", tiles = { "portal.png", "respawn_anchor_bottom.png", @@ -138,7 +138,7 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_3",{ }) minetest.register_node("mcl_beds:respawn_anchor_charged_4",{ - description="respawn anchor", + description="Respawn Anchor", tiles = { "portal.png", "respawn_anchor_bottom.png", @@ -160,6 +160,7 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_4",{ mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) else mcl_spawn.set_spawn_pos(player, pos, nil) + awards.unlock(player:get_player_name(), "mcl:notQuiteNineLives") end end, groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, diff --git a/mods/ITEMS/mcl_portals/portal_end.lua b/mods/ITEMS/mcl_portals/portal_end.lua index 9e1a67a75..803aca74c 100644 --- a/mods/ITEMS/mcl_portals/portal_end.lua +++ b/mods/ITEMS/mcl_portals/portal_end.lua @@ -235,6 +235,7 @@ function mcl_portals.end_portal_teleport(pos, node) end mcl_portals.end_teleport(obj, objpos) + awards.unlock(obj:get_player_name(), "mcl:enterEndPortal") end end From 2ea868ba79bb401ec81f6d3102e7f5fb5aa5e844 Mon Sep 17 00:00:00 2001 From: PrairieAstronomer Date: Tue, 29 Mar 2022 13:37:45 -0600 Subject: [PATCH 24/93] fixed formating of respawn_ancher.lua file --- mods/ITEMS/mcl_beds/respawn_anchor.lua | 176 +++++++++++++------------ 1 file changed, 89 insertions(+), 87 deletions(-) diff --git a/mods/ITEMS/mcl_beds/respawn_anchor.lua b/mods/ITEMS/mcl_beds/respawn_anchor.lua index 6ea0f4627..eded3d7f6 100644 --- a/mods/ITEMS/mcl_beds/respawn_anchor.lua +++ b/mods/ITEMS/mcl_beds/respawn_anchor.lua @@ -5,14 +5,14 @@ minetest.register_node("mcl_beds:respawn_anchor",{ - description="Respawn Anchor", - tiles = { + description="Respawn Anchor", + tiles = { "respawn_anchor_top_off.png", "respawn_anchor_bottom.png", "respawn_anchor_side0.png" }, - drawtype = "nodebox", - node_box= { --Reused the composter nodebox, since it is basicly the same + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same type = "fixed", fixed = { {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall @@ -22,28 +22,27 @@ minetest.register_node("mcl_beds:respawn_anchor",{ {-0.5, -0.5, -0.5, 0.5, -0.47, 0.5}, -- Bottom level, -0.47 because -0.5 is so low that you can see the texture of the block below through } }, - on_rightclick = function(pos, node, player, itemstack) - if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then - minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_1"}) - itemstack:take_item() - else - if pos.y < -29077 or pos.y > -28933 then - mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) - end - end + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_1"}) + itemstack:take_item() + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + end end, - groups = {pickaxey=1, material_stone=1}, - _mcl_hardness = 22.5 + groups = {pickaxey=1, material_stone=1}, + _mcl_hardness = 22.5 }) minetest.register_node("mcl_beds:respawn_anchor_charged_1",{ - description="Respawn Anchor", - tiles = { + description="Respawn Anchor", + tiles = { "portal.png", "respawn_anchor_bottom.png", "respawn_anchor_side1.png" }, - drawtype = "nodebox", - node_box= { --Reused the composter nodebox, since it is basicly the same + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same type = "fixed", fixed = { {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall @@ -53,31 +52,31 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_1",{ {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level } }, - on_rightclick = function(pos, node, player, itemstack) - if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then - minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_2"}) - itemstack:take_item() - else - if pos.y < -29077 or pos.y > -28933 then - mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) - else - mcl_spawn.set_spawn_pos(player, pos, nil) - end - end - end, - groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, - _mcl_hardness = 22.5 + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_2"}) + itemstack:take_item() + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + end + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 }) minetest.register_node("mcl_beds:respawn_anchor_charged_2",{ - description="Respawn Anchor", - tiles = { + description="Respawn Anchor", + tiles = { "portal.png", "respawn_anchor_bottom.png", "respawn_anchor_side2.png" }, - drawtype = "nodebox", - node_box= { --Reused the composter nodebox, since it is basicly the same + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same type = "fixed", fixed = { {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall @@ -87,31 +86,31 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_2",{ {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level } }, - on_rightclick = function(pos, node, player, itemstack) - if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then - minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_3"}) - itemstack:take_item() - else - if pos.y < -29077 or pos.y > -28933 then - mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) - else - mcl_spawn.set_spawn_pos(player, pos, nil) - end - end - end, - groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, - _mcl_hardness = 22.5 + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_3"}) + itemstack:take_item() + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + end + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 }) minetest.register_node("mcl_beds:respawn_anchor_charged_3",{ - description="Respawn Anchor", - tiles = { + description="Respawn Anchor", + tiles = { "portal.png", "respawn_anchor_bottom.png", "respawn_anchor_side3.png" }, - drawtype = "nodebox", - node_box= { --Reused the composter nodebox, since it is basicly the same + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same type = "fixed", fixed = { {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall @@ -121,53 +120,56 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_3",{ {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level } }, - on_rightclick = function(pos, node, player, itemstack) - if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then - minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_4"}) - itemstack:take_item() - else - if pos.y < -29077 or pos.y > -28933 then - mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) - else - mcl_spawn.set_spawn_pos(player, pos, nil) - end - end - end, - groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, - _mcl_hardness = 22.5 + on_rightclick = function(pos, node, player, itemstack) + if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then + minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_4"}) + itemstack:take_item() + else + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + end + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 }) minetest.register_node("mcl_beds:respawn_anchor_charged_4",{ - description="Respawn Anchor", - tiles = { + description="Respawn Anchor", + tiles = { "portal.png", "respawn_anchor_bottom.png", "respawn_anchor_side4.png" }, - drawtype = "nodebox", - node_box= { --Reused the composter nodebox, since it is basicly the same + drawtype = "nodebox", + node_box= { --Reused the composter nodebox, since it is basicly the same type = "fixed", fixed = { - {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall + {-0.5, -0.5, -0.5, -0.375, 0.5, 0.5}, -- Left wall { 0.375, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Right wall {-0.375, -0.5, 0.375, 0.375, 0.5, 0.5}, -- Back wall {-0.375, -0.5, -0.5, 0.375, 0.5, -0.375}, -- Front wall {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Bottom level } }, - on_rightclick = function(pos, node, player, itemstack) - if pos.y < -29077 or pos.y > -28933 then - mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) - else - mcl_spawn.set_spawn_pos(player, pos, nil) - awards.unlock(player:get_player_name(), "mcl:notQuiteNineLives") - end - end, - groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, - _mcl_hardness = 22.5 + on_rightclick = function(pos, node, player, itemstack) + if pos.y < -29077 or pos.y > -28933 then + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + else + mcl_spawn.set_spawn_pos(player, pos, nil) + awards.unlock(player:get_player_name(), "mcl:notQuiteNineLives") + end + end, + groups = {pickaxey=1, material_stone=1, not_in_creative_inventory=1}, + _mcl_hardness = 22.5 }) minetest.register_craft({ output = "mcl_beds:respawn_anchor", - recipe = { {"mcl_core:crying_obsidian", "mcl_core:crying_obsidian", "mcl_core:crying_obsidian"}, - {"mcl_nether:glowstone", "mcl_nether:glowstone", "mcl_nether:glowstone"}, - {"mcl_core:crying_obsidian", "mcl_core:crying_obsidian", "mcl_core:crying_obsidian"} } }) \ No newline at end of file + recipe = { + {"mcl_core:crying_obsidian", "mcl_core:crying_obsidian", "mcl_core:crying_obsidian"}, + {"mcl_nether:glowstone", "mcl_nether:glowstone", "mcl_nether:glowstone"}, + {"mcl_core:crying_obsidian", "mcl_core:crying_obsidian", "mcl_core:crying_obsidian"} + } + }) From ddaa96589e1eca84f8385d3987e04d6e8aa89026 Mon Sep 17 00:00:00 2001 From: Johannes Fritz Date: Fri, 1 Apr 2022 07:58:26 -0500 Subject: [PATCH 25/93] Make params description sensable --- mods/ENVIRONMENT/lightning/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ENVIRONMENT/lightning/init.lua b/mods/ENVIRONMENT/lightning/init.lua index 59e494858..14d8f5176 100644 --- a/mods/ENVIRONMENT/lightning/init.lua +++ b/mods/ENVIRONMENT/lightning/init.lua @@ -238,7 +238,7 @@ after(5, function(dtime) end) minetest.register_chatcommand("lightning", { - params = "[ ] | | ", + params = "[ | ]", description = S("Let lightning strike at the specified position or player. No parameter will strike yourself."), privs = { maphack = true }, func = function(name, param) From b99fbe8f6976e09a537b0c6b72fccefe2962a860 Mon Sep 17 00:00:00 2001 From: Johannes Fritz Date: Fri, 1 Apr 2022 08:15:55 -0500 Subject: [PATCH 26/93] Fix mobs staying red after explosion --- mods/CORE/mcl_util/init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/CORE/mcl_util/init.lua b/mods/CORE/mcl_util/init.lua index 90e44cedc..c899b5148 100644 --- a/mods/CORE/mcl_util/init.lua +++ b/mods/CORE/mcl_util/init.lua @@ -417,6 +417,7 @@ function mcl_util.deal_damage(target, damage, mcl_reason) -- target:punch(puncher, 1.0, {full_punch_interval = 1.0, damage_groups = {fleshy = damage}}, vector.direction(puncher:get_pos(), target:get_pos()), damage) if luaentity.health > 0 then luaentity.health = luaentity.health - damage + luaentity.pause_timer = 0.4 end return end From 4444437f9431d5ee004dbb2b13f7a4fb045b80a9 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Sat, 2 Apr 2022 12:28:16 +0000 Subject: [PATCH 27/93] Update 'mods/ITEMS/mcl_beds/respawn_anchor.lua' --- mods/ITEMS/mcl_beds/respawn_anchor.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mods/ITEMS/mcl_beds/respawn_anchor.lua b/mods/ITEMS/mcl_beds/respawn_anchor.lua index eded3d7f6..5f279abd7 100644 --- a/mods/ITEMS/mcl_beds/respawn_anchor.lua +++ b/mods/ITEMS/mcl_beds/respawn_anchor.lua @@ -25,10 +25,11 @@ minetest.register_node("mcl_beds:respawn_anchor",{ on_rightclick = function(pos, node, player, itemstack) if itemstack.get_name(itemstack) == "mcl_nether:glowstone" then minetest.set_node(pos, {name="mcl_beds:respawn_anchor_charged_1"}) - itemstack:take_item() - else + itemstack:take_item() + else if pos.y < -29077 or pos.y > -28933 then - mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + mcl_explosions.explode(pos, 5, {drop_chance = 0, fire = true}) + end end end, groups = {pickaxey=1, material_stone=1}, From be58b54104858fefd40d3a8adc181b696e150e07 Mon Sep 17 00:00:00 2001 From: kay27 Date: Mon, 4 Apr 2022 03:49:14 +0300 Subject: [PATCH 28/93] #278 Rename default_dbg to default_debug --- mods/HUD/mcl_info/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/HUD/mcl_info/init.lua b/mods/HUD/mcl_info/init.lua index 02af53fbc..9cf95b43a 100644 --- a/mods/HUD/mcl_info/init.lua +++ b/mods/HUD/mcl_info/init.lua @@ -89,7 +89,7 @@ minetest.register_chatcommand("debug",{ minetest.chat_send_player(name, S("Error! Possible values are integer numbers from @1 to @2", 0, 3)) return end - if dbg == default_dbg then + if dbg == default_debug then player_dbg[name] = nil else player_dbg[name] = dbg From 9e6f1c78e62098947af18a38f2174f312f4511fa Mon Sep 17 00:00:00 2001 From: kay27 Date: Mon, 4 Apr 2022 04:02:10 +0300 Subject: [PATCH 29/93] #151 Bump ABM intervals to 1 second --- mods/ITEMS/mcl_cauldrons/init.lua | 3 ++- mods/ITEMS/mcl_mushroom/init.lua | 4 ++-- mods/ITEMS/mcl_portals/portal_end.lua | 3 ++- mods/ITEMS/mcl_portals/portal_gateway.lua | 3 ++- mods/ITEMS/mcl_portals/portal_nether.lua | 5 +++-- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/mods/ITEMS/mcl_cauldrons/init.lua b/mods/ITEMS/mcl_cauldrons/init.lua index 55866f5cc..4b6fcd318 100644 --- a/mods/ITEMS/mcl_cauldrons/init.lua +++ b/mods/ITEMS/mcl_cauldrons/init.lua @@ -128,8 +128,9 @@ minetest.register_craft({ minetest.register_abm({ label = "cauldrons", nodenames = {"group:cauldron_filled"}, - interval = 0.5, + interval = 1, chance = 1, + -- TODO: Move to playerinfo/playerplus/mob api action = function(pos, node) for _, obj in pairs(minetest.get_objects_inside_radius(pos, 0.4)) do if mcl_burning.is_burning(obj) then diff --git a/mods/ITEMS/mcl_mushroom/init.lua b/mods/ITEMS/mcl_mushroom/init.lua index 46383699a..774ea577c 100644 --- a/mods/ITEMS/mcl_mushroom/init.lua +++ b/mods/ITEMS/mcl_mushroom/init.lua @@ -257,7 +257,7 @@ minetest.register_abm({ minetest.register_abm({ label = "mcl_mushroom:warped_checknode", nodenames = {"mcl_mushroom:warped_checknode"}, - interval = 0.1, + interval = 1, chance = 1, action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) @@ -448,7 +448,7 @@ minetest.register_abm({ minetest.register_abm({ label = "mcl_mushroom:crimson_checknode", nodenames = {"mcl_mushroom:crimson_checknode"}, - interval = 0.1, + interval = 1, chance = 1, action = function(pos) local nodepos = minetest.get_node({x = pos.x, y = pos.y + 1, z = pos.z}) diff --git a/mods/ITEMS/mcl_portals/portal_end.lua b/mods/ITEMS/mcl_portals/portal_end.lua index 803aca74c..3e4f5ba12 100644 --- a/mods/ITEMS/mcl_portals/portal_end.lua +++ b/mods/ITEMS/mcl_portals/portal_end.lua @@ -244,8 +244,9 @@ end minetest.register_abm({ label = "End portal teleportation", nodenames = {"mcl_portals:portal_end"}, - interval = 0.1, + interval = 1, chance = 1, + -- TODO: Move to playerinfo/playerplus/mob api action = mcl_portals.end_portal_teleport, }) diff --git a/mods/ITEMS/mcl_portals/portal_gateway.lua b/mods/ITEMS/mcl_portals/portal_gateway.lua index 505935105..4d79dce53 100644 --- a/mods/ITEMS/mcl_portals/portal_gateway.lua +++ b/mods/ITEMS/mcl_portals/portal_gateway.lua @@ -106,9 +106,10 @@ local function teleport(pos, obj) end minetest.register_abm({ + -- TODO: Move to playerinfo/playerplus/mob api label = "End gateway portal teleportation", nodenames = {"mcl_portals:portal_gateway"}, - interval = 0.1, + interval = 1, chance = 1, action = function(pos) if preparing[minetest.pos_to_string(pos)] then return end diff --git a/mods/ITEMS/mcl_portals/portal_nether.lua b/mods/ITEMS/mcl_portals/portal_nether.lua index 7390bbb2f..a8fdc51b2 100644 --- a/mods/ITEMS/mcl_portals/portal_nether.lua +++ b/mods/ITEMS/mcl_portals/portal_nether.lua @@ -729,8 +729,8 @@ mcl_structures.register_structure({name = "nether_portal", place_function = mcl_ minetest.register_abm({ label = "Nether portal teleportation and particles", nodenames = {PORTAL}, - interval = 0.8, - chance = 3, + interval = 1, + chance = 2, action = function(pos, node) -- Don't use call stack! local upper_node_name = get_node({x = pos.x, y = pos.y + 1, z = pos.z}).name @@ -811,6 +811,7 @@ minetest.register_abm({ }) end end + -- TODO: Move to playerinfo/playerplus/mob api for _, obj in pairs(minetest.get_objects_inside_radius(pos, 1)) do --maikerumine added for objects to travel local lua_entity = obj:get_luaentity() --maikerumine added for objects to travel if (obj:is_player() or lua_entity) and prevent_portal_chatter(obj) then From d424aaa5bcaeecf5275c4c8ae0d7f2b34ee00b83 Mon Sep 17 00:00:00 2001 From: Johannes Fritz Date: Mon, 4 Apr 2022 07:48:05 -0500 Subject: [PATCH 30/93] Lightning mod: fix localization template --- mods/ENVIRONMENT/lightning/locale/template.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ENVIRONMENT/lightning/locale/template.txt b/mods/ENVIRONMENT/lightning/locale/template.txt index 2c07393f6..897f295eb 100644 --- a/mods/ENVIRONMENT/lightning/locale/template.txt +++ b/mods/ENVIRONMENT/lightning/locale/template.txt @@ -1,4 +1,4 @@ # textdomain: lightning @1 was struck by lightning.= -Let lightning strike at the specified position or yourself= +Let lightning strike at the specified position or player. No parameter will strike yourself.= No position specified and unknown player= From ed963428c08d33779f2431da37f88a03fab770f9 Mon Sep 17 00:00:00 2001 From: kabou Date: Wed, 6 Apr 2022 23:04:01 +0200 Subject: [PATCH 31/93] Replace mcl_end_crystal_beam.png with free version. * Replace mcl_end_crystal_beam.png with unknown provenance with a version from the PixelPerfection texture pack that has a know good free licence. --- .../mcl_end/textures/mcl_end_crystal_beam.png | Bin 2065 -> 2794 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mods/ITEMS/mcl_end/textures/mcl_end_crystal_beam.png b/mods/ITEMS/mcl_end/textures/mcl_end_crystal_beam.png index 1259a5d0ec80af0c59843b46c21fda8853fa9601..94eac193a9b4d7b454ef7826e7cfe1f0540ee348 100644 GIT binary patch delta 2750 zcmV;v3PJUe5b70>NPhq!bVXQnLvm$dbZKvHAXI5>WdJfTF*Q0dFgh?dATTyMH8MIe zGQ}fwv;Y7KUr9tkRCr#kn}?3wybgqqH$6y#1VP^a>C$`e@zu~8W=K&!-rWBKw5p`2 zVp)>Up4N3O-S_X`n^)(3`0$~5>*@FJ-|J$b(`jjrsSKRy*d%7HtZo z<7PEm{;OB7Oc?PSH*O&5^y$+ln@AS<7v8*i6BMw9OQC(R{QUV7O4dJr{+Ms6`>a%8 zg|A(^W)@vsTz|ll<>kwlQzfk&@)ipqe87Rz7wO z_AptebYIC(;KN)~TE|X`Dh- z0xV4xun^J0CDy@c0v#UJ9;R>Z%a<=2Cl+7uDt~L+wop6vO4#nSptaKyC*+9)R6rF} z%Iv+M8M%PP(X=*gEuj%AQwy^2j8Imma)s7bqQj_UL5+vX*aw+x5#psaP%tweSRUp9 z!x?Wvu@Ch4?c28pVVg;fBM%d6r>}$^3NUSYB5Anr)2C12+bbU#4W9@9%+X;4A=%!({Pcm zjFrM6&HF$=p-LDGX;6T|M(YcBD1W2{JwJn2e`o^MysKBQRy9uv7PP%z4>?+UX~}|D z+r4}DE>){?0b#u3T6pc-`b%+c9#m-o8^+>5L9J(-W(s6S0znF&WI;8*-z6xktu|;z zcOcAlIDFyBX-I&dXJTpcqeqVxZ0&lKplrB9v4rj`InB$e1uT$-fu)HBCVvdy=oaju zf&;k^Ds2!Pgg<}&yxM+2cBR>$IpFbXCT2eq(zOXpG(SC=UP~h?g+2Mh%NYkeuJZs? zChwy2pb}QoHSA~~W5?rg(OBeq<(sP=Vr2kdLx~ejG4ixsdg; zc_M+brWvpRf^ZO2VN0KFZ-2#(?6rd$qOBNpTOhL1P8B|0xOi|qu1J~SPW=^y3 z@3@P#nJD`|EeNoG=t0BEg^OIYA6CF&PQb^RiD}7!kTy(Zxe`9Y^ndV;8#{g?u{K-k zNPQjHSn^37e~L>>dpG79TuJwtpVJMU$|0jsr74y_>x0ACJlKNn6T~fT?-Tl^Ex^W0 zKc(v^sHUmbCTs^2e|NxwiCZVvW5MMnY+4U;?%R8CD6DaA365I8Lf(1Z51)xIX(&#AnY}u6MN9G%L#M@tk~I5!GVy5w;B9u6i80bO|pDWL<$|ILva*3NjD0(!0=vSEv)jC^aDTAqVrMA}h5OXa7KKFun7?zQsb?xU zYl2zO6ZAhufY&NlV8Ig3gQaQC!hizY?hVbzoyY>Y;E>K=4N`$;@V*$~Bd7(r7FW8* zxp{CFor#ylYUbnY$fr>d^5iFFz?#QlG;lh9`0$~}+u_4}+^Zlje=Zw-J|G~GitO-- zrGJc%z3gOnA0}qFqVBtefSt%pdk%US1+{RFZ@_}?R^E%?PxnK9_k;5$V5Mz~C4yru zn}s>u(yR$sD6_CG-Hl4ArBzc|snP;wf&A}cW+wdCI_;3k6+bf#`5wRtjbXZc9Z%8wITS@VlGAyjTVnB)4LLk$5<8!r{Hpf5&%tNvrY!H)>e}}o!HuQt&3;+NC07*qoM6N<$ Ef>zolAOHXW delta 2015 zcmV<52O#+B6_F5-NPh>jNkl>+5Tc1^xZ_ z_=uS{4CCqc_SP7f3?blUK74$95U&@<_y0P8#RKVG#r^c{+qcv!uGbPt;X%gE&dypM zOx>s9jXijMeTBmr8^}Ui=7JwDFai}x8|9Glw=j$@&Q&=X3l(;-w#9SgvLe{_{rmSa z7s$ZkJ2Le2^nZjs7*bd;F@R08P4^Yb(F#N>;?z==pnAdSHUNa)R4?&)L-m0n(6bblJdjsg=^BPzSRyv($~farnj zLMi3aP?024B^cfbfV!dfjQ*}fwc>%a>pVb4~|$-L6p?14TGTKla z3ZwTzvQY^t83fb(cH%q$S}2B-LwYjm4S%FjSZe_QWKiV^|GCb#_D$osI}fCziGfVw z#;OcESqIZAcQln{Y)t|goDdT`L#YAdD(}iFelV4{!R9K>8J+86{%ef7FlwW)gDRa( zgY5Jh$`xNebO4GTbi(Ph(F|Muk!>#Zb^x7pAu;KI4IX64Lf@<9%@l)@AE~?DR)2_r zKOH^2@exa>twkK*MHtQ`7b*-t2+@Zstbh zX3K}E9+Y6}A^0A}?AQDl^k~uqx_fup}B<;^IS=BOx@|=z1P&UeFecJPpi{%SoP!oGH{a)J_U3SwFp8sGy7(1FYcT!suF zK#zH#dfvdTw{*Jp4<=;?m;_H!5UbNYHCx-8E`Nrc-E1s342Wy(lZeP(HxD%sF#BmZ1h0EKy{jn5Y6U4#X5^?I@E+4 Date: Fri, 8 Apr 2022 20:28:59 +0000 Subject: [PATCH 32/93] Replace proprietary texture Replace by the texture from PixelPerfection Legacy by XSSheep (CC-BY-SA) --- .../textures/mcl_nether_netheriteblock.png | Bin 425 -> 201 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_netheriteblock.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_netheriteblock.png index 60957f01794f9ecc0ad1eb8ce72749060c7d435b..5b08c3d03e0ffe0769fd45a9ae5869d3d0137c49 100644 GIT binary patch delta 185 zcmV;q07n0*1IYo97=Hu<0002(-QrRJ000tDOjJb{6cia47atuQB_bd#DkwEFFdhus zDgXcga!Eu%R0!84jWG_xFbo5^bdS~K0j8V}NXp*Y?H&W||G!cNJ#aV>1PD*G)`H{v zd1oe$!ZEl`?4sedWMi++OB$n_$OAFDk$PfxDn(L8ce delta 411 zcmV;M0c8Hk0jUF!7=H)`0000V^Z#K00004VQb$4nuFf3k0004FNklAAgaVY5pdSu!JV4~i5ySz3XSkpB5*<{#WVJwC3^ z2W;2!-KurY2PWq*&If+}dSD#KZvoSBVz?j5`Ss-)W4o4d9DjLxe`DCEM=?@@WL5$F}Jpii8behWht`@2$deim=Qdbkt=VtNfxsn1< zRYU~8!W!lx&OKkl00wI>fDFl*vN#*3QPG%^tan{{b8g!LKv=>}rs+6s64ce0TG)3z zeb-+qsvOTPW`BrA-L@cCJO!fFXvsZ;PCH2G=fG=du3Q&&Ehw~HzuC`e3TK@0jDd_&?n7c z?FBIG2l&swu#b8(R!CEroJ)Y$m*;H;Yg4bzeR&7)2^3%`%!y0L-% Date: Fri, 8 Apr 2022 20:40:45 +0000 Subject: [PATCH 33/93] README Add license info --- mods/ITEMS/mcl_nether/README.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 mods/ITEMS/mcl_nether/README.txt diff --git a/mods/ITEMS/mcl_nether/README.txt b/mods/ITEMS/mcl_nether/README.txt new file mode 100644 index 000000000..144039e1a --- /dev/null +++ b/mods/ITEMS/mcl_nether/README.txt @@ -0,0 +1,3 @@ +Mod mcl_nether : basic nether blocs + +Texture of mcl_nether_netheritebloc.png from PixelPerfection Legacy by XSSheep edited by Nova_Wostra (CC-BY-SA 4.0) \ No newline at end of file From 5f2ea5b073ebd2ca1d058208f6518c49bf02d0f3 Mon Sep 17 00:00:00 2001 From: 3raven Date: Fri, 8 Apr 2022 20:45:03 +0000 Subject: [PATCH 34/93] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'mods/ITEMS/m?= =?UTF-8?q?cl=5Fnether/README.txt'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/ITEMS/mcl_nether/README.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_nether/README.txt b/mods/ITEMS/mcl_nether/README.txt index 144039e1a..8deac79a9 100644 --- a/mods/ITEMS/mcl_nether/README.txt +++ b/mods/ITEMS/mcl_nether/README.txt @@ -1,3 +1,3 @@ -Mod mcl_nether : basic nether blocs +Mod mcl_nether : basic nether blocs, forked from Mineclone 2 Texture of mcl_nether_netheritebloc.png from PixelPerfection Legacy by XSSheep edited by Nova_Wostra (CC-BY-SA 4.0) \ No newline at end of file From 86328c0822eed4cce99e4fe3e7ec97638ce67470 Mon Sep 17 00:00:00 2001 From: Johannes Fritz Date: Fri, 8 Apr 2022 16:13:07 -0500 Subject: [PATCH 35/93] WIP Zombies and Husks wear armor --- mods/ENTITIES/mcl_mobs/api/api.lua | 1 + .../mcl_mobs/api/mob_functions/set_up.lua | 100 ++++++++++++++++++ mods/ENTITIES/mobs_mc/zombie.lua | 2 + 3 files changed, 103 insertions(+) diff --git a/mods/ENTITIES/mcl_mobs/api/api.lua b/mods/ENTITIES/mcl_mobs/api/api.lua index c72dca0bd..564c59d0f 100644 --- a/mods/ENTITIES/mcl_mobs/api/api.lua +++ b/mods/ENTITIES/mcl_mobs/api/api.lua @@ -375,6 +375,7 @@ function mobs:register_mob(name, def) --moves the wrong way swap_y_with_x = def.swap_y_with_x or false, reverse_head_yaw = def.reverse_head_yaw or false, + _spawn_with_armor = def.spawn_with_armor, --END HEAD CODE VARIABLES diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua index d9cc4237c..f3d82b0bb 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua @@ -62,6 +62,103 @@ mobs.mob_staticdata = function(self) return minetest.serialize(tmp) end +mobs.armor_setup = function(self) + local armor = self._armor + if not armor then + armor = {} + -- Source: https://minecraft.fandom.com/wiki/Zombie + local materials = { + {name = "leather", chance = 0.3706}, + {name = "gold", chance = 0.4873}, + {name = "chain", chance = 0.129}, + {name = "iron", chance = 0.0127}, + {name = "diamond", chance = 0.0004} + } + local types = { + {name = "helmet", chance = 0.15}, + --{name = "helmet", chance = 1}, + {name = "chestplate", chance = 0.75}, + {name = "leggings", chance = 0.5625}, + {name = "boots", chance = 0.4219} + } + + local material + if type(self._spawn_with_armor) == "string" then + material = self._spawn_with_armor + else + local chance = 0 + for i, m in pairs(materials) do + chance = chance + m.chance + if math.random() <= chance then + material = m.name + break + end + end + end + for i, t in pairs(types) do + if math.random() <= t.chance then + armor[t.name] = material + else + break + end + end + self._armor = armor + end + + local t = "" + local first_image = true + for atype, material in pairs(armor) do + if not first_image then + t = t .. "^" + end + t = t .. "mcl_armor_" .. atype .. "_" .. material .. ".png" + first_image = false + end + if t == "" then + t = "mobs_mc_empty.png" + end + + -- Configure damage groups based on armor + -- Source: https://minecraft.fandom.com/wiki/Armor#Armor_points + local points = 2 + for atype, material in pairs(self._armor) do + local item_name = "mcl_armor:" .. atype .. "_" .. material + points = points + minetest.get_item_group(item_name, "mcl_armor_points") + end + local armor_strength = 100 - 4 * points * 0.8 -- We should realy be using the full damage calculation + local armor_groups = self.object:get_armor_groups() + armor_groups.undead = armor_strength + armor_groups.fleshy = armor_strength + self.object:set_armor_groups(armor_groups) + + local props = self.object:get_properties() + props.textures[1] = t + self.object:set_properties(props) + minetest.chat_send_all(dump(self._armor)) + + -- Rare chance of dropping armor on death + for atype, material in pairs(self._armor) do + local wear = math.random(1, 65535) + local item = "mcl_armor:" .. atype .. "_" .. material .. " 1 " .. wear + self.drops = table.copy(self.drops) + table.insert(self.drops, { + name = item, + chance = 1/0.085, -- 8.5% + min = 1, + max = 1, + looting = "common", + looting_factor = 0.01 / 3, + }) + end + --[[for atype, material in pairs(self._armor) do + if math.random() <= 0.085 then + local wear = math.random(1, 65535) + local item = "mcl_armor:" .. atype .. "_" .. material .. " 1 " .. wear + minetest.add_item(pos, item) + end + end]] +end + -- activate mob and reload settings mobs.mob_activate = function(self, staticdata, def, dtime) @@ -224,6 +321,9 @@ mobs.mob_activate = function(self, staticdata, def, dtime) --update_tag(self) --mobs.set_animation(self, "stand") + if self._spawn_with_armor then + mobs.armor_setup(self) + end -- run on_spawn function if found if self.on_spawn and not self.on_spawn_run then diff --git a/mods/ENTITIES/mobs_mc/zombie.lua b/mods/ENTITIES/mobs_mc/zombie.lua index 3eb0122a7..27432745b 100644 --- a/mods/ENTITIES/mobs_mc/zombie.lua +++ b/mods/ENTITIES/mobs_mc/zombie.lua @@ -204,8 +204,10 @@ local zombie = { attack_type = "punch", punch_timer_cooloff = 0.5, harmed_by_heal = true, + spawn_with_armor = true, } + mobs:register_mob("mobs_mc:zombie", zombie) -- Baby zombie. From 7db8d3cd5fd38fa273998e8feb32f49a22c2594f Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 02:28:43 +0000 Subject: [PATCH 36/93] Add nether wood buttons --- mods/ITEMS/REDSTONE/mesecons_button/init.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mods/ITEMS/REDSTONE/mesecons_button/init.lua b/mods/ITEMS/REDSTONE/mesecons_button/init.lua index 2812b2758..3dcf5e21e 100644 --- a/mods/ITEMS/REDSTONE/mesecons_button/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_button/init.lua @@ -223,6 +223,8 @@ local woods = { { "darkwood", "mcl_core:darkwood", "mcl_core_planks_big_oak.png", S("Dark Oak Button") }, { "sprucewood", "mcl_core:sprucewood", "mcl_core_planks_spruce.png", S("Spruce Button") }, { "junglewood", "mcl_core:junglewood", "default_junglewood.png", S("Jungle Button") }, + { "warped_hyphae_wood", "mcl_mushroom:warped_hyphae_wood", "warped_hyphae_wood.png", S("Warped Hyphae Button") }, + { "crimson_hyphae_wood", "mcl_mushroom:crimson_hyphae_wood", "crimson_hyphae_wood.png", S("Crimson Hyphae Button") }, } for w=1, #woods do From b0392bbeb9542fcf53baa4da8eb000fdac69652c Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 02:39:52 +0000 Subject: [PATCH 37/93] Add blackstone button --- mods/ITEMS/REDSTONE/mesecons_button/init.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mods/ITEMS/REDSTONE/mesecons_button/init.lua b/mods/ITEMS/REDSTONE/mesecons_button/init.lua index 3dcf5e21e..b324fcf6d 100644 --- a/mods/ITEMS/REDSTONE/mesecons_button/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_button/init.lua @@ -216,6 +216,18 @@ mesecon.register_button( S("A stone button is a redstone component made out of stone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second."), "mesecons_button_push") +mesecon.register_button( + "polished_blackstone", + S("Polished Blackstone Button"), + "mcl_blackstone_polished.png", + "mcl_blackstone:blackstone_polished", + mcl_sounds.node_sound_stone_defaults(), + {material_stone=1,handy=1,pickaxey=1}, + 1, + false, + S("A polished blackstone button is a redstone component made out of polished blackstone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second."), + "mesecons_button_push") + local woods = { { "wood", "mcl_core:wood", "default_wood.png", S("Oak Button") }, { "acaciawood", "mcl_core:acaciawood", "default_acacia_wood.png", S("Acacia Button") }, From 45c388931662f9a3b99a5980019968c3737c84c1 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 02:58:14 +0000 Subject: [PATCH 38/93] Add nether wood pressure plate --- mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua b/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua index d040c8666..db08e81c7 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua @@ -164,6 +164,8 @@ local woods = { { "darkwood", "mcl_core:darkwood", "mcl_core_planks_big_oak.png", S("Dark Oak Pressure Plate" )}, { "sprucewood", "mcl_core:sprucewood", "mcl_core_planks_spruce.png", S("Spruce Pressure Plate") }, { "junglewood", "mcl_core:junglewood", "default_junglewood.png", S("Jungle Pressure Plate") }, + { "warped_hyphae_wood", "mcl_mushrooom:warped_hyphae_wood", "warped_hyphae_wood.png", S("Warped Hyphae Pressure Plate")}, + { "crimson_hyphae_wood", "mcl_mushrooom:crimson_hyphae_wood", "crimson_hyphae_wood.png", S("Crimson Hyphae Pressure Plate")}, } for w=1, #woods do From 3129379fe97e656e37382690959600903683fd8a Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 03:21:38 +0000 Subject: [PATCH 39/93] Add steel and black stone pressure plate light and heavy weighted pressure plate don't work the same as in minecraft. They dont give signal proportional to entities number. Modified heavey weighted pressure plate so it detect all entities as in minecraft wiki. --- .../REDSTONE/mesecons_pressureplates/init.lua | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua b/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua index db08e81c7..b3d7a4de8 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua @@ -203,6 +203,19 @@ mesecon.register_pressure_plate( { player = true, mob = true }, S("A stone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.")) +mesecon.register_pressure_plate( + "mesecons_pressureplates:pressure_plate_polished_blackstone", + S("Polished Blackstone Pressure Plate"), + {"mcl_blackstone_polished.png"}, + {"mcl_blackstone_polished.png"}, + "default_stone.png", + nil, + {{"mcl_blackstone:blackstone_polished", "mcl_blackstone:blackstone_polished"}}, + mcl_sounds.node_sound_stone_defaults(), + {pickaxey=1, material_stone=1}, + { player = true, mob = true }, + S("A polished blackstone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.")) + mesecon.register_pressure_plate( "mesecons_pressureplates:pressure_plate_gold", S("Light-Weighted Pressure Plate"), @@ -213,5 +226,18 @@ mesecon.register_pressure_plate( {{"mcl_core:gold_ingot", "mcl_core:gold_ingot"}}, mcl_sounds.node_sound_metal_defaults(), {pickaxey=1}, - { player = true, mob = true }, - S("A light-weighted pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.")) + nil, + S("A light-weighted pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.")) + +mesecon.register_pressure_plate( + "mesecons_pressureplates:pressure_plate_iron", + S("Heavy-Weighted Pressure Plate"), + {"default_steel_block.png"}, + {"default_steel_block.png"}, + "default_steel_block.png", + nil, + {{"mcl_core:iron_ingot", "mcl_core:iron_ingot"}}, + mcl_sounds.node_sound_metal_defaults(), + {pickaxey=1}, + nil, + S("A heavy-weighted pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.")) From 5fa14070d3a93f2611da5ab7316a6d99010f2019 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 03:50:37 +0000 Subject: [PATCH 40/93] Add target from mcl2 --- mods/ITEMS/REDSTONE/mcl_target/init.lua | 70 +++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 mods/ITEMS/REDSTONE/mcl_target/init.lua diff --git a/mods/ITEMS/REDSTONE/mcl_target/init.lua b/mods/ITEMS/REDSTONE/mcl_target/init.lua new file mode 100644 index 000000000..268c6ebe3 --- /dev/null +++ b/mods/ITEMS/REDSTONE/mcl_target/init.lua @@ -0,0 +1,70 @@ +local S = minetest.get_translator("mcl_target") + +local mod_farming = minetest.get_modpath("mcl_farming") + +mcl_target = {} + +function mcl_target.hit(pos, time) + minetest.set_node(pos, {name="mcl_target:target_on"}) + mesecon.receptor_on(pos, mesecon.rules.alldirs) + + local timer = minetest.get_node_timer(pos) + timer:start(time) +end + +minetest.register_node("mcl_target:target_off", { + description = S("Target"), + _doc_items_longdesc = S("A target is a block that provides a temporary redstone charge when hit by a projectile."), + _doc_items_usagehelp = S("Throw a projectile on the target to activate it."), + tiles = {"mcl_target_target_top.png", "mcl_target_target_top.png", "mcl_target_target_side.png"}, + groups = {hoey = 1}, + sounds = mcl_sounds.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.1}, + }), + mesecons = { + receptor = { + state = mesecon.state.off, + rules = mesecon.rules.alldirs, + }, + }, + _mcl_blast_resistance = 0.5, + _mcl_hardness = 0.5, +}) + +minetest.register_node("mcl_target:target_on", { + description = S("Target"), + _doc_items_create_entry = false, + tiles = {"mcl_target_target_top.png", "mcl_target_target_top.png", "mcl_target_target_side.png"}, + groups = {hoey = 1, not_in_creative_inventory = 1}, + drop = "mcl_target:target_off", + sounds = mcl_sounds.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.1}, + }), + on_timer = function(pos, elapsed) + local node = minetest.get_node(pos) + if node.name == "mcl_target:target_on" then --has not been dug + minetest.set_node(pos, {name="mcl_target:target_off"}) + mesecon.receptor_off(pos, mesecon.rules.alldirs) + end + end, + mesecons = { + receptor = { + state = mesecon.state.on, + rules = mesecon.rules.alldirs, + }, + }, + _mcl_blast_resistance = 0.5, + _mcl_hardness = 0.5, +}) + + +if mod_farming then + minetest.register_craft({ + output = "mcl_target:target_off", + recipe = { + {"", "mesecons:redstone", ""}, + {"mesecons:redstone", "mcl_farming:hay_block", "mesecons:redstone"}, + {"", "mesecons:redstone", ""}, + }, + }) +end \ No newline at end of file From 13e92cd5b314c8e2e0b9dad4d1cd1498bc698ed0 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 03:51:46 +0000 Subject: [PATCH 41/93] Add target from mcl 2 --- mods/ITEMS/REDSTONE/mcl_target/mod.conf | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 mods/ITEMS/REDSTONE/mcl_target/mod.conf diff --git a/mods/ITEMS/REDSTONE/mcl_target/mod.conf b/mods/ITEMS/REDSTONE/mcl_target/mod.conf new file mode 100644 index 000000000..16f70ed12 --- /dev/null +++ b/mods/ITEMS/REDSTONE/mcl_target/mod.conf @@ -0,0 +1,3 @@ +name = mcl_target +author = AFCMS +depends = mesecons, mcl_sounds \ No newline at end of file From 5d214ae4bf9c913d4df25737f45d7f5b4b4d9bd9 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 03:53:12 +0000 Subject: [PATCH 42/93] Add target --- mods/ITEMS/REDSTONE/mcl_target/locale/template.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 mods/ITEMS/REDSTONE/mcl_target/locale/template.txt diff --git a/mods/ITEMS/REDSTONE/mcl_target/locale/template.txt b/mods/ITEMS/REDSTONE/mcl_target/locale/template.txt new file mode 100644 index 000000000..18bc7708c --- /dev/null +++ b/mods/ITEMS/REDSTONE/mcl_target/locale/template.txt @@ -0,0 +1,4 @@ +# textdomain: mcl_target +Target= +A target is a block that provides a temporary redstone charge when hit by a projectile.= +Throw a projectile on the target to activate it.= \ No newline at end of file From 11a9f6baead3f95657e7580aa43028ea7e00c970 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 03:54:13 +0000 Subject: [PATCH 43/93] Add target --- mods/ITEMS/REDSTONE/mcl_target/locale/mcl_target.fr.tr | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 mods/ITEMS/REDSTONE/mcl_target/locale/mcl_target.fr.tr diff --git a/mods/ITEMS/REDSTONE/mcl_target/locale/mcl_target.fr.tr b/mods/ITEMS/REDSTONE/mcl_target/locale/mcl_target.fr.tr new file mode 100644 index 000000000..6c558683d --- /dev/null +++ b/mods/ITEMS/REDSTONE/mcl_target/locale/mcl_target.fr.tr @@ -0,0 +1,4 @@ +# textdomain: mcl_target +Target=Cible +A target is a block that provides a temporary redstone charge when hit by a projectile.=La cible est un bloc qui se comporte comme une source d'énergie temporaire quand elle est frappée par un projectile. +Throw a projectile on the target to activate it.=Lancer un projectile sur la cible pour l'activer. \ No newline at end of file From 820ceceffcae2e1a5468ceb4a9d231c29d83c85a Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 03:55:23 +0000 Subject: [PATCH 44/93] Add target --- .../textures/mcl_target_target_side.png | Bin 0 -> 752 bytes .../mcl_target/textures/mcl_target_target_top.png | Bin 0 -> 752 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mods/ITEMS/REDSTONE/mcl_target/textures/mcl_target_target_side.png create mode 100644 mods/ITEMS/REDSTONE/mcl_target/textures/mcl_target_target_top.png diff --git a/mods/ITEMS/REDSTONE/mcl_target/textures/mcl_target_target_side.png b/mods/ITEMS/REDSTONE/mcl_target/textures/mcl_target_target_side.png new file mode 100644 index 0000000000000000000000000000000000000000..286f7767edfb3060af8b57a0521c6930b36bbf36 GIT binary patch literal 752 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01F8K01F8L68c9z00007bV*G`2jmA2 z4>=XXM-d(X00MAHL_t(I%YBp2OVe=}$6vFr!@i&SZLWXM4&*}N_ zJnzr*KF3(wO3+wmMF^!3 zSES64H$xuKH2G3@7fS-1!i{mUB z*4Y@G0RJsQ+bLQaZ72XzW>8*y#2xTsce*&`aA2`jm4H*Rc+Ls<364yIua!hHjp>2! zdiLPuJ6ZrS4%o zv!kS9aiU?pP*ho5+vSv$Y=(3;Lpn}}M&-jU=C1Y}q48^Qxj^G;Hp|;rKQK+*^JRrl zSRQ{)@8r;bg|rum5Dn`DN2ba6TB$#4$?c%Vb&}@(PUZ&2>75(`U@sCmR?5MVY3lkr zkTR1~aB)KWP#1FpPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01F8K01F8L68c9z00007bV*G`2jmA2 z4>|)JzW0m(00MAHL_t(I%YBp2OVe=}$6vFr!@i&SZLWXM4&*}N_ zJnzr*KF3(wO3+wmMF^!3 zSES64H$xuKH2G3@7fS-1!i{mUB z*4Y@G0RJsQ+bLQaZ72XzW>8*y#2xTsce*&`aA2`jm4H*Rc+Ls<364yIua!hHjp>2! zdiLPuJ6ZrS4%o zv!kS9aiU?pP*ho5+vSv$Y=(3;Lpn}}M&-jU=C1Y}q48^Qxj^G;Hp|;rKQK+*^JRrl zSRQ{)@8r;bg|rum5Dn`DN2ba6TB$#4$?c%Vb&}@(PUZ&2>75(`U@sCmR?5MVY3lkr zkTR1~aB)KWP#1Fp Date: Sat, 9 Apr 2022 04:12:11 +0000 Subject: [PATCH 45/93] Add french translation --- mods/ITEMS/REDSTONE/mcl_bells/locale/mcl_bells.fr.tr | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 mods/ITEMS/REDSTONE/mcl_bells/locale/mcl_bells.fr.tr diff --git a/mods/ITEMS/REDSTONE/mcl_bells/locale/mcl_bells.fr.tr b/mods/ITEMS/REDSTONE/mcl_bells/locale/mcl_bells.fr.tr new file mode 100644 index 000000000..a1f7a075c --- /dev/null +++ b/mods/ITEMS/REDSTONE/mcl_bells/locale/mcl_bells.fr.tr @@ -0,0 +1,2 @@ +# textdomain: mcl_observers +Bell=Cloche From 3e8e74b633e459591e36f2a0f4a517f217ffc6f7 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 04:21:16 +0000 Subject: [PATCH 46/93] Update template --- mods/ITEMS/REDSTONE/mesecons_button/locale/template.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mods/ITEMS/REDSTONE/mesecons_button/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_button/locale/template.txt index 4c352b878..41d404101 100644 --- a/mods/ITEMS/REDSTONE/mesecons_button/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_button/locale/template.txt @@ -1,6 +1,7 @@ # textdomain: mesecons_button Use the button to push it.= Stone Button= +Polished Blackstone Button= A stone button is a redstone component made out of stone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second.= Oak Button= Acacia Button= @@ -8,6 +9,8 @@ Birch Button= Dark Oak Button= Spruce Button= Jungle Button= +Warped Hyphae Button= +Crimson Hyphae Button= A wooden button is a redstone component made out of wood which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1.5 seconds. Wooden buttons may also be pushed by arrows.= Provides redstone power when pushed= Push duration: @1s= From 5429a259ffa8bd0ec23515dcd281f7238ff3aa16 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 04:24:09 +0000 Subject: [PATCH 47/93] Update french translation --- .../REDSTONE/mesecons_button/locale/mesecons_button.fr.tr | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.fr.tr b/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.fr.tr index 96f963b4b..03d78b50d 100644 --- a/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.fr.tr +++ b/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.fr.tr @@ -1,6 +1,7 @@ # textdomain: mesecons_button Use the button to push it.=Utilisez le bouton pour le pousser. Stone Button=Bouton de pierre +Polished Blackstone Button=Bouton de Pierre Noire Polie A stone button is a redstone component made out of stone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second.=Un bouton en pierre est un composant Redstone en pierre qui peut être poussé pour fournir de la puissance Redstone. Lorsqu'il est poussé, il alimente les composants Redstone adjacents pendant 1 seconde. Oak Button=Bouton en Chêne Acacia Button=Bouton en Acacia @@ -8,6 +9,8 @@ Birch Button=Bouton en Bouleau Dark Oak Button=Bouton en Chêne Noir Spruce Button=Bouton en Sapin Jungle Button=Bouton en Acajou +Warped Hyphae Button=Bouton en Hyphae Tordu +Crimson Hyphae Button=Bouton en Hyphae Ecarlate A wooden button is a redstone component made out of wood which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1.5 seconds. Wooden buttons may also be pushed by arrows.=Un bouton en bois est un composant de redstone en bois qui peut être poussé pour fournir une puissance de redstone. Lorsqu'il est poussé, il alimente les composants Redstone adjacents pendant 1,5 seconde. Les boutons en bois peuvent également être poussés par des flèches. Provides redstone power when pushed=Fournit une puissance de redstone lorsqu'il est poussé Push duration: @1s=Durée de poussée: @1s From c0e83aa0cd545468280f011a2cba8f3c46d70dea Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 04:41:09 +0000 Subject: [PATCH 48/93] Update template.txt --- .../REDSTONE/mesecons_pressureplates/locale/template.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/template.txt index 96eb3f922..a118f727a 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/template.txt @@ -6,9 +6,17 @@ Birch Pressure Plate= Dark Oak Pressure Plate= Spruce Pressure Plate= Jungle Pressure Plate= +Warped Hyphae Pressure Plate= +Crimson Hyphae Pressure Plate= A wooden pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.= Stone Pressure Plate= A stone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.= +Polished Blackstone Pressure Plate= +A polished blackstone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.= +Light-Weighted Pressure Plate= +A light-weighted pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.= +Heavy-Weighted Pressure Plate= +A heavy-weighted pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.= Provides redstone power when pushed= Pushable by players, mobs and objects= Pushable by players and mobs= From 69fc0228d6137e920a473186e3c851acb073bdeb Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 05:00:07 +0000 Subject: [PATCH 49/93] Update french translation --- .../locale/mesecons_pressureplates.fr.tr | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.fr.tr b/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.fr.tr index ef145de56..f82d3f552 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.fr.tr +++ b/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.fr.tr @@ -6,10 +6,18 @@ Birch Pressure Plate=Plaque de pression en Bouleau Dark Oak Pressure Plate=Plaque de pression en Chêne Noir Spruce Pressure Plate=Plaque de pression en Sapin Jungle Pressure Plate=Plaque de pression en Acajou +Warped Hyphae Pressure Plate=Plaque de pression en Hyphae Tordue +Crimson Hyphae Pressure Plate=Plaque de pression en Hyphae Ecarlate A wooden pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.=Une plaque de pression en bois est un composant de redstone qui alimente ses blocs environnants en puissance de redstone tandis que tout objet mobile (y compris les objets lâchés, les joueurs et les mobs) repose dessus. Stone Pressure Plate=Plaque de pression en pierre A stone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.=Une plaque de pression en pierre est un composant de redstone qui alimente ses blocs environnants en puissance de redstone pendant qu'un joueur ou un mob se tient au-dessus. Il n'est déclenché par rien d'autre. -Provides redstone power when pushed=Fournit une puissance de redstone lorsqu'il est poussé +Polished Blackstone Pressure Plate=Plaque de pression en pierre noire polie +A polished blackstone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.=Une plaque de pression en pierre noire polie est un composant de redstone qui alimente ses blocs environnants en puissance de redstone pendant qu'un joueur ou un mob se tient au-dessus. Il n'est déclenché par rien d'autre. +Light-Weighted Pressure Plate=Plaque de pression pondérée légère +A light-weighted pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.=Une plaque de pression pondérée légère est un composant de redstone qui alimente ses blocs environnants en puissance de redstone tandis que tout objet mobile (y compris les objets lâchés, les joueurs et les mobs) repose dessus. +Heavy-Weighted Pressure Plate=Plaque de pression pondérée lourde +A heavy-weighted pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.=Une plaque de pression pondérée lourde est un composant de redstone qui alimente ses blocs environnants en puissance de redstone tandis que tout objet mobile (y compris les objets lâchés, les joueurs et les mobs) repose dessus. +Provides redstone power when pushed=Fournit une puissance de redstone lorsque poussé Pushable by players, mobs and objects=Poussable par les joueurs, les mobs et les objets Pushable by players and mobs=Poussable par les joueurs et les mobs Pushable by players=Poussable par les joueurs From e017d4a724b8a1c6e6351df808a0aedfdaee036a Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 05:33:22 +0000 Subject: [PATCH 50/93] Add translation --- mods/ITEMS/mcl_beds/respawn_anchor.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mods/ITEMS/mcl_beds/respawn_anchor.lua b/mods/ITEMS/mcl_beds/respawn_anchor.lua index 5f279abd7..e479ac097 100644 --- a/mods/ITEMS/mcl_beds/respawn_anchor.lua +++ b/mods/ITEMS/mcl_beds/respawn_anchor.lua @@ -2,10 +2,11 @@ --Nether ends at y -29077 --Nether roof at y -28933 - +local S = minetest.get_translator(minetest.get_current_modname()) +--local mod_doc = minetest.get_modpath("doc") -> maybe add documentation ? minetest.register_node("mcl_beds:respawn_anchor",{ - description="Respawn Anchor", + description=S("Respawn Anchor"), tiles = { "respawn_anchor_top_off.png", "respawn_anchor_bottom.png", @@ -36,7 +37,7 @@ minetest.register_node("mcl_beds:respawn_anchor",{ _mcl_hardness = 22.5 }) minetest.register_node("mcl_beds:respawn_anchor_charged_1",{ - description="Respawn Anchor", + description=S("Respawn Anchor"), tiles = { "portal.png", "respawn_anchor_bottom.png", @@ -104,7 +105,7 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_2",{ }) minetest.register_node("mcl_beds:respawn_anchor_charged_3",{ - description="Respawn Anchor", + description=S("Respawn Anchor") tiles = { "portal.png", "respawn_anchor_bottom.png", @@ -138,7 +139,7 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_3",{ }) minetest.register_node("mcl_beds:respawn_anchor_charged_4",{ - description="Respawn Anchor", + description=S("Respawn Anchor"), tiles = { "portal.png", "respawn_anchor_bottom.png", From 8f64a1e18c2761d98a393b0a5664291d685c1406 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 05:35:54 +0000 Subject: [PATCH 51/93] Update translation --- mods/ITEMS/mcl_beds/locale/template.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/ITEMS/mcl_beds/locale/template.txt b/mods/ITEMS/mcl_beds/locale/template.txt index 5525bd91b..69c493880 100644 --- a/mods/ITEMS/mcl_beds/locale/template.txt +++ b/mods/ITEMS/mcl_beds/locale/template.txt @@ -40,3 +40,4 @@ You will fall asleep when all players are in bed.= You will fall asleep when @1% of all players are in bed.= You're in bed.= Allows you to sleep= +Respawn Anchor= From b7c521bedc85ac5aa6566b53a3438bdb7c7099a6 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 05:37:39 +0000 Subject: [PATCH 52/93] Update french translation --- mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr b/mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr index d85d48bf1..ba513df3a 100644 --- a/mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr +++ b/mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr @@ -39,3 +39,4 @@ You're sleeping.=Tu dors. You will fall asleep when all players are in bed.=Vous vous endormirez lorsque tous les joueurs seront au lit. You're in bed.=Tu es au lit. Allows you to sleep=Vous permet de dormir +Respwn Anchor=Ancre de Réapparition \ No newline at end of file From c1a7d3e504033adb2f1ed8d41643725bbf2b89ab Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 06:07:35 +0000 Subject: [PATCH 53/93] Update --- mods/ITEMS/mcl_compass/locale/template.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/ITEMS/mcl_compass/locale/template.txt b/mods/ITEMS/mcl_compass/locale/template.txt index 462a08bc4..67ca6e840 100644 --- a/mods/ITEMS/mcl_compass/locale/template.txt +++ b/mods/ITEMS/mcl_compass/locale/template.txt @@ -2,3 +2,4 @@ Compasses are tools which point to the world origin (X@=0, Z@=0) or the spawn point in the Overworld.= Compass= Points to the world origin= +Lodestone Compass= From e4865338fcefb678a19a738c2ec58cd27ac96515 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 06:12:07 +0000 Subject: [PATCH 54/93] Update translation --- mods/ITEMS/mcl_compass/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_compass/init.lua b/mods/ITEMS/mcl_compass/init.lua index 812c2345f..dbb2e8358 100644 --- a/mods/ITEMS/mcl_compass/init.lua +++ b/mods/ITEMS/mcl_compass/init.lua @@ -206,7 +206,7 @@ mcl_compass.stereotype = "mcl_compass:"..tostring(stereotype_frame) minetest.register_node("mcl_compass:lodestone",{ - description="Lodestone", + description=S("Lodestone"), on_rightclick = function(pos, node, player, itemstack) if itemstack.get_name(itemstack).match(itemstack.get_name(itemstack),"mcl_compass:") then if itemstack.get_name(itemstack) ~= "mcl_compass:lodestone" then From 99c4fbfc389e199cfd85cfde5d2a8294c6873b78 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 06:13:17 +0000 Subject: [PATCH 55/93] Update --- mods/ITEMS/mcl_compass/locale/template.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/ITEMS/mcl_compass/locale/template.txt b/mods/ITEMS/mcl_compass/locale/template.txt index 67ca6e840..48157aa14 100644 --- a/mods/ITEMS/mcl_compass/locale/template.txt +++ b/mods/ITEMS/mcl_compass/locale/template.txt @@ -3,3 +3,4 @@ Compasses are tools which point to the world origin (X@=0, Z@=0) or the spawn po Compass= Points to the world origin= Lodestone Compass= +Lodestone= \ No newline at end of file From fd94fba22c08c1f438b030707d28410ea30a7b92 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 06:15:06 +0000 Subject: [PATCH 56/93] Update french translation --- mods/ITEMS/mcl_compass/locale/mcl_compass.fr.tr | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mods/ITEMS/mcl_compass/locale/mcl_compass.fr.tr b/mods/ITEMS/mcl_compass/locale/mcl_compass.fr.tr index 89299fde7..8ad4bda79 100644 --- a/mods/ITEMS/mcl_compass/locale/mcl_compass.fr.tr +++ b/mods/ITEMS/mcl_compass/locale/mcl_compass.fr.tr @@ -2,3 +2,5 @@ Compasses are tools which point to the world origin (X@=0, Z@=0) or the spawn point in the Overworld.=Les boussoles sont des outils qui pointent vers l'origine du monde (X@=0,Z@=0) ou le point d'apparition dans l'Overworld. Compass=Boussole Points to the world origin=Pointe vers l'origine mondiale +Lodestone Compass=Boussole magnétisée +Lodestone=Magnétite From f60588cf25561486bdc155852c167347deace204 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 06:38:04 +0000 Subject: [PATCH 57/93] Update Please when you add stuff update the template.txt and not just one translation file --- mods/ITEMS/mcl_core/locale/template.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mods/ITEMS/mcl_core/locale/template.txt b/mods/ITEMS/mcl_core/locale/template.txt index 57b15ef82..901c0a4a3 100644 --- a/mods/ITEMS/mcl_core/locale/template.txt +++ b/mods/ITEMS/mcl_core/locale/template.txt @@ -284,3 +284,7 @@ Slows down movement= 2×2 saplings @= large tree= Grows on sand or dirt next to water= Stackable= +Moss= +Moss Carpet= +A moss block is a natural block that can be spread to some other blocks by using bone meal.= +Moss Carpets are a thin decorative variant of the moss block.= \ No newline at end of file From 6afda0af92e3d403887a1a10d0c712355a8fb674 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 06:42:51 +0000 Subject: [PATCH 58/93] Update french translation --- mods/ITEMS/mcl_core/locale/mcl_core.fr.tr | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr b/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr index c4c818aae..3dee12c57 100644 --- a/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr +++ b/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr @@ -256,3 +256,7 @@ Slows down movement=Ralentit le mouvement 2×2 saplings @= large tree=2×2 pousses @= grand arbre Grows on sand or dirt next to water=Pousse sur le sable ou la terre près de l'eau Stackable=Empilable +Moss=Mousse +Moss Carpet=Tapis de Mousse +A moss block is a natural block that can be spread to some other blocks by using bone meal.=Un bloc de mousse est un bloc naturel qui peut se propager à d'autres blocs en utilisant de la farine d'os. +Moss Carpets are a thin decorative variant of the moss block.=Les tapis de mousse sont une fine variante décorative du bloc de mousse. \ No newline at end of file From 7f34c979ff5e99ebde27c5f7404b70537a810e89 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 06:49:31 +0000 Subject: [PATCH 59/93] update --- mods/ITEMS/mcl_core/locale/mcl_core.fr.tr | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr b/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr index 3dee12c57..d51cf831a 100644 --- a/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr +++ b/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr @@ -92,6 +92,7 @@ Diorite=Diorite Diorite is an igneous rock.=La diorite est une roche volcanique. Dirt=Terre Dirt acts as a soil for a few plants. When in light, this block may grow a grass or mycelium cover if such blocks are nearby.=La terre agit comme un sol pour quelques plantes. Lorsqu'il est à la lumière, ce bloc peut faire pousser une couverture d'herbe ou de mycélium si ces blocs sont à proximité. +Enchanted Golden Apple=Pomme Dorée Enchantée Emerald=Emeraude Emerald Ore=Minerai d'Emeraude Emerald ore is the ore of emeralds. It is very rare and can be found alone, not in clusters.=Le minerai d'émeraude produit des émeraudes. Il est très rare et ne peut être trouvé que seul, pas en filons. From 9dd85f9f7b85147e9ef95e9a8137a3bb4670398c Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 07:12:24 +0000 Subject: [PATCH 60/93] Update french translation --- mods/ITEMS/mcl_core/locale/mcl_core.fr.tr | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr b/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr index d51cf831a..83922aa86 100644 --- a/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr +++ b/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr @@ -155,6 +155,8 @@ Oak Wood Planks=Planches de Chêne Oak leaves are grown from oak trees.=Les feuilles de chêne sont cultivées à partir de chênes. Obsidian=Obsidienne Obsidian is an extremely hard mineral with an enourmous blast-resistance. Obsidian is formed when water meets lava.=L'obsidienne est un minéral extrêmement dur avec une énorme résistance à l'explosion. L'obsidienne se forme lorsque l'eau rencontre la lave. +Crying Obsidian=Obsidienne Pleureuse +Crying obsidian is a luminous obsidian that can generate as part of ruined portals.=L'obsidienne pleureuse est de l'obsidienne lumineuse générée comme composant des portails en ruines. One of the most common blocks in the world, almost the entire underground consists of stone. It sometimes contains ores. Stone may be created when water meets lava.=L'un des blocs les plus courants au monde, presque tout le sous-sol est en pierre. Il contient parfois des minerais. La pierre peut être créée lorsque l'eau rencontre la lave. Orange Stained Glass=Verre Orange Packed Ice=Glace Compactée @@ -203,20 +205,45 @@ Stained glass is a decorative and mostly transparent block which comes in variou Stick=Bâton Sticks are a very versatile crafting material; used in countless crafting recipes.=Les bâtons sont un matériau d'artisanat très polyvalent; utilisé dans d'innombrables recettes d'artisanat. Stone=Roche +Stripped Acacia Log=Bois d'Acacia +Stripped Acacia Wood=Bois Ecorché d'Acacia +Stripped Birch Log=Bois de Bouleau +Stripped Birch Wood=Bois Ecorché de Bouleau +Stripped Dark Oak Log=Bois de Chêne Noir +Stripped Dark Oak Wood=Bois Ecorché de Chêne Noir +Stripped Jungle Log=Bois d'Acajou +Stripped Jungle Wood=Bois Ecorché d'Acajou +Stripped Oak Log=Bois de Chêne +Stripped Oak Wood=Bois Ecorché de Chêne +Stripped Spruce Log=Bois de Sapin +Stripped Spruce Wood=Bois Ecorché de Sapin Stone Bricks=Pierre Taillée Sugar=Sucre Sugar Canes=Canne à Sucre Sugar canes are a plant which has some uses in crafting. Sugar canes will slowly grow up to 3 blocks when they are next to water and are placed on a grass block, dirt, sand, red sand, podzol or coarse dirt. When a sugar cane is broken, all sugar canes connected above will break as well.=Les cannes à sucre sont une plante qui a certaines utilisations dans l'artisanat. Les cannes à sucre poussent lentement jusqu'à 3 blocs lorsqu'elles sont à côté de l'eau et sont placées sur un bloc d'herbe, de terre, de sable, de sable rouge, de podzol ou de terre stérile. Lorsqu'une canne à sucre est cassée, toutes les cannes à sucre connectées au-dessus se brisent également. Sugar canes can only be placed top of other sugar canes and on top of blocks on which they would grow.=Les cannes à sucre ne peuvent être placées que sur d'autres cannes à sucre et sur des blocs sur lesquels elles poussent. Sugar comes from sugar canes and is used to make sweet foods.=Le sucre provient des cannes à sucre et est utilisé pour fabriquer des aliments sucrés. +The stripped trunk of an acacia tree.=Le tronc écorché d'un acacia. +The stripped trunk of a birch tree.=Le tronc écorché d'un bouleau. +The stripped trunk of a dark oak tree.=Le tronc écorché d'un chêne noir. +The stripped trunk of a jungle tree.=Le tronc écorché d'un acajou. +The stripped trunk of an oak tree.=Le tronc écorché d'un chêne. +The stripped trunk of a spruce tree.=Le tronc écorché d'un sapin. The trunk of a birch tree.=Le tronc d'un bouleau. The trunk of a dark oak tree.=Le tronc d'un chêne noir. The trunk of a jungle tree.=Le tronc d'un acajou. The trunk of a spruce tree.=Le tronc d'un sapin. The trunk of an acacia.=Le tronc d'un acacia The trunk of an oak tree.=Le tronc d'un chêne. +The stripped wood of an acacia tree.=Les planches écorchée d'un acacia. +The stripped wood of a birch tree.=Les planches écorchée d'un bouleau. +The stripped wood of a dark oak tree.=Les planches écorchée d'un chêne noir. +The stripped wood of a jungle tree.=Les planches écorchée d'un acajou. +The stripped wood of an oak tree.=Les planches écorchée d'un chêne. +The stripped wood of a spruce tree.=Les planches écorchée d'un sapin. This block consists of a couple of loose stones and can't support itself.=Ce bloc se compose de quelques pierres lâches et ne peut pas se soutenir. This is a decorative block surrounded by the bark of a tree trunk.=Il s'agit d'un bloc décoratif entouré par l'écorce d'un tronc d'arbre. +This is a decorative block.=Il s'agit d'un bloc décoratif. This is a full block of snow. Snow of this thickness is usually found in areas of extreme cold.=Ceci est un bloc de neige complet. La neige de cette épaisseur se trouve généralement dans les zones de froid extrême. This is a piece of cactus commonly found in dry areas, especially deserts. Over time, cacti will grow up to 3 blocks high on sand or red sand. A cactus hurts living beings touching it with a damage of 1 HP every half second. When a cactus block is broken, all cactus blocks connected above it will break as well.=Il s'agit d'un morceau de cactus que l'on trouve couramment dans les zones sèches, en particulier dans les déserts. Au fil du temps, les cactus pousseront jusqu'à 3 blocs de haut sur le sable ou le sable rouge. Un cactus blesse les êtres vivants qui le touchent avec des dégâts de 1 HP toutes les demi-secondes. Lorsqu'un bloc de cactus est brisé, tous les blocs de cactus connectés au-dessus se brisent également. This stone contains pure gold, a rare metal.=Cette pierre contient de l'or pur, un métal rare. From cc300971b3b478efb39b68db7bcbfea615417d4e Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 07:42:19 +0000 Subject: [PATCH 61/93] Update --- mods/ITEMS/mcl_furnaces/locale/template.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mods/ITEMS/mcl_furnaces/locale/template.txt b/mods/ITEMS/mcl_furnaces/locale/template.txt index 4f88824b0..edbc185a5 100644 --- a/mods/ITEMS/mcl_furnaces/locale/template.txt +++ b/mods/ITEMS/mcl_furnaces/locale/template.txt @@ -7,3 +7,10 @@ Burning Furnace= Recipe book= Inventory= Uses fuel to smelt or cook items= +Blast Furnace= +Blast Furnaces cook or smelt several items, using a furnace fuel, into something else, but faster than a normal furnace.= +Use the recipe book to see what you can smelt, what you can use as fuel and how long it will burn.= +Smoker= +Uses fuel to smelt or cook items= +Smokers cook or smelt several items, using a furnace fuel, into something else, but faster than a normal furnace.= +Use the recipe book to see what you can smelt, what you can use as fuel and how long it will burn.= From f46d0930388fb14b56c1f731386852a359c85ec6 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 07:44:09 +0000 Subject: [PATCH 62/93] remove doublon --- mods/ITEMS/mcl_furnaces/locale/template.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/mods/ITEMS/mcl_furnaces/locale/template.txt b/mods/ITEMS/mcl_furnaces/locale/template.txt index edbc185a5..ba0b31c4d 100644 --- a/mods/ITEMS/mcl_furnaces/locale/template.txt +++ b/mods/ITEMS/mcl_furnaces/locale/template.txt @@ -11,6 +11,5 @@ Blast Furnace= Blast Furnaces cook or smelt several items, using a furnace fuel, into something else, but faster than a normal furnace.= Use the recipe book to see what you can smelt, what you can use as fuel and how long it will burn.= Smoker= -Uses fuel to smelt or cook items= Smokers cook or smelt several items, using a furnace fuel, into something else, but faster than a normal furnace.= Use the recipe book to see what you can smelt, what you can use as fuel and how long it will burn.= From cbfac6074289f3ad7ea91449952f37d1c2ed11fd Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 07:45:41 +0000 Subject: [PATCH 63/93] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'mods/ITEMS/m?= =?UTF-8?q?cl=5Ffurnaces/locale/template.txt'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/ITEMS/mcl_furnaces/locale/template.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/mods/ITEMS/mcl_furnaces/locale/template.txt b/mods/ITEMS/mcl_furnaces/locale/template.txt index ba0b31c4d..d48de3909 100644 --- a/mods/ITEMS/mcl_furnaces/locale/template.txt +++ b/mods/ITEMS/mcl_furnaces/locale/template.txt @@ -9,7 +9,5 @@ Inventory= Uses fuel to smelt or cook items= Blast Furnace= Blast Furnaces cook or smelt several items, using a furnace fuel, into something else, but faster than a normal furnace.= -Use the recipe book to see what you can smelt, what you can use as fuel and how long it will burn.= Smoker= Smokers cook or smelt several items, using a furnace fuel, into something else, but faster than a normal furnace.= -Use the recipe book to see what you can smelt, what you can use as fuel and how long it will burn.= From 2b87fb2cd27ae46934e36a5d0a01fe27789542e6 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 07:51:40 +0000 Subject: [PATCH 64/93] Update french translation --- mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.fr.tr | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.fr.tr b/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.fr.tr index f7b37e537..6140504ef 100644 --- a/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.fr.tr +++ b/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.fr.tr @@ -7,3 +7,7 @@ Burning Furnace=Four Allumé Recipe book=Livre de Recette Inventory=Inventaire Uses fuel to smelt or cook items=Utilise du carburant pour fondre ou cuire des articles +Blast Furnace=Haut Fourneau +Blast Furnaces cook or smelt several items, using a furnace fuel, into something else, but faster than a normal furnace.=Un haut fourneau peut cuire ou fondre plusieurs objets, en quelque chose d'autre, en utilisant du carburant, plus vite qu'un four normal. +Smoker=Fumoir +Smokers cook or smelt several items, using a furnace fuel, into something else, but faster than a normal furnace.=Le Fumoir peut cuire ou fondre plusieurs objets, en quelque chose d'autre, en utilisant du carburant, plus vite qu'un four normal. From 4c957a3e7c40498d445d098617c4090cbca201ea Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 08:01:16 +0000 Subject: [PATCH 65/93] Add Translation --- mods/ITEMS/mcl_lanterns/template.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 mods/ITEMS/mcl_lanterns/template.txt diff --git a/mods/ITEMS/mcl_lanterns/template.txt b/mods/ITEMS/mcl_lanterns/template.txt new file mode 100644 index 000000000..765de8747 --- /dev/null +++ b/mods/ITEMS/mcl_lanterns/template.txt @@ -0,0 +1,6 @@ +# textdomain: mcl_lanterns +Chain= +Chains are metallic decoration blocks.= +Lantern= +Lanterns are light sources which can be placed on the top or the bottom of most blocks.= +Soul Lantern= From 8cd3b63fae3b2f1278a091aa543016e41c0204ad Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 08:02:22 +0000 Subject: [PATCH 66/93] Add Translations --- mods/ITEMS/mcl_lanterns/local/template.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 mods/ITEMS/mcl_lanterns/local/template.txt diff --git a/mods/ITEMS/mcl_lanterns/local/template.txt b/mods/ITEMS/mcl_lanterns/local/template.txt new file mode 100644 index 000000000..765de8747 --- /dev/null +++ b/mods/ITEMS/mcl_lanterns/local/template.txt @@ -0,0 +1,6 @@ +# textdomain: mcl_lanterns +Chain= +Chains are metallic decoration blocks.= +Lantern= +Lanterns are light sources which can be placed on the top or the bottom of most blocks.= +Soul Lantern= From 700200958df57b50f23a644c7736a5dd1543c904 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 08:03:37 +0000 Subject: [PATCH 67/93] wrong place --- mods/ITEMS/mcl_lanterns/template.txt | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 mods/ITEMS/mcl_lanterns/template.txt diff --git a/mods/ITEMS/mcl_lanterns/template.txt b/mods/ITEMS/mcl_lanterns/template.txt deleted file mode 100644 index 765de8747..000000000 --- a/mods/ITEMS/mcl_lanterns/template.txt +++ /dev/null @@ -1,6 +0,0 @@ -# textdomain: mcl_lanterns -Chain= -Chains are metallic decoration blocks.= -Lantern= -Lanterns are light sources which can be placed on the top or the bottom of most blocks.= -Soul Lantern= From 140fd676860d60eef47e8b4d5dacdc67b53673ff Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 08:07:47 +0000 Subject: [PATCH 68/93] Add french translation --- mods/ITEMS/mcl_lanterns/local/mcl_lanterns.fr.tr | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 mods/ITEMS/mcl_lanterns/local/mcl_lanterns.fr.tr diff --git a/mods/ITEMS/mcl_lanterns/local/mcl_lanterns.fr.tr b/mods/ITEMS/mcl_lanterns/local/mcl_lanterns.fr.tr new file mode 100644 index 000000000..e8264e2f4 --- /dev/null +++ b/mods/ITEMS/mcl_lanterns/local/mcl_lanterns.fr.tr @@ -0,0 +1,6 @@ +# textdomain: mcl_lanterns +Chain=Chaine +Chains are metallic decoration blocks.=Les chaines sont des blocs de décoration métalliques. +Lantern=Lanterne +Lanterns are light sources which can be placed on the top or the bottom of most blocks.=Les lanternes sont des sources de lumières qui peuvent être placées au sommet ou en-dessous de la plupart des blocs. +Soul Lantern=Lanterne de l'Ame From c3111c99b235fabc8263c1f71bc44b4c4b10611f Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 08:49:47 +0000 Subject: [PATCH 69/93] French translation --- .../ENTITIES/extra_mobs/locale/extra_mobs.fr.tr | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 mods/ENTITIES/extra_mobs/locale/extra_mobs.fr.tr diff --git a/mods/ENTITIES/extra_mobs/locale/extra_mobs.fr.tr b/mods/ENTITIES/extra_mobs/locale/extra_mobs.fr.tr new file mode 100644 index 000000000..87caf9592 --- /dev/null +++ b/mods/ENTITIES/extra_mobs/locale/extra_mobs.fr.tr @@ -0,0 +1,17 @@ +# textdomain:extra_mobs +Hoglin=Hoglin +piglin=Piglin +piglin Brute=Piglin Barbare +Strider=Arpenteur +Fox=Renard +Cod=Poisson +Salmon=Saumon +dolphin=Dauphin +Glow Squid=Pieuvre Lumineuse +Glow Ink Sac=Sac d'Encre Lumineuse +Use it to craft the Glow Item Frame.=Utilisez le pour fabriquer le Cadre à Objet Lumineux +Use the Glow Ink Sac and the normal Item Frame to craft the Glow Item Frame.=Utiliser le Sac d'Encre Lumineuse et le Cadre à Objet normal pour fabriquer le Cadre à Objet Lumineux. +Glow Item Frame=Cadre à Objet Lumineux +Can hold an item and glows=Peut exposer un objet et éclairer +Glow Item frames are decorative blocks in which items can be placed.=les Cadres à Objet Lumineux sont des blocs décoratifs pouvant contenir des objets. +Just place any item on the item frame. Use the item frame again to retrieve the item.=Placer n'importe quel objet sur le cadre. Récupérer l'objet en faisant un clic droit sur le cadre. \ No newline at end of file From e14545a2b82973f86f8ff70c457c9ca83aa377b7 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 08:51:53 +0000 Subject: [PATCH 70/93] French translation --- mods/ENTITIES/mcl_boats/locale/mcl_boats.fr.tr | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/ENTITIES/mcl_boats/locale/mcl_boats.fr.tr b/mods/ENTITIES/mcl_boats/locale/mcl_boats.fr.tr index 91be07c32..922f5f069 100644 --- a/mods/ENTITIES/mcl_boats/locale/mcl_boats.fr.tr +++ b/mods/ENTITIES/mcl_boats/locale/mcl_boats.fr.tr @@ -6,6 +6,7 @@ Boats are used to travel on the surface of water.=Les bateaux sont utilisés pou Dark Oak Boat=Bateau en Chêne Noir Jungle Boat=Bateau en Acajou Oak Boat=Bateau en Chêne +Obsidian Boat=Bateau en Obsidienne Rightclick on a water source to place the boat. Rightclick the boat to enter it. Use [Left] and [Right] to steer, [Forwards] to speed up and [Backwards] to slow down or move backwards. Use [Sneak] to leave the boat, punch the boat to make it drop as an item.=Faites un clic droit sur une source d'eau pour placer le bateau. Faites un clic droit sur le bateau pour y entrer. Utilisez [Gauche] et [Droite] pour diriger, [Avant] pour accélérer et [Arrière] pour ralentir ou reculer. Utilisez [Sneak] pour le quitter, frappez le bateau pour le faire tomber en tant qu'objet. Spruce Boat=Bateau en Sapin Water vehicle=Véhicule aquatique From f828ee6a1927f1b7556122cc07c850ac9d0eb90d Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 09:28:36 +0000 Subject: [PATCH 71/93] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'mods/HUD/mcl?= =?UTF-8?q?=5Fachievements/locale/template.txt'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/HUD/mcl_achievements/locale/template.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mods/HUD/mcl_achievements/locale/template.txt b/mods/HUD/mcl_achievements/locale/template.txt index eccec5225..2cb6b28b4 100644 --- a/mods/HUD/mcl_achievements/locale/template.txt +++ b/mods/HUD/mcl_achievements/locale/template.txt @@ -53,3 +53,13 @@ Hot Stuff= Put lava in a bucket.= Ice Bucket Challenge= Obtain an obsidian block.= +Isn't It Iron Pick= +Craft a iron pickaxe using sticks and iron.= +Who is Cutting Onions?= +Pick up a crying obsidian from the floor.= +Hidden in the Depths= +Pick up an Ancient Debris from the floor.= +Not Quite "Nine" Lives= +Charge a Respawn Anchor to the maximum.= +The End?= +Or the beginning?\nHint: Enter an end portal.= From 609653eaf27e05a7e00f5d31c644b0bf683a5825 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 09:44:49 +0000 Subject: [PATCH 72/93] Update french translation --- .../locale/mcl_achievements.fr.tr | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/mods/HUD/mcl_achievements/locale/mcl_achievements.fr.tr b/mods/HUD/mcl_achievements/locale/mcl_achievements.fr.tr index 0896bcf36..fc68322a1 100644 --- a/mods/HUD/mcl_achievements/locale/mcl_achievements.fr.tr +++ b/mods/HUD/mcl_achievements/locale/mcl_achievements.fr.tr @@ -10,7 +10,7 @@ Craft a stone pickaxe using sticks and cobblestone.=Fabriquez une pioche en pier Craft a wooden sword using wooden planks and sticks on a crafting table.=Fabriquez une épée en bois à l'aide de planches et de bâtons en bois sur un établi. DIAMONDS!=DIAMANTS! Delicious Fish=Délicieux Poisson -Dispense With This=Dispenser de ça +Dispense With This=Dispensé de ça Eat a cooked porkchop.=Mangez du porc cuit. Eat a cooked rabbit.=Mangez du lapin cuit. Get really desperate and eat rotten flesh.=Soyez vraiment désespéré et mangez de la chair pourrie. @@ -47,3 +47,19 @@ Use a crafting table to craft a wooden hoe from wooden planks and sticks.=Utilis Use a crafting table to craft a wooden pickaxe from wooden planks and sticks.=Utilisez un établi pour fabriquer une pioche en bois à partir de planches et de bâtons en bois. Use obsidian and a fire starter to construct a Nether portal.=Utilisez de l'obsidienne et un briquet pour construire un portail du Nether. Use wheat to craft a bread.=Utilisez du blé pour fabriquer un pain. +Stone Age=L'Age de Pierre +Mine a stone with new pickaxe.=Miner de la roche avec une nouvelle pioche +Hot Stuff=Chaud Devant ! +Put lava in a bucket.=Remplir un Seau de lave +Ice Bucket Challenge=Le défi du seau d'eau glacée +Obtain an obsidian block.=Obtenir un bloc d'obsidienne +Isn't It Iron Pick=Bonne Pioche ! +Craft a iron pickaxe using sticks and iron.=Fabriquer une pioche de fer avec des batons et du fer +Who is Cutting Onions?=Qui épluche des oignons ? +Pick up a crying obsidian from the floor.=Ramasser une obsidienne pleureuse sur le sol. +Hidden in the Depths=Caché dans les profondeurs +Pick up an Ancient Debris from the floor.=Ramasser un Ancien Débris +Not Quite "Nine" Lives=Presque "neuf" vies +Charge a Respawn Anchor to the maximum.=Charger une Ancre de Réapparition au maximum. +The End?=L'End ? +Or the beginning?\nHint: Enter an end portal.=Ou le commencement ?\nAstuce : Entrer dans un portail de l'End. From 47ed81490a10fb6bf1f93ed4993660284fc93042 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 09:52:46 +0000 Subject: [PATCH 73/93] french translation --- mods/HUD/mcl_experience/locale/mlc_experience.fr.tr | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/HUD/mcl_experience/locale/mlc_experience.fr.tr b/mods/HUD/mcl_experience/locale/mlc_experience.fr.tr index 0644e2596..488af5006 100644 --- a/mods/HUD/mcl_experience/locale/mlc_experience.fr.tr +++ b/mods/HUD/mcl_experience/locale/mlc_experience.fr.tr @@ -5,3 +5,4 @@ Error: Too many parameters!=Erreur: Trop de paramètres! Error: Incorrect value of XP=Erreur: Valeur incorrecte de XP Error: Player not found=Erreur: Joueur introuvable Added @1 XP to @2, total: @3, experience level: @4=Ajout de @1 XP à @2, total: @3, niveau d'expérience: @4 +Bottle o' Enchanting=Fiole d'expérience \ No newline at end of file From 3591ef1fae2a25cc8007303778157ac27506702f Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 09:59:27 +0000 Subject: [PATCH 74/93] French translation --- mods/HUD/mcl_info/locale/mcl_info.fr.tr | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 mods/HUD/mcl_info/locale/mcl_info.fr.tr diff --git a/mods/HUD/mcl_info/locale/mcl_info.fr.tr b/mods/HUD/mcl_info/locale/mcl_info.fr.tr new file mode 100644 index 000000000..fb6ecbd0d --- /dev/null +++ b/mods/HUD/mcl_info/locale/mcl_info.fr.tr @@ -0,0 +1,4 @@ +# textdomain: mcl_info +Set debug bit mask: 0 @= disable, 1 @= biome name, 2 @= coordinates, 3 @= all=Réglage du masque de débugage : 0 @= désactiver, 1 @= nom de biome, 2 @= coordonnées, 3 @= tout= +Error! Possible values are integer numbers from @1 to @2=Erreur ! Les valeurs autorisées sont des nombres entiers de @1 à @2 +Debug bit mask set to @1=Masque de débugage réglé à @1 \ No newline at end of file From 421c1e8d0084399d5e324af504661f7230139887 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 10:21:26 +0000 Subject: [PATCH 75/93] Ajouter 'mods/MAPGEN/mcl_villages/locale/mcl_villages.fr.tr' --- mods/MAPGEN/mcl_villages/locale/mcl_villages.fr.tr | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 mods/MAPGEN/mcl_villages/locale/mcl_villages.fr.tr diff --git a/mods/MAPGEN/mcl_villages/locale/mcl_villages.fr.tr b/mods/MAPGEN/mcl_villages/locale/mcl_villages.fr.tr new file mode 100644 index 000000000..86b7d1b33 --- /dev/null +++ b/mods/MAPGEN/mcl_villages/locale/mcl_villages.fr.tr @@ -0,0 +1,3 @@ +# textdomain: mcl_villages +Chiseled Stone Village Bricks=Pierre sculptée du village +Map chunk @1 to @2 is not suitable for placing villages.=La partie de la carte de @1 à @2 n'est pas propice au placement d'un village. From c55aab93608d3f00be3dff3f7e27040b6e724334 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 10:31:13 +0000 Subject: [PATCH 76/93] Update french translation --- mods/MISC/mcl_commands/locale/mcl_commands.fr.tr | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mods/MISC/mcl_commands/locale/mcl_commands.fr.tr b/mods/MISC/mcl_commands/locale/mcl_commands.fr.tr index 1223c24ec..f9a1fa064 100644 --- a/mods/MISC/mcl_commands/locale/mcl_commands.fr.tr +++ b/mods/MISC/mcl_commands/locale/mcl_commands.fr.tr @@ -21,6 +21,10 @@ Ban list: @1=Liste d'interdiction: @1 Show who is logged on=Afficher qui est connecté Displays the world seed=Affiche la graine du monde Only peaceful mobs allowed!=Seuls les mobs pacifiques sont autorisés! -@1[]=@1[] +@1[]=@1[] Set game mode for player or yourself=Choisir le mode de jeu pour vous ou pour les joueurs Error: No game mode specified.=Erreur : mode de jeu non spécifié. + = +Play a sound. Arguments: : name of the sound. : Target.=Jouer un son. Arguments: : nom d'un son. : Cible. +Sound name is invalid!=Le nom du son est invalide ! +Target is invalid!!=La cible est invalide ! From f052e26e0cf91b40ca2dfd9f02c51045a7903122 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 11:43:47 +0000 Subject: [PATCH 77/93] fix --- mods/ITEMS/mcl_beds/respawn_anchor.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_beds/respawn_anchor.lua b/mods/ITEMS/mcl_beds/respawn_anchor.lua index e479ac097..19c2c67d9 100644 --- a/mods/ITEMS/mcl_beds/respawn_anchor.lua +++ b/mods/ITEMS/mcl_beds/respawn_anchor.lua @@ -71,7 +71,7 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_1",{ }) minetest.register_node("mcl_beds:respawn_anchor_charged_2",{ - description="Respawn Anchor", + description=S("Respawn Anchor"), tiles = { "portal.png", "respawn_anchor_bottom.png", @@ -105,7 +105,7 @@ minetest.register_node("mcl_beds:respawn_anchor_charged_2",{ }) minetest.register_node("mcl_beds:respawn_anchor_charged_3",{ - description=S("Respawn Anchor") + description=S("Respawn Anchor"), tiles = { "portal.png", "respawn_anchor_bottom.png", From 337b4e1d050a977f69cd946b08e6a7c90c1dbe07 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 11:47:14 +0000 Subject: [PATCH 78/93] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'mods/ITEMS/m?= =?UTF-8?q?cl=5Flanterns/register.lua'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/ITEMS/mcl_lanterns/register.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_lanterns/register.lua b/mods/ITEMS/mcl_lanterns/register.lua index 7cf03d0d5..fcffbdcb8 100644 --- a/mods/ITEMS/mcl_lanterns/register.lua +++ b/mods/ITEMS/mcl_lanterns/register.lua @@ -1,4 +1,4 @@ -local S = minetest.get_translator("mcl_lanterns") +local S = minetest.get_translator(minetest.get_current_modname()) mcl_lanterns.register_lantern("lantern", { description = S("Lantern"), From 1e431814bc3964d5eda87061b905c92ae899a052 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 11:48:43 +0000 Subject: [PATCH 79/93] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'mods/ITEMS/m?= =?UTF-8?q?cl=5Flanterns/init.lua'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/ITEMS/mcl_lanterns/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_lanterns/init.lua b/mods/ITEMS/mcl_lanterns/init.lua index e6707b075..8f99ea151 100644 --- a/mods/ITEMS/mcl_lanterns/init.lua +++ b/mods/ITEMS/mcl_lanterns/init.lua @@ -1,5 +1,5 @@ -local S = minetest.get_translator("mcl_lanterns") -local modpath = minetest.get_modpath("mcl_lanterns") +local S = minetest.get_translator(minetest.get_current_modname()) +local modpath = minetest.get_modpath(minetest.get_current_modname()) mcl_lanterns = {} From 07d564b5a26480aab06348a6d54fa2f64e0004e9 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 12:05:00 +0000 Subject: [PATCH 80/93] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'mods/ITEMS/m?= =?UTF-8?q?cl=5Fbeds/init.lua'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/ITEMS/mcl_beds/init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/ITEMS/mcl_beds/init.lua b/mods/ITEMS/mcl_beds/init.lua index ad9dbdded..b07b591dd 100644 --- a/mods/ITEMS/mcl_beds/init.lua +++ b/mods/ITEMS/mcl_beds/init.lua @@ -4,6 +4,7 @@ mcl_beds.pos = {} mcl_beds.bed_pos = {} local modpath = minetest.get_modpath("mcl_beds") +local S = minetest.get_translator(minetest.get_current_modname()) -- Load files From 44d32b5d17833fa9170a78127955770070442bea Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 12:12:07 +0000 Subject: [PATCH 81/93] fix --- mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr b/mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr index ba513df3a..1c10627e3 100644 --- a/mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr +++ b/mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr @@ -39,4 +39,4 @@ You're sleeping.=Tu dors. You will fall asleep when all players are in bed.=Vous vous endormirez lorsque tous les joueurs seront au lit. You're in bed.=Tu es au lit. Allows you to sleep=Vous permet de dormir -Respwn Anchor=Ancre de Réapparition \ No newline at end of file +Respawn Anchor=Ancre de Réapparition \ No newline at end of file From 0184925890b3cc17cf70b0a2daababfaf4fb26b2 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 19:26:04 +0000 Subject: [PATCH 82/93] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'mods/ITEMS/m?= =?UTF-8?q?cl=5Flanterns/local/mcl=5Flanterns.fr.tr'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/ITEMS/mcl_lanterns/local/mcl_lanterns.fr.tr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_lanterns/local/mcl_lanterns.fr.tr b/mods/ITEMS/mcl_lanterns/local/mcl_lanterns.fr.tr index e8264e2f4..c653a8faf 100644 --- a/mods/ITEMS/mcl_lanterns/local/mcl_lanterns.fr.tr +++ b/mods/ITEMS/mcl_lanterns/local/mcl_lanterns.fr.tr @@ -3,4 +3,4 @@ Chain=Chaine Chains are metallic decoration blocks.=Les chaines sont des blocs de décoration métalliques. Lantern=Lanterne Lanterns are light sources which can be placed on the top or the bottom of most blocks.=Les lanternes sont des sources de lumières qui peuvent être placées au sommet ou en-dessous de la plupart des blocs. -Soul Lantern=Lanterne de l'Ame +Soul Lantern=Lanterne des âmes From c72c960e8a305f570cdd5c1dd99c9e5c1f2dc7c5 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 19:29:52 +0000 Subject: [PATCH 83/93] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'mods/ITEMS/m?= =?UTF-8?q?cl=5Flanterns/init.lua'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/ITEMS/mcl_lanterns/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_lanterns/init.lua b/mods/ITEMS/mcl_lanterns/init.lua index 8f99ea151..72df287ca 100644 --- a/mods/ITEMS/mcl_lanterns/init.lua +++ b/mods/ITEMS/mcl_lanterns/init.lua @@ -1,5 +1,5 @@ -local S = minetest.get_translator(minetest.get_current_modname()) -local modpath = minetest.get_modpath(minetest.get_current_modname()) +local S = minetest.get_translator(mcl_lanterns) +local modpath = minetest.get_modpath(mcl_lanterns) mcl_lanterns = {} From a1ca0c3431af9edfc4adcdc9efc8232862c4f4f5 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 19:31:56 +0000 Subject: [PATCH 84/93] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'mods/ITEMS/m?= =?UTF-8?q?cl=5Flanterns/register.lua'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/ITEMS/mcl_lanterns/register.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_lanterns/register.lua b/mods/ITEMS/mcl_lanterns/register.lua index fcffbdcb8..6f3372b0a 100644 --- a/mods/ITEMS/mcl_lanterns/register.lua +++ b/mods/ITEMS/mcl_lanterns/register.lua @@ -1,4 +1,4 @@ -local S = minetest.get_translator(minetest.get_current_modname()) +local S = minetest.get_translator(mcl_lanterns) mcl_lanterns.register_lantern("lantern", { description = S("Lantern"), From a47e0d2f1736555e0463f142d0a6085edb5c336d Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 19:49:23 +0000 Subject: [PATCH 85/93] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'mods/ITEMS/m?= =?UTF-8?q?cl=5Flanterns/init.lua'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/ITEMS/mcl_lanterns/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ITEMS/mcl_lanterns/init.lua b/mods/ITEMS/mcl_lanterns/init.lua index 72df287ca..8f99ea151 100644 --- a/mods/ITEMS/mcl_lanterns/init.lua +++ b/mods/ITEMS/mcl_lanterns/init.lua @@ -1,5 +1,5 @@ -local S = minetest.get_translator(mcl_lanterns) -local modpath = minetest.get_modpath(mcl_lanterns) +local S = minetest.get_translator(minetest.get_current_modname()) +local modpath = minetest.get_modpath(minetest.get_current_modname()) mcl_lanterns = {} From c6f09e30a5e1a6ed1523ff375a4e5f2128f9b0a1 Mon Sep 17 00:00:00 2001 From: 3raven Date: Sat, 9 Apr 2022 19:49:59 +0000 Subject: [PATCH 86/93] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'mods/ITEMS/m?= =?UTF-8?q?cl=5Flanterns/register.lua'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mods/ITEMS/mcl_lanterns/register.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_lanterns/register.lua b/mods/ITEMS/mcl_lanterns/register.lua index 6f3372b0a..fcffbdcb8 100644 --- a/mods/ITEMS/mcl_lanterns/register.lua +++ b/mods/ITEMS/mcl_lanterns/register.lua @@ -1,4 +1,4 @@ -local S = minetest.get_translator(mcl_lanterns) +local S = minetest.get_translator(minetest.get_current_modname()) mcl_lanterns.register_lantern("lantern", { description = S("Lantern"), From 1d315c569f1f1ef51d519f1c137f5fa852525c28 Mon Sep 17 00:00:00 2001 From: Johannes Fritz Date: Sun, 10 Apr 2022 14:05:15 -0500 Subject: [PATCH 87/93] Bonus: Mobs Redo bug fix --- mods/ENTITIES/mcl_mobs/api.txt | 5 + .../mcl_mobs/api/mob_functions/set_up.lua | 121 +++++++++--------- mods/ENTITIES/mobs_mc/zombie.lua | 1 - 3 files changed, 66 insertions(+), 61 deletions(-) diff --git a/mods/ENTITIES/mcl_mobs/api.txt b/mods/ENTITIES/mcl_mobs/api.txt index 2d8cef5b0..6c61855aa 100644 --- a/mods/ENTITIES/mcl_mobs/api.txt +++ b/mods/ENTITIES/mcl_mobs/api.txt @@ -227,6 +227,11 @@ functions needed for the mob to work properly which contains the following: older mobs. 'pushable' Allows players, & other mobs to push the mob. + 'spawn_with_armor' If set to true, the mob has a small chance of spawning with + random matched armor. If set to a string, the string represents + the material type of the armor. Any materials used by + mcl_armor will work. Example: "gold" + It is assumed that the first texture is for armor. MineClone 2 extensions: diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua index f3d82b0bb..cebf28e58 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua @@ -13,8 +13,13 @@ mobs.can_despawn = function(self) if self.tamed or self.bred or self.nametag then return false end local mob_pos = self.object:get_pos() if not mob_pos then return true end + local players = minetest_get_connected_players() + if #players == 0 then return false end + -- If no players, probably this is being called from get_staticdata() at server shutdown time + -- Minetest is to buggy (as of 5.5) to delete entities at server shutdown time anyway + local distance = 999 - for _, player in pairs(minetest_get_connected_players()) do + for _, player in pairs(players) do if player and player:get_hp() > 0 then local player_pos = player:get_pos() local new_distance = vector_distance(player_pos, mob_pos) @@ -63,9 +68,8 @@ mobs.mob_staticdata = function(self) end mobs.armor_setup = function(self) - local armor = self._armor - if not armor then - armor = {} + if not self._armor_items then + local armor = {} -- Source: https://minecraft.fandom.com/wiki/Zombie local materials = { {name = "leather", chance = 0.3706}, @@ -76,12 +80,11 @@ mobs.armor_setup = function(self) } local types = { {name = "helmet", chance = 0.15}, - --{name = "helmet", chance = 1}, {name = "chestplate", chance = 0.75}, - {name = "leggings", chance = 0.5625}, - {name = "boots", chance = 0.4219} + {name = "leggings", chance = 0.75}, + {name = "boots", chance = 0.75} } - + local material if type(self._spawn_with_armor) == "string" then material = self._spawn_with_armor @@ -95,6 +98,7 @@ mobs.armor_setup = function(self) end end end + for i, t in pairs(types) do if math.random() <= t.chance then armor[t.name] = material @@ -102,61 +106,56 @@ mobs.armor_setup = function(self) break end end - self._armor = armor - end - local t = "" - local first_image = true - for atype, material in pairs(armor) do - if not first_image then - t = t .. "^" + -- Setup table containing the armor items + self._armor_items = {} + for atype, material in pairs(armor) do + local item = "mcl_armor:" .. atype .. "_" .. material + table.insert(self._armor_items, item) end - t = t .. "mcl_armor_" .. atype .. "_" .. material .. ".png" - first_image = false - end - if t == "" then - t = "mobs_mc_empty.png" - end - -- Configure damage groups based on armor - -- Source: https://minecraft.fandom.com/wiki/Armor#Armor_points - local points = 2 - for atype, material in pairs(self._armor) do - local item_name = "mcl_armor:" .. atype .. "_" .. material - points = points + minetest.get_item_group(item_name, "mcl_armor_points") - end - local armor_strength = 100 - 4 * points * 0.8 -- We should realy be using the full damage calculation - local armor_groups = self.object:get_armor_groups() - armor_groups.undead = armor_strength - armor_groups.fleshy = armor_strength - self.object:set_armor_groups(armor_groups) - - local props = self.object:get_properties() - props.textures[1] = t - self.object:set_properties(props) - minetest.chat_send_all(dump(self._armor)) - - -- Rare chance of dropping armor on death - for atype, material in pairs(self._armor) do - local wear = math.random(1, 65535) - local item = "mcl_armor:" .. atype .. "_" .. material .. " 1 " .. wear - self.drops = table.copy(self.drops) - table.insert(self.drops, { - name = item, - chance = 1/0.085, -- 8.5% - min = 1, - max = 1, - looting = "common", - looting_factor = 0.01 / 3, - }) - end - --[[for atype, material in pairs(self._armor) do - if math.random() <= 0.085 then + -- Setup armor drops + for atype, material in pairs(armor) do local wear = math.random(1, 65535) local item = "mcl_armor:" .. atype .. "_" .. material .. " 1 " .. wear - minetest.add_item(pos, item) + self.drops = table.copy(self.drops) + table.insert(self.drops, { + name = item, + chance = 1/0.085, -- 8.5% + min = 1, + max = 1, + looting = "rare", + looting_factor = 0.01 / 3, + }) end - end]] + + -- Configure textures + local t = "" + local first_image = true + for atype, material in pairs(armor) do + if not first_image then + t = t .. "^" + end + t = t .. "mcl_armor_" .. atype .. "_" .. material .. ".png" + first_image = false + end + if t ~= "" then + self.base_texture = table.copy(self.base_texture) + self.base_texture[1] = t + end + + -- Configure damage groups based on armor + -- Source: https://minecraft.fandom.com/wiki/Armor#Armor_points + local points = 2 + for atype, material in pairs(armor) do + local item_name = "mcl_armor:" .. atype .. "_" .. material + points = points + minetest.get_item_group(item_name, "mcl_armor_points") + end + local armor_strength = 100 - 4 * points + local armor_groups = self.object:get_armor_groups() + armor_groups.fleshy = armor_strength + self.armor = armor_groups + end end @@ -201,6 +200,11 @@ mobs.mob_activate = function(self, staticdata, def, dtime) self.base_colbox = self.collisionbox self.base_selbox = self.selectionbox end + + -- Setup armor on mobs + if self._spawn_with_armor then + mobs.armor_setup(self) + end -- for current mobs that dont have this set if not self.base_selbox then @@ -321,9 +325,6 @@ mobs.mob_activate = function(self, staticdata, def, dtime) --update_tag(self) --mobs.set_animation(self, "stand") - if self._spawn_with_armor then - mobs.armor_setup(self) - end -- run on_spawn function if found if self.on_spawn and not self.on_spawn_run then diff --git a/mods/ENTITIES/mobs_mc/zombie.lua b/mods/ENTITIES/mobs_mc/zombie.lua index 27432745b..7a5682d8f 100644 --- a/mods/ENTITIES/mobs_mc/zombie.lua +++ b/mods/ENTITIES/mobs_mc/zombie.lua @@ -207,7 +207,6 @@ local zombie = { spawn_with_armor = true, } - mobs:register_mob("mobs_mc:zombie", zombie) -- Baby zombie. From 9b04b285b74aa5c96192d82700bf9d08d0e4dbbe Mon Sep 17 00:00:00 2001 From: 3raven Date: Tue, 12 Apr 2022 22:08:33 +0000 Subject: [PATCH 88/93] Make the shield drop at death --- mods/PLAYER/mcl_death_drop/init.lua | 113 ++++++++++++++-------------- 1 file changed, 57 insertions(+), 56 deletions(-) diff --git a/mods/PLAYER/mcl_death_drop/init.lua b/mods/PLAYER/mcl_death_drop/init.lua index bfeee0c3e..5ea548ecc 100644 --- a/mods/PLAYER/mcl_death_drop/init.lua +++ b/mods/PLAYER/mcl_death_drop/init.lua @@ -1,56 +1,57 @@ -local random = math.random - -local ipairs = ipairs - -mcl_death_drop = {} - -mcl_death_drop.registered_dropped_lists = {} - -function mcl_death_drop.register_dropped_list(inv, listname, drop) - table.insert(mcl_death_drop.registered_dropped_lists, {inv = inv, listname = listname, drop = drop}) -end - -mcl_death_drop.register_dropped_list("PLAYER", "main", true) -mcl_death_drop.register_dropped_list("PLAYER", "craft", true) -mcl_death_drop.register_dropped_list("PLAYER", "armor", true) - -minetest.register_on_dieplayer(function(player) - local keep = minetest.settings:get_bool("mcl_keepInventory", false) - if keep == false then - -- Drop inventory, crafting grid and armor - local playerinv = player:get_inventory() - local pos = player:get_pos() - -- No item drop if in deep void - local _, void_deadly = mcl_worlds.is_in_void(pos) - - for l=1,#mcl_death_drop.registered_dropped_lists do - local inv = mcl_death_drop.registered_dropped_lists[l].inv - if inv == "PLAYER" then - inv = playerinv - elseif type(inv) == "function" then - inv = inv(player) - end - local listname = mcl_death_drop.registered_dropped_lists[l].listname - local drop = mcl_death_drop.registered_dropped_lists[l].drop - if inv then - for i, stack in ipairs(inv:get_list(listname)) do - local x = random(0, 9)/3 - local z = random(0, 9)/3 - pos.x = pos.x + x - pos.z = pos.z + z - if not void_deadly and drop and not mcl_enchanting.has_enchantment(stack, "curse_of_vanishing") then - local def = minetest.registered_items[stack:get_name()] - if def and def.on_drop then - stack = def.on_drop(stack, player, pos) - end - minetest.add_item(pos, stack) - end - pos.x = pos.x - x - pos.z = pos.z - z - end - inv:set_list(listname, {}) - end - end - mcl_armor.update(player) - end -end) +local random = math.random + +local ipairs = ipairs + +mcl_death_drop = {} + +mcl_death_drop.registered_dropped_lists = {} + +function mcl_death_drop.register_dropped_list(inv, listname, drop) + table.insert(mcl_death_drop.registered_dropped_lists, {inv = inv, listname = listname, drop = drop}) +end + +mcl_death_drop.register_dropped_list("PLAYER", "main", true) +mcl_death_drop.register_dropped_list("PLAYER", "craft", true) +mcl_death_drop.register_dropped_list("PLAYER", "armor", true) +mcl_death_drop.register_dropped_list("PLAYER", "offhand", true) + +minetest.register_on_dieplayer(function(player) + local keep = minetest.settings:get_bool("mcl_keepInventory", false) + if keep == false then + -- Drop inventory, crafting grid and armor + local playerinv = player:get_inventory() + local pos = player:get_pos() + -- No item drop if in deep void + local _, void_deadly = mcl_worlds.is_in_void(pos) + + for l=1,#mcl_death_drop.registered_dropped_lists do + local inv = mcl_death_drop.registered_dropped_lists[l].inv + if inv == "PLAYER" then + inv = playerinv + elseif type(inv) == "function" then + inv = inv(player) + end + local listname = mcl_death_drop.registered_dropped_lists[l].listname + local drop = mcl_death_drop.registered_dropped_lists[l].drop + if inv then + for i, stack in ipairs(inv:get_list(listname)) do + local x = random(0, 9)/3 + local z = random(0, 9)/3 + pos.x = pos.x + x + pos.z = pos.z + z + if not void_deadly and drop and not mcl_enchanting.has_enchantment(stack, "curse_of_vanishing") then + local def = minetest.registered_items[stack:get_name()] + if def and def.on_drop then + stack = def.on_drop(stack, player, pos) + end + minetest.add_item(pos, stack) + end + pos.x = pos.x - x + pos.z = pos.z - z + end + inv:set_list(listname, {}) + end + end + mcl_armor.update(player) + end +end) From b7f3b8edd56ec9e3a5c36a5366f5894f77abb3b9 Mon Sep 17 00:00:00 2001 From: Johannes Fritz Date: Wed, 13 Apr 2022 12:52:39 -0500 Subject: [PATCH 89/93] No sun damage wearing helment --- mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua index cebf28e58..971750293 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua @@ -107,11 +107,11 @@ mobs.armor_setup = function(self) end end - -- Setup table containing the armor items + -- Save armor items in lua entity self._armor_items = {} for atype, material in pairs(armor) do local item = "mcl_armor:" .. atype .. "_" .. material - table.insert(self._armor_items, item) + self._armor_items[atype] = item end -- Setup armor drops @@ -155,6 +155,11 @@ mobs.armor_setup = function(self) local armor_groups = self.object:get_armor_groups() armor_groups.fleshy = armor_strength self.armor = armor_groups + + -- Helmet protects mob from sun damage + if armor.helmet then + self.ignited_by_sunlight = false + end end end From f0b8e8ea1192511585974cb049769060b8647974 Mon Sep 17 00:00:00 2001 From: Johannes Fritz Date: Fri, 15 Apr 2022 13:56:49 -0500 Subject: [PATCH 90/93] Lava produce sparks --- mods/ITEMS/mcl_core/README.txt | 8 ++ mods/ITEMS/mcl_core/functions.lua | 89 ++++++++++++++++++ .../mcl_core/textures/mcl_core_lava_spark.png | Bin 0 -> 1520 bytes 3 files changed, 97 insertions(+) create mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_lava_spark.png diff --git a/mods/ITEMS/mcl_core/README.txt b/mods/ITEMS/mcl_core/README.txt index 6c48d74fd..88da2f88d 100644 --- a/mods/ITEMS/mcl_core/README.txt +++ b/mods/ITEMS/mcl_core/README.txt @@ -21,6 +21,14 @@ MIT License. The textures are taken from the Minecraft resource pack “Faithful 1.11” by Vattic and xMrVizzy and contributers. + +CC BY-SA 4.0 + +mcl_core_lava_spark.png is based on the Pixel Perfection resource pack for Minecraft 1.11, +authored by XSSheep. +Source: +License: [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/) + Sounds ====== All sounds included in this mod are under the MIT License. diff --git a/mods/ITEMS/mcl_core/functions.lua b/mods/ITEMS/mcl_core/functions.lua index 20978e26f..43ddbcce5 100644 --- a/mods/ITEMS/mcl_core/functions.lua +++ b/mods/ITEMS/mcl_core/functions.lua @@ -54,6 +54,95 @@ minetest.register_abm({ end, }) +-- Production of sparks from lava +minetest.register_abm({ + label = "Lava produce sparks", + nodenames = {"group:lava"}, + neighbors = {"air"}, + interval = 1, + chance = 100, + action = function(pos, node) + local above = minetest.get_node(vector.new(pos.x, pos.y + 1, pos.z)) + if above.name ~= "air" then return end + + local pos_addend = vector.new( + (math.random() - 0.5) * 0.8, + (math.random() - 0.5) * 0.8, + (math.random() - 0.5) * 0.8 + ) + local spark_pos = vector.add(pos, pos_addend) + local spark = minetest.add_entity(spark_pos, "mcl_core:lava_spark") + if not spark then return end + + local velocity = vector.new( + (math.random() - 0.5) * 3, + (math.random() + 2) * 2, + (math.random() - 0.5) * 3 + ) + spark:set_velocity(velocity) + + spark:set_acceleration(vector.new(0, -9, 0)) + + -- Set a random size + local size = 0.2 + math.random() * 0.2 + local props = spark:get_properties() + if not props then return end + props.visual_size = vector.new(size, size, size) + spark:set_properties(props) + + local luaentity = spark:get_luaentity() + if not luaentity then return end + luaentity._life_timer = 0.4 + math.random() + end +}) + +minetest.register_entity("mcl_core:lava_spark", { + physical = true, + visual = "sprite", + collide_with_objects = true, + textures = {"mcl_core_lava_spark.png"}, + glow = 10, + static_save = false, + _smoke_timer = 0.1, + _life_timer = 1, + on_step = function(self, dtime) + if not self or not self.object then return end + + self._life_timer = self._life_timer - dtime + if self._life_timer <= 0 then + self.object:remove() + return + end + + + self._smoke_timer = self._smoke_timer - dtime + if self._smoke_timer > 0 then return end + self._smoke_timer = math.random() * 0.4 + + local pos = self.object:get_pos() + + -- Add smoke + minetest.add_particlespawner({ + amount = 3, + time = 0.001, + minpos = pos, + maxpos = pos, + minvel = vector.new(-0.1, 1, -0.1), + maxvel = vector.new(0.1, 1.5, 0.1), + minexptime = 0.1, + maxexptime = 0.6, + minsize = 0.5, + maxsize = 1.5, + texture = "mcl_particles_smoke_anim.png", + animation = { + type = "vertical_frames", + aspect_w = 8, + aspect_h = 8, + } + }) + end +}) + -- -- Papyrus and cactus growing -- diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_lava_spark.png b/mods/ITEMS/mcl_core/textures/mcl_core_lava_spark.png new file mode 100644 index 0000000000000000000000000000000000000000..079f7730ec909c78b339f81d57748a5a7ed576da GIT binary patch literal 1520 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+U=HGlI$i7hTmC5mVhKKVmVx^vV$x?Kj3zEdpeVu zp7WB_vC9^gu_XQv=r;YYKZp4P2U~H*`KTd-=n;s{!0V8idA8e8&=E*@`{{T#>G&XrhtiLW>k;+{ zetmWkVlR;nn`apwrjT%q;!sYFg(Wg>9%q`}dEMiT{( z3UUHBpS94+n`S;FQ)F(0o=gY^#?Pm@I^I2>0*x`JIg!;Zr;%gKxiDA z`lT1+tMj z5aP19dhFU$ z&jWL9$Z*4tFyhdWMn0(>RG+C`$$d_Z4r;tW&3^Gt4el6kA!u$Veli0wb_C*a62OG! z$;>J_$CKP-W)q7M@r)|{gwtpe13}k`{h*WGo!mciGf?-t-1rqaGtvDDa%Q4?Aor2m z3u-N|?N%0`xeB2vc1XeULx--JHP7Frx2$>h!{34a(}70rn7V8<4;AUz-Coo@EtleY zv#Y6Ax<9C-f3W82c*{yJ=9bCUkNKx3_~qwY$?PyQmRtFVBLSZz=kTH6IjA zVFyZp+Vm9A@3K`pzhrAp0crOP((XNb)MMD$joRubb(w!5{N?)0>&f^1`pl1(>qEWf zq2M3MWPZMj?6S;N$9KyzzhZa%9q9iVXyCt4!mRxp)0f;<|0||u0004nX+uL$Nkc;* zaB^>EX>4Tx0C=2zkv&MmKpe$iQ>7vm2aAX}WT;LS#EJ+mQpF-zC~bvS9ZW9$f+h_~ zii@M*T5#}VvFhOBtgC~oAP9bdI5|2gx=4xtOA0MwJUH&hyL*qjcYx5SFxBju094H~ zQt_CW&8>=oR|pt{AG3%`%+wR<#SA>h*FAiEy^HWH?{j~SJ|%B5z$X&VG2O6;H;AV< zEuHf|afp>9h4`F!+@K2*KXP4m`HgeYVS#6cj7(~tI7BQKJ6P^uRx(uLDdMoAYLqWz zT~;`6aaJoe*19KuVKA?)q`6LW1aT}Ofh0u8sG*DsEJSG4NHLM3{g{V;*zqUHC6lWR zMvetkp+a)};D7MDTeA?Ibd!QHp!>zPKSqJTF3_yo_V=-EH%|cnGjOG~{nZ9A^GSNW zt%Z+({%zpmx~<83z~v4w^rTCMpV2qvfPq_}cg^jswU5&WAVXa(-v9@P zz*v#8*FE0d)7jgy{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jl`60TnYR%Q6uF002ZuL_t&-(_>(uD)_z8>Hn`D zkN?PGOvsW Date: Tue, 19 Apr 2022 08:01:56 -0500 Subject: [PATCH 91/93] Lava sparks: performance improvement --- mods/ITEMS/mcl_core/functions.lua | 118 ++++++++++++++++++++---------- settingtypes.txt | 4 + 2 files changed, 84 insertions(+), 38 deletions(-) diff --git a/mods/ITEMS/mcl_core/functions.lua b/mods/ITEMS/mcl_core/functions.lua index 43ddbcce5..407766d08 100644 --- a/mods/ITEMS/mcl_core/functions.lua +++ b/mods/ITEMS/mcl_core/functions.lua @@ -54,47 +54,89 @@ minetest.register_abm({ end, }) + +-- -- Production of sparks from lava -minetest.register_abm({ - label = "Lava produce sparks", - nodenames = {"group:lava"}, - neighbors = {"air"}, - interval = 1, - chance = 100, - action = function(pos, node) - local above = minetest.get_node(vector.new(pos.x, pos.y + 1, pos.z)) - if above.name ~= "air" then return end +-- + +local LAVA_SPARK_ABM_INTERVAL = 5 +local lava_spark_limit = minetest.settings:get("mcl_core_lava_spark_limit") +if lava_spark_limit == nil then + lava_spark_limit = 10 +else + lava_spark_limit = tonumber(lava_spark_limit) +end +local lava_spark_chance = 0 +local lava_spark_abm_census = 0 +local lava_spark_census = 0 + +function mcl_core.lava_spark_set_chance() + lava_spark_chance = lava_spark_limit / lava_spark_abm_census + minetest.after(LAVA_SPARK_ABM_INTERVAL, mcl_core.lava_spark_set_chance) + lava_spark_abm_census = 0 + lava_spark_census = 0 +end + +if lava_spark_limit > 0 then + mcl_core.lava_spark_set_chance() + + minetest.register_abm({ + label = "Lava produce sparks", + nodenames = {"group:lava"}, + neighbors = {"air"}, + interval = LAVA_SPARK_ABM_INTERVAL, + chance = 18, + action = function(pos, node) + local above = minetest.get_node(vector.new(pos.x, pos.y + 1, pos.z)) + if above.name ~= "air" then return end - local pos_addend = vector.new( - (math.random() - 0.5) * 0.8, - (math.random() - 0.5) * 0.8, - (math.random() - 0.5) * 0.8 - ) - local spark_pos = vector.add(pos, pos_addend) - local spark = minetest.add_entity(spark_pos, "mcl_core:lava_spark") - if not spark then return end + lava_spark_abm_census = lava_spark_abm_census + 1 - local velocity = vector.new( - (math.random() - 0.5) * 3, - (math.random() + 2) * 2, - (math.random() - 0.5) * 3 - ) - spark:set_velocity(velocity) + if lava_spark_census >= lava_spark_limit then return end + if math.random() > lava_spark_chance then return end - spark:set_acceleration(vector.new(0, -9, 0)) - - -- Set a random size - local size = 0.2 + math.random() * 0.2 - local props = spark:get_properties() - if not props then return end - props.visual_size = vector.new(size, size, size) - spark:set_properties(props) - - local luaentity = spark:get_luaentity() - if not luaentity then return end - luaentity._life_timer = 0.4 + math.random() - end -}) + lava_spark_census = lava_spark_census + 1 + minetest.after(math.random() * LAVA_SPARK_ABM_INTERVAL, mcl_core.lava_spark_add, pos) + end + }) +end + +function mcl_core.lava_spark_add(pos) + local node = minetest.get_node(pos) + if minetest.get_node_group(node.name, "lava") == 0 then return end + + local above = minetest.get_node(vector.new(pos.x, pos.y + 1, pos.z)) + if above.name ~= "air" then return end + + local pos_addend = vector.new( + (math.random() - 0.5) * 0.8, + (math.random() - 0.5) * 0.8, + (math.random() - 0.5) * 0.8 + ) + local spark_pos = vector.add(pos, pos_addend) + local spark = minetest.add_entity(spark_pos, "mcl_core:lava_spark") + if not spark then return end + + local velocity = vector.new( + (math.random() - 0.5) * 3, + (math.random() + 2) * 2, + (math.random() - 0.5) * 3 + ) + spark:set_velocity(velocity) + + spark:set_acceleration(vector.new(0, -9, 0)) + + -- Set a random size + local size = 0.2 + math.random() * 0.2 + local props = spark:get_properties() + if not props then return end + props.visual_size = vector.new(size, size, size) + spark:set_properties(props) + + local luaentity = spark:get_luaentity() + if not luaentity then return end + luaentity._life_timer = 0.4 + math.random() +end minetest.register_entity("mcl_core:lava_spark", { physical = true, @@ -117,7 +159,7 @@ minetest.register_entity("mcl_core:lava_spark", { self._smoke_timer = self._smoke_timer - dtime if self._smoke_timer > 0 then return end - self._smoke_timer = math.random() * 0.4 + self._smoke_timer = 0.2 + math.random() * 0.3 local pos = self.object:get_pos() diff --git a/settingtypes.txt b/settingtypes.txt index dca03b7e1..fd3f6114a 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -51,6 +51,10 @@ mcl_showDeathMessages (Show death messages) bool true # If disabled, all recipes will be shown. mcl_craftguide_progressive_mode (Learn crafting recipes progressively) bool true +# Limit the number of sparks produced by lava per 5 seconds to this number. +# 0 will disable lava sparks altogeter with no ABM being registered. +mcl_core_lava_spark_limit (Number of sparks lava can produce per 5 seconds) int 10 + [Mobs] # If enabled, mobs will spawn naturally. This does not affect # affect mob spawners. From c5ad0d5f33388340055e1776599bf51d11de1a12 Mon Sep 17 00:00:00 2001 From: Johannes Fritz Date: Wed, 20 Apr 2022 16:56:17 -0500 Subject: [PATCH 92/93] Remove image stack wieldview --- mods/PLAYER/mcl_player/init.lua | 4 - mods/PLAYER/mcl_playerplus/init.lua | 12 ++- mods/PLAYER/mcl_wieldview/README.txt | 13 +-- mods/PLAYER/mcl_wieldview/init.lua | 150 ++++++--------------------- mods/PLAYER/mcl_wieldview/mod.conf | 1 - 5 files changed, 41 insertions(+), 139 deletions(-) diff --git a/mods/PLAYER/mcl_player/init.lua b/mods/PLAYER/mcl_player/init.lua index 9d910a89a..f3e5ad0c3 100644 --- a/mods/PLAYER/mcl_player/init.lua +++ b/mods/PLAYER/mcl_player/init.lua @@ -109,10 +109,6 @@ function mcl_player.player_set_armor(player, texture, preview) set_preview(player, "armor", preview) end -function mcl_player.player_set_wielditem(player, texture) - set_texture(player, 3, texture) -end - function mcl_player.player_get_preview(player) local preview = player:get_meta():get_string("mcl_player:skin_preview") if preview == "" then diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index 85755e0de..85be89aa0 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -324,15 +324,17 @@ minetest.register_globalstep(function(dtime) end if wielded_def and wielded_def._mcl_toollike_wield then - set_bone_position_conditional(player,"Wield_Item", vector.new(0,3.9,1.3), vector.new(90,0,0)) + set_bone_position_conditional(player,"Wield_Item", vector.new(0,4.7,3.1), vector.new(90,-45,90)) elseif string.find(wielded:get_name(), "mcl_bows:bow") then - set_bone_position_conditional(player,"Wield_Item", vector.new(.5,4.5,-1.6), vector.new(90,0,20)) + set_bone_position_conditional(player,"Wield_Item", vector.new(1,4,0), vector.new(90,130,115)) elseif string.find(wielded:get_name(), "mcl_bows:crossbow_loaded") then - set_bone_position_conditional(player,"Wield_Item", vector.new(-1.5,5.7,1.8), vector.new(64,90,0)) + set_bone_position_conditional(player,"Wield_Item", vector.new(0,5.2,1.2), vector.new(0,180,73)) elseif string.find(wielded:get_name(), "mcl_bows:crossbow") then - set_bone_position_conditional(player,"Wield_Item", vector.new(-1.5,5.7,1.8), vector.new(90,90,0)) + set_bone_position_conditional(player,"Wield_Item", vector.new(0,5.2,1.2), vector.new(0,180,45)) + elseif wielded_def.inventory_image == "" then + set_bone_position_conditional(player,"Wield_Item", vector.new(0,6,2), vector.new(180,-45,0)) else - set_bone_position_conditional(player,"Wield_Item", vector.new(-1.5,4.9,1.8), vector.new(135,0,90)) + set_bone_position_conditional(player,"Wield_Item", vector.new(0,5.3,2), vector.new(90,0,0)) end -- controls right and left arms pitch when shooting a bow or blocking diff --git a/mods/PLAYER/mcl_wieldview/README.txt b/mods/PLAYER/mcl_wieldview/README.txt index 183e8c6d5..b118d9ba6 100644 --- a/mods/PLAYER/mcl_wieldview/README.txt +++ b/mods/PLAYER/mcl_wieldview/README.txt @@ -3,19 +3,8 @@ Makes hand wielded items visible to other players. -default settings: [minetest.conf] - -# Set number of seconds between visible wielded item updates. -wieldview_update_time = 2 - -# Show nodes as tiles, disabled by default -wieldview_node_tiles = false - Info for modders ################ -Wield image transformation: To apply a simple transformation to the item in -hand, add the group “wieldview_transform” to the item definition. The group -rating equals one of the numbers used for the [transform texture modifier -of the Lua API. +Add items to the "no_wieldview" group with a raiting of 1 and it will not be shown by the wieldview. diff --git a/mods/PLAYER/mcl_wieldview/init.lua b/mods/PLAYER/mcl_wieldview/init.lua index 92175a17e..660f5edb3 100644 --- a/mods/PLAYER/mcl_wieldview/init.lua +++ b/mods/PLAYER/mcl_wieldview/init.lua @@ -1,131 +1,47 @@ -local get_connected_players = minetest.get_connected_players local get_item_group = minetest.get_item_group -mcl_wieldview = { - players = {} -} - -function mcl_wieldview.get_item_texture(itemname) - if itemname == "" or minetest.get_item_group(itemname, "no_wieldview") ~= 0 then - return - end - - local def = minetest.registered_items[itemname] - if not def then - return - end - - local inv_image = def.inventory_image - if inv_image == "" then - return - end - - local texture = inv_image - - local transform = get_item_group(itemname, "wieldview_transform") - if transform then - -- This actually works with groups ratings because transform1, transform2, etc. - -- have meaning and transform0 is used for identidy, so it can be ignored - texture = texture .. "^[transform" .. transform - end - - return texture -end - -function mcl_wieldview.update_wielded_item(player) - if not player then - return - end - local itemstack = player:get_wielded_item() - local itemname = itemstack:get_name() - - local def = mcl_wieldview.players[player] - - if def and (def.item == itemname) then - return - end - - local texture = mcl_wieldview.get_item_texture(itemname) or "blank.png" - - local new_def = { - item = itemname, - texture = texture, - } - mcl_wieldview.players[player] = new_def - - mcl_player.player_set_wielditem(player, texture) -end - minetest.register_on_joinplayer(function(player) - mcl_wieldview.players[player] = {item = "", texture = "blank.png"} - - minetest.after(0, function() - if not player:is_player() then - return - end - - mcl_wieldview.update_wielded_item(player) - - local itementity = minetest.add_entity(player:get_pos(), "mcl_wieldview:wieldnode") - itementity:set_attach(player, "Hand_Right", vector.new(0, 1, 0), vector.new(90, 0, 45)) - itementity:get_luaentity().wielder = player - end) -end) - -minetest.register_on_leaveplayer(function(player) - mcl_wieldview.players[player] = nil -end) - -minetest.register_globalstep(function() - local players = get_connected_players() - for i = 1, #players do - mcl_wieldview.update_wielded_item(players[i]) + if not player or not player:is_player() then + return end + local itementity = minetest.add_entity(player:get_pos(), "mcl_wieldview:wieldnode") + if not itementity then return end + itementity:set_attach(player, "Wield_Item", vector.new(0, 0, 0), vector.new(0, 0, 0)) + --itementity:set_attach(player, "Hand_Right", vector.new(0, 1, 0), vector.new(90, 45, 90)) + itementity:get_luaentity()._wielder = player end) minetest.register_entity("mcl_wieldview:wieldnode", { - initial_properties = { - hp_max = 1, - visual = "wielditem", - physical = false, - textures = {""}, - automatic_rotate = 1.5, - is_visible = true, - pointable = false, - collide_with_objects = false, - static_save = false, - collisionbox = {-0.21, -0.21, -0.21, 0.21, 0.21, 0.21}, - selectionbox = {-0.21, -0.21, -0.21, 0.21, 0.21, 0.21}, - visual_size = {x = 0.21, y = 0.21}, - }, + visual = "wielditem", + physical = false, + pointable = false, + collide_with_objects = false, + static_save = false, + visual_size = {x = 0.21, y = 0.21}, - itemstring = "", + _item = "", on_step = function(self) - if self.wielder:is_player() then - local def = mcl_wieldview.players[self.wielder] - local itemstring = def.item - - if self.itemstring ~= itemstring then - local itemdef = minetest.registered_items[itemstring] - self.object:set_properties({glow = itemdef and itemdef.light_source or 0}) - - -- wield item as cubic - if def.texture == "blank.png" then - self.object:set_properties({textures = {itemstring}}) - -- wield item as flat - else - self.object:set_properties({textures = {""}}) - end - - if minetest.get_item_group(itemstring, "no_wieldview") ~= 0 then - self.object:set_properties({textures = {""}}) - end - - self.itemstring = itemstring - end - else + if not self._wielder or not self._wielder:is_player() then self.object:remove() end + local player = self._wielder + + local item = player:get_wielded_item():get_name() + + if item == self._item then return end + + self._item = item + + if get_item_group(item, "no_wieldview") ~= 0 then + item = "" + end + + local item_def = minetest.registered_items[item] + self.object:set_properties({ + glow = item_def and item_def.light_source or 0, + wield_item = item, + is_visible = item ~= "" + }) end, }) diff --git a/mods/PLAYER/mcl_wieldview/mod.conf b/mods/PLAYER/mcl_wieldview/mod.conf index 4b3097876..62dda432f 100644 --- a/mods/PLAYER/mcl_wieldview/mod.conf +++ b/mods/PLAYER/mcl_wieldview/mod.conf @@ -1,4 +1,3 @@ name = mcl_wieldview author = stujones11 description = Makes hand wielded items visible to other players. -depends = mcl_player From 5432c6bd9247bb0cce94be1a8c494f43780b68fb Mon Sep 17 00:00:00 2001 From: CableGuy67 Date: Fri, 22 Apr 2022 13:51:17 +0000 Subject: [PATCH 93/93] /spawnstruct placed schematics one block lower than player is standing Because the position of the player is -0.5 from the block (when not flying) /spawnstruct would place the schematic a block lower than the player's feet. --- mods/MAPGEN/mcl_structures/init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/MAPGEN/mcl_structures/init.lua b/mods/MAPGEN/mcl_structures/init.lua index c99970813..13609be59 100644 --- a/mods/MAPGEN/mcl_structures/init.lua +++ b/mods/MAPGEN/mcl_structures/init.lua @@ -75,6 +75,7 @@ local function spawnstruct_function(name, param) local pos = player:get_pos() if not pos then return end + pos.y = math.floor(pos.y) + 1 local pr = PseudoRandom(math.floor(pos.x * 333 + pos.y * 19 - pos.z + 4)) pos = vector.round(pos) local dir = minetest.yaw_to_dir(player:get_look_horizontal())