From f73cfa1cf5a4ba8bb526ac45d17a04a342c14768 Mon Sep 17 00:00:00 2001 From: Jordach Date: Fri, 18 Jul 2014 14:01:00 +0100 Subject: [PATCH] desk fans (YAHN) uses new fan blades object for recipe --- homedecor/crafts.lua | 28 +++++- homedecor/fans.lua | 85 ++++++++++++++++++ homedecor/init.lua | 3 + homedecor/models/homedecor_desk_fan.b3d | Bin 0 -> 17773 bytes homedecor/models/homedecor_desk_fan_uv.png | Bin 0 -> 367 bytes .../textures/homedecor_desk_fan_body.png | Bin 0 -> 419 bytes homedecor/textures/homedecor_desk_fan_inv.png | Bin 0 -> 5507 bytes homedecor/textures/homedecor_fan_blades.png | Bin 0 -> 627 bytes 8 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 homedecor/fans.lua create mode 100644 homedecor/models/homedecor_desk_fan.b3d create mode 100644 homedecor/models/homedecor_desk_fan_uv.png create mode 100644 homedecor/textures/homedecor_desk_fan_body.png create mode 100644 homedecor/textures/homedecor_desk_fan_inv.png create mode 100644 homedecor/textures/homedecor_fan_blades.png diff --git a/homedecor/crafts.lua b/homedecor/crafts.lua index e7b75f1..073a3fc 100644 --- a/homedecor/crafts.lua +++ b/homedecor/crafts.lua @@ -87,6 +87,11 @@ minetest.register_craftitem("homedecor:speaker_driver", { inventory_image = "homedecor_speaker_driver.png" }) +minetest.register_craftitem("homedecor:fan_blades", { + description = S("Fan blades"), + inventory_image = "homedecor_fan_blades.png" +}) + -- alternate crafting if mesecons is/isn't installed if not minetest.get_modpath("mesecons") then @@ -129,6 +134,15 @@ minetest.register_alias("homedecor:brass_ingot", "technic:brass_ingot") -- the actual crafts +minetest.register_craft( { + output = "homedecor:fan_blades 2", + recipe = { + { "", "homedecor:plastic_sheeting", "" }, + { "", "default:steel_ingot", "" }, + { "homedecor:plastic_sheeting", "", "homedecor:plastic_sheeting" } + }, +}) + minetest.register_craft( { output = "homedecor:steel_wire 4", recipe = { @@ -2062,9 +2076,17 @@ minetest.register_craft({ minetest.register_craft( { output = "homedecor:openframe_bookshelf", recipe = { - {"group:wood", "", "group:wood"}, - {"default:book", "default:book", "default:book"}, - {"group:wood", "", "group:wood"}, + {"group:wood", "", "group:wood"}, + {"default:book", "default:book", "default:book"}, + {"group:wood", "", "group:wood"}, + }, +}) + +minetest.register_craft( { + output = "homedecor:desk_fan", + recipe = { + {"default:steel_ingot", "homedecor:fan_blades", "homedecor:motor"}, + {"", "default:steel_ingot", ""} }, }) diff --git a/homedecor/fans.lua b/homedecor/fans.lua new file mode 100644 index 0000000..4d269f0 --- /dev/null +++ b/homedecor/fans.lua @@ -0,0 +1,85 @@ +minetest.register_entity("homedecor:mesh_desk_fan", { + collisionbox = { 0, 0, 0, 0, 0, 0 }, + visual = "mesh", + mesh = "homedecor_desk_fan.b3d", + textures = {"homedecor_desk_fan_uv.png"}, + visual_size = {x=10, y=10}, +}) + +minetest.register_node("homedecor:desk_fan", { + description = "Desk Fan", + drawtype = "nodebox", + paramtype2 = "facedir", + legacy_facedir_simple = true, + paramtype = "light", + groups = {oddly_breakable_by_hand=2}, + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.1875, 0.1875, -0.375, 0.1875}, -- NodeBox1 + } + }, + tiles = {"homedecor_desk_fan_body.png"}, + inventory_image = "homedecor_desk_fan_inv.png", + wield_image = "homedecor_desk_fan_inv.png", + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + } + }, + on_construct = function(pos) + local entity_remove = minetest.get_objects_inside_radius(pos, 0.1) + local meta = minetest.get_meta(pos) + meta:set_string("active", "no") + print (meta:get_string("active")) + if entity_remove[1] == nil then + minetest.add_entity({x=pos.x, y=pos.y, z=pos.z}, "homedecor:mesh_desk_fan") --+(0.0625*10) + entity_remove = minetest.get_objects_inside_radius(pos, 0.1) + if minetest.get_node(pos).param2 == 0 then --list of rad to 90 degree: 3.142/2 = 90; 3.142 = 180; 3*3.142 = 270 + entity_remove[1]:setyaw(3.142) + elseif minetest.get_node(pos).param2 == 1 then + entity_remove[1]:setyaw(3.142/2) + elseif minetest.get_node(pos).param2 == 3 then + entity_remove[1]:setyaw((-3.142/2)) + else + entity_remove[1]:setyaw(0) + end + end + end, + on_punch = function(pos) + local entity_anim = minetest.get_objects_inside_radius(pos, 0.1) + local speedy_meta = minetest.get_meta(pos) + if speedy_meta:get_string("active") == "no" then + speedy_meta:set_string("active", "yes") + print (speedy_meta:get_string("active")) + elseif speedy_meta:get_string("active") == "yes" then + speedy_meta:set_string("active", "no") + print (speedy_meta:get_string("active")) + end + + if entity_anim[1] == nil then + minetest.add_entity({x=pos.x, y=pos.y, z=pos.z}, "homedecor:mesh_desk_fan") --+(0.0625*10) + local entity_remove = minetest.get_objects_inside_radius(pos, 0.1) + if minetest.get_node(pos).param2 == 0 then --list of rad to 90 degree: 3.142/2 = 90; 3.142 = 180; 3*3.142 = 270 + entity_remove[1]:setyaw(3.142) + elseif minetest.get_node(pos).param2 == 1 then + entity_remove[1]:setyaw(3.142/2) + elseif minetest.get_node(pos).param2 == 3 then + entity_remove[1]:setyaw((-3.142/2)) + else + entity_remove[1]:setyaw(0) + end + end + local entity_anim = minetest.get_objects_inside_radius(pos, 0.1) + if minetest.get_meta(pos):get_string("active") == "no" then + entity_anim[1]:set_animation({x=0,y=0}, 1, 0) + elseif minetest.get_meta(pos):get_string("active") == "yes" then + entity_anim[1]:set_animation({x=0,y=96}, 24, 0) + end + end, + after_dig_node = function(pos) + local entity_remove = minetest.get_objects_inside_radius(pos, 0.1) + entity_remove[1]:remove() + end, +}) diff --git a/homedecor/init.lua b/homedecor/init.lua index c54add1..3e323c4 100644 --- a/homedecor/init.lua +++ b/homedecor/init.lua @@ -99,7 +99,10 @@ dofile(homedecor.modpath.."/furniture.lua") dofile(homedecor.modpath.."/furniture_medieval.lua") dofile(homedecor.modpath.."/furniture_bathroom.lua") dofile(homedecor.modpath.."/furniture_recipes.lua") +dofile(homedecor.modpath.."/fans.lua") dofile(homedecor.modpath.."/locked.lua") + + print("[HomeDecor] "..S("Loaded!")) diff --git a/homedecor/models/homedecor_desk_fan.b3d b/homedecor/models/homedecor_desk_fan.b3d new file mode 100644 index 0000000000000000000000000000000000000000..d49e8b1f3d02c3ed7789ed64103347ea4c7f6990 GIT binary patch literal 17773 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 N002ovPDHLkV1k$dngsv= literal 0 HcmV?d00001 diff --git a/homedecor/textures/homedecor_desk_fan_body.png b/homedecor/textures/homedecor_desk_fan_body.png new file mode 100644 index 0000000000000000000000000000000000000000..6ac42e2134eac7b414b6995759d86d7b112fcbc7 GIT binary patch literal 419 zcmV;U0bKrxP)Jh~PZWvSwz8NGV7F0M8F&3|ecj_+V){(BIcHhQid{s$F6QBXzsZ(oS);0=$(~Y0g!{hh!Eqc_ZKi)5N6n7j_YJ@p zgE0oZ_X=^XRk@_a)>>KGd!yHNG3TtlACJdh!oPAOf-y#^%fKT7opaJ!qxW8((^krK zcdqOD3NLf;oUrpezy7*02C7=U=gNjMXzjgMJvjr(lmnJIiAXh);6HyKK}k}5YMKB5 N002ovPDHLkV1f?)!XE$t literal 0 HcmV?d00001 diff --git a/homedecor/textures/homedecor_desk_fan_inv.png b/homedecor/textures/homedecor_desk_fan_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..be2185a16fe716adbc67f285f8d4ff4495213ff9 GIT binary patch literal 5507 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 FV1m?)$(#TH literal 0 HcmV?d00001 diff --git a/homedecor/textures/homedecor_fan_blades.png b/homedecor/textures/homedecor_fan_blades.png new file mode 100644 index 0000000000000000000000000000000000000000..f751e66d5ca688b86320b07193876b273c7f81e2 GIT binary patch literal 627 zcmV-(0*w8MP)4f27@Y6D-HjNC2f-w*1TIOj974DY2igdd&L{|00Shf`#8z9e35Y2E0kIU~4-g>) z7IJ}rEQE06Oh^%uUCvuQ7qa`l?>(DC2;PC2av0|Oh8bW4(lot)a&q!HNs=lqie9gG zqucGeG)>*<>1hT4$H&JsOzRCLJ@2N7Kq+O6F;|>(nuuhWRt+Py)>l2x0}+wd8cC8& zjQVzz!EdcKlu`}=rl+TS7cwBC??eP5Qbd#jK)2haix_+XfI;?m05CZ@>He#Me!ouu zP!z@2EX!<`WtBY7gHif(EhI^z^E?Lt+1S|lX|1*WexECqifXsp+FEPp=jYu&5e^Ox zJOEHiUH5(eah~VT^E_W+W<51E^?Gh@Zk32``My5^0IgO_|Bc(}bZB;V)*T%kt^2;e zqP2$B8aq2XKici~rRC-2%hp<0YhjG}B_c0twc1*%)zbBPT?hd7_V(U;p7+G}eO5|& zgX*pYL2$Ugzn?Pm1T*{0T#Cq;F=l;fY3W`RMWo_5rm`%X#u!r+g;x}XE6egj5Cn$+ zV6D9)B7ulNM8=reT5In{QS=A^sW1#(S(cr%vopUeOBiFeXJ%#|0ze$cs#>i^%>0&_ ziJ7g4DCZoUbGMt#rd5M0t0MBs81rCZVWBZTK5hXZ3_}~oG1Y3dr_B6@nU#o`fx-6X z<|e7ZaEisn#TQDcPrJLj=N1=+q1)QpQjJFAnTXT@d~?oywAQWxz#rf#JrOyC7ykeN N002ovPDHLkV1k^l9i;#O literal 0 HcmV?d00001