From 401c85dab8094c616a49d766d8c29767a4f9691b Mon Sep 17 00:00:00 2001 From: Vanessa Ezekowitz Date: Tue, 26 Aug 2014 13:28:47 -0400 Subject: [PATCH] added a piano --- homedecor/crafts.lua | 9 ++ homedecor/misc-nodes.lua | 107 ++++++++++++++++++ .../textures/homedecor_piano_front_left.png | Bin 0 -> 1127 bytes .../textures/homedecor_piano_front_right.png | Bin 0 -> 1132 bytes homedecor/textures/homedecor_piano_inv.png | Bin 0 -> 4329 bytes homedecor/textures/homedecor_piano_sides.png | Bin 0 -> 783 bytes .../textures/homedecor_piano_top_left.png | Bin 0 -> 732 bytes .../textures/homedecor_piano_top_right.png | Bin 0 -> 730 bytes 8 files changed, 116 insertions(+) create mode 100644 homedecor/textures/homedecor_piano_front_left.png create mode 100644 homedecor/textures/homedecor_piano_front_right.png create mode 100644 homedecor/textures/homedecor_piano_inv.png create mode 100644 homedecor/textures/homedecor_piano_sides.png create mode 100644 homedecor/textures/homedecor_piano_top_left.png create mode 100644 homedecor/textures/homedecor_piano_top_right.png diff --git a/homedecor/crafts.lua b/homedecor/crafts.lua index 4af44de0..0f6548a5 100644 --- a/homedecor/crafts.lua +++ b/homedecor/crafts.lua @@ -2611,3 +2611,12 @@ minetest.register_craft({ }, }) +minetest.register_craft({ + output = "homedecor:piano_left", + recipe = { + { "", "default:steel_ingot", "building_blocks:hardwood" }, + { "homedecor:plastic_strips", "homedecor:steel_wire", "building_blocks:hardwood" }, + { "building_blocks:hardwood", "default:steel_ingot", "building_blocks:hardwood" } + }, +}) + diff --git a/homedecor/misc-nodes.lua b/homedecor/misc-nodes.lua index 36085bfd..bc098691 100644 --- a/homedecor/misc-nodes.lua +++ b/homedecor/misc-nodes.lua @@ -1297,3 +1297,110 @@ minetest.register_node("homedecor:dartboard", { sounds = default.node_sound_defaults(), }) +local fdir_to_right = { + { 1, 0 }, + { 0, -1 }, + { -1, 0 }, + { 0, 1 }, +} + +minetest.register_node("homedecor:piano_left", { + tiles = { + "homedecor_piano_top_left.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_front_left.png", + }, + inventory_image = "homedecor_piano_inv.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.1875, 0.5, 0.5, 0.5}, -- NodeBox1 + {-0.5, 0.0625, -0.125, -0.4375, 0.25, 0.1875}, -- NodeBox2 + {-0.5, -0.5, -0.125, -0.4375, -0.375, 0.1875}, -- NodeBox3 + {-0.5, -0.375, -0.0625, -0.4375, 0.0625, 0}, -- NodeBox4 + {-0.5, 0.0625, -0.0625, 0.5, 0.1875, 0.1875}, -- NodeBox5 + {-0.4375, 0.1875, 0.15, 0.5, 0.4375, 0.1875}, -- NodeBox6 + {0.3594, -0.5, 0, 0.4062, -0.46875, 0.25}, -- left-most pedal + {0.4844, -0.5, 0, 0.5, -0.46875, 0.25}, -- half of center pedal + } + }, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.125, 1.5, 0.5, 0.5 } + }, + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.under + local pnode = minetest.get_node(pointed_thing.under) + local rnodedef = minetest.registered_nodes[pnode.name] + + if not rnodedef["buildable_to"] then + pos = pointed_thing.above + end + + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local pos2 = { x = pos.x + fdir_to_right[fdir+1][1], y=pos.y, z = pos.z + fdir_to_right[fdir+1][2] } + + local tnode = minetest.get_node(pos) + local tnode2 = minetest.get_node(pos2) + + if homedecor.get_nodedef_field(tnode.name, "buildable_to") + and homedecor.get_nodedef_field(tnode2.name, "buildable_to") + and not minetest.is_protected(pos, placer:get_player_name()) + and not minetest.is_protected(pos2, placer:get_player_name()) then + minetest.add_node(pos, { name = "homedecor:piano_left", param2 = fdir }) + minetest.add_node(pos2, { name = "homedecor:piano_right", param2 = fdir }) + if not homedecor.expect_infinite_stacks then + itemstack:take_item() + return itemstack + end + end + end, + after_dig_node = function(pos, oldnode, oldmetadata, digger) + local fdir = oldnode.param2 + if not fdir or fdir > 3 then return end + local pos2 = { x = pos.x + fdir_to_right[fdir+1][1], y=pos.y, z = pos.z + fdir_to_right[fdir+1][2] } + if minetest.get_node(pos2).name == "homedecor:piano_right" then + minetest.remove_node(pos2) + end + end +}) + +minetest.register_node("homedecor:piano_right", { + tiles = { + "homedecor_piano_top_right.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_sides.png", + "homedecor_piano_front_right.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = { snappy = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.1875, 0.5, 0.5, 0.5}, -- NodeBox1 + {0.4375, -0.5, -0.125, 0.5, -0.375, 0.1875}, -- NodeBox2 + {0.4375, 0.0625, -0.125, 0.5, 0.25, 0.1875}, -- NodeBox3 + {0.4375, -0.375, -0.0625, 0.5, 0.0625, 0}, -- NodeBox4 + {-0.5, 0.0625, -0.0625, 0.4375, 0.1875, 0.1875}, -- NodeBox5 + {-0.5, 0.1875, 0.15, 0.4375, 0.4375, 0.1875}, -- NodeBox6 + {-0.5, -0.5, 0, -0.4688, -0.46875, 0.25}, -- half of center pedal + {-0.3905, -0.5, 0, -0.3438, -0.46875, 0.25}, -- right-most pedal + + } + }, + selection_box = { + type = "fixed", + fixed = { 0, 0, 0, 0, 0, 0 } + } +}) diff --git a/homedecor/textures/homedecor_piano_front_left.png b/homedecor/textures/homedecor_piano_front_left.png new file mode 100644 index 0000000000000000000000000000000000000000..ce4de0a7925d49b379dfebe84204d1f3762e58e9 GIT binary patch literal 1127 zcmV-t1ep7YP)<@xoVmkr}(Vpq0jeOZyu@$WekswIpcDu2?@$sX* z`Egl4tT2F{KR@vK0qYfd!FFdc<2KxnlgNf&7tqgcer_9vSw`bTK#u_G1AAKfX^PGA z>mvt;2H)>r$DbAsCK1c7z#?;lp_{JB^w!{PIYQTeVISb?1ooFP6Wi~Uzye!_9&g;c%Et%JchVOV+suYFcF}8Q@tiULm2Xaebnsz zZBN5o-|tm7PaHM8VWS`Y_Y(olJh?rN8wM7D&|9>L*KHIg>Gr1l?rJd#Us!K|aVfAq z1k(qkOpsy|B=eRBl&t&JpSHMX%NN0ro9oe&R@q9dwyAP6EtbZ=&WQpWD z4MWV6nmtW*vPeZ_j-|_d82)6!`h{=r1g$|$@`7>t8FmDirnP(2L!V4FRM|{_-IjFq z^TSDeGW`sLPN0BEKRpp)>KygSQ<9?~$iQ%Bg9rda-vA@~uj{&$-sW8puxp!A$Pk@F zExi>`#MCfJP)JW*wiCh_QXgf*HFG(CAD>ZRI>9^)x_sK`_^Q8${J+uY zL}xQ0XLUFrfJ5#`$4g8-o>D17U{FGgIOaJ@=7Zi~^I246z+{sL>H^FOOz8B`&JsnKsbLyvFg6k> z@tQs$=K)3X8LPMqT=~?&A{`Go5qVUp$uHwfhl_Mr6a$#QvgW?KjINy^@Qr?e zFzXBJ8VesTHcSLWAww*omLgJ}q#22fCXEj6m=f0mF*Qgsd)vASxql)c383;sF-+S$ zZ>Y+^OrDx}^Zg2+Sw+j!IXy!!7RB#&i<7J7p_8$t9#Ox7TqrkB}9^`WEzi&MQ3?(UYxTk4e2teQyZA>L) zy&7GlL1ZG}qEEE;`eTZPW|&`5?=Pbe&t-oa-6C_HQJ_ZvrT6xHUe9sZ;OPm^U5Asp z!}I}y0F949@#0ooOgs`C@Y8zjv2gqXb{ z*B_k9EM4Z!zBxLs6hRo~`yoKK?8W!lYwJp05C{yAWAE>Jk*g9Ri+ThS9pHZdy`BI3 t_z08V@Aq03|Cf*N@9+KO^#Qzm{|6YkiIrlPwSE8q002ovPDHLkV1hRP8^izr literal 0 HcmV?d00001 diff --git a/homedecor/textures/homedecor_piano_front_right.png b/homedecor/textures/homedecor_piano_front_right.png new file mode 100644 index 0000000000000000000000000000000000000000..735d9e9c019f3cf08b649fc5a6c943d0b015034a GIT binary patch literal 1132 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 XA6aRJT)WKZ-Tj2eDDYv0hTbvilJPS zToaQ6mSY?tIo>4X^DJ?IRf7ge9yh4-@8ek4e{mhxQ0#zXIV|MGfx`hw-edkT5a60$ zNBIhGjCmSMj@orB*H-VpQgNJ)aHQEyGEVUpgW+8iBIXjtP} z7eP-QIvfzc_C+lxz=K61@jdOp%Q=$xo>qaUS4$ysDB5Eq7tDss&Lg65Z68xs$;l4Q1qbHDDsZyf;>B0X z-rkyW;Rjj+#9jkp$M|I8G_;voGDq~vxGrj>b>%@vaYV|N?oOAJ>u-9OR=%d#^~?yH z`Q>u*U}l`Pr+P-<{?duPAmgD>jKFuImdplV>54s?hLbF8ZwuB3tScUd43A>argfYl zgDA{odXeE9TqW~e2u6XtUuZ+OLwADIE~huB8C5%Bl&^idgDMWcQKgN^PHsSzxnvef z(g{ndejHf@O)1Nrr~5&=CewVxBivbi$*U|f#+(7UMc(BjjCREIk9fXm=vwL1A}3Q{ z;iv~Qe)et84uq@j&q(5D(GH9InQaN#0=3VCY1It{spRPb+*4E@?aZol`q@LcQy`1X z-74{F<%S24#44fulsu!j{=*UTr+--L>86gW*e4`DDY#v*hds?%jR&lZd?AP0EK^;e zv-r6xb;_T8h~U93Pr8YWI2g~NfffoV9Y#sVE7S6P?<`~i8&4;s?Qv|a!J N002ovPDHLkV1loQZTbKJ literal 0 HcmV?d00001 diff --git a/homedecor/textures/homedecor_piano_top_left.png b/homedecor/textures/homedecor_piano_top_left.png new file mode 100644 index 0000000000000000000000000000000000000000..4968db60c23a0136082d97bd3c1bfae6203ce1be GIT binary patch literal 732 zcmV<20wev2P)0007`Nkl+@5N*nCoD3^?ugohw!*+>)1;ygUR zRX{1Bf&icyhX`(N0Ry@+z%tZ_bipv*5^8L$3gZXOwk)LU>W3so>)2a(iB;~Jeck{D zX7!DJwTLuSQE-AdE}HMvKTOPRIfUj&F~`uR1I-^n#wcimg-AN0RNP-IE+OOa(6?1wlGR^Sg|+rw%PGxX&`%MkV{TPth5 zMXk>ULi+XH-2OdqJRaAZ^Z9%_odA4(egYWBaTtcJIe_c+dVl{Td!CfJ>4C%HFplH> z`6K)Px6Ew}>}2d81CvhfA3^uPi)*3D=DZy$P+c9z@pil2pFgty1u{P-P7^0pwRAKL z!{u_B%kizb9nb7}Qf4!Mr^(Jj?-}y@>kG>t;Gdtr-2<=3z%-%!Kioa=;!I4g|9rX! z-q#ZoJrBGq4{*0RxDgL@1-b%Vfv!MTpexW7=n8ZNx&mE+u0U7dUE?3S;&;nlN|QnW O00000007^NklAxt~)ud zZLqlI%+GIE=4LU@0o)4)Du$z)oa#G$S*Qw=l3s9U&A8=#R#i@C$IoW_>q6zI8EJXy z-_H9qtVLL+9>pq5I8vpaYtPnRG8qTof36Mt3BldzcFc%2OLYV zo@W*JC%fSRvmB#zu-I(<4$Jc^3!e6&W3{JK1c&16NjG5W1@E%jC+uNIrZ{^RPTCSt zW4=OjwOC9?iB0)pFUBTL==xGg=}}eW{$?SMfvVdS?Lh60R1i1wlsZpD6=ySSwig|> zX`|jJ>?s309*@H?JfF|g=>(vb0o-o4^Z5+m9i30v1aP@rat02E!!Qi#