From 08db41ee4d8bb02773c5bcb706757e0d4b5b0654 Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Tue, 26 Nov 2013 16:33:27 -0500 Subject: [PATCH] Don't allow tubing items into LV machines --- technic/machines/register/alloy_furnace.lua | 33 +++++++------- .../machines/register/electric_furnace.lua | 43 +++++++++++------- technic/machines/register/grinder.lua | 45 ++++++++++++------- 3 files changed, 71 insertions(+), 50 deletions(-) diff --git a/technic/machines/register/alloy_furnace.lua b/technic/machines/register/alloy_furnace.lua index a3da4fe..eb9d5b3 100644 --- a/technic/machines/register/alloy_furnace.lua +++ b/technic/machines/register/alloy_furnace.lua @@ -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(), diff --git a/technic/machines/register/electric_furnace.lua b/technic/machines/register/electric_furnace.lua index 84bcbf0..03704c1 100644 --- a/technic/machines/register/electric_furnace.lua +++ b/technic/machines/register/electric_furnace.lua @@ -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) diff --git a/technic/machines/register/grinder.lua b/technic/machines/register/grinder.lua index 72ca4b3..5ababfc 100644 --- a/technic/machines/register/grinder.lua +++ b/technic/machines/register/grinder.lua @@ -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()