179 lines
4.7 KiB
Lua
179 lines
4.7 KiB
Lua
-- Rubenwardy's Trap Mod
|
|
--
|
|
--
|
|
--
|
|
--
|
|
-- Cage Trap
|
|
|
|
|
|
minetest.register_node("traps:lava",{
|
|
tile_images = {"traps_grass.png", "default_dirt.png",
|
|
"default_grass_side.png", "default_grass_side.png",
|
|
"default_grass_side.png", "default_grass_side.png"},
|
|
inventory_image = minetest.inventorycube("traps_grass.png",
|
|
"default_grass_side.png", "default_grass_side.png"),
|
|
dug_item = '', -- Get nothing
|
|
groups={immortal},
|
|
description = "Lava Drop Trap",
|
|
})
|
|
|
|
local block_to_place="default:lava_source"
|
|
local hi=5 --How high the lava is
|
|
|
|
minetest.register_abm(
|
|
{nodenames = {"traps:lava"},
|
|
interval = 0.2,
|
|
chance = 1,
|
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
|
local objs = minetest.env:get_objects_inside_radius(pos, 1)
|
|
for k, obj in pairs(objs) do
|
|
print("HIT!")
|
|
--local objpos=obj:getpos()
|
|
|
|
local tmp
|
|
|
|
minetest.env:add_node(pos,{name="default:dirt"})
|
|
|
|
--Left side pit
|
|
tmp={x=pos.x-2,y=pos.y,z=pos.z-2}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x-2,y=pos.y,z=pos.z-1}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x-2,y=pos.y,z=pos.z}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x-2,y=pos.y,z=pos.z+1}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x-2,y=pos.y,z=pos.z+2}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
--Right side pit
|
|
tmp={x=pos.x+2,y=pos.y,z=pos.z-2}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x+2,y=pos.y,z=pos.z-1}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x+2,y=pos.y,z=pos.z}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x+2,y=pos.y,z=pos.z+1}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x+2,y=pos.y,z=pos.z+2}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
--front side pit
|
|
tmp={x=pos.x-1,y=pos.y,z=pos.z-2}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x,y=pos.y,z=pos.z-2}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x+1,y=pos.y,z=pos.z-2}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
--back side pit
|
|
tmp={x=pos.x-1,y=pos.y,z=pos.z+2}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x,y=pos.y,z=pos.z+2}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
tmp={x=pos.x+1,y=pos.y,z=pos.z+2}
|
|
minetest.env:add_node(tmp,{name="air"})
|
|
|
|
-- PLACE LAVA
|
|
--
|
|
--
|
|
|
|
--Left side lava
|
|
tmp={x=pos.x-2,y=pos.y+hi,z=pos.z-2}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x-2,y=pos.y+hi,z=pos.z-1}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x-2,y=pos.y+hi,z=pos.z}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x-2,y=pos.y+hi,z=pos.z+1}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x-2,y=pos.y+hi,z=pos.z+2}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
--Right side lava
|
|
tmp={x=pos.x+2,y=pos.y+hi,z=pos.z-2}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x+2,y=pos.y+hi,z=pos.z-1}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x+2,y=pos.y+hi,z=pos.z}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x+2,y=pos.y+hi,z=pos.z+1}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x+2,y=pos.y+hi,z=pos.z+2}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
--front side pit
|
|
tmp={x=pos.x-1,y=pos.y+hi,z=pos.z-2}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x,y=pos.y+hi,z=pos.z-2}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x+1,y=pos.y+hi,z=pos.z-2}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
--back side lava
|
|
tmp={x=pos.x-1,y=pos.y+hi,z=pos.z+2}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x,y=pos.y+hi,z=pos.z+2}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
tmp={x=pos.x+1,y=pos.y+hi,z=pos.z+2}
|
|
minetest.env:add_node(tmp,{name=block_to_place})
|
|
|
|
|
|
--block barrier
|
|
tmp={x=pos.x,y=pos.y+hi-1,z=pos.z}
|
|
minetest.env:add_node(tmp,{name="default:glass"})
|
|
|
|
--1
|
|
tmp={x=pos.x+1,y=pos.y+hi-1,z=pos.z+1}
|
|
minetest.env:add_node(tmp,{name="default:glass"})
|
|
|
|
tmp={x=pos.x+1,y=pos.y+hi-1,z=pos.z}
|
|
minetest.env:add_node(tmp,{name="default:glass"})
|
|
|
|
tmp={x=pos.x+1,y=pos.y+hi-1,z=pos.z-1}
|
|
minetest.env:add_node(tmp,{name="default:glass"})
|
|
|
|
--2
|
|
tmp={x=pos.x,y=pos.y+hi-1,z=pos.z-1}
|
|
minetest.env:add_node(tmp,{name="default:glass"})
|
|
|
|
tmp={x=pos.x-1,y=pos.y+hi-1,z=pos.z+1}
|
|
minetest.env:add_node(tmp,{name="default:glass"})
|
|
|
|
tmp={x=pos.x-1,y=pos.y+hi-1,z=pos.z-1}
|
|
minetest.env:add_node(tmp,{name="default:glass"})
|
|
|
|
tmp={x=pos.x,y=pos.y+hi-1,z=pos.z+1}
|
|
minetest.env:add_node(tmp,{name="default:glass"})
|
|
|
|
tmp={x=pos.x-1,y=pos.y+hi-1,z=pos.z}
|
|
minetest.env:add_node(tmp,{name="default:glass"})
|
|
|
|
|
|
end
|
|
end,
|
|
}) |