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
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
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",
"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(),
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(),
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)
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;]"..
"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)
"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)
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;]"..
"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)
"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()