forked from VoxeLibre/VoxeLibre
Add horizontal scaffolding
This commit is contained in:
parent
f4eb3c1e19
commit
728ef1060b
|
@ -2,6 +2,13 @@ local modname = minetest.get_current_modname()
|
||||||
local S = minetest.get_translator(modname)
|
local S = minetest.get_translator(modname)
|
||||||
local has_bamboo = minetest.get_modpath("mcl_bamboo")
|
local has_bamboo = minetest.get_modpath("mcl_bamboo")
|
||||||
|
|
||||||
|
local adjacents = {
|
||||||
|
vector.new(0,0,1),
|
||||||
|
vector.new(0,0,-1),
|
||||||
|
vector.new(1,0,0),
|
||||||
|
vector.new(-1,0,0),
|
||||||
|
}
|
||||||
|
|
||||||
minetest.register_node("mcl_scaffolding:scaffolding", {
|
minetest.register_node("mcl_scaffolding:scaffolding", {
|
||||||
description = S("Scaffolding"),
|
description = S("Scaffolding"),
|
||||||
doc_items_longdesc = S("Scaffolding block..."),
|
doc_items_longdesc = S("Scaffolding block..."),
|
||||||
|
@ -25,12 +32,13 @@ minetest.register_node("mcl_scaffolding:scaffolding", {
|
||||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
buildable_to = false,
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
climbable = true,
|
climbable = true,
|
||||||
physical = true,
|
physical = true,
|
||||||
node_placement_prediction = "",
|
node_placement_prediction = "",
|
||||||
groups = { handy=1, axey=1, flammable=3, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20, falling_node = 1 },
|
groups = { handy=1, axey=1, flammable=3, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20, falling_node = 1, stack_falling = 1 },
|
||||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||||
_mcl_blast_resistance = 0,
|
_mcl_blast_resistance = 0,
|
||||||
_mcl_hardness = 0,
|
_mcl_hardness = 0,
|
||||||
|
@ -41,7 +49,7 @@ minetest.register_node("mcl_scaffolding:scaffolding", {
|
||||||
local pp2 = minetest.get_node(ptd.under).param2
|
local pp2 = minetest.get_node(ptd.under).param2
|
||||||
local np2 = pp2 + 1
|
local np2 = pp2 + 1
|
||||||
if minetest.get_node(vector.offset(ptd.above,0,-1,0)).name == "air" then
|
if minetest.get_node(vector.offset(ptd.above,0,-1,0)).name == "air" then
|
||||||
minetest.set_node(ptd.above,{name = "mcl_scaffolding:scaffolding",param2 = np2})
|
minetest.set_node(ptd.above,{name = "mcl_scaffolding:scaffolding_horizontal",param2 = np2})
|
||||||
itemstack:take_item(1)
|
itemstack:take_item(1)
|
||||||
end
|
end
|
||||||
if np2 > 6 then
|
if np2 > 6 then
|
||||||
|
@ -77,9 +85,54 @@ minetest.register_node("mcl_scaffolding:scaffolding", {
|
||||||
repeat
|
repeat
|
||||||
minetest.set_node(pos,{name="air"})
|
minetest.set_node(pos,{name="air"})
|
||||||
minetest.add_item(pos,"mcl_scaffolding:scaffolding")
|
minetest.add_item(pos,"mcl_scaffolding:scaffolding")
|
||||||
|
for _,v in pairs(adjacents) do
|
||||||
|
minetest.check_for_falling(vector.add(pos,v))
|
||||||
|
end
|
||||||
pos = vector.offset(pos,0,1,0)
|
pos = vector.offset(pos,0,1,0)
|
||||||
until oldnode.name ~= minetest.get_node(pos).name
|
until oldnode.name ~= minetest.get_node(pos).name
|
||||||
end,
|
end,
|
||||||
|
_mcl_after_falling = function(pos, depth)
|
||||||
|
if minetest.get_node(pos).name == "mcl_scaffolding:scaffolding" then
|
||||||
|
minetest.set_node(pos,{name = "mcl_scaffolding:scaffolding",param2 = 0})
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcl_scaffolding:scaffolding_horizontal", {
|
||||||
|
description = S("Scaffolding horizontal"),
|
||||||
|
doc_items_longdesc = S("Scaffolding block..."),
|
||||||
|
doc_items_hidden = false,
|
||||||
|
tiles = {"mcl_scaffolding_scaffolding_side.png","mcl_scaffolding_scaffolding_top.png","mcl_scaffolding_scaffolding_bottom.png"},
|
||||||
|
drawtype = "nodebox",
|
||||||
|
paramtype = "light",
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{-0.5, 0.375, -0.5, 0.5, 0.5, 0.5},
|
||||||
|
{-0.5, -0.5, -0.5, -0.375, 0.5, -0.375},
|
||||||
|
{0.375, -0.5, -0.5, 0.5, 0.5, -0.375},
|
||||||
|
{0.375, -0.5, 0.375, 0.5, 0.5, 0.5},
|
||||||
|
{-0.5, -0.5, 0.375, -0.375, 0.5, 0.5},
|
||||||
|
{-0.5, -0.5, -0.5, 0.5, -0.375, 0.5},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
groups = { handy=1, axey=1, flammable=3, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20, not_in_creative_inventory = 1, falling_node = 1 },
|
||||||
|
_mcl_after_falling = function(pos)
|
||||||
|
if minetest.get_node(pos).name == "mcl_scaffolding:scaffolding_horizontal" then
|
||||||
|
if minetest.get_node(vector.offset(pos,0,0,0)).name ~= "mcl_scaffolding:scaffolding" then
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
minetest.add_item(pos,"mcl_scaffolding:scaffolding")
|
||||||
|
else
|
||||||
|
minetest.set_node(vector.offset(pos,0,1,0),{name = "mcl_scaffolding:scaffolding"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
local bamboo = "mcl_core:stick"
|
local bamboo = "mcl_core:stick"
|
||||||
|
|
Loading…
Reference in New Issue