summaryrefslogtreecommitdiff
path: root/technic/technic/machines/register/generator.lua
diff options
context:
space:
mode:
Diffstat (limited to 'technic/technic/machines/register/generator.lua')
-rw-r--r--technic/technic/machines/register/generator.lua173
1 files changed, 0 insertions, 173 deletions
diff --git a/technic/technic/machines/register/generator.lua b/technic/technic/machines/register/generator.lua
deleted file mode 100644
index 31c1cef..0000000
--- a/technic/technic/machines/register/generator.lua
+++ /dev/null
@@ -1,173 +0,0 @@
-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_generator(data)
- local tier = data.tier
- local ltier = string.lower(tier)
-
- local groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1}
- local active_groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1, 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 generator_formspec =
- "invsize[8,9;]"..
- "label[0,0;"..S("Fuel-Fired %s Generator"):format(tier).."]"..
- "list[current_name;src;3,1;1,1;]"..
- "image[4,1;1,1;default_furnace_fire_bg.png]"..
- "list[current_player;main;0,5;8,4;]"..
- "listring[]"
-
- local desc = S("Fuel-Fired %s Generator"):format(tier)
-
- local run = function(pos, node)
- local meta = minetest.get_meta(pos)
- local burn_time = meta:get_int("burn_time")
- local burn_totaltime = meta:get_int("burn_totaltime")
- -- If more to burn and the energy produced was used: produce some more
- if burn_time > 0 then
- meta:set_int(tier.."_EU_supply", data.supply)
- burn_time = burn_time - 1
- meta:set_int("burn_time", burn_time)
- end
- -- Burn another piece of fuel
- if burn_time == 0 then
- local inv = meta:get_inventory()
- if not inv:is_empty("src") then
- local fuellist = inv:get_list("src")
- local fuel
- local afterfuel
- fuel, afterfuel = minetest.get_craft_result(
- {method = "fuel", width = 1,
- items = fuellist})
- if not fuel or fuel.time == 0 then
- meta:set_string("infotext", S("%s Out Of Fuel"):format(desc))
- technic.swap_node(pos, "technic:"..ltier.."_generator")
- meta:set_int(tier.."_EU_supply", 0)
- return
- end
- meta:set_int("burn_time", fuel.time)
- meta:set_int("burn_totaltime", fuel.time)
- inv:set_stack("src", 1, afterfuel.items[1])
- technic.swap_node(pos, "technic:"..ltier.."_generator_active")
- meta:set_int(tier.."_EU_supply", data.supply)
- else
- technic.swap_node(pos, "technic:"..ltier.."_generator")
- meta:set_int(tier.."_EU_supply", 0)
- end
- end
- if burn_totaltime == 0 then burn_totaltime = 1 end
- local percent = math.floor((burn_time / burn_totaltime) * 100)
- meta:set_string("infotext", desc.." ("..percent.."%)")
- meta:set_string("formspec",
- "size[8, 9]"..
- "label[0, 0;"..minetest.formspec_escape(desc).."]"..
- "list[current_name;src;3, 1;1, 1;]"..
- "image[4, 1;1, 1;default_furnace_fire_bg.png^[lowpart:"..
- (percent)..":default_furnace_fire_fg.png]"..
- "list[current_player;main;0, 5;8, 4;]"..
- "listring[]")
- end
-
- minetest.register_node("technic:"..ltier.."_generator", {
- description = desc,
- tiles = {"technic_"..ltier.."_generator_top.png", "technic_machine_bottom.png",
- "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_side.png",
- "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_front.png"},
- paramtype2 = "facedir",
- groups = groups,
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- tube = data.tube and tube or nil,
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", desc)
- meta:set_int(data.tier.."_EU_supply", 0)
- meta:set_int("burn_time", 0)
- meta:set_int("tube_time", 0)
- meta:set_string("formspec", generator_formspec)
- local inv = meta:get_inventory()
- inv:set_size("src", 1)
- end,
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- technic_run = run,
- after_place_node = data.tube and pipeworks.after_place,
- after_dig_node = technic.machine_after_dig_node
- })
-
- minetest.register_node("technic:"..ltier.."_generator_active", {
- description = desc,
- tiles = {"technic_"..ltier.."_generator_top.png", "technic_machine_bottom.png",
- "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_side.png",
- "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_front_active.png"},
- paramtype2 = "facedir",
- groups = active_groups,
- legacy_facedir_simple = true,
- sounds = default.node_sound_wood_defaults(),
- tube = data.tube and tube or nil,
- drop = "technic:"..ltier.."_generator",
- can_dig = technic.machine_can_dig,
- allow_metadata_inventory_put = technic.machine_inventory_put,
- allow_metadata_inventory_take = technic.machine_inventory_take,
- allow_metadata_inventory_move = technic.machine_inventory_move,
- technic_run = run,
- technic_on_disable = function(pos, node)
- local timer = minetest.get_node_timer(pos)
- timer:start(1)
- end,
- on_timer = function(pos, node)
- local meta = minetest.get_meta(pos)
-
- -- Connected back?
- if meta:get_int(tier.."_EU_timeout") > 0 then return false end
-
- local burn_time = meta:get_int("burn_time") or 0
-
- if burn_time <= 0 then
- meta:set_int(tier.."_EU_supply", 0)
- meta:set_int("burn_time", 0)
- technic.swap_node(pos, "technic:"..ltier.."_generator")
- return false
- end
-
- local burn_totaltime = meta:get_int("burn_totaltime") or 0
- if burn_totaltime == 0 then burn_totaltime = 1 end
- burn_time = burn_time - 1
- meta:set_int("burn_time", burn_time)
- local percent = math.floor(burn_time / burn_totaltime * 100)
- meta:set_string("formspec",
- "size[8, 9]"..
- "label[0, 0;"..minetest.formspec_escape(desc).."]"..
- "list[current_name;src;3, 1;1, 1;]"..
- "image[4, 1;1, 1;default_furnace_fire_bg.png^[lowpart:"..
- (percent)..":default_furnace_fire_fg.png]"..
- "list[current_player;main;0, 5;8, 4;]"..
- "listring[]")
- return true
- end,
- })
-
- technic.register_machine(tier, "technic:"..ltier.."_generator", technic.producer)
- technic.register_machine(tier, "technic:"..ltier.."_generator_active", technic.producer)
-end
-