From b157d460c22eec005e9b7241118d19f650c9763b Mon Sep 17 00:00:00 2001 From: Zeg9 Date: Sun, 30 Jun 2013 17:47:39 +0200 Subject: [PATCH] Update --- delete_paste/init.lua | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/delete_paste/init.lua b/delete_paste/init.lua index 1d344cc..9168453 100644 --- a/delete_paste/init.lua +++ b/delete_paste/init.lua @@ -6,7 +6,8 @@ minetest.register_privilege("dp","Use delete paste") -- 2 => convert flowing pastes to sources -- 3 => delete everything in a 1-node radius -- 4 => delete everything in a 3-node radius --- 5 => convert everything in a 1-node radius to stone +-- 5 => dig nodes below paste +-- 6 => convert everything in a 1-node radius to stone local mode = 0 minetest.register_node("delete_paste:paste_source", { @@ -15,6 +16,8 @@ minetest.register_node("delete_paste:paste_source", { walkable = true, drawtype = "glasslike", paramtype = "light", + light_source = 14, + sunlight_propagates = true, liquidtype = "source", liquid_alternative_flowing = "delete_paste:paste_flowing", liquid_alternative_source = "delete_paste:paste_source", @@ -27,6 +30,8 @@ minetest.register_node("delete_paste:paste_flowing", { walkable = true, drawtype = "glasslike", paramtype = "light", + light_source = 14, + sunlight_propagates = true, liquidtype = "flowing", liquid_alternative_flowing = "delete_paste:paste_flowing", liquid_alternative_source = "delete_paste:paste_source", @@ -51,6 +56,20 @@ minetest.register_abm({ if mode == 0 then elseif mode == 1 then minetest.remove_node(pos) + elseif mode == 3 then + for x=pos.x-1,pos.x+1 do + for y=pos.y-1,pos.y+1 do + for z=pos.z-1,pos.z+1 do + minetest.remove_node({x=x,y=y,z=z}) + end + end + end + elseif mode == 5 then + local p = {x=pos.x,y=pos.y-1,z=pos.z} + local n = minetest.get_node(p).name + if n ~= "delete_paste:paste_source" and n ~="delete_paste:paste_flowing" then + minetest.remove_node(p) + end end end, }) @@ -63,33 +82,19 @@ minetest.register_abm({ if mode == 0 then elseif mode == 2 then minetest.set_node(pos, {name="delete_paste:paste_source"}) -- convert flowing to source - elseif mode == 3 then - for x=pos.x-1,pos.x+1 do - for y=pos.y-1,pos.y+1 do - for z=pos.z-1,pos.z+1 do - if not (x == pos.x and y == pos.y and z == pos.z) then - minetest.remove_node({x=x,y=y,z=z}) - end - end - end - end elseif mode == 4 then for x=pos.x-3,pos.x+3 do for y=pos.y-3,pos.y+3 do for z=pos.z-3,pos.z+3 do - if not (x == pos.x and y == pos.y and z == pos.z) then - minetest.remove_node({x=x,y=y,z=z}) - end + minetest.remove_node({x=x,y=y,z=z}) end end end - elseif mode == 5 then + elseif mode == 6 then for x=pos.x-1,pos.x+1 do for y=pos.y-1,pos.y+1 do for z=pos.z-1,pos.z+1 do - if not (x == pos.x and y == pos.y and z == pos.z) then - minetest.set_node({x=x,y=y,z=z},{name="mapgen_stone"}) - end + minetest.set_node({x=x,y=y,z=z},{name="mapgen_stone"}) end end end