diff --git a/mods/ITEMS/mcl_scaffolding/init.lua b/mods/ITEMS/mcl_scaffolding/init.lua new file mode 100644 index 000000000..1fc23f996 --- /dev/null +++ b/mods/ITEMS/mcl_scaffolding/init.lua @@ -0,0 +1,73 @@ +local modname = minetest.get_current_modname() +local S = minetest.get_translator(modname) +minetest.register_node("mcl_scaffolding:scaffolding", { + description = S("Scaffolding"), + --_doc_items_longdesc = doc.sub.items.temp.build, + --_doc_items_hidden = false, + tiles = {"mcl_scaffolding_scaffolding_top.png","mcl_scaffolding_scaffolding_side.png","mcl_scaffolding_scaffolding_bottom.png"}, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + }, + is_ground_content = false, + walkable = false, + climbable = true, + groups = { handy=1, axey=1, flammable=3, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20, falling_node = 1 }, + sounds = mcl_sounds.node_sound_wood_defaults(), + _mcl_blast_resistance = 3, + _mcl_hardness = 2, + on_rightclick = function(pos, node, player, itemstack, ptd) + + end, + on_place = function(itemstack, placer, ptd) + local ctrl = placer:get_player_control() + if ctrl and ctrl.sneak then + local pp2 = minetest.get_node(ptd.under).param2 + local np2 = pp2 + 1 + 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}) + itemstack:take_item(1) + end + if np2 > 4 then + minetest.check_single_for_falling(ptd.above) + end + return itemstack + end + + local node = minetest.get_node(ptd.under) + if itemstack:get_name() ~= node.name then + minetest.set_node(ptd.above,{name = "mcl_scaffolding:scaffolding",param2 = 0}) + itemstack:take_item(1) + return itemstack + end + + local h = 0 + local pos = ptd.under + repeat + pos.y = pos.y + 1 + h = h + 1 + local cn = minetest.get_node(pos) + if cn.name == "air" then + minetest.set_node(pos, node) + itemstack:take_item(1) + placer:set_wielded_item(itemstack) + end + until cn.name ~= node.name or h >= 32 + return + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local apos = vector.offset(pos,0,1,0) + if oldnode.name == minetest.get_node(apos).name then + minetest.check_for_falling(apos) + end + end, +}) \ No newline at end of file diff --git a/mods/ITEMS/mcl_scaffolding/mod.conf b/mods/ITEMS/mcl_scaffolding/mod.conf new file mode 100644 index 000000000..32cab59f4 --- /dev/null +++ b/mods/ITEMS/mcl_scaffolding/mod.conf @@ -0,0 +1,3 @@ +name = mcl_scaffolding +author = cora +depends = mcl_sounds diff --git a/mods/ITEMS/mcl_scaffolding/textures/mcl_scaffolding_scaffolding_bottom.png b/mods/ITEMS/mcl_scaffolding/textures/mcl_scaffolding_scaffolding_bottom.png new file mode 100644 index 000000000..b4bd1fea3 Binary files /dev/null and b/mods/ITEMS/mcl_scaffolding/textures/mcl_scaffolding_scaffolding_bottom.png differ diff --git a/mods/ITEMS/mcl_scaffolding/textures/mcl_scaffolding_scaffolding_side.png b/mods/ITEMS/mcl_scaffolding/textures/mcl_scaffolding_scaffolding_side.png new file mode 100644 index 000000000..7383606bb Binary files /dev/null and b/mods/ITEMS/mcl_scaffolding/textures/mcl_scaffolding_scaffolding_side.png differ diff --git a/mods/ITEMS/mcl_scaffolding/textures/mcl_scaffolding_scaffolding_top.png b/mods/ITEMS/mcl_scaffolding/textures/mcl_scaffolding_scaffolding_top.png new file mode 100644 index 000000000..b0939c895 Binary files /dev/null and b/mods/ITEMS/mcl_scaffolding/textures/mcl_scaffolding_scaffolding_top.png differ