From 03a2039319744adc4c4f487de386b2973bdf48d0 Mon Sep 17 00:00:00 2001 From: Infinatum Date: Fri, 20 Feb 2015 14:55:03 +0000 Subject: [PATCH] Scaffolding mod --- depends.txt | 1 + functions.lua | 89 ++++++++++++++++++ init.lua | 79 ++++++++++++++++ textures/scaffolding_iron_scaffolding.png | Bin 0 -> 484 bytes textures/scaffolding_iron_scaffolding_top.png | Bin 0 -> 392 bytes textures/scaffolding_wooden_scaffolding.png | Bin 0 -> 492 bytes .../scaffolding_wooden_scaffolding_top.png | Bin 0 -> 404 bytes 7 files changed, 169 insertions(+) create mode 100644 depends.txt create mode 100644 functions.lua create mode 100644 init.lua create mode 100644 textures/scaffolding_iron_scaffolding.png create mode 100644 textures/scaffolding_iron_scaffolding_top.png create mode 100644 textures/scaffolding_wooden_scaffolding.png create mode 100644 textures/scaffolding_wooden_scaffolding_top.png diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/depends.txt @@ -0,0 +1 @@ +default diff --git a/functions.lua b/functions.lua new file mode 100644 index 0000000..402514e --- /dev/null +++ b/functions.lua @@ -0,0 +1,89 @@ +scaffolding_nodenames={"scaffolding:scaffolding"} + +minetest.register_on_dignode(function(pos, node) + local i=1 + while scaffolding_nodenames[i]~=nil do + if node.name==scaffolding_nodenames[i] then + np={x=pos.x, y=pos.y+1, z=pos.z} + while minetest.env:get_node(np).name==scaffolding_nodenames[i] do + minetest.env:remove_node(np) + minetest.env:add_item(np, scaffolding_nodenames[i]) + np={x=np.x, y=np.y+1, z=np.z} + end + end + i=i+1 + end +end) + +iron_scaffolding_nodenames={"scaffolding:iron_scaffolding"} + +minetest.register_on_dignode(function(pos, node) + local i=1 + while iron_scaffolding_nodenames[i]~=nil do + if node.name==iron_scaffolding_nodenames[i] then + np={x=pos.x, y=pos.y, z=pos.z+1} + while minetest.env:get_node(np).name==iron_scaffolding_nodenames[i] do + minetest.env:remove_node(np) + minetest.env:add_item(np, iron_scaffolding_nodenames[i]) + np={x=np.x, y=np.y, z=np.z+1} + end + end + i=i+1 + end +end) + +minetest.register_on_dignode(function(pos, node) + local i=1 + while iron_scaffolding_nodenames[i]~=nil do + if node.name==iron_scaffolding_nodenames[i] then + np={x=pos.x, y=pos.y, z=pos.z-1} + while minetest.env:get_node(np).name==iron_scaffolding_nodenames[i] do + minetest.env:remove_node(np) + minetest.env:add_item(np, iron_scaffolding_nodenames[i]) + np={x=np.x, y=np.y, z=np.z-1} + end + end + i=i-1 + end +end) + +minetest.register_on_dignode(function(pos, node) + local i=1 + while iron_scaffolding_nodenames[i]~=nil do + if node.name==iron_scaffolding_nodenames[i] then + np={x=pos.x+1, y=pos.y, z=pos.z} + while minetest.env:get_node(np).name==iron_scaffolding_nodenames[i] do + minetest.env:remove_node(np) + minetest.env:add_item(np, iron_scaffolding_nodenames[i]) + np={x=np.x+1, y=np.y, z=np.z} + end + end + i=i+1 + end +end) + +minetest.register_on_dignode(function(pos, node) + local i=1 + while iron_scaffolding_nodenames[i]~=nil do + if node.name==iron_scaffolding_nodenames[i] then + np={x=pos.x-1, y=pos.y, z=pos.z} + while minetest.env:get_node(np).name==iron_scaffolding_nodenames[i] do + minetest.env:remove_node(np) + minetest.env:add_item(np, iron_scaffolding_nodenames[i]) + np={x=np.x-1, y=np.y, z=np.z} + end + end + i=i-1 + end +end) + +-- falling nodes go into pocket -- + +function default.dig_hor(pos, node, digger) + if digger == nil then return end + local np = {x = pos.x, y = pos.y, z = pos.z + 1,} + local nn = minetest.get_node(np) + if nn.name == node.name then + minetest.node_dig(np, nn, digger) + end +end diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..3d8533a --- /dev/null +++ b/init.lua @@ -0,0 +1,79 @@ +print("scaffolding: Loading 'functions.lua'") +dofile(minetest.get_modpath("scaffolding").."/functions.lua") + +minetest.register_node("scaffolding:scaffolding", { + description = "Wooden Scaffolding", + drawtype = "nodebox", + tiles = {"scaffolding_wooden_scaffolding_top.png", "scaffolding_wooden_scaffolding_top.png", "scaffolding_wooden_scaffolding.png", + "scaffolding_wooden_scaffolding.png", "scaffolding_wooden_scaffolding.png", "scaffolding_wooden_scaffolding.png"}, + paramtype = "light", + paramtype2 = "facedir", + climbable = true, + walkable = false, + is_ground_content = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = default.node_sound_wood_defaults(), + 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}, + }, + }, + after_dig_node = function(pos, node, metadata, digger) + default.dig_up(pos, node, digger) + end, + }) + +minetest.register_node("scaffolding:iron_scaffolding", { + description = "Iron Scaffolding", + drawtype = "nodebox", + tiles = {"scaffolding_iron_scaffolding_top.png", "scaffolding_iron_scaffolding_top.png", "scaffolding_iron_scaffolding.png", + "scaffolding_iron_scaffolding.png", "scaffolding_iron_scaffolding.png", "scaffolding_iron_scaffolding.png"}, + paramtype = "light", + paramtype2 = "facedir", + climbable = true, + walkable = true, + is_ground_content = true, + groups = {snappy=2,cracky=3}, + sounds = default.node_sound_wood_defaults(), + 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}, + }, + }, + after_dig_node = function(pos, node, metadata, digger) + default.dig_hor(pos, node, digger) + end, + }) + +minetest.register_craft({ + output = 'scaffolding:scaffolding 6', + recipe = { + {'default:wood', 'default:wood', 'default:wood'}, + {'default:stick', '', 'default:stick'}, + {'default:wood', 'default:wood', 'default:wood'}, + } +}) + +minetest.register_craft({ + output = 'scaffolding:iron_scaffolding 6', + recipe = { + {'default:wood', 'default:wood', 'default:wood'}, + {'default:steel_ingot', '', 'default:steel_ingot'}, + {'default:wood', 'default:wood', 'default:wood'}, + } +}) + diff --git a/textures/scaffolding_iron_scaffolding.png b/textures/scaffolding_iron_scaffolding.png new file mode 100644 index 0000000000000000000000000000000000000000..0eba4686ba900566841300dfd41a345099e218f7 GIT binary patch literal 484 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0003~Nklt{3q`cYCUvmQJj~p8?27=q+{fx* z$$wM&*fYJDaTZ031$0ab`vEO%_fg-VpcG$+w44_xSfI2^Q;zCIk zoWdQJk#z$=Aj}C9rnl6K2!tHJ0vJxg9{}cqh+UgblX)tZTewNEB=c?yza-88YXJK@fJ+!51C||x~;Z) zI&)<_Y2?{m^84+%NjL6ZyCd9LefsY*4z99_kc)eHUSH9k5nKFg&7(Py;eM`OuP6H( zrSTsAkQKdW>x0X^qtKS#e)7q+B>%HF^(c)wnzDKILesx`u7q k`{!Jl>`y=a-F+|rmdKI;Vst08}%bjQ{`u literal 0 HcmV?d00001 diff --git a/textures/scaffolding_wooden_scaffolding.png b/textures/scaffolding_wooden_scaffolding.png new file mode 100644 index 0000000000000000000000000000000000000000..d986f7111911f19f926bd5daf42351a43b89f9fc GIT binary patch literal 492 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv00047NklHrgV^qsic?^XvQ!Xa5-t*Iw1ljTq+m%3-FR@>TIMgxL(If7+DL%;r z+d}B?xy}i2+-A6rX4vWfstB;HLWEKWUY{i%x&n7H2AxPTb53muhrWbO=0jHn&@~BY z0vM$*m_fz}$^6EEDL@zS!*6Udd_V3CMrp;c68Bg|GmlB=e4Ero8hU`i`zH5f>gy7M z2h7B+0TB2&sf$YZj!w#*`U;fx2iD0P>(ux7NlM^XIL0+InBp%(4aUT6zQCajEdeWG zPp`w@u{1v~@4U0=iN9#C(D`EKP zXyu_=)G9N4TcW~s}9 z$=LuwfkG=wDJD#%LxA4SJfNpf)Imn8GPazL0UZ~3z`_ys&h%Q&kbrJQl(FUp6jqBV zMG+wU(6G1qcOaexe^3_K-IW4=e(=;I#$5?a2mV?!z@N@EdZ6ma7ZhBqaDY-m-3~wQ y;r!KzU)MhjTy8aB`C8u?p)m5d&@JD;>-`0-Y93|23MOCx0000