From 971d4f3867dc5e5b637e352234775a4cdb69f2b8 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Fri, 10 Feb 2017 15:38:53 +0100 Subject: [PATCH] 3D redstone torches --- mods/mcl_torches/init.lua | 32 ++++--- .../textures/jeija_torches_off.png | Bin 165 -> 225 bytes .../textures/jeija_torches_off_ceiling.png | Bin 166 -> 0 bytes .../textures/jeija_torches_off_side.png | Bin 243 -> 0 bytes .../textures/jeija_torches_on.png | Bin 174 -> 407 bytes .../textures/jeija_torches_on_ceiling.png | Bin 174 -> 0 bytes .../textures/jeija_torches_on_inv.png | Bin 0 -> 266 bytes .../textures/jeija_torches_on_side.png | Bin 284 -> 0 bytes mods/redstone/mesecons_torch/depends.txt | 1 + mods/redstone/mesecons_torch/init.lua | 79 ++++++++---------- 10 files changed, 57 insertions(+), 55 deletions(-) delete mode 100644 mods/redstone/mesecons_textures/textures/jeija_torches_off_ceiling.png delete mode 100644 mods/redstone/mesecons_textures/textures/jeija_torches_off_side.png delete mode 100644 mods/redstone/mesecons_textures/textures/jeija_torches_on_ceiling.png create mode 100644 mods/redstone/mesecons_textures/textures/jeija_torches_on_inv.png delete mode 100644 mods/redstone/mesecons_textures/textures/jeija_torches_on_side.png diff --git a/mods/mcl_torches/init.lua b/mods/mcl_torches/init.lua index 2fedbb793..c7595c3ab 100644 --- a/mods/mcl_torches/init.lua +++ b/mods/mcl_torches/init.lua @@ -5,9 +5,9 @@ mcl_torches = {} -mcl_torches.register_torch = function(substring, description, icon, mesh_floor, mesh_wall, tiles, light, groups, sounds) - local itemstring = "mcl_torches:"..substring - local itemstring_wall = "mcl_torches:"..substring.."_wall" +mcl_torches.register_torch = function(substring, description, icon, mesh_floor, mesh_wall, tiles, light, groups, sounds, moredef) + local itemstring = minetest.get_current_modname()..":"..substring + local itemstring_wall = minetest.get_current_modname()..":"..substring.."_wall" if light == nil then light = 14 end if mesh_floor == nil then mesh_floor = "mcl_torches_torch_floor.obj" end @@ -18,7 +18,7 @@ mcl_torches.register_torch = function(substring, description, icon, mesh_floor, groups.torch = 1 groups.dig_by_water = 1 - minetest.register_node(itemstring, { + local floordef = { description = description, drawtype = "mesh", mesh = mesh_floor, @@ -63,25 +63,31 @@ mcl_torches.register_torch = function(substring, description, icon, mesh_floor, -- Prevent placement of ceiling torches return itemstack elseif wdir == 1 then - retval = fakestack:set_name("mcl_torches:torch") + retval = fakestack:set_name(itemstring) else - retval = fakestack:set_name("mcl_torches:torch_wall") + retval = fakestack:set_name(itemstring_wall) end if not retval then return itemstack end itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir) - itemstack:set_name("mcl_torches:torch") + itemstack:set_name(itemstring) return itemstack end - }) + } + if moredef ~= nil then + for k,v in pairs(moredef) do + floordef[k] = v + end + end + minetest.register_node(itemstring, floordef) local groups_wall = table.copy(groups) groups_wall.torch = 2 - minetest.register_node(itemstring_wall, { + local walldef = { drawtype = "mesh", mesh = mesh_wall, tiles = tiles, @@ -99,7 +105,13 @@ mcl_torches.register_torch = function(substring, description, icon, mesh_floor, wall_side = {-0.5, -0.5, -0.1, -0.2, 0.1, 0.1}, }, sounds = sounds, - }) + } + if moredef ~= nil then + for k,v in pairs(moredef) do + walldef[k] = v + end + end + minetest.register_node(itemstring_wall, walldef) end mcl_torches.register_torch("torch", "Torch", "default_torch_on_floor.png", diff --git a/mods/redstone/mesecons_textures/textures/jeija_torches_off.png b/mods/redstone/mesecons_textures/textures/jeija_torches_off.png index 55e99750fef97101715da030bd7eb6fba3d2de0f..df3c1220dc30d377d625ec6ee75c57445feb8c9e 100644 GIT binary patch literal 225 zcmV<703QE|P)h^Sj00000NkvXXu0mjfBd|~< literal 165 zcmV;W09yZvP)gTKFLoE3=9v6uneyuCP{V-%C>5h86qyo#_-|OH_8lQVq#)o zV`HPt5H2n*hJXM5QD(@GA3qrW{P{zfAs24HWME`uq|6XQH3`bSbNgV3-i(Dx-lR%k!jp%z zU^qpFxT%Qwc>tBVYRmjj4>6fdk#~G-RGcOkyL?IXGy3mpuDFb%Fmbm~G|vk+c@gNK t{vVhMH&GOzw)#>!@!q;c^o<>S7y#ll{}uhitTq4u002ovPDHLkV1gF5WLE$H diff --git a/mods/redstone/mesecons_textures/textures/jeija_torches_on.png b/mods/redstone/mesecons_textures/textures/jeija_torches_on.png index 28e98a33add42e2d92cfc96be5e2de133bc0b73c..71c538c75c0f88e471b200b150c91fb9a369c058 100644 GIT binary patch literal 407 zcmV;I0cie-P)Px#24YJ`L;#Bbxd8bwo3+~j000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2jKz= z4i+=5XDCPj009?CL_t(o!(;sa|3AY(0w#t52BQubb-<_tMjgOHuEu|ij3`AY)BpdB zbPIuhjEw&oa~K$yZZI$~^)oOqx??(s=25_ygT(eAKMEMhsf_+HGX7`!KOM@;fQgY6 z4P=MF|As9{><0RV0CFPS1my>inFz_w1$9Xd3=9km443Y{V)*#^J43)gl>?H(Tmw@O zi3zYWy#DZo;l_iv1LFWDCME_^0Uibo1>u1$if=r4%fQOYIxr46arN22g#Z^9CxeBy z6vLe-9~plC{yhS#;~zhMGQ9rqh2hViKLeWx2P_R-yz`ntRDcIko-;Czz%*c>Dh4kJ z|NZ+na3Mfx=a%f+@WSm^kTjq;z^&rTcV1GY9{{p6T7uZrRJ8yA002ovPDHLkV1gDG Bo2~!= literal 174 zcmV;f08#&mP)ZKh3#VlKst$vYfpN*gMWUX25KM+ z(2R63pazmAN%Gg+901^YK4~2GACdUBjFFTQ7Ls$O_wFI36l$#=@>n)P2p)1g?EE|T c=la#17kgwh@*w#?Bme*a07*qoM6N<$f}xc^RsaA1 diff --git a/mods/redstone/mesecons_textures/textures/jeija_torches_on_ceiling.png b/mods/redstone/mesecons_textures/textures/jeija_torches_on_ceiling.png deleted file mode 100644 index 45fa2d904d45dbb4953bdcfb23904999aef963d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmV;f08#&mP)ST6h+Z1%Y`>^76=6uRP4bL8HbWF7=;#Pf=uATlKm*s2g#o@xBfc%4=$SesMkE| z*NwYEy!VXV0~6w$V}E~ah$Mz*#5^a2V4ssxvLQKVYOR>sKn2tc6wtS|9V#F#NXHG| cn1Fxnoq9SiVG+ST&;S4c07*qoM6N<$f+1u=FaQ7m diff --git a/mods/redstone/mesecons_textures/textures/jeija_torches_on_inv.png b/mods/redstone/mesecons_textures/textures/jeija_torches_on_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..5af340b9a7fba0b4f1e468688698593dc9c716f7 GIT binary patch literal 266 zcmV+l0rmcgP)FNNGh5vGZ%o{-54`jQO?+CIT0Ja?J01&3X z1O88kVhEtS1OC-}!yWLizMj4gKu(0~p_uNupgPInKM4EUYyGz~QXDu3qy?D_i~}YX zxxy_U5C=>yaUa+afH?qUxwE<2z&HS8F(?EE!~t{b0>B~QWTrYWQ83^Rm|EsJu(<%{ zfC0+|Ad6wy(B4>S1Ug_^xfeY6Z4DI$&H*6H2gCu$Q2@dN<^W4QS&AG00Hgb#Hl+3# QV*mgE07*qoM6N<$g4Z@@^8f$< literal 0 HcmV?d00001 diff --git a/mods/redstone/mesecons_textures/textures/jeija_torches_on_side.png b/mods/redstone/mesecons_textures/textures/jeija_torches_on_side.png deleted file mode 100644 index 3894ecd30bbc54777aa9f4307df95ee04af571e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 284 zcmV+%0ptFOP);z+$iSVUWa diff --git a/mods/redstone/mesecons_torch/depends.txt b/mods/redstone/mesecons_torch/depends.txt index acaa92412..72327aba4 100644 --- a/mods/redstone/mesecons_torch/depends.txt +++ b/mods/redstone/mesecons_torch/depends.txt @@ -1 +1,2 @@ mesecons +mcl_torches diff --git a/mods/redstone/mesecons_torch/init.lua b/mods/redstone/mesecons_torch/init.lua index 8c901d760..efb22aed8 100644 --- a/mods/redstone/mesecons_torch/init.lua +++ b/mods/redstone/mesecons_torch/init.lua @@ -41,51 +41,34 @@ minetest.register_craft({ {"mcl_core:stick"},} }) -local torch_selectionbox = -{ - type = "wallmounted", - wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1}, - wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1}, - wall_side = {-0.5, -0.1, -0.1, -0.5+0.6, 0.1, 0.1}, -} +mcl_torches.register_torch("mesecon_torch_off", "Mesecon Torch (off)", "jeija_torches_off.png", + "mcl_torches_torch_floor.obj", "mcl_torches_torch_wall.obj", + {"jeija_torches_off.png"}, + 0, + {dig_immediate=3, dig_by_water=1, not_in_creative_inventory=1}, + mcl_core.node_sound_wood_defaults(), + { + mesecons = {receptor = { + state = mesecon.state.off, + rules = torch_get_output_rules + }}, + drop = "mesecons_torch:mesecon_torch_on", + } +) -minetest.register_node("mesecons_torch:mesecon_torch_off", { - drawtype = "torchlike", - tiles = {"jeija_torches_off.png", "jeija_torches_off_ceiling.png", "jeija_torches_off_side.png"}, - inventory_image = "jeija_torches_off.png", - paramtype = "light", - walkable = false, - paramtype2 = "wallmounted", - is_ground_content = false, - selection_box = torch_selectionbox, - groups = {dig_immediate = 3, dig_by_water=1, not_in_creative_inventory = 1}, - drop = "mesecons_torch:mesecon_torch_on", - mesecons = {receptor = { - state = mesecon.state.off, - rules = torch_get_output_rules - }} -}) - -minetest.register_node("mesecons_torch:mesecon_torch_on", { - drawtype = "torchlike", - tiles = {"jeija_torches_on.png", "jeija_torches_on_ceiling.png", "jeija_torches_on_side.png"}, - inventory_image = "jeija_torches_on.png", - wield_image = "jeija_torches_on.png", - stack_max = 64, - paramtype = "light", - sunlight_propagates = true, - walkable = false, - paramtype2 = "wallmounted", - is_ground_content = false, - selection_box = torch_selectionbox, - groups = {dig_immediate=3, dig_by_water=1}, - light_source = 7, - description="Redstone Torch", - mesecons = {receptor = { - state = mesecon.state.on, - rules = torch_get_output_rules - }}, -}) +mcl_torches.register_torch("mesecon_torch_on", "Mesecon Torch", "jeija_torches_on_inv.png", + "mcl_torches_torch_floor.obj", "mcl_torches_torch_wall.obj", + {"jeija_torches_on.png"}, + 7, + {dig_immediate=3, dig_by_water=1}, + mcl_core.node_sound_wood_defaults(), + { + mesecons = {receptor = { + state = mesecon.state.on, + rules = torch_get_output_rules + }} + } +) minetest.register_node("mesecons_torch:redstoneblock", { description = "Block of Redstone", @@ -117,7 +100,7 @@ minetest.register_craft({ }) minetest.register_abm({ - nodenames = {"mesecons_torch:mesecon_torch_off","mesecons_torch:mesecon_torch_on"}, + nodenames = {"mesecons_torch:mesecon_torch_off","mesecons_torch:mesecon_torch_off_wall","mesecons_torch:mesecon_torch_on","mesecons_torch:mesecon_torch_on_wall"}, interval = 1, chance = 1, action = function(pos, node) @@ -133,10 +116,16 @@ minetest.register_abm({ if node.name == "mesecons_torch:mesecon_torch_on" then mesecon:swap_node(pos, "mesecons_torch:mesecon_torch_off") mesecon:receptor_off(pos, torch_get_output_rules(node)) + elseif node.name == "mesecons_torch:mesecon_torch_on_wall" then + mesecon:swap_node(pos, "mesecons_torch:mesecon_torch_off_wall") + mesecon:receptor_off(pos, torch_get_output_rules(node)) end elseif node.name == "mesecons_torch:mesecon_torch_off" then mesecon:swap_node(pos, "mesecons_torch:mesecon_torch_on") mesecon:receptor_on(pos, torch_get_output_rules(node)) + elseif node.name == "mesecons_torch:mesecon_torch_off_wall" then + mesecon:swap_node(pos, "mesecons_torch:mesecon_torch_on_wall") + mesecon:receptor_on(pos, torch_get_output_rules(node)) end end })