2014-12-27 17:36:58 +00:00

176 lines
5.2 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 = 1},
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!")
minetest.env:add_node(pos, {name = "default:dirt"})
--Left side pit
local 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,
})