Don't allow tubing items into LV machines
authorShadowNinja <shadowninja@minetest.net>
Tue, 26 Nov 2013 21:33:27 +0000 (16:33 -0500)
committerShadowNinja <shadowninja@minetest.net>
Tue, 26 Nov 2013 21:33:27 +0000 (16:33 -0500)
technic/machines/register/alloy_furnace.lua
technic/machines/register/electric_furnace.lua
technic/machines/register/grinder.lua

index a3da4fec847f07aa2308e5685d0c43cf542bfcb3..eb9d5b37b4f3a78a058edcb4fa2b9dadde7bb64f 100644 (file)
@@ -64,6 +64,20 @@ technic.register_alloy_recipe("default:copper_ingot",  2, "technic:zinc_ingot",
 technic.register_alloy_recipe("default:sand",          2, "technic:coal_dust",      2, "technic:silicon_wafer",         1)
 technic.register_alloy_recipe("technic:silicon_wafer", 1, "technic:gold_dust",      1, "technic:doped_silicon_wafer",   1)
 
+local tube = {
+       insert_object = function(pos, node, stack, direction)
+               local meta = minetest.get_meta(pos)
+               local inv = meta:get_inventory()
+               return inv:add_item("src", stack)
+       end,
+       can_insert = function(pos, node, stack, direction)
+               local meta = minetest.get_meta(pos)
+               local inv = meta:get_inventory()
+               return inv:room_for_item("src", stack)
+       end,
+       connect_sides = {left=1, right=1, back=1, top=1, bottom=1},
+}
+
 
 function technic.register_alloy_furnace(data)
        local tier = data.tier
@@ -71,6 +85,7 @@ function technic.register_alloy_furnace(data)
 
        local tube_side_texture = data.tube and "technic_"..ltier.."_alloy_furnace_side_tube.png"
                        or "technic_"..ltier.."_alloy_furnace_side.png"
+
        local groups = {cracky=2}
        local active_groups = {cracky=2, not_in_creative_inventory=1}
        if data.tube then
@@ -95,20 +110,6 @@ function technic.register_alloy_furnace(data)
 
        data.formspec = formspec
 
-       local tube = {
-               insert_object = function(pos, node, stack, direction)
-                       local meta = minetest.get_meta(pos)
-                       local inv = meta:get_inventory()
-                       return inv:add_item("src", stack)
-               end,
-               can_insert = function(pos, node, stack, direction)
-                       local meta = minetest.get_meta(pos)
-                       local inv = meta:get_inventory()
-                       return inv:room_for_item("src", stack)
-               end,
-               connect_sides = {left=1, right=1, back=1, top=1, bottom=1},
-       }
-
        minetest.register_node("technic:"..ltier.."_alloy_furnace", {
                description = S("%s Alloy Furnace"):format(tier),
                tiles = {"technic_"..ltier.."_alloy_furnace_top.png",
@@ -119,7 +120,7 @@ function technic.register_alloy_furnace(data)
                         "technic_"..ltier.."_alloy_furnace_front.png"},
                paramtype2 = "facedir",
                groups = groups,
-               tube = tube,
+               tube = data.tube and tube or nil,
                technic = data,
                legacy_facedir_simple = true,
                sounds = default.node_sound_stone_defaults(),
@@ -164,7 +165,7 @@ function technic.register_alloy_furnace(data)
                light_source = 8,
                drop = "technic:"..ltier.."_alloy_furnace",
                groups = active_groups,
-               tube = tube,
+               tube = data.tube and tube or nil,
                technic = data,
                legacy_facedir_simple = true,
                sounds = default.node_sound_stone_defaults(),
index 84bcbf0a431b17855f56f5356a698c8d4294b97f..03704c1a92267a98b4b9d1ce6f1c14f43105e1ef 100644 (file)
@@ -1,6 +1,20 @@
 
 local S = technic.getter
 
+local tube = {
+       insert_object = function(pos, node, stack, direction)
+               local meta = minetest.get_meta(pos)
+               local inv = meta:get_inventory()
+               return inv:add_item("src",stack)
+       end,
+       can_insert = function(pos, node, stack, direction)
+               local meta = minetest.get_meta(pos)
+               local inv = meta:get_inventory()
+               return inv:room_for_item("src", stack)
+       end,
+       connect_sides = {left=1, right=1, back=1, top=1, bottom=1},
+}
+
 function technic.register_electric_furnace(data)
        local tier = data.tier
        local ltier = string.lower(tier)
@@ -8,19 +22,14 @@ function technic.register_electric_furnace(data)
        local tube_side_texture = data.tube and "technic_"..ltier.."_electric_furnace_side_tube.png"
                        or "technic_"..ltier.."_electric_furnace_side.png"
 
-       local tube = {
-               insert_object = function(pos, node, stack, direction)
-                       local meta = minetest.get_meta(pos)
-                       local inv = meta:get_inventory()
-                       return inv:add_item("src",stack)
-               end,
-               can_insert = function(pos, node, stack, direction)
-                       local meta = minetest.get_meta(pos)
-                       local inv = meta:get_inventory()
-                       return inv:room_for_item("src", stack)
-               end,
-               connect_sides = {left=1, right=1, back=1, top=1, bottom=1},
-       }
+       local groups = {cracky=2}
+       local active_groups = {cracky=2, not_in_creative_inventory=1}
+       if data.tube then
+               groups.tubedevice = 1
+               groups.tubedevice_receiver = 1
+               active_groups.tubedevice = 1
+               active_groups.tubedevice_receiver = 1
+       end
 
        local formspec =
                "invsize[8,10;]"..
@@ -46,10 +55,10 @@ function technic.register_electric_furnace(data)
                         "technic_"..ltier.."_electric_furnace_side.png",
                         "technic_"..ltier.."_electric_furnace_front.png"},
                paramtype2 = "facedir",
-               groups = {cracky=2, tubedevice=1, tubedevice_receiver=1},
+               groups = groups,
                legacy_facedir_simple = true,
                sounds = default.node_sound_stone_defaults(),
-               tube = tube,
+               tube = data.tube and tube or nil,
                technic = data,
                on_construct = function(pos)
                        local meta = minetest.get_meta(pos)
@@ -87,11 +96,11 @@ function technic.register_electric_furnace(data)
                         "technic_"..ltier.."_electric_furnace_side.png",
                         "technic_"..ltier.."_electric_furnace_front_active.png"},
                paramtype2 = "facedir",
-               groups = {cracky=2, tubedevice=1, tubedevice_receiver=1, not_in_creative_inventory=1},
+               groups = active_groups,
                light_source = 8,
                legacy_facedir_simple = true,
                sounds = default.node_sound_stone_defaults(),
-               tube = tube,
+               tube = data.tube and tube or nil,
                technic = data,
                on_construct = function(pos)
                        local meta = minetest.get_meta(pos)
index 72ca4b3a04493a1355aa1688392a2e77f90e7a07..5ababfc443f8c7858eeb206ec6c5dabd5ff219bd 100644 (file)
@@ -1,22 +1,33 @@
 
 local S = technic.getter
 
+local tube = {
+       insert_object = function(pos, node, stack, direction)
+               local meta = minetest.get_meta(pos)
+               local inv = meta:get_inventory()
+               return inv:add_item("src", stack)
+       end,
+       can_insert = function(pos, node, stack, direction)
+               local meta = minetest.get_meta(pos)
+               local inv = meta:get_inventory()
+               return inv:room_for_item("src", stack)
+       end,
+       connect_sides = {left=1, right=1, back=1, top=1, bottom=1},
+}
+
 function technic.register_grinder(data)
        local tier = data.tier
        local ltier = string.lower(tier)
-       local tube = {
-               insert_object = function(pos, node, stack, direction)
-                       local meta = minetest.get_meta(pos)
-                       local inv = meta:get_inventory()
-                       return inv:add_item("src", stack)
-               end,
-               can_insert = function(pos, node, stack, direction)
-                       local meta = minetest.get_meta(pos)
-                       local inv = meta:get_inventory()
-                       return inv:room_for_item("src", stack)
-               end,
-               connect_sides = {left=1, right=1, back=1, top=1, bottom=1},
-       }
+
+       local groups = {cracky=2}
+       local active_groups = {cracky=2, not_in_creative_inventory=1}
+       if data.tube then
+               groups.tubedevice = 1
+               groups.tubedevice_receiver = 1
+               active_groups.tubedevice = 1
+               active_groups.tubedevice_receiver = 1
+       end
+
 
        local formspec =
                "invsize[8,10;]"..
@@ -38,9 +49,9 @@ function technic.register_grinder(data)
                         "technic_"..ltier.."_grinder_side.png", "technic_"..ltier.."_grinder_side.png",
                         "technic_"..ltier.."_grinder_side.png", "technic_"..ltier.."_grinder_front.png"},
                paramtype2 = "facedir",
-               groups = {cracky=2, tubedevice=1, tubedevice_receiver=1},
+               groups = groups,
                technic = data,
-               tube = tube,
+               tube = data.tube and tube or nil,
                legacy_facedir_simple = true,
                sounds = default.node_sound_wood_defaults(),
                on_construct = function(pos)
@@ -76,11 +87,11 @@ function technic.register_grinder(data)
                         "technic_"..ltier.."_grinder_side.png", "technic_"..ltier.."_grinder_side.png",
                         "technic_"..ltier.."_grinder_side.png", "technic_"..ltier.."_grinder_front_active.png"},
                paramtype2 = "facedir",
-               groups = {cracky=2, tubedevice=1, tubedevice_receiver=1, not_in_creative_inventory=1},
+               groups = active_groups,
                legacy_facedir_simple = true,
                sounds = default.node_sound_wood_defaults(),
                technic = data,
-               tube = tube,
+               tube = data.tube and tube or nil,
                can_dig = function(pos,player)
                        local meta = minetest.get_meta(pos)
                        local inv = meta:get_inventory()