From 6620ee91ae1c67ecf280cd3678ced1ff802e641c Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 3 Mar 2017 00:19:13 +0100 Subject: [PATCH] Refactor sponge code --- mods/ITEMS/mcl_sponges/init.lua | 60 +++++++++++++++------------------ 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/mods/ITEMS/mcl_sponges/init.lua b/mods/ITEMS/mcl_sponges/init.lua index 026458da..baf3ef1a 100644 --- a/mods/ITEMS/mcl_sponges/init.lua +++ b/mods/ITEMS/mcl_sponges/init.lua @@ -11,7 +11,7 @@ minetest.register_node("mcl_sponges:sponge", { stack_max = 64, sounds = mcl_sounds.node_sound_dirt_defaults(), groups = {handy=1, building_block=1}, - on_place = function(itemstack, placer, pointed_thing) + on_place = function(itemstack, placer, pointed_thing) local pn = placer:get_player_name() if pointed_thing.type ~= "node" then return itemstack @@ -28,63 +28,57 @@ minetest.register_node("mcl_sponges:sponge", { if minetest.is_protected(pointed_thing.above, pn) then return itemstack end - local change = false - local on_water = false - local pos = pointed_thing.above - -- verifier si il est dans l'eau ou a cotée - if string.find(minetest.get_node(pointed_thing.above).name, "water_source") - or string.find(minetest.get_node(pointed_thing.above).name, "water_flowing") then + local change = false + local on_water = false + local pos = pointed_thing.above + local nn = minetest.get_node(pointed_thing.above).name + if minetest.get_item_group(nn, "water") ~= 0 then on_water = true end for i=-1,1 do local p = {x=pos.x+i, y=pos.y, z=pos.z} local n = minetest.get_node(p) - -- On verifie si il y a de l'eau - if (n.name=="mcl_core:water_flowing") or (n.name == "mcl_core:water_source") then + if minetest.get_item_group(n.name, "water") ~= 0 then on_water = true end end for i=-1,1 do local p = {x=pos.x, y=pos.y+i, z=pos.z} local n = minetest.get_node(p) - -- On verifie si il y a de l'eau - if (n.name=="mcl_core:water_flowing") or (n.name == "mcl_core:water_source") then + if minetest.get_item_group(n.name, "water") ~= 0 then on_water = true end end for i=-1,1 do local p = {x=pos.x, y=pos.y, z=pos.z+i} local n = minetest.get_node(p) - -- On verifie si il y a de l'eau - if (n.name=="mcl_core:water_flowing") or (n.name == "mcl_core:water_source") then + if minetest.get_item_group(n.name, "water") ~= 0 then on_water = true end end - local p, n - if on_water == true then - for i=-3,3 do - for j=-3,3 do - for k=-3,3 do - p = {x=pos.x+i, y=pos.y+j, z=pos.z+k} - n = minetest.get_node(p) - -- On Supprime l'eau - if (n.name=="mcl_core:water_flowing") or (n.name == "mcl_core:water_source")then - minetest.add_node(p, {name="air"}) - change = true - end + local p, n + if on_water == true then + for i=-3,3 do + for j=-3,3 do + for k=-3,3 do + p = {x=pos.x+i, y=pos.y+j, z=pos.z+k} + n = minetest.get_node(p) + if minetest.get_item_group(n.name, "water") ~= 0 then + minetest.add_node(p, {name="air"}) + change = true end end end end - p = {x=pos.x, y=pos.y, z=pos.z} - n = minetest.get_node(p) - if change == true then - minetest.add_node(pointed_thing.above, {name = "mcl_sponges:sponge_wet"}) - else - minetest.add_node(pointed_thing.above, {name = "mcl_sponges:sponge"}) - end + end + p = {x=pos.x, y=pos.y, z=pos.z} + n = minetest.get_node(p) + if change == true then + minetest.add_node(pointed_thing.above, {name = "mcl_sponges:sponge_wet"}) + else + minetest.add_node(pointed_thing.above, {name = "mcl_sponges:sponge"}) + end return itemstack - end, _mcl_blast_resistance = 3, _mcl_hardness = 0.6,