158 lines
4.6 KiB
Lua
158 lines
4.6 KiB
Lua
|
|
minetest.register_node("my_garage_door:garage_door", {
|
|
description = "Garage Door",
|
|
tiles = {
|
|
"default_snow.png"
|
|
},
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
groups = {cracky=3},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1.5, -0.5, -0.125, 1.5, 0.5, -0.0625},
|
|
{-1.5, -0.5, -0.1875, 1.5, -0.3125, -0.0625},
|
|
{-1.5, -0.25, -0.1875, 1.5, -0.0624999, -0.0625},
|
|
{-1.5, 0, -0.1875, 1.5, 0.1875, -0.0625},
|
|
{-1.5, 0.25, -0.1875, 1.5, 0.4375, -0.0625},
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1.5, -0.5, -0.1875, 1.5, 1.5, -0.0625},
|
|
}
|
|
},
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
local p = pointed_thing.above
|
|
local p2 = minetest.dir_to_facedir(placer:get_look_dir())
|
|
print(p2)
|
|
minetest.set_node(p, {name = "my_garage_door:garage_door",param2 = p2})
|
|
minetest.set_node({x=p.x,y=p.y+1,z=p.z}, {name = "my_garage_door:garage_door_top",param2 = p2})
|
|
end,
|
|
after_destruct = function(pos, oldnode)
|
|
minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z},{name = "air"})
|
|
end,
|
|
|
|
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
|
|
local p2 = node.param2 --minetest.dir_to_facedir(player:get_look_dir())
|
|
local t1 = {x=pos.x,y=pos.y+1,z=pos.z}
|
|
local t2 = {x=pos.x,y=pos.y+1,z=pos.z}
|
|
if p2 == 0 then
|
|
t1 = {x=pos.x,y=pos.y+1,z=pos.z+1}
|
|
t2 = {x=pos.x,y=pos.y+1,z=pos.z+2}
|
|
elseif p2 == 1 then
|
|
t1 = {x=pos.x+1,y=pos.y+1,z=pos.z}
|
|
t2 = {x=pos.x+2,y=pos.y+1,z=pos.z}
|
|
elseif p2 == 2 then
|
|
t1 = {x=pos.x,y=pos.y+1,z=pos.z-1}
|
|
t2 = {x=pos.x,y=pos.y+1,z=pos.z-2}
|
|
elseif p2 == 3 then
|
|
t1 = {x=pos.x-1,y=pos.y+1,z=pos.z}
|
|
t2 = {x=pos.x-2,y=pos.y+1,z=pos.z}
|
|
end
|
|
minetest.set_node(t1,{name="my_garage_door:garage_door_open",param2=p2})
|
|
minetest.set_node(t2,{name="my_garage_door:garage_door_open2",param2=p2})
|
|
minetest.set_node(pos,{name="air"})
|
|
minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z},{name="air"})
|
|
--end
|
|
end,
|
|
})
|
|
minetest.register_node("my_garage_door:garage_door_top", {
|
|
tiles = {
|
|
"default_snow.png"
|
|
},
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2= "facedir",
|
|
drop = "",
|
|
diggable = false,
|
|
pointable = false,
|
|
groups = {cracky=3},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1.5, -0.5, -0.125, 1.5, 0.5, -0.0625},
|
|
{-1.5, -0.5, -0.1875, 1.5, -0.3125, -0.0625},
|
|
{-1.5, -0.25, -0.1875, 1.5, -0.0624999, -0.0625},
|
|
{-1.5, 0, -0.1875, 1.5, 0.1875, -0.0625},
|
|
{-1.5, 0.25, -0.1875, 1.5, 0.4375, -0.0625},
|
|
}
|
|
},
|
|
selection_box = {type = "fixed",fixed = {{0, 0, 0, 0, 0, 0},}},
|
|
})
|
|
minetest.register_node("my_garage_door:garage_door_open", {
|
|
tiles = {
|
|
"default_snow.png"
|
|
},
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2= "facedir",
|
|
drop = "my_garage_door:garage_door",
|
|
diggable = false,
|
|
groups = {cracky=3},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1.5, 0.4375, -0.5, 1.5, 0.375, 0.5},
|
|
{-1.5, 0.375, 0.3125, 1.5, 0.5, 0.5},
|
|
{-1.5, 0.375, 0.0625, 1.5, 0.5, 0.25},
|
|
{-1.5, 0.375, -0.1875, 1.5, 0.5, 0},
|
|
{-1.5, 0.375, -0.4375, 1.5, 0.5, -0.25},
|
|
}
|
|
},
|
|
selection_box = {type = "fixed",fixed = {{-1.5, 0.375, -0.5, 1.5, 0.5, 1.5},}},
|
|
|
|
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
|
|
local p2 = node.param2 --minetest.dir_to_facedir(player:get_look_dir())
|
|
local t1 = {x=pos.x,y=pos.y+1,z=pos.z}
|
|
local t2 = {x=pos.x,y=pos.y+1,z=pos.z}
|
|
local t3
|
|
if p2 == 0 then
|
|
t1 = {x=pos.x,y=pos.y,z=pos.z-1}
|
|
t2 = {x=pos.x,y=pos.y-1,z=pos.z-1}
|
|
t3 = {x=pos.x,y=pos.y,z=pos.z+1}
|
|
elseif p2 == 1 then
|
|
t1 = {x=pos.x-1,y=pos.y,z=pos.z}
|
|
t2 = {x=pos.x-1,y=pos.y-1,z=pos.z}
|
|
t3 = {x=pos.x+1,y=pos.y,z=pos.z}
|
|
elseif p2 == 2 then
|
|
t1 = {x=pos.x,y=pos.y,z=pos.z+1}
|
|
t2 = {x=pos.x,y=pos.y-1,z=pos.z+1}
|
|
t3 = {x=pos.x,y=pos.y,z=pos.z-1}
|
|
elseif p2 == 3 then
|
|
t1 = {x=pos.x+1,y=pos.y,z=pos.z}
|
|
t2 = {x=pos.x+1,y=pos.y-1,z=pos.z}
|
|
t3 = {x=pos.x-1,y=pos.y,z=pos.z}
|
|
end
|
|
minetest.set_node(t1,{name="my_garage_door:garage_door_top",param2=p2})
|
|
minetest.set_node(t2,{name="my_garage_door:garage_door",param2=p2})
|
|
minetest.set_node(pos,{name="air"})
|
|
minetest.set_node(t3,{name="air"})
|
|
end,
|
|
})
|
|
minetest.register_node("my_garage_door:garage_door_open2", {
|
|
tiles = {
|
|
"default_snow.png"
|
|
},
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2= "facedir",
|
|
drop = "",
|
|
diggable = false,
|
|
pointable = false,
|
|
groups = {cracky=3},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1.5, 0.4375, -0.5, 1.5, 0.375, 0.5},
|
|
{-1.5, 0.375, 0.3125, 1.5, 0.5, 0.5},
|
|
{-1.5, 0.375, 0.0625, 1.5, 0.5, 0.25},
|
|
{-1.5, 0.375, -0.1875, 1.5, 0.5, 0},
|
|
{-1.5, 0.375, -0.4375, 1.5, 0.5, -0.25},
|
|
}
|
|
},
|
|
selection_box = {type = "fixed",fixed = {{0, 0, 0, 0, 0, 0},}},
|
|
|
|
})
|