diff --git a/mods/mcl_torches/init.lua b/mods/mcl_torches/init.lua index 2fedbb7937..c7595c3ab8 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 55e99750fe..df3c1220dc 100644 Binary files a/mods/redstone/mesecons_textures/textures/jeija_torches_off.png and b/mods/redstone/mesecons_textures/textures/jeija_torches_off.png differ diff --git a/mods/redstone/mesecons_textures/textures/jeija_torches_off_ceiling.png b/mods/redstone/mesecons_textures/textures/jeija_torches_off_ceiling.png deleted file mode 100644 index 004589d3ac..0000000000 Binary files a/mods/redstone/mesecons_textures/textures/jeija_torches_off_ceiling.png and /dev/null differ diff --git a/mods/redstone/mesecons_textures/textures/jeija_torches_off_side.png b/mods/redstone/mesecons_textures/textures/jeija_torches_off_side.png deleted file mode 100644 index c5ab4a815d..0000000000 Binary files a/mods/redstone/mesecons_textures/textures/jeija_torches_off_side.png and /dev/null differ diff --git a/mods/redstone/mesecons_textures/textures/jeija_torches_on.png b/mods/redstone/mesecons_textures/textures/jeija_torches_on.png index 28e98a33ad..71c538c75c 100644 Binary files a/mods/redstone/mesecons_textures/textures/jeija_torches_on.png and b/mods/redstone/mesecons_textures/textures/jeija_torches_on.png differ 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 45fa2d904d..0000000000 Binary files a/mods/redstone/mesecons_textures/textures/jeija_torches_on_ceiling.png and /dev/null differ 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 0000000000..5af340b9a7 Binary files /dev/null and b/mods/redstone/mesecons_textures/textures/jeija_torches_on_inv.png differ 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 3894ecd30b..0000000000 Binary files a/mods/redstone/mesecons_textures/textures/jeija_torches_on_side.png and /dev/null differ diff --git a/mods/redstone/mesecons_torch/depends.txt b/mods/redstone/mesecons_torch/depends.txt index acaa924122..72327aba47 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 8c901d760f..efb22aed8e 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 })