master
Zeg9 2013-06-30 17:47:39 +02:00
parent 8530d95dea
commit b157d460c2
1 changed files with 23 additions and 18 deletions

View File

@ -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