distillation tower added

bitumen, fueloil, naphtha, gasoline, gas addded
master
Joachim Stolberg 2019-11-09 23:36:28 +01:00
parent 1a248ff49c
commit ad4f6f2384
51 changed files with 1506 additions and 403 deletions

View File

@ -23,9 +23,21 @@ techage.firebox.Burntime = {
["techage:charcoal"] = true, -- will be replaced by burntime
["default:coal_lump"] = true,
["default:coalblock"] = true,
["techage:oil_source"] = true
["techage:oil_source"] = true,
["techage:gas"] = true,
["techage:gasoline"] = true,
["techage:naphtha"] = true,
["techage:fueloil"] = true,
}
techage.firebox.ValidOilFuels = {
["techage:gasoline"] = 1, -- category
["techage:naphtha"] = 2,
["techage:fueloil"] = 3,
["techage:oil_source"] = 4,
}
local function determine_burntimes()
for k,_ in pairs(techage.firebox.Burntime)do
local fuel,_ = minetest.get_craft_result({method = "fuel", width = 1, items = {k}})

View File

@ -8,7 +8,7 @@
GPL v3
See LICENSE.txt for more information
Oil burner lib
Oil fuel burning lib
]]--
@ -16,39 +16,20 @@ local S2P = minetest.string_to_pos
local P2S = minetest.pos_to_string
local M = minetest.get_meta
local S = techage.S
local Pipe = techage.LiquidPipe
local liquid = techage.liquid
techage.oilburner = {}
local ValidOilFuels = techage.firebox.ValidOilFuels
local Burntime = techage.firebox.Burntime
local CAPACITY = 50
techage.oilburner.CAPACITY = CAPACITY
techage.oilburner.Oilburntime = 50
techage.fuel = {}
techage.fuel.CAPACITY = CAPACITY
minetest.after(1, function()
local fuel,_ = minetest.get_craft_result({method = "fuel", width = 1, items = {"techage:oil_source"}})
techage.oilburner.Oilburntime = fuel.time
end)
techage.oilburner.liquid = {
capa = CAPACITY,
peek = liquid.srv_peek,
put = liquid.srv_put,
take = liquid.srv_take,
}
techage.oilburner.networks = {
pipe = {
sides = techage.networks.AllSides, -- Pipe connection sides
ntype = "tank",
},
}
local function formspec_oil(x, y, mem)
local function formspec_fuel(x, y, mem)
local itemname = ""
if mem.liquid and mem.liquid.amount and mem.liquid.amount > 0 then
itemname = "techage:oil_source "..mem.liquid.amount
if mem.liquid and mem.liquid.name and mem.liquid.amount and mem.liquid.amount > 0 then
itemname = mem.liquid.name.." "..mem.liquid.amount
end
local fuel_percent = 0
if mem.running then
@ -63,16 +44,16 @@ local function formspec_oil(x, y, mem)
"container_end[]"
end
techage.oilburner.formspec_oil = formspec_oil
techage.fuel.formspec_fuel = formspec_fuel
function techage.oilburner.formspec(mem)
function techage.fuel.formspec(mem)
local update = ((mem.countdown or 0) > 0 and mem.countdown) or S("Update")
return "size[8,5]"..
default.gui_bg..
default.gui_bg_img..
default.gui_slots..
formspec_oil(1, 0, mem)..
formspec_fuel(1, 0, mem)..
"button[5,0;2,1;update;"..update.."]"..
"list[current_player;main;0,1.3;8,4;]"
end
@ -81,12 +62,14 @@ local function fill_container(pos, inv, mem)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
local empty_container = inv:get_stack("fuel", 1):get_name()
local full_container = liquid.get_full_container(empty_container, "techage:oil_source")
local ldef = liquid.get_liquid_def(full_container)
if ldef and mem.liquid.amount - ldef.size >= 0 then
inv:remove_item("fuel", ItemStack(empty_container))
inv:add_item("fuel", ItemStack(full_container))
mem.liquid.amount = mem.liquid.amount - ldef.size
local full_container = liquid.get_full_container(empty_container, mem.liquid.name)
if empty_container and full_container then
local ldef = liquid.get_liquid_def(full_container)
if ldef and mem.liquid.amount - ldef.size >= 0 then
inv:remove_item("fuel", ItemStack(empty_container))
inv:add_item("fuel", ItemStack(full_container))
mem.liquid.amount = mem.liquid.amount - ldef.size
end
end
end
@ -96,12 +79,14 @@ local function empty_container(pos, inv, mem)
local stack = inv:get_stack("fuel", 1)
if stack:get_count() == 1 then
local ldef = liquid.get_liquid_def(stack:get_name())
if ldef and ldef.inv_item == "techage:oil_source" then
if mem.liquid.amount + ldef.size <= CAPACITY then
inv:remove_item("fuel", stack)
inv:add_item("fuel", ItemStack(ldef.container))
mem.liquid.amount = mem.liquid.amount + ldef.size
mem.liquid.name = "techage:oil_source"
if ldef and ValidOilFuels[ldef.inv_item] then
if not mem.liquid.name or ldef.inv_item == mem.liquid.name then
if mem.liquid.amount + ldef.size <= CAPACITY then
inv:remove_item("fuel", stack)
inv:add_item("fuel", ItemStack(ldef.container))
mem.liquid.amount = mem.liquid.amount + ldef.size
mem.liquid.name = ldef.inv_item
end
end
end
end
@ -115,10 +100,10 @@ local function move_item(pos, stack)
else
empty_container(pos, inv, mem)
end
M(pos):set_string("formspec", techage.oilburner.formspec(mem))
M(pos):set_string("formspec", techage.fuel.formspec(mem))
end
function techage.oilburner.move_item(pos, stack, formspec)
function techage.fuel.move_item(pos, stack, formspec)
local mem = tubelib2.get_mem(pos)
local inv = M(pos):get_inventory()
if liquid.is_container_empty(stack:get_name()) then
@ -129,25 +114,25 @@ function techage.oilburner.move_item(pos, stack, formspec)
M(pos):set_string("formspec", formspec(pos, mem))
end
function techage.oilburner.allow_metadata_inventory_put(pos, listname, index, stack, player)
function techage.fuel.allow_metadata_inventory_put(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return 1
end
function techage.oilburner.allow_metadata_inventory_take(pos, listname, index, stack, player)
function techage.fuel.allow_metadata_inventory_take(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return stack:get_count()
end
function techage.oilburner.on_metadata_inventory_put(pos, listname, index, stack, player)
function techage.fuel.on_metadata_inventory_put(pos, listname, index, stack, player)
minetest.after(0.5, move_item, pos, stack)
end
function techage.oilburner.can_dig(pos, player)
function techage.fuel.can_dig(pos, player)
if minetest.is_protected(pos, player:get_player_name()) then
return false
end
@ -158,24 +143,34 @@ function techage.oilburner.can_dig(pos, player)
return inv:is_empty("fuel") and mem.liquid.amount == 0
end
function techage.oilburner.on_rightclick(pos)
function techage.fuel.on_rightclick(pos)
local mem = tubelib2.get_mem(pos)
mem.countdown = 10
M(pos):set_string("formspec", techage.oilburner.formspec(mem))
M(pos):set_string("formspec", techage.fuel.formspec(mem))
end
function techage.oilburner.on_receive_fields(pos, formname, fields, player)
function techage.fuel.on_receive_fields(pos, formname, fields, player)
if minetest.is_protected(pos, player:get_player_name()) then
return
end
local mem = tubelib2.get_mem(pos)
mem.countdown = 10
M(pos):set_string("formspec", techage.oilburner.formspec(mem))
M(pos):set_string("formspec", techage.fuel.formspec(mem))
end
function techage.oilburner.formspec_update(pos, mem)
function techage.fuel.formspec_update(pos, mem)
if mem.countdown and mem.countdown > 0 then
mem.countdown = mem.countdown - 1
M(pos):set_string("formspec", techage.oilburner.formspec(mem))
M(pos):set_string("formspec", techage.fuel.formspec(mem))
end
end
-- name is the fuel item name
-- category is 4 (all burner) to 1 (gasoline)
function techage.fuel.burntime(name, category)
if ValidOilFuels[name] and ValidOilFuels[name] <= category then
return Burntime[name] or 0.01 -- not zero !
end
return 0.01 -- not zero !
end

View File

@ -50,7 +50,7 @@ local function output(network, valid)
tbl[#tbl+1] = count_nodes(ntype, table)
end
end
print("Network ("..valid.."): "..table.concat(tbl, ", "))
--print("Network ("..valid.."): "..table.concat(tbl, ", "))
end
-- return the node definition local networks table

View File

@ -18,12 +18,12 @@ local M = minetest.get_meta
local S = techage.S
local firebox = techage.firebox
local oilburner = techage.oilburner
local fuel = techage.fuel
local Pipe = techage.LiquidPipe
local liquid = techage.liquid
local CYCLE_TIME = 2
local BURN_CYCLE_FACTOR = 0.5
local EFFICIENCY = 0.5
local function firehole(pos, on)
local param2 = techage.get_node_lvm(pos).param2
@ -54,7 +54,7 @@ local function node_timer(pos, elapsed)
if mem.burn_cycles <= 0 then
local taken = firebox.get_fuel(pos)
if taken then
mem.burn_cycles = (firebox.Burntime[taken:get_name()] or 1) / CYCLE_TIME * BURN_CYCLE_FACTOR
mem.burn_cycles = (firebox.Burntime[taken:get_name()] or 1) * EFFICIENCY / CYCLE_TIME
mem.burn_cycles_total = mem.burn_cycles
else
mem.running = false
@ -191,7 +191,7 @@ minetest.register_node("techage:coalfirehole_on", {
local function on_timer2(pos, elapsed)
local mem = tubelib2.get_mem(pos)
if mem.running then
oilburner.formspec_update(pos, mem)
fuel.formspec_update(pos, mem)
-- trigger generator and provide power ratio 0..1
local ratio = techage.transfer(
{x=pos.x, y=pos.y+2, z=pos.z},
@ -208,12 +208,13 @@ local function on_timer2(pos, elapsed)
if mem.burn_cycles <= 0 then
if mem.liquid.amount > 0 then
mem.liquid.amount = mem.liquid.amount - 1
mem.burn_cycles = oilburner.Oilburntime / CYCLE_TIME * BURN_CYCLE_FACTOR
mem.burn_cycles = fuel.burntime(mem.liquid.name) * EFFICIENCY / CYCLE_TIME
mem.burn_cycles_total = mem.burn_cycles
else
mem.running = false
mem.liquid.name = nil
firehole(pos, false)
M(pos):set_string("formspec", oilburner.formspec(mem))
M(pos):set_string("formspec", fuel.formspec(mem))
return false
end
end
@ -227,6 +228,7 @@ local function start_firebox2(pos, mem)
on_timer2(pos, 0)
firehole(pos, true)
minetest.get_node_timer(pos):start(CYCLE_TIME)
M(pos):set_string("formspec", fuel.formspec(mem))
end
end
@ -249,11 +251,11 @@ minetest.register_node("techage:oilfirebox", {
sounds = default.node_sound_stone_defaults(),
on_timer = on_timer2,
can_dig = oilburner.can_dig,
allow_metadata_inventory_put = oilburner.allow_metadata_inventory_put,
allow_metadata_inventory_take = oilburner.allow_metadata_inventory_take,
on_receive_fields = oilburner.on_receive_fields,
on_rightclick = oilburner.on_rightclick,
can_dig = fuel.can_dig,
allow_metadata_inventory_take = fuel.allow_metadata_inventory_take,
allow_metadata_inventory_put = fuel.allow_metadata_inventory_put,
on_receive_fields = fuel.on_receive_fields,
on_rightclick = fuel.on_rightclick,
on_construct = function(pos)
local mem = tubelib2.init_mem(pos)
@ -263,7 +265,7 @@ minetest.register_node("techage:oilfirebox", {
mem.liquid = {}
mem.liquid.amount = 0
local meta = M(pos)
meta:set_string("formspec", oilburner.formspec(mem))
meta:set_string("formspec", fuel.formspec(mem))
local inv = meta:get_inventory()
inv:set_size('fuel', 1)
firehole(pos, false)
@ -277,24 +279,33 @@ minetest.register_node("techage:oilfirebox", {
local mem = tubelib2.get_mem(pos)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
start_firebox2(pos, mem)
oilburner.on_metadata_inventory_put(pos, listname, index, stack, player)
minetest.after(1, start_firebox2, pos, mem)
fuel.on_metadata_inventory_put(pos, listname, index, stack, player)
end,
liquid = {
capa = oilburner.CAPACITY,
capa = fuel.CAPACITY,
fuel_cat = fuel.BT_BITUMEN,
peek = liquid.srv_peek,
put = function(pos, indir, name, amount)
local leftover = liquid.srv_put(pos, indir, name, amount)
local mem = tubelib2.get_mem(pos)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
start_firebox2(pos, mem)
return leftover
if fuel.valid_fuel(name, fuel.BT_BITUMEN) then
local leftover = liquid.srv_put(pos, indir, name, amount)
local mem = tubelib2.get_mem(pos)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
start_firebox2(pos, mem)
return leftover
end
return amount
end,
take = liquid.srv_take,
},
networks = oilburner.networks,
networks = {
pipe = {
sides = techage.networks.AllSides, -- Pipe connection sides
ntype = "tank",
},
},
})
Pipe:add_secondary_node_names({"techage:oilfirebox"})

View File

@ -73,28 +73,28 @@ local function formspec_help(meta)
else
bttn = ""
end
return "size[11,9]"..
return "size[11,10]"..
default.gui_bg..
default.gui_bg_img..
default.gui_slots..
"item_image[9.6,0;1,1;techage:construction_board]"..
bttn..
"style_type[textarea;textcolor=#AAAAAA]"..
"textarea[0.3,4.7;11,5.3;;"..(aText[idx] or "")..";]"..
"textarea[0.3,5.7;11,5.3;;"..(aText[idx] or "")..";]"..
--"textarea[0.3,4.7;11,5.3;;\027(c@#0000ff)Text \027(c@#00ff00)Text2;]"..
--"textarea[0.3,4.7;11,5.3;;"..tostring(text)..";]"..
"box[0,4.75;10.775,4.45;#000000]"..
"box[0,5.75;10.775,4.45;#000000]"..
"tablecolumns[tree,width=1;text,width=10,align=inline]"..
"tableoptions[opendepth=1]"..
"table[0.1,0;9,4;page;"..table.concat(aTitel, ",")..";"..idx.."]"
"table[0.1,0;9,5;page;"..table.concat(aTitel, ",")..";"..idx.."]"
end
local function formspec_plan(meta)
local idx = meta:get_int("index")
local images = tPlans[aPlanTable[idx]] or "none"
local titel = string.sub(aTitel[idx], 3) or "unknown"
return "size[11,9]"..
return "size[11,10]"..
default.gui_bg..
default.gui_bg_img..
default.gui_slots..

View File

@ -43,6 +43,7 @@ techage.Items = {
ta2_forceload = "techage:forceload",
---------------------
techage_ta3 = "techage_ta3.png",
techage_ta31 = "techage_ta3b.png",
ta3_firebox = "techage:coalfirebox",
ta3_oilbox = "techage:oilfirebox",
ta3_boiler = "techage:coalboiler_top",
@ -82,6 +83,8 @@ techage.Items = {
ta3_tank = "techage:ta3_tank",
ta3_pump = "techage:t3_pump",
oiltank = "techage:oiltank",
reboiler = "techage:ta3_reboiler",
ta3_reactor = "techage_reactor_inv.png",
----------------------------
ta3_button = "techage:ta3_button_off",
ta3_cartdetector = "techage:ta3_cartdetector_off",

View File

@ -61,12 +61,19 @@ techage.manual_DE.aTitel = {
"3,TA3 Ofen-Ölbrenner / Furnace Oil Burner",
"3,TA3 Ofenoberteil / Furnace Top",
"3,TA3 Gebläse / Booster",
"2,Öl-Anlagen",
"2,Flüssigkeiten",
"3,TA3 Tank / TA3 Tank",
"3,TA3 Pumpe / TA3 Pump",
"2,Öl-Förderung",
"3,TA3 Ölexplorer / Oil Explorer",
"3,TA3 Ölbohrkiste / Oil Drill Box",
"3,TA3 Ölpumpe / Oil Pumpjack",
"3,TA3 Bohrgestänge / Drill Bit",
"3,Öltank / Oil Tank",
"2,Öl-Verarbeitung",
"3,Destillationsturm / distiller tower",
"4,Aufkocher / reboiler)",
"3,Chemischer Reaktor / chemical reactor",
"2,Logik-/Schalt-Blöcke",
"3,TA3 Taster/Schalter / Button/Switch",
"3,TA3 Logikblock / Logic Block",
@ -90,9 +97,6 @@ techage.manual_DE.aTitel = {
"3,TA3 Kiessieb / Gravel Sieve",
"3,TA3 Mühle / Grinder",
"3,TA3 Flüssigkeitensammler / Liquid Sampler",
"2,Flüssigkeiten",
"3,TA3 Tank / TA3 Tank",
"3,TA3 Pumpe / TA3 Pump",
"2,Werkzeuge",
"3,Techage Info Tool",
"3,TechAge Programmer",
@ -162,6 +166,12 @@ techage.manual_DE.aText = {
"\n"..
"Natürlich muss es für ein Eisenzeitalter auch Eisen geben und nicht nur Stahl (steel)\\, wie in \"Minetest Game\". Daher wurden einige Rezepte geändert\\, so dass zuerst Eisen hergestellt werden muss und erst später dann Stahl.\n"..
"\n"..
"Auch ist die Haltbarkeit der Werkzeuge an die Zeitalter angelehnt und entspricht damit nicht dem Minetest Originalspiel.\n"..
"Die Haltbarkeit/Härte bspw. für eine Axt ist:\n"..
"\n"..
" - Bronze: 20\n"..
" - Stahl: 30\n"..
"\n"..
"\n"..
"\n",
"Den Köhler brauchst du\\, um Holzkohle herzustellen. Holzkohle wird für den Brenner\\, aber auch bspw. in TA2 für die Dampfmaschine benötigt.\n"..
@ -409,14 +419,17 @@ techage.manual_DE.aText = {
"\n"..
"\n",
"Teil des Kraftwerks. \n"..
"Die Feuerbox muss mit Kohle\\, Holzkohle oder Erdöl gefüllt werden. Die Brenndauer ist abhängig von der Leistung\\, die vom Kraftwerk angefordert wird. Unter Volllast brennt Kohle 20 s\\, Holzkohle 60 s und Erdöl 20 s. Unter Teillast entsprechend länger (50% Last = doppelte Zeit).\n"..
"Die Feuerbox muss mit Kohle oder Holzkohle gefüllt werden. Die Brenndauer ist abhängig von der Leistung\\, die vom Kraftwerk angefordert wird. Unter Volllast brennt Kohle 20 s und Holzkohle 60 s. Unter Teillast entsprechend länger (50% Last = doppelte Zeit).\n"..
"\n"..
"\n"..
"\n",
"Teil des Kraftwerks. \n"..
"Der Ölbrenner kann nur mit Öl gefüllt werden. Die Brenndauer ist abhängig von der Leistung\\, die vom Kraftwerk angefordert wird. Unter Volllast brennt Öl 20 s. Unter Teillast entsprechend länger (50% Last = doppelte Zeit).\n"..
"\n"..
"Der Ölbrenner kann nur 50 Einheiten Öl aufnehmen. Ein zusätzlicher Öltank und eine Ölpumpe sind daher ratsam.\n"..
"Der Ölbrenner kann mit Erdöl\\, Schweröl\\, Naphtha oder Benzin gefüllt werden. Die Brenndauer ist abhängig von der Leistung\\, die vom Kraftwerk angefordert wird. Unter Volllast brennt Erdöl 15 s\\, Schweröl 20 s\\, Naphtha 22 s und Benzin 25 s. \n"..
"\n"..
"Unter Teillast entsprechend länger (50% Last = doppelte Zeit).\n"..
"\n"..
"Der Ölbrenner kann nur 50 Einheiten Kraftstoff aufnehmen. Ein zusätzlicher Öltank und eine Ölpumpe sind daher ratsam.\n"..
"\n"..
"\n"..
"\n",
@ -437,7 +450,7 @@ techage.manual_DE.aText = {
"\n"..
"\n",
"In TA3 (und TA4) werden die Maschinen mit Strom angetrieben. Dazu müssen die Maschinen und Generatoren mit Stromkabel verbunden werden.\n"..
"Tech Age besitzt 2 Arten von Stromkabel:\n"..
"TA3 besitzt 2 Arten von Stromkabel:\n"..
"\n"..
" - Isolierte Kabel (TA Stromkabel) für die lokale Verkabelung im Boden oder in Gebäuden. Diese Kabel lassen sich in der Wand oder im Boden verstecken (können mit der Kelle \"verputzt\" werden).\n"..
" - Überlandleitungen (TA Stromleitung) für Freiluftverkabelung über große Strecken. Diese Kabel sind geschützt\\, können also von anderen Spielern nicht entfernt werden.\n"..
@ -446,6 +459,8 @@ techage.manual_DE.aText = {
"Wird zu wenig Strom bereitgestellt\\, gehen Teile der Verbraucher aus\\, bzw. Lampen beginnen zu flackern.\n"..
"In diesem Zusammenhang ist auch wichtig\\, dass die Funktionsweise von Forceload Blöcken verstanden wurde\\, denn bspw. Generatoren liefern nur Strom\\, wenn der entsprechende Map-Block geladen ist. Dies kann mit einen Forceload Block erzwungen werden.\n"..
"\n"..
"In TA4 kommt noch ein Kabel für die Solaranlage hinzu.\n"..
"\n"..
"\n"..
"\n",
"Für die lokale Verkabelung im Boden oder in Gebäuden.\n"..
@ -497,9 +512,9 @@ techage.manual_DE.aText = {
"\n"..
"\n"..
"\n",
"Der kleine Stromgenerator wird mit Erdöl betrieben und kann für kleine Verbraucher mit bis zu 12 ku genutzt werden. Unter Volllast brennt Erdöl 100 s. Unter Teillast entsprechend länger (50% Last = doppelte Zeit).\n"..
"Der kleine Stromgenerator wird mit Benzin betrieben und kann für kleine Verbraucher mit bis zu 12 ku genutzt werden. Unter Volllast brennt Benzin 150 s. Unter Teillast entsprechend länger (50% Last = doppelte Zeit).\n"..
"\n"..
"Der Stromgenerator kann nur 50 Einheiten Öl aufnehmen. Ein zusätzlicher Öltank und eine Ölpumpe sind daher ratsam.\n"..
"Der Stromgenerator kann nur 50 Einheiten Benzin aufnehmen. Ein zusätzlicher Tank und eine Pumpe sind daher ratsam.\n"..
"\n"..
"\n"..
"\n",
@ -510,25 +525,25 @@ techage.manual_DE.aText = {
"\n"..
"\n"..
"\n",
"Das Strom-Terminal muss von eine Verteilerdose platziert werden. Es zeigt Daten aus dem Stromnetz an wie:\n"..
"Das Strom-Terminal muss vor eine Verteilerdose platziert werden. Es zeigt Daten aus dem Stromnetz an wie:\n"..
"\n"..
" - Anzahl und Leistung der verschiedenen Generatoren und Akkus (aktuell/maximal)\n"..
" - Anzahl der Netzwerk-Blöcke (max. 1000)\nDie Daten des Terminals werden beim Öffnen des Menüs und dann nur durch Anklicken des \"Update\" Buttons aktualisiert.\n"..
" - Anzahl der Netzwerk-Blöcke (max. 1000)\nDie Daten des Terminals werden beim Öffnen des Menüs für einige Sekunden aktualisiert. Danach kann die Anzeige durch Anklicken des \"Update\" Buttons erneut aktualisiert werden.\n"..
"\n"..
"\n"..
"\n",
"Der TA3 Industrieofen dient als Ergänzung zu normalen Ofen (furnace). Damit können alle Waren mit \"Koch\" Rezepte\\, auch im Industrieofen hergestellt werden. Es gibt aber auch spezielle Rezepte\\, die nur im Industrieofen hergestellt werden können.\n"..
"Der TA3 Industrieofen dient als Ergänzung zu normalen Ofen (furnace). Damit können alle Waren mit \"Koch\" Rezepten\\, auch im Industrieofen hergestellt werden. Es gibt aber auch spezielle Rezepte\\, die nur im Industrieofen hergestellt werden können.\n"..
"Der Industrieofen hat sein eigenes Menü zur Rezeptauswahl. Abhängig von den Waren im Industrieofen Inventar links kann rechts das Ausgangsprodukt gewählt werden.\n"..
"\n"..
"Der Industrieofen benötigt Strom (für das Gebläse) sowie Öl für den Brenner. Der Industrieofens und muss wie im Plan rechts abgebildet\\, zusammen gebaut werden.\n"..
"\n"..
"Die Brennzeit für Öl beträgt 80 s.\n"..
"Der Industrieofen benötigt Strom (für das Gebläse) sowie Öl/Benzin für den Brenner. Der Industrieofens und muss wie im Plan rechts abgebildet\\, zusammen gebaut werden.\n"..
"\n"..
"\n"..
"\n",
"Ist Teil des TA3 Industrieofen. Muss mit Öl befeuert werden.\n"..
"Ist Teil des TA3 Industrieofen.\n"..
"\n"..
"Der Ölbrenner kann nur 50 Einheiten Öl aufnehmen. Ein zusätzlicher Öltank und eine Ölpumpe sind daher ratsam.\n"..
"Der Ölbrenner kann mit Schweröl\\, Naphtha oder Benzin betrieben werden. Die Brennzeit beträgt für Schweröl 80 s\\, Naphtha 90 s und Benzin 100 s.\n"..
"\n"..
"Der Ölbrenner kann nur 50 Einheiten Kraftstoff aufnehmen. Ein zusätzlicher Tank und eine Pumpe sind daher ratsam.\n"..
"\n"..
"\n"..
"\n",
@ -540,7 +555,33 @@ techage.manual_DE.aText = {
"\n"..
"\n"..
"\n",
"Um deine Generatoren und Öfen mit Öl betrieben zu können\\, muss du zuerst nach Öl suchen und einen Bohrturm errichten und danach das Öl fördern.\n"..
"Flüssigkeiten wie Wasser oder Öl können nur die spezielle Leitungen gepumpt und in Tanks gespeichert werden. Wie auch bei Wasser gibt es aber Behälter (Eimer\\, Kanister\\, Fässer)\\, in denen die Flüssig gelagert und transportiert werden kann.\n"..
"\n"..
"\n"..
"\n",
"In einem Tank können Flüssigkeiten gespeichert werden. Ein Tank kann über eine Pumpe gefüllt bzw. geleert werden. Dazu muss die Pumpe über einer Leitung (gelbe Röhre) mit dem Tank verbunden sein.\n"..
"Ein Tank kann aber auch über Eimer/Fässer gefüllt bzw. geleert werden:\n"..
"\n"..
" - werden leere Fässer mit einem Schieber oder von Hand in den Tank gegeben\\, werden diese gefüllt und können ausgangsseitig wieder entnommen werden\n"..
" - werden volle Fässer mit einem Schieber oder von Hand in den Tank gegeben\\, werden diese geleert und können ausgangsseitig wieder entnommen werden\n"..
"\n"..
"Dabei ist zu beachten\\, dass Fässer nur komplett gefüllt oder entleert werden können. Sind bspw. weniger als 10 Einheiten im Tank\\, muss dieser Rest mit Eimern oder Kanistern entnommen oder leergepumpt werden.\n"..
"\n"..
"In einen TA3 Tank passen 500 Einheiten oder 50 Fässer einer Flüssigkeit.\n"..
"\n"..
"\n"..
"\n",
"Mit der Pumpe können Flüssigkeiten von Tanks oder Behältern zu anderen Tanks oder Behältern gepumpt werden. Bei der Pumpe muss die Pumprichtung (Pfeil) beachtet werden. Über die gelben Leitungen und Verbindungsstücke ist es auch möglich\\, mehrere Tanks auf jeder Seite der Pumpe anzuordnen. Allerdings müssen die Tanks den selben Inhalt haben.\n"..
"\n"..
"Die TA3 Pumpe pumpt 4 Einheiten Flüssigkeit alle zwei Sekunden.\n"..
"\n"..
"Hinweis 1: Die Pumpe darf nicht direkt neben den Tank platziert werden. Es muss immer mindestens ein Stück gelbe Leitung dazwischen sein.\n"..
"\n"..
"Hinweis 2: Nach dem Starten markiert die Pumpe 10 x die Blöcke\\, von und zu denen gepumpt wird.\n"..
"\n"..
"\n"..
"\n",
"Um deine Generatoren und Öfen mit Öl betreiben zu können\\, muss du zuerst nach Öl suchen und einen Bohrturm errichten und danach das Öl fördern.\n"..
"Dazu dienen dir TA3 Ölexplorer\\, TA3 Ölbohrkiste und TA3 Ölpumpe.\n"..
"\n"..
"\n"..
@ -585,6 +626,29 @@ techage.manual_DE.aText = {
"\n"..
"\n"..
"\n",
"Öl ist ein Stoffgemisch und besteht aus sehr vielen Komponenten. Über einen Destillationsturm kann das Öl in seine Hauptbestandteile wie Bitumen\\, Schweröl\\, Naphtha\\, Benzin und Gas zerlegt werden.\n"..
"Die weitere Verarbeitung zu Endprodukten erfolgt im Chemischen Reaktor.\n"..
"\n"..
"\n"..
"\n",
"Der Destillationsturm muss wie im Plan rechts oben aufgebaut werden. \n"..
"Über den Basisblock wird das Bitumen abgelassen. Der Ausgang ist auf der Rückseite des Basisblocks (Pfeilrichtung beachten).\n"..
"Auf diesen Basisblock kommen die \"Destillationsturm\" Blöcke mit den Nummern: 1\\, 2\\, 3\\, 2\\, 3\\, 2\\, 3\\, 4\n"..
"An den Öffnungen von unten nach oben werden Schweröl\\, Naphtha und Benzin abgeleitet. Ganz oben wird das Gas abgefangen.\n"..
"Es müssen alle Öffnungen am Turm mit Tanks verbunden werden.\n"..
"Der Aufkocher (reboiler) muss mit dem Block \"Destillationsturm 1\" verbunden werden.\n"..
"\n"..
"\n"..
"\n",
"Der Aufkocher erhitzt das Erdöl auf ca. 400°C. Dabei verdampft es weitgehend und wird in den Destillationsturm zur Abkühlung geleitet.\n"..
"\n"..
"Der Aufkocher benötigt 12 Einheiten Strom und produziert alle 6 s jeweils eine Einheit Bitumen\\, Schweröl\\, Naphtha\\, Benzin und Gas.\n"..
"Dazu muss der Aufkocher über einen Pumpe mit Erdöl versorgt werden.\n"..
"\n"..
"\n"..
"\n",
"\n"..
"\n",
"Neben den Röhren für Warentransport\\, sowie den Gas- und Stromleitungen gibt es auch noch eine drahtlose Kommunikationsebene\\, über die Blöcke untereinander Daten austauschen können. Dafür müssen keine Leitungen gezogen werden\\, sondern die Verbindung zwischen Sender und Empfänger erfolgt nur über die Blocknummer. Alle Blöcke\\, die an dieser Kommunikation teilnehmen können\\, zeigen die Blocknummer als Info-Text an\\, wenn man mit dem Mauscursor den Block fixiert.\n"..
"Welche Kommandos ein Block unterstützt\\, kann mit dem TechAge Info Werkzeug (Schraubenschlüssel) ausgelesen und angezeigt werden.\n"..
"Die einfachsten Kommandos\\, die von fast allen Blöcken unterstützt werden\\, sind:\n"..
@ -772,36 +836,6 @@ techage.manual_DE.aText = {
"\n"..
"\n"..
"\n",
"Flüssigkeiten wie Wasser oder Öl können nur die spezielle Leitungen gepumpt und in Tanks gespeichert werden. Wie auch bei Wasser gibt es aber Behälter (Eimer\\, Kanister\\, Fässer)\\, in denen die Flüssig gelagert und transportiert werden kann.\n"..
"\n"..
"\n"..
"\n",
"In einem Tank können Flüssigkeiten gespeichert werden. Ein Tank kann über eine Pumpe gefüllt bzw. geleert werden. Dazu muss die Pumpe über einer Leitung (gelbe Röhre) mit dem Tank verbunden sein.\n"..
"Ein Tank kann aber auch über Eimer/Fässer gefüllt bzw. geleert werden:\n"..
"\n"..
" - werden leere Fässer mit einem Schieber oder von Hand in den Tank gegeben\\, werden diese gefüllt und können ausgangsseitig wieder entnommen werden\n"..
" - werden volle Fässer mit einem Schieber oder von Hand in den Tank gegeben\\, werden diese geleert und können ausgangsseitig wieder entnommen werden\n"..
"\n"..
"Dabei ist zu beachten\\, dass Fässer nur komplett gefüllt oder entleert werden können. Sind bspw. weniger als 10 Einheiten im Tank\\, muss dieser Rest mit Eimern entnommen oder leergepumpt werden.\n"..
"\n"..
"In einen TA3 Tank passen 500 Einheiten oder 50 Fässer einer Flüssigkeit.\n"..
"\n"..
"\n"..
"\n",
"Mit der Pumpe können Flüssigkeiten von Tanks oder Behältern zu anderen Tanks oder Behältern gepumpt werden. Bei der Pumpe muss die Pumprichtung (Pfeil) beachtet werden. Über die gelben Leitungen und Verbindungsstücke ist es auch möglich\\, mehrere Tanks auf jeder Seite der Pumpe anzuordnen. Allerdings müssen die Tanks den selben Inhalt haben.\n"..
"\n"..
" - zum Füllen\\, oder volle Fässer zul Leeren\n"..
" - in einen Eimer oder einen Kanister passt eine Einheit einer Flüssigkeit\\, bspw. Wasser\n"..
" - in ein Fass passen 10 Einheiten Flüssigkeit\\, bspw. Öl\n"..
"\n"..
"Die TA3 Pumpe pumpt 4 Einheiten Flüssigkeit alle zwei Sekunden.\n"..
"\n"..
"Hinweis 1: Die Pumpe darf nicht direkt neben den Tank platziert werden. Es muss immer mindestens ein Stück gelbe Leitung dazwischen sein.\n"..
"\n"..
"Hinweis 2: Nach dem Starten markiert die Pumpe 10 x die Blöcke\\, von und zu denen gepumpt wird.\n"..
"\n"..
"\n"..
"\n",
"",
"Das Techage Info Tool (Schraubenschlüssel) hat verschiedene Funktionen. Er zeigt die Uhrzeit\\, die Position\\, die Temperatur und das Biome an\\, wenn auf einen unbekannten Block geklickt wird.\n"..
"Wird auf einen TechAge Block mit Kommandoschnittstelle geklickt\\, werden alle verfügbaren Daten abgerufen (siehe auch \"Logik-/Schalt-Blöcke\").\n"..
@ -1043,12 +1077,19 @@ techage.manual_DE.aItemName = {
"ta3_furnacefirebox",
"ta3_furnace",
"ta3_booster",
"",
"ta3_tank",
"ta3_pump",
"techage_ta3",
"ta3_oilexplorer",
"ta3_drillbox",
"ta3_pumpjack",
"ta3_drillbit",
"oiltank",
"techage_ta31",
"",
"reboiler",
"ta3_reactor",
"ta3_logic",
"ta3_button",
"ta3_logic",
@ -1073,9 +1114,6 @@ techage.manual_DE.aItemName = {
"ta3_grinder",
"ta3_liquidsampler",
"",
"ta3_tank",
"ta3_pump",
"",
"ta3_end_wrench",
"ta3_programmer",
"ta3_trowel",
@ -1166,35 +1204,6 @@ techage.manual_DE.aPlanTable = {
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"ta3_tank",
"",
"",
@ -1203,6 +1212,39 @@ techage.manual_DE.aPlanTable = {
"",
"",
"",
"",
"",
"ta3_distiller",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"ta4_windturbine",
"",
"",

View File

@ -18,6 +18,7 @@ techage.ConstructionPlans = {}
local IMG_1 = {"", "techage_ta1.png"}
local IMG_2 = {"", "techage_ta2.png"}
local IMG_3 = {"", "techage_ta3.png"}
local IMG31 = {"", "techage_ta3b.png"}
local IMG_4 = {"", "techage_ta4.png"}
local IMG41 = {"", "techage_ta4_tes.png"}
local IMG42 = {"", "techage_ta4_solar.png"}
@ -173,8 +174,8 @@ local Pump = {"techage_filling_ta3.png^techage_appl_pump.png^techage_frame_ta3.p
local Tank = {"techage_filling_ta3.png^techage_frame_ta3.png^techage_appl_tank.png", "techage:ta3_tank"}
local PIPEH = {"techage_gaspipe.png", "techage:ta4_pipeS"}
local PIPEV = {"techage_gaspipe.png^[transformR90", "techage:ta4_pipeS"}
local PN000 = {"techage_gaspipe_knee.png", "techage:ta4_pipeS"}
local PN090 = {"techage_gaspipe_knee.png^[transformR90", "techage:ta4_pipeS"}
local PN000 = {"techage_gaspipe_knee.png", "techage:ta4_pipeS"} -- r
local PN090 = {"techage_gaspipe_knee.png^[transformR90", "techage:ta4_pipeS"} -- 7
local PN180 = {"techage_gaspipe_knee.png^[transformR180", "techage:ta4_pipeS"}
local PN270 = {"techage_gaspipe_knee.png^[transformR270", "techage:ta4_pipeS"}
@ -185,6 +186,28 @@ techage.ConstructionPlans["ta3_tank"] = {
{false, PushL, Tubes, Tubes, TK180, false, false, false, false},
}
--
-- Distiller
--
local DIST4 = {"techage_distiller_inv.png", "techage:ta3_distiller4"}
local DIST3 = {"techage_distiller_inv.png", "techage:ta3_distiller3"}
local DIST2 = {"techage_distiller_inv.png", "techage:ta3_distiller2"}
local DIST1 = {"techage_distiller_inv.png", "techage:ta3_distiller1"}
local DBASE = {"techage_concrete.png", "techage:ta3_distiller_base"}
local REBIO = {"techage_filling_ta3.png^techage_appl_reboiler.png^techage_frame_ta3.png", "techage:ta3_reboiler"}
techage.ConstructionPlans["ta3_distiller"] = {
{false, false, false, false, false, false, false, PN000, PIPEH, Tank, false},
{false, IMG31, false, false, false, false, false, DIST4, false, false, false},
{false, false, false, false, false, false, false, DIST3, PIPEH, Tank, false},
{false, false, false, false, false, false, false, DIST2, false, false, false},
{false, false, false, false, false, false, false, DIST3, PIPEH, Tank, false},
{false, false, false, false, false, false, false, DIST2, false, false, false},
{false, false, false, false, false, false, false, DIST3, PIPEH, Tank, false},
{false, false, false, false, false, false, false, DIST2, false, false, false},
{false, Tank, PIPEH, Pump, PIPEH, REBIO, PIPEH, DIST1, false, false, false},
{false, false, false, false, false, false, false, DBASE, PIPEH, Tank, false},
}
--
-- Wind Turbine

View File

@ -17,11 +17,13 @@ local M = minetest.get_meta
local S = techage.S
local firebox = techage.firebox
local oilburner = techage.oilburner
local fuel = techage.fuel
local Pipe = techage.LiquidPipe
local liquid = techage.liquid
local CYCLE_TIME = 2
local EFFICIENCY = 2 -- burn cycles
local CATEGORY = 3
local function has_fuel(pos, mem)
return mem.burn_cycles > 0 or (mem.liquid and mem.liquid.amount and mem.liquid.amount > 0)
@ -31,7 +33,7 @@ local function stop_firebox(pos, mem)
mem.running = false
firebox.swap_node(pos, "techage:furnace_firebox")
minetest.get_node_timer(pos):stop()
M(pos):set_string("formspec", oilburner.formspec(mem))
M(pos):set_string("formspec", fuel.formspec(mem))
end
local function node_timer(pos, elapsed)
@ -39,14 +41,15 @@ local function node_timer(pos, elapsed)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
if mem.running then
oilburner.formspec_update(pos, mem)
fuel.formspec_update(pos, mem)
mem.burn_cycles = (mem.burn_cycles or 0) - 1
if mem.burn_cycles <= 0 then
if mem.liquid.amount > 0 then
mem.liquid.amount = mem.liquid.amount - 1
mem.burn_cycles = (oilburner.Oilburntime or 1) / CYCLE_TIME
mem.burn_cycles = fuel.burntime(mem.liquid.name) * EFFICIENCY / CYCLE_TIME
mem.burn_cycles_total = mem.burn_cycles
else
mem.liquid.name = nil
stop_firebox(pos, mem)
return false
end
@ -61,7 +64,7 @@ local function start_firebox(pos, mem)
node_timer(pos, 0)
firebox.swap_node(pos, "techage:furnace_firebox_on")
minetest.get_node_timer(pos):start(CYCLE_TIME)
M(pos):set_string("formspec", oilburner.formspec(mem))
M(pos):set_string("formspec", fuel.formspec(mem))
end
end
@ -75,6 +78,26 @@ local function booster_cmnd(pos, cmnd)
{"techage:ta3_booster", "techage:ta3_booster_on"})
end
local _liquid = {
capa = fuel.CAPACITY,
fuel_cat = fuel.BT_OIL,
peek = liquid.srv_peek,
put = function(pos, indir, name, amount)
if fuel.valid_fuel(name, fuel.BT_OIL) then
return liquid.srv_put(pos, indir, name, amount)
end
return amount
end,
take = liquid.srv_take,
}
local _networks = {
pipe = {
sides = techage.networks.AllSides, -- Pipe connection sides
ntype = "tank",
},
}
minetest.register_node("techage:furnace_firebox", {
description = S("TA3 Furnace Oil Burner"),
tiles = {
@ -93,11 +116,14 @@ minetest.register_node("techage:furnace_firebox", {
sounds = default.node_sound_stone_defaults(),
on_timer = node_timer,
can_dig = oilburner.can_dig,
allow_metadata_inventory_put = oilburner.allow_metadata_inventory_put,
allow_metadata_inventory_take = oilburner.allow_metadata_inventory_take,
on_receive_fields = oilburner.on_receive_fields,
on_rightclick = oilburner.on_rightclick,
can_dig = fuel.can_dig,
allow_metadata_inventory_take = fuel.allow_metadata_inventory_take,
allow_metadata_inventory_put = fuel.allow_metadata_inventory_put,
on_metadata_inventory_put = fuel.on_metadata_inventory_put,
on_receive_fields = fuel.on_receive_fields,
on_rightclick = fuel.on_rightclick,
liquid = _liquid,
networks = _networks,
on_construct = function(pos)
local mem = tubelib2.init_mem(pos)
@ -107,25 +133,10 @@ minetest.register_node("techage:furnace_firebox", {
mem.liquid = {}
mem.liquid.amount = 0
local meta = M(pos)
meta:set_string("formspec", oilburner.formspec(mem))
meta:set_string("formspec", fuel.formspec(mem))
local inv = meta:get_inventory()
inv:set_size('fuel', 1)
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
local mem = tubelib2.get_mem(pos)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
oilburner.on_metadata_inventory_put(pos, listname, index, stack, player)
end,
liquid = {
capa = oilburner.CAPACITY,
peek = liquid.srv_peek,
put = liquid.srv_put,
take = liquid.srv_take,
},
networks = oilburner.networks,
})
minetest.register_node("techage:furnace_firebox_on", {
@ -158,27 +169,21 @@ minetest.register_node("techage:furnace_firebox_on", {
drop = "techage:furnace_firebox",
on_timer = node_timer,
can_dig = oilburner.can_dig,
allow_metadata_inventory_put = oilburner.allow_metadata_inventory_put,
allow_metadata_inventory_take = oilburner.allow_metadata_inventory_take,
on_receive_fields = oilburner.on_receive_fields,
on_rightclick = oilburner.on_rightclick,
can_dig = fuel.can_dig,
allow_metadata_inventory_put = fuel.allow_metadata_inventory_put,
allow_metadata_inventory_take = fuel.allow_metadata_inventory_take,
on_receive_fields = fuel.on_receive_fields,
on_rightclick = fuel.on_rightclick,
liquid = _liquid,
networks = _networks,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
local mem = tubelib2.get_mem(pos)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
start_firebox(pos, mem)
oilburner.on_metadata_inventory_put(pos, listname, index, stack, player)
fuel.on_metadata_inventory_put(pos, listname, index, stack, player)
end,
liquid = {
capa = oilburner.CAPACITY,
peek = liquid.srv_peek,
put = liquid.srv_put,
take = liquid.srv_take,
},
networks = oilburner.networks,
})
minetest.register_craft({
@ -210,6 +215,8 @@ techage.register_node({"techage:furnace_firebox", "techage:furnace_firebox_on"},
local mem = tubelib2.get_mem(pos)
if topic == "fuel" then
return has_fuel(pos, mem) and booster_cmnd(pos, "power")
elseif topic == "running" then
return mem.running and booster_cmnd(pos, "power")
elseif topic == "start" then
start_firebox(pos, mem)
booster_cmnd(pos, "start")

View File

@ -79,7 +79,7 @@ local function firebox_cmnd(pos, cmnd)
end
local function cooking(pos, crd, mem, elapsed)
if firebox_cmnd(pos, "fuel") then
if firebox_cmnd(pos, "running") then
local state, err = smelting(pos, mem, elapsed)
if state == techage.RUNNING then
crd.State:keep_running(pos, mem, COUNTDOWN_TICKS)
@ -275,7 +275,7 @@ minetest.register_craft({
output = node_name_ta3,
recipe = {
{"", "techage:usmium_nuggets", ""},
{"", "default:furnace", ""},
{"default:steel_ingot", "default:furnace", "default:steel_ingot"},
{"", "techage:vacuum_tube", ""},
},
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 KiB

BIN
images/reactor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

View File

@ -123,7 +123,7 @@ else
dofile(MP.."/liquids/barrel.lua")
dofile(MP.."/liquids/tank.lua")
dofile(MP.."/liquids/pump.lua")
dofile(MP.."/liquids/oil_lib.lua")
dofile(MP.."/liquids/fuel_lib.lua")
-- Coal power station
dofile(MP.."/coal_power_station/firebox.lua")
@ -164,8 +164,10 @@ else
dofile(MP.."/oil/drillbox.lua")
dofile(MP.."/oil/pumpjack.lua")
dofile(MP.."/oil/generator.lua")
--dofile(MP.."/oil/distiller.lua")
--dofile(MP.."/oil/reboiler.lua")
dofile(MP.."/oil/petroleum.lua")
dofile(MP.."/oil/distiller.lua")
dofile(MP.."/oil/reboiler.lua")
dofile(MP.."/oil/gasflare.lua")
-- Nodes2
if techage.basalt_stone_enabled then

View File

@ -35,4 +35,16 @@ minetest.register_craftitem("techage:liquid", {
})
techage.register_liquid("techage:ta3_barrel_empty", "techage:ta3_barrel_empty", 10, "techage:liquid")
minetest.register_craftitem("techage:ta3_canister_empty", {
description = S("TA3 Canister"),
inventory_image = "techage_canister_inv.png",
})
minetest.register_craft({
output = 'techage:ta3_canister_empty 6',
recipe = {
{'basic_materials:plastic_sheet', 'basic_materials:plastic_sheet', 'basic_materials:plastic_sheet'},
{'basic_materials:plastic_sheet', '', 'basic_materials:plastic_sheet'},
{'basic_materials:plastic_sheet', 'basic_materials:plastic_sheet', 'basic_materials:plastic_sheet'},
}
})

198
liquids/fuel_lib.lua Normal file
View File

@ -0,0 +1,198 @@
--[[
TechAge
=======
Copyright (C) 2019 Joachim Stolberg
GPL v3
See LICENSE.txt for more information
Oil fuel burning lib
]]--
local S2P = minetest.string_to_pos
local P2S = minetest.pos_to_string
local M = minetest.get_meta
local S = techage.S
local LQD = function(pos) return (minetest.registered_nodes[techage.get_node_lvm(pos).name] or {}).liquid end
local Pipe = techage.LiquidPipe
local liquid = techage.liquid
local ValidOilFuels = techage.firebox.ValidOilFuels
local Burntime = techage.firebox.Burntime
techage.fuel = {}
local CAPACITY = 50
techage.fuel.CAPACITY = CAPACITY
-- fuel burning categories (better than...)
techage.fuel.BT_BITUMEN = 4
techage.fuel.BT_OIL = 3
techage.fuel.BT_FUELOIL = 2
techage.fuel.BT_NAPHTHA = 1
local function formspec_fuel(x, y, mem)
local itemname = ""
if mem.liquid and mem.liquid.name and mem.liquid.amount and mem.liquid.amount > 0 then
itemname = mem.liquid.name.." "..mem.liquid.amount
end
local fuel_percent = 0
if mem.running then
fuel_percent = ((mem.burn_cycles or 1) * 100) / (mem.burn_cycles_total or 1)
end
return "container["..x..","..y.."]"..
"background[0,0;3,1.05;techage_form_grey.png]"..
"list[context;fuel;0,0;1,1;]"..
techage.item_image(1, 0, itemname)..
"image[2,0;1,1;default_furnace_fire_bg.png^[lowpart:"..
fuel_percent..":default_furnace_fire_fg.png]"..
"container_end[]"
end
techage.fuel.formspec_fuel = formspec_fuel
function techage.fuel.formspec(mem)
local update = ((mem.countdown or 0) > 0 and mem.countdown) or S("Update")
return "size[8,5]"..
default.gui_bg..
default.gui_bg_img..
default.gui_slots..
formspec_fuel(1, 0, mem)..
"button[5,0;2,1;update;"..update.."]"..
"list[current_player;main;0,1.3;8,4;]"
end
local function fill_container(pos, inv, mem)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
local empty_container = inv:get_stack("fuel", 1):get_name()
local full_container = liquid.get_full_container(empty_container, mem.liquid.name)
if empty_container and full_container then
local ldef = liquid.get_liquid_def(full_container)
if ldef and mem.liquid.amount - ldef.size >= 0 then
inv:remove_item("fuel", ItemStack(empty_container))
inv:add_item("fuel", ItemStack(full_container))
mem.liquid.amount = mem.liquid.amount - ldef.size
if mem.liquid.amount == 0 then
mem.liquid.name = nil
end
end
end
end
local function empty_container(pos, inv, mem)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
local stack = inv:get_stack("fuel", 1)
if stack:get_count() == 1 then
local ldef = liquid.get_liquid_def(stack:get_name())
if ldef and ValidOilFuels[ldef.inv_item] then
if not mem.liquid.name or ldef.inv_item == mem.liquid.name then
if mem.liquid.amount + ldef.size <= CAPACITY then
inv:remove_item("fuel", stack)
inv:add_item("fuel", ItemStack(ldef.container))
mem.liquid.amount = mem.liquid.amount + ldef.size
mem.liquid.name = ldef.inv_item
end
end
end
end
end
local function move_item(pos, stack)
local mem = tubelib2.get_mem(pos)
local inv = M(pos):get_inventory()
if liquid.is_container_empty(stack:get_name()) then
fill_container(pos, inv, mem)
else
empty_container(pos, inv, mem)
end
M(pos):set_string("formspec", techage.fuel.formspec(mem))
end
function techage.fuel.move_item(pos, stack, formspec)
local mem = tubelib2.get_mem(pos)
local inv = M(pos):get_inventory()
if liquid.is_container_empty(stack:get_name()) then
fill_container(pos, inv, mem)
else
empty_container(pos, inv, mem)
end
M(pos):set_string("formspec", formspec(pos, mem))
end
function techage.fuel.allow_metadata_inventory_put(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
if liquid.is_container_empty(stack:get_name()) then
return 1
end
local category = LQD(pos).fuel_cat
local ldef = liquid.get_liquid_def(stack:get_name())
if ldef and ValidOilFuels[ldef.inv_item] and ValidOilFuels[ldef.inv_item] <= category then
return 1
end
return 0
end
function techage.fuel.allow_metadata_inventory_take(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return stack:get_count()
end
function techage.fuel.on_metadata_inventory_put(pos, listname, index, stack, player)
minetest.after(0.5, move_item, pos, stack)
end
function techage.fuel.can_dig(pos, player)
if minetest.is_protected(pos, player:get_player_name()) then
return false
end
local mem = tubelib2.get_mem(pos)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
local inv = M(pos):get_inventory()
return inv:is_empty("fuel") and mem.liquid.amount == 0
end
function techage.fuel.on_rightclick(pos)
local mem = tubelib2.get_mem(pos)
mem.countdown = 10
M(pos):set_string("formspec", techage.fuel.formspec(mem))
end
function techage.fuel.on_receive_fields(pos, formname, fields, player)
if minetest.is_protected(pos, player:get_player_name()) then
return
end
local mem = tubelib2.get_mem(pos)
mem.countdown = 10
M(pos):set_string("formspec", techage.fuel.formspec(mem))
end
function techage.fuel.formspec_update(pos, mem)
if mem.countdown and mem.countdown > 0 then
mem.countdown = mem.countdown - 1
M(pos):set_string("formspec", techage.fuel.formspec(mem))
end
end
-- name is the fuel item name
function techage.fuel.burntime(name)
if ValidOilFuels[name] then
return Burntime[name] or 0.01 -- not zero !
end
return 0.01 -- not zero !
end
function techage.fuel.valid_fuel(name, category)
return ValidOilFuels[name] and ValidOilFuels[name] <= category
end

View File

@ -57,14 +57,16 @@ local function fill_container(pos, inv)
mem.liquid.amount = mem.liquid.amount or 0
local empty_container = inv:get_stack("src", 1):get_name()
local full_container = liquid.get_full_container(empty_container, mem.liquid.name)
local ldef = liquid.get_liquid_def(full_container)
if ldef and mem.liquid.amount - ldef.size >= 0 then
if inv:room_for_item("dst", ItemStack(full_container)) then
inv:remove_item("src", ItemStack(empty_container))
inv:add_item("dst", ItemStack(full_container))
mem.liquid.amount = mem.liquid.amount - ldef.size
if mem.liquid.amount == 0 then
mem.liquid.name = nil
if empty_container and full_container then
local ldef = liquid.get_liquid_def(full_container)
if ldef and mem.liquid.amount - ldef.size >= 0 then
if inv:room_for_item("dst", ItemStack(full_container)) then
inv:remove_item("src", ItemStack(empty_container))
inv:add_item("dst", ItemStack(full_container))
mem.liquid.amount = mem.liquid.amount - ldef.size
if mem.liquid.amount == 0 then
mem.liquid.name = nil
end
end
end
end

View File

@ -100,7 +100,6 @@ TA Industrial Lamp 2=TA Industrielampe 2
TA Industrial Lamp 3=TA Industrielampe 3
TA Junction Pipe=TA Leitungskupplung
TA Lamp=TA Lampe
TA Oil=TA Öl
TA Pipe=TA Leitung (Flüssigkeiten)
TA Power Line=TA Stromleitung
TA Power Pole=TA Strommast
@ -136,27 +135,48 @@ TA2 Protected Chest=TA2 Gesicherte Kiste
TA2 Steam Pipe=TA2 Dampfleitung
TA3 Akku=TA3 Akku
TA3 Akku Box=TA3 Akku Block
TA3 Bitumen=TA3 Bitumen
TA3 Bitumen Barrel=TA3 Bitumenfass
TA3 Bitumen Canister=TA3 Bitumenkanister
TA3 Boiler Base=TA3 Boiler unten
TA3 Boiler Top=TA3 Boiler oben
TA3 Booster=TA3 Gebläse
TA3 Button/Switch=TA3 Taster/Schalter
TA3 Canister=TA3 Kanister
TA3 Cart Detector=TA3 Wagen Detektor
TA3 Coal Power Station Firebox=TA3 Kohlekraftwerks-Feuerbox
TA3 Coal/oil=TA3 Kohle/Öl
TA3 Cooler=TA3 Kühler
TA3 Derrick=TA3 Bohrturm
TA3 Detector=TA3 Detektor
TA3 Distillation Tower 1=TA3 Destillationsturm 1
TA3 Distillation Tower 2=TA3 Destillationsturm 2
TA3 Distillation Tower 3=TA3 Destillationsturm 3
TA3 Distillation Tower 4=TA3 Destillationsturm 4
TA3 Distillation Tower Base=TA3 Destillationsturm Basis
TA3 Drill Bit=TA3 Bohrgestänge
TA3 Ele Fab=TA3 E-Fabrik
TA3 Fuel Oil=TA3 Schweröl
TA3 Fuel Oil Barrel=TA3 Schwerölfass
TA3 Fuel Oil Canister=TA3 Schwerölkanister
TA3 Funnel=TA3 Trichter
TA3 Furnace Oil Burner=TA3 Ofen-Ölbrenner
TA3 Gas=TA3 Gas
TA3 Gasoline=TA3 Benzin
TA3 Gasoline Barrel=TA3 Benzinfass
TA3 Gasoline Canister=TA3 Benzinkanister
TA3 Generator=TA3 Generator
TA3 Gravel Sieve=TA3 Kiessieb
TA3 Logic Block=TA3 Logikblock
TA3 Melting=TA3 Schmelzen
TA3 Naphtha=TA3 Naphtha
TA3 Naphtha Barrel=TA3 Naphtha-Fass
TA3 Naphtha Canister=TA3 Naphtha-Kanister
TA3 Node Detector=TA3 Block Detektor
TA3 Oil Barrel=TA3 Ölfass
TA3 Oil Canister=TA3 Erdölkanister
TA3 Oil Explorer=TA3 Ölexplorer
TA3 Oil Reboiler=TA3 Aufkocher
TA3 Oil Storage=TA3 Öl Speicher
TA3 Player Detector=TA3 Spieler Detektor
TA3 Power Station Firebox=TA3 Kraftwerks-Feuerbox
@ -174,7 +194,6 @@ TA3 Turbine=TA3 Turbine
TA3 Vacuum Tube=TA3 Vakuumröhre
TA4 Carbon Fiber=TA4 Kohlefaser
TA4 Derrick=TA4 Bohrturm
TA4 Distillation Tower=TA4 Destillationsturm
TA4 Doser=TA4 Dosierer
TA4 Electrolyzer=TA4 Elektrolyseur
TA4 Energy Storage=TA4 Energiespeicher
@ -187,7 +206,6 @@ TA4 Heat Exchanger 1=TA4 Wärmetauscher 1
TA4 Heat Exchanger 2=TA4 Wärmetauscher 2
TA4 Heat Exchanger 3=TA4 Wärmetauscher 3
TA4 Hydrogen=TA4 Wasserstoff
TA4 Junction Pipe=TA4 Verbindungsrohr
TA4 Low Power Box==TA4 Niederspannungsverteilerbox
TA4 Low Power Cable=TA4 Niederspannungskabel
TA4 Pillar=TA4 Säule
@ -260,4 +278,4 @@ reactor defect=Reaktor defekt
reactor has no power=Reaktor hat keinen Strom
removed=entfernt
stopped=gestoppt
##### not used anymore #####
##### not used anymore #####

263
locale/techage.de.tr.old Normal file
View File

@ -0,0 +1,263 @@
# textdomain: techage
#### TA3 Terminal ####@n@nSend commands to your machines@nand output text messages from your@nmachines to the Terminal.@n@nCommand syntax:@n cmd <num> <cmnd>@n@nexample: cmd 181 on@n<num> is the number of the node to which the command is sent@n'on' is the command to turn machines/nodes on@nFurther commands can be retrieved by clicking on@nmachines/nodes with the Techage Info Tool.@n@nLocal commands:@n- clear @= clear screen@n- help @= this message@n- pub @= switch to public use@n- priv @= switch to private use@nTo program a user button with a command:@n set <button-num> <button-text> <command>@ne.g. 'set 1 ON cmd 123 on'@n=
(Num. nodes loaded / max. : Power current / max.)=(Anz. Blöcke geladen / max. : Strom aktuell / max.)
Allow to dig/place Techage power lines nearby power poles=Erlaubt TODO
Ash=Asche
Autocrafter=Autocrafter
Axle Power Source=Achsenkraftquelle
Baborium Ingot=Baboriumbarren
Baborium Lump=Baboriumklumpen
Baborium Ore=Baboriumerz
Basalt Cobble=Basaltpflaster
Basalt Glass=Basaltglas
Basalt Glass 2=Basaltglas 2
Basalt Glass Thin=Basaltglas dünn
Basalt Glass Thin 2=Basaltglas dünn 2
Basalt Glass Thin XL=Basaltglas dünn XL
Basalt Glass Thin XL 2=Basaltglas dünn XL 2
Basalt Gravel=Basaltkies
Basalt Stone=Basaltgestein
Basalt Stone Block=Basaltsteinblock
Basalt Stone Brick=Basaltsteinziegel
Bauxite Cobblestone=Bauxit Kopfsteinpflaster
Bauxite Gravel=Bauxit Kies
Bauxite Stone=Bauxit
Biome=Biom
Block configured items for open ports=Blockiere konfigurierte Gegenstände für offene Ausgänge
Build derrick=Errichte Ölturm
Compressed Gravel=Komprimiertes Kies
Depth=Tiefe
Dirt with Ash=Erde mit Asche
Distributor=Verteiler
Drill Bit=Bohrstange
Ele Power Source=Ele Kraftquelle
Electronic Fab=Elektronikfabrik
Enter=Eingeben
Error=Fehler
Flint and Iron=Flint and Iron
Flowing Oil=Fließendes Öl
Force order of filter items=Erzwinge Reihenfolge
Furnace Top=Ofenoberteil
Gravel Rinser=Kiesspüler
Gravel Sieve=Kiessieb
Grinder=Mühle
Grinding=Mahlen
Heat=Hitze
Insert destination node number(s)=Gebe Zielnummer(n) ein
Liquid Sampler=Flüssigkeitensammler
Melting Guide=Schmelzführer
Melting Pot active (heat@==Schmelztiegel aktiv (Hitze@=
Melting Pot inactive (heat@==Schmelztiegel inaktiv (Hitze@=
Melting Pot inactive (heat@=0)=Schmelztiegel inaktiv (Hitze@=0)
Menu=Menü
Menu,Recipes=Menü,Rezepte
Meridium Axe=Meridium Axt
Meridium Pickaxe=Meridium Pickel
Meridium Shovel=Meridium Schaufel
Meridium Sword=Meridium Schwert
Network Data=Netzwerkdaten
No plan available=Kein Plan verfügar
No wind at this altitude!=Kein Wind auf dieser Höhe
Node owner=Blockbesitzer
Number of nodes=Anzahl Blöcke
Oil Drill Box=Ölbohrkiste
Oil Pumpjack=Ölpumpe
Oil Source=Erdöl
Oil Tank=Öltank
Oil amount:=Ölmenge:
Other consumers=Weitere Verbraucher
Outp=Ergeb.
Plan=Plan
Position=Position
Position temperature=Positionstemperatur
Power=Energie
Primary available=Primär verfügbar
Primary needed=Primär benötigt
Pusher=Schieber
Recipe=Rezepte
Remove derrick=Entferne Ölturm
Rinsing=Waschen
River Water Barrel=Flusswasserfass
Save=Speichern
Secondary available=Sekundär verfügbar
Secondary needed=Sekundär benötigt
Send signal if nodes have been:=Sende ein Signal falls Blöcke:
Sieved Basalt Gravel=Basaltkies gesiebt
Sieved Gravel=Gesiebtes Kies
Steam Power Source=Dampfenergiequelle
Store=Speichern
Switched to private use!=Zur privaten Nutzung umgeschaltet
Switched to public use!=Zur öffentlichen Nutzung umgeschaltet
Syntax error, try help=Syntax Fehler, nutze help
TA Ceiling Lamp=TA Deckenlampe
TA Construction Board=TA Konstruktionsplan
TA Electric Cable=TA Stromkabel
TA Electric Junction Box=TA Verteilerdose
TA Empty Barrel=TA leeres Fass
TA Industrial Lamp 1=TA Industrielampe 1
TA Industrial Lamp 2=TA Industrielampe 2
TA Industrial Lamp 3=TA Industrielampe 3
TA Junction Pipe=TA Leitungskupplung
TA Lamp=TA Lampe
TA Oil=TA Öl
TA Pipe=TA Leitung (Flüssigkeiten)
TA Power Line=TA Stromleitung
TA Power Pole=TA Strommast
TA Power Pole Top (for up to 6 connections)=TA Strommastkopf (für bis zu 6 Verbindungen)
TA Power Pole Top 2 (for landlines)=TA Strommastkopf 2 (für Überlandleitungen)
TA Power Switch=TA Stromschalter
TA Power Switch Box=TA Stromschalterbox
TA Power Switch Small=TA Stromschalter klein
TA Street Lamp=TA Straßenlampe
TA1 Bronze Hammer (smash stone to gravel)=TA1 Bronzehammer (zerschlage Stein zu Kies)
TA1 Burning=TA1 Brennen
TA1 Charcoal=TA1 Holzkohle
TA1 Diamond Hammer (smash stone to gravel)=TA1 Diamanthammer (zerschlage Stein zu Kies)
TA1 Gravel Sieve=TA1 Kiessieb
TA1 Hopper=TA1 Trichter
TA1 Iron Ingot=TA1 Eisenbarren
TA1 Lighter=TA1 Anzünder
TA1 Melting=TA1 Schmelzen
TA1 Melting Pot=TA1 Schmelztiegel
TA1 Meridium Hammer (smash stone to gravel)=TA1 Meridiumhammer (zerschlage Stein zu Kies)
TA1 Mese Hammer (smash stone to gravel)=TA1 Mesehammer (zerschlage Stein zu Kies)
TA1 Steel Hammer (smash stone to gravel)=TA1 Stahlhammer (zerschlage Stein zu Kies)
TA2 Boiler Base=TA2 Boiler unten
TA2 Boiler Top=TA2 Boiler oben
TA2 Cylinder=TA2 Zylinder
TA2 Drive Axle=TA2 Antriebsachse
TA2 Ele Fab=TA2 E-Fabrik
TA2 Firebox=TA2 Feuerkiste
TA2 Flywheel=TA2 Schwungrad
TA2 Gearbox=TA2 Getriebeblock
TA2 Gravel Sieve=TA2 Kiessieb
TA2 Protected Chest=TA2 Gesicherte Kiste
TA2 Steam Pipe=TA2 Dampfleitung
TA3 Akku=TA3 Akku
TA3 Akku Box=TA3 Akku Block
TA3 Boiler Base=TA3 Boiler unten
TA3 Boiler Top=TA3 Boiler oben
TA3 Booster=TA3 Gebläse
TA3 Button/Switch=TA3 Taster/Schalter
TA3 Cart Detector=TA3 Wagen Detektor
TA3 Coal Power Station Firebox=TA3 Kohlekraftwerks-Feuerbox
TA3 Coal/oil=TA3 Kohle/Öl
TA3 Cooler=TA3 Kühler
TA3 Derrick=TA3 Bohrturm
TA3 Detector=TA3 Detektor
TA3 Drill Bit=TA3 Bohrgestänge
TA3 Ele Fab=TA3 E-Fabrik
TA3 Funnel=TA3 Trichter
TA3 Furnace Oil Burner=TA3 Ofen-Ölbrenner
TA3 Generator=TA3 Generator
TA3 Gravel Sieve=TA3 Kiessieb
TA3 Logic Block=TA3 Logikblock
TA3 Melting=TA3 Schmelzen
TA3 Node Detector=TA3 Block Detektor
TA3 Oil Barrel=TA3 Ölfass
TA3 Oil Explorer=TA3 Ölexplorer
TA3 Oil Storage=TA3 Öl Speicher
TA3 Player Detector=TA3 Spieler Detektor
TA3 Power Station Firebox=TA3 Kraftwerks-Feuerbox
TA3 Power Station Oil Burner=TA3 Kraftwerks-Ölbrenner
TA3 Power Terminal=TA3 Strom Terminal
TA3 Protected Chest=TA3 Gesicherte Kiste
TA3 Pump=TA3 Pumpe
TA3 Repeater=TA3 Wiederholer
TA3 Sequencer=TA3 Sequenzer
TA3 Tank=TA3 Tank
TA3 Terminal=TA3 Terminal
TA3 Timer=TA3 Timer
TA3 Tiny Power Generator=TA3 Kleiner Stromgenerator
TA3 Turbine=TA3 Turbine
TA3 Vacuum Tube=TA3 Vakuumröhre
TA4 Carbon Fiber=TA4 Kohlefaser
TA4 Derrick=TA4 Bohrturm
TA4 Distillation Tower=TA4 Destillationsturm
TA4 Doser=TA4 Dosierer
TA4 Electrolyzer=TA4 Elektrolyseur
TA4 Energy Storage=TA4 Energiespeicher
TA4 Epoxide Resin=TA4 Epoxidharz
TA4 Fuel Cell=TA4 Brennstoffzelle
TA4 Fuel Cell Stack=Brennstoffzellenstapel
TA4 Generator=TA4 Generator
TA4 Heat Exchanger=TA4 Wärmetauscher
TA4 Heat Exchanger 1=TA4 Wärmetauscher 1
TA4 Heat Exchanger 2=TA4 Wärmetauscher 2
TA4 Heat Exchanger 3=TA4 Wärmetauscher 3
TA4 Hydrogen=TA4 Wasserstoff
TA4 Junction Pipe=TA4 Verbindungsrohr
TA4 Low Power Box==TA4 Niederspannungsverteilerbox
TA4 Low Power Cable=TA4 Niederspannungskabel
TA4 Pillar=TA4 Säule
TA4 Pipe Inlet=TA4 Rohrzulauf
TA4 Protected Chest=TA4 Gesicherte Kiste
TA4 Pump=TA4 Pumpe
TA4 Reactor=Reaktor
TA4 Reactor Filler Pipe=TA4 Reaktor Einfüllstutzen
TA4 Rotor Blade=TA4 Rotorblatt
TA4 Silicon Wafer=TA4 Silizium-Wafer
TA4 Solar Carrier Module=TA4 Solar Trägermodul
TA4 Solar Carrier Module B=TA4 Solar Trägermodul U
TA4 Solar Carrier Module T=TA4 Solar Trägermodul O
TA4 Solar Inverter=TA4 Solar Wechselrichter
TA4 Solar Inverter AC=TA4 Solar Wechselrichter AC
TA4 Solar Inverter DC=TA4 Solar Wechselrichter DC
TA4 Solar Module=TA4 Solarmodul
TA4 Streetlamp Solar Cell=TA4 Straßenlampen-Solarzelle
TA4 Tank=TA4 Tank
TA4 Turbine=TA4 Turbine
TA4 WLAN Chip=TA4 WLAN Chip
TA4 Wind Turbine=TA4 Windkraftanlage
TA4 Wind Turbine Nacelle=TA4 Windkraftanlagengondel
TA4 Wind Turbine Signal Lamp=TA4 Windkraftanlagenlampe
TechAge Black Hole=TechAge Schwarzes Loch
TechAge Black Hole (let items disappear)=TechAge Schwarzes Loch (Gegenstände verschwinden)
TechAge Door Block=TechAge Türblock
TechAge Gate Block=TechAge Torblock
TechAge Gravel=TechAge Kies
TechAge Info Tool (use @= read status info)=TechAge Info Werkzeug
TechAge Programmer (right @= read number, left @= write numbers)=TechAge Programmer (rechts @= lese Nummer, links @= schreibe Nummern)
TechAge Repair Kit=TechAge Reparier Set
TechAge Signal Lamp=TechAge Signallampe
TechAge Signal Lamp (can be colored)=TechAge Signallampe (kann gefärbt werden)
TechAge Steel Mat=TechAge Stahlmatte
TechAge Trowel=TechAge Kelle
The wind turbines are too close together!=Die Windkraftanlagen stehen zu eng beisammen!
Time=Zeit
Update=Update
Usmium Nuggets=Usmium Nuggets
WLAN Chip=WLAN Chip
Water=Wasser
Water Barrel=Wasserfass
Wrong place for wind turbines!=Falscher Ort für Windkraftanlagen
[TA4 Wind Turbine]=[TA4 Windkraftanlage]
[TA] Area is protected!=[TA] Bereich ist geschützt
[TA] Derrick is being built!=[TA] Bohrturm wird errichtet
[TA] Derrick is being removed!=[TA] Bohrturm wird abgebaut
[TA] Not enough space!=[TA] Nicht ausreichend Platz!
[TechAge Programmer] Error: invalid numbers!=[TechAge Programmer] Fehler: ungültige Nummern!
[TechAge Programmer] Error: programmer not supported!=[TechAge Programmer] Fehler: Programmer wird nicht unterstützt!
[TechAge Programmer] Unknown node on=[TechAge Programmer] Unbekannter Block bei
[TechAge Programmer] foreign or unknown node!=[TechAge Programmer] Fremder oder unbekannter Block!
[TechAge Programmer] node programmed!=[TechAge Programmer] Nicht programmiert!
[TechAge Programmer] number=[TechAge Programmer] Nummer=
[TechAge Programmer] programmer reset=[TechAge Programmer] Programmer zurück gesetzt
\\[ku\\]=\\[ku\\]
accept=akzeptieren
added=hinzugefügt wird
added or removed=hinzugefügt oder entfernt wird
commands like: help=Kommandos wie: help
connected with=verbunden mit
empty=leer
input missing=Zufuhr fehlt
light=Licht
no fuel or no power=kein Strom oder Brennstoff
output blocked=Ausgang blockiert
power=Strom
reactor defect=Reaktor defekt
reactor has no power=Reaktor hat keinen Strom
removed=entfernt
stopped=gestoppt
##### not used anymore #####

View File

@ -98,7 +98,6 @@ TA Industrial Lamp 2=
TA Industrial Lamp 3=
TA Junction Pipe=
TA Lamp=
TA Oil=
TA Pipe=
TA Power Line=
TA Power Pole=
@ -134,27 +133,48 @@ TA2 Protected Chest=
TA2 Steam Pipe=
TA3 Akku=
TA3 Akku Box=
TA3 Bitumen=
TA3 Bitumen Barrel=
TA3 Bitumen Canister=
TA3 Boiler Base=
TA3 Boiler Top=
TA3 Booster=
TA3 Button/Switch=
TA3 Canister=
TA3 Cart Detector=
TA3 Coal Power Station Firebox=
TA3 Coal/oil=
TA3 Cooler=
TA3 Derrick=
TA3 Detector=
TA3 Distillation Tower 1=
TA3 Distillation Tower 2=
TA3 Distillation Tower 3=
TA3 Distillation Tower 4=
TA3 Distillation Tower Base=
TA3 Drill Bit=
TA3 Ele Fab=
TA3 Fuel Oil=
TA3 Fuel Oil Barrel=
TA3 Fuel Oil Canister=
TA3 Funnel=
TA3 Furnace Oil Burner=
TA3 Gas=
TA3 Gasoline=
TA3 Gasoline Barrel=
TA3 Gasoline Canister=
TA3 Generator=
TA3 Gravel Sieve=
TA3 Logic Block=
TA3 Melting=
TA3 Naphtha=
TA3 Naphtha Barrel=
TA3 Naphtha Canister=
TA3 Node Detector=
TA3 Oil Barrel=
TA3 Oil Canister=
TA3 Oil Explorer=
TA3 Oil Reboiler=
TA3 Oil Storage=
TA3 Player Detector=
TA3 Power Station Firebox=
@ -172,7 +192,6 @@ TA3 Turbine=
TA3 Vacuum Tube=
TA4 Carbon Fiber=
TA4 Derrick=
TA4 Distillation Tower=
TA4 Doser=
TA4 Electrolyzer=
TA4 Energy Storage=
@ -185,7 +204,6 @@ TA4 Heat Exchanger 1=
TA4 Heat Exchanger 2=
TA4 Heat Exchanger 3=
TA4 Hydrogen=
TA4 Junction Pipe=
TA4 Low Power Box=
TA4 Low Power Cable=
TA4 Pillar=

View File

@ -4,6 +4,12 @@ In TA1 geht es darum, mit einfachen Werkzeugen und Gerätschaften ausreichend Er
Natürlich muss es für ein Eisenzeitalter auch Eisen geben und nicht nur Stahl (steel), wie in "Minetest Game". Daher wurden einige Rezepte geändert, so dass zuerst Eisen hergestellt werden muss und erst später dann Stahl.
Auch ist die Haltbarkeit der Werkzeuge an die Zeitalter angelehnt und entspricht damit nicht dem Minetest Originalspiel.
Die Haltbarkeit/Härte bspw. für eine Axt ist:
* Bronze: 20
* Stahl: 30
[techage_ta1|image]

View File

@ -28,7 +28,7 @@ Das Kraftwerk liefert eine Leistung von 80 ku.
### TA3 Kraftwerks-Feuerbox / Power Station Firebox
Teil des Kraftwerks.
Die Feuerbox muss mit Kohle, Holzkohle oder Erdöl gefüllt werden. Die Brenndauer ist abhängig von der Leistung, die vom Kraftwerk angefordert wird. Unter Volllast brennt Kohle 20 s, Holzkohle 60 s und Erdöl 20 s. Unter Teillast entsprechend länger (50% Last = doppelte Zeit).
Die Feuerbox muss mit Kohle oder Holzkohle gefüllt werden. Die Brenndauer ist abhängig von der Leistung, die vom Kraftwerk angefordert wird. Unter Volllast brennt Kohle 20 s und Holzkohle 60 s. Unter Teillast entsprechend länger (50% Last = doppelte Zeit).
[ta3_firebox|image]
@ -36,9 +36,12 @@ Die Feuerbox muss mit Kohle, Holzkohle oder Erdöl gefüllt werden. Die Brenndau
### TA3 Kraftwerks-Ölbrenner / TA3 Power Station Oil Burner
Teil des Kraftwerks.
Der Ölbrenner kann nur mit Öl gefüllt werden. Die Brenndauer ist abhängig von der Leistung, die vom Kraftwerk angefordert wird. Unter Volllast brennt Öl 20 s. Unter Teillast entsprechend länger (50% Last = doppelte Zeit).
Der Ölbrenner kann nur 50 Einheiten Öl aufnehmen. Ein zusätzlicher Öltank und eine Ölpumpe sind daher ratsam.
Der Ölbrenner kann mit Erdöl, Schweröl, Naphtha oder Benzin gefüllt werden. Die Brenndauer ist abhängig von der Leistung, die vom Kraftwerk angefordert wird. Unter Volllast brennt Erdöl 15 s, Schweröl 20 s, Naphtha 22 s und Benzin 25 s.
Unter Teillast entsprechend länger (50% Last = doppelte Zeit).
Der Ölbrenner kann nur 50 Einheiten Kraftstoff aufnehmen. Ein zusätzlicher Öltank und eine Ölpumpe sind daher ratsam.
[ta3_oilbox|image]
@ -75,7 +78,7 @@ Dient zur Abkühlung des heißen Dampfs aus der Turbine. Muss über Dampfleitun
## Eletrischer Strom
In TA3 (und TA4) werden die Maschinen mit Strom angetrieben. Dazu müssen die Maschinen und Generatoren mit Stromkabel verbunden werden.
Tech Age besitzt 2 Arten von Stromkabel:
TA3 besitzt 2 Arten von Stromkabel:
- Isolierte Kabel (TA Stromkabel) für die lokale Verkabelung im Boden oder in Gebäuden. Diese Kabel lassen sich in der Wand oder im Boden verstecken (können mit der Kelle "verputzt" werden).
- Überlandleitungen (TA Stromleitung) für Freiluftverkabelung über große Strecken. Diese Kabel sind geschützt, können also von anderen Spielern nicht entfernt werden.
@ -84,6 +87,9 @@ Mehrere Verbraucher und Generatoren können in einem Stromnetzwerk zusammen betr
Wird zu wenig Strom bereitgestellt, gehen Teile der Verbraucher aus, bzw. Lampen beginnen zu flackern.
In diesem Zusammenhang ist auch wichtig, dass die Funktionsweise von Forceload Blöcken verstanden wurde, denn bspw. Generatoren liefern nur Strom, wenn der entsprechende Map-Block geladen ist. Dies kann mit einen Forceload Block erzwungen werden.
In TA4 kommt noch ein Kabel für die Solaranlage hinzu.
[ta3_powerswitch|image]
@ -163,9 +169,9 @@ siehe TA Stromschalter.
### TA3 Kleiner Stromgenerator / Tiny Power Generator
Der kleine Stromgenerator wird mit Erdöl betrieben und kann für kleine Verbraucher mit bis zu 12 ku genutzt werden. Unter Volllast brennt Erdöl 100 s. Unter Teillast entsprechend länger (50% Last = doppelte Zeit).
Der kleine Stromgenerator wird mit Benzin betrieben und kann für kleine Verbraucher mit bis zu 12 ku genutzt werden. Unter Volllast brennt Benzin 150 s. Unter Teillast entsprechend länger (50% Last = doppelte Zeit).
Der Stromgenerator kann nur 50 Einheiten Öl aufnehmen. Ein zusätzlicher Öltank und eine Ölpumpe sind daher ratsam.
Der Stromgenerator kann nur 50 Einheiten Benzin aufnehmen. Ein zusätzlicher Tank und eine Pumpe sind daher ratsam.
[ta3_tinygenerator|image]
@ -183,22 +189,20 @@ Bei Volllast kann ein Akku 400 s lang Strom aufnehmen und wenn er voll ist, auch
### TA3 Strom Terminal / Power Terminal
Das Strom-Terminal muss von eine Verteilerdose platziert werden. Es zeigt Daten aus dem Stromnetz an wie:
Das Strom-Terminal muss vor eine Verteilerdose platziert werden. Es zeigt Daten aus dem Stromnetz an wie:
- Anzahl und Leistung der verschiedenen Generatoren und Akkus (aktuell/maximal)
- Anzahl der Netzwerk-Blöcke (max. 1000)
Die Daten des Terminals werden beim Öffnen des Menüs und dann nur durch Anklicken des "Update" Buttons aktualisiert.
Die Daten des Terminals werden beim Öffnen des Menüs für einige Sekunden aktualisiert. Danach kann die Anzeige durch Anklicken des "Update" Buttons erneut aktualisiert werden.
[ta3_powerterminal|image]
## TA3 Industrieofen
Der TA3 Industrieofen dient als Ergänzung zu normalen Ofen (furnace). Damit können alle Waren mit "Koch" Rezepte, auch im Industrieofen hergestellt werden. Es gibt aber auch spezielle Rezepte, die nur im Industrieofen hergestellt werden können.
Der TA3 Industrieofen dient als Ergänzung zu normalen Ofen (furnace). Damit können alle Waren mit "Koch" Rezepten, auch im Industrieofen hergestellt werden. Es gibt aber auch spezielle Rezepte, die nur im Industrieofen hergestellt werden können.
Der Industrieofen hat sein eigenes Menü zur Rezeptauswahl. Abhängig von den Waren im Industrieofen Inventar links kann rechts das Ausgangsprodukt gewählt werden.
Der Industrieofen benötigt Strom (für das Gebläse) sowie Öl für den Brenner. Der Industrieofens und muss wie im Plan rechts abgebildet, zusammen gebaut werden.
Die Brennzeit für Öl beträgt 80 s.
Der Industrieofen benötigt Strom (für das Gebläse) sowie Öl/Benzin für den Brenner. Der Industrieofens und muss wie im Plan rechts abgebildet, zusammen gebaut werden.
[ta3_furnace|plan]
@ -206,9 +210,11 @@ Die Brennzeit für Öl beträgt 80 s.
### TA3 Ofen-Ölbrenner / Furnace Oil Burner
Ist Teil des TA3 Industrieofen. Muss mit Öl befeuert werden.
Ist Teil des TA3 Industrieofen.
Der Ölbrenner kann nur 50 Einheiten Öl aufnehmen. Ein zusätzlicher Öltank und eine Ölpumpe sind daher ratsam.
Der Ölbrenner kann mit Schweröl, Naphtha oder Benzin betrieben werden. Die Brennzeit beträgt für Schweröl 80 s, Naphtha 90 s und Benzin 100 s.
Der Ölbrenner kann nur 50 Einheiten Kraftstoff aufnehmen. Ein zusätzlicher Tank und eine Pumpe sind daher ratsam.
[ta3_furnacefirebox|image]
@ -227,9 +233,45 @@ Ist Teil des TA3 Industrieofen. Siehe TA3 Industrieofen.
[ta3_booster|image]
## Öl-Anlagen
## Flüssigkeiten
Um deine Generatoren und Öfen mit Öl betrieben zu können, muss du zuerst nach Öl suchen und einen Bohrturm errichten und danach das Öl fördern.
Flüssigkeiten wie Wasser oder Öl können nur die spezielle Leitungen gepumpt und in Tanks gespeichert werden. Wie auch bei Wasser gibt es aber Behälter (Eimer, Kanister, Fässer), in denen die Flüssig gelagert und transportiert werden kann.
[ta3_tank|plan]
### TA3 Tank / TA3 Tank
In einem Tank können Flüssigkeiten gespeichert werden. Ein Tank kann über eine Pumpe gefüllt bzw. geleert werden. Dazu muss die Pumpe über einer Leitung (gelbe Röhre) mit dem Tank verbunden sein.
Ein Tank kann aber auch über Eimer/Fässer gefüllt bzw. geleert werden:
- werden leere Fässer mit einem Schieber oder von Hand in den Tank gegeben, werden diese gefüllt und können ausgangsseitig wieder entnommen werden
- werden volle Fässer mit einem Schieber oder von Hand in den Tank gegeben, werden diese geleert und können ausgangsseitig wieder entnommen werden
Dabei ist zu beachten, dass Fässer nur komplett gefüllt oder entleert werden können. Sind bspw. weniger als 10 Einheiten im Tank, muss dieser Rest mit Eimern oder Kanistern entnommen oder leergepumpt werden.
In einen TA3 Tank passen 500 Einheiten oder 50 Fässer einer Flüssigkeit.
[ta3_tank|image]
### TA3 Pumpe / TA3 Pump
Mit der Pumpe können Flüssigkeiten von Tanks oder Behältern zu anderen Tanks oder Behältern gepumpt werden. Bei der Pumpe muss die Pumprichtung (Pfeil) beachtet werden. Über die gelben Leitungen und Verbindungsstücke ist es auch möglich, mehrere Tanks auf jeder Seite der Pumpe anzuordnen. Allerdings müssen die Tanks den selben Inhalt haben.
Die TA3 Pumpe pumpt 4 Einheiten Flüssigkeit alle zwei Sekunden.
Hinweis 1: Die Pumpe darf nicht direkt neben den Tank platziert werden. Es muss immer mindestens ein Stück gelbe Leitung dazwischen sein.
Hinweis 2: Nach dem Starten markiert die Pumpe 10 x die Blöcke, von und zu denen gepumpt wird.
[ta3_pump|image]
## Öl-Förderung
Um deine Generatoren und Öfen mit Öl betreiben zu können, muss du zuerst nach Öl suchen und einen Bohrturm errichten und danach das Öl fördern.
Dazu dienen dir TA3 Ölexplorer, TA3 Ölbohrkiste und TA3 Ölpumpe.
[techage_ta3|image]
@ -291,6 +333,41 @@ Der große Tank kann 2000 Einheiten Öl aufnehmen.
[oiltank|image]
## Öl-Verarbeitung
Öl ist ein Stoffgemisch und besteht aus sehr vielen Komponenten. Über einen Destillationsturm kann das Öl in seine Hauptbestandteile wie Bitumen, Schweröl, Naphtha, Benzin und Gas zerlegt werden.
Die weitere Verarbeitung zu Endprodukten erfolgt im Chemischen Reaktor.
[techage_ta31|image]
### Destillationsturm / distiller tower
Der Destillationsturm muss wie im Plan rechts oben aufgebaut werden.
Über den Basisblock wird das Bitumen abgelassen. Der Ausgang ist auf der Rückseite des Basisblocks (Pfeilrichtung beachten).
Auf diesen Basisblock kommen die "Destillationsturm" Blöcke mit den Nummern: 1, 2, 3, 2, 3, 2, 3, 4
An den Öffnungen von unten nach oben werden Schweröl, Naphtha und Benzin abgeleitet. Ganz oben wird das Gas abgefangen.
Es müssen alle Öffnungen am Turm mit Tanks verbunden werden.
Der Aufkocher (reboiler) muss mit dem Block "Destillationsturm 1" verbunden werden.
[ta3_distiller|plan]
#### Aufkocher / reboiler)
Der Aufkocher erhitzt das Erdöl auf ca. 400°C. Dabei verdampft es weitgehend und wird in den Destillationsturm zur Abkühlung geleitet.
Der Aufkocher benötigt 12 Einheiten Strom und produziert alle 6 s jeweils eine Einheit Bitumen, Schweröl, Naphtha, Benzin und Gas.
Dazu muss der Aufkocher über einen Pumpe mit Erdöl versorgt werden.
[reboiler|image]
### Chemischer Reaktor / chemical reactor
[ta3_reactor|image]
## Logik-/Schalt-Blöcke
Neben den Röhren für Warentransport, sowie den Gas- und Stromleitungen gibt es auch noch eine drahtlose Kommunikationsebene, über die Blöcke untereinander Daten austauschen können. Dafür müssen keine Leitungen gezogen werden, sondern die Verbindung zwischen Sender und Empfänger erfolgt nur über die Blocknummer. Alle Blöcke, die an dieser Kommunikation teilnehmen können, zeigen die Blocknummer als Info-Text an, wenn man mit dem Mauscursor den Block fixiert.
@ -545,46 +622,6 @@ Die Verarbeitungsleistung ist 2 Items alle 8 s. Der Block benötigt 5 ku Strom.
[ta3_liquidsampler|image]
## Flüssigkeiten
Flüssigkeiten wie Wasser oder Öl können nur die spezielle Leitungen gepumpt und in Tanks gespeichert werden. Wie auch bei Wasser gibt es aber Behälter (Eimer, Kanister, Fässer), in denen die Flüssig gelagert und transportiert werden kann.
[ta3_tank|plan]
### TA3 Tank / TA3 Tank
In einem Tank können Flüssigkeiten gespeichert werden. Ein Tank kann über eine Pumpe gefüllt bzw. geleert werden. Dazu muss die Pumpe über einer Leitung (gelbe Röhre) mit dem Tank verbunden sein.
Ein Tank kann aber auch über Eimer/Fässer gefüllt bzw. geleert werden:
- werden leere Fässer mit einem Schieber oder von Hand in den Tank gegeben, werden diese gefüllt und können ausgangsseitig wieder entnommen werden
- werden volle Fässer mit einem Schieber oder von Hand in den Tank gegeben, werden diese geleert und können ausgangsseitig wieder entnommen werden
Dabei ist zu beachten, dass Fässer nur komplett gefüllt oder entleert werden können. Sind bspw. weniger als 10 Einheiten im Tank, muss dieser Rest mit Eimern entnommen oder leergepumpt werden.
In einen TA3 Tank passen 500 Einheiten oder 50 Fässer einer Flüssigkeit.
[ta3_tank|image]
### TA3 Pumpe / TA3 Pump
Mit der Pumpe können Flüssigkeiten von Tanks oder Behältern zu anderen Tanks oder Behältern gepumpt werden. Bei der Pumpe muss die Pumprichtung (Pfeil) beachtet werden. Über die gelben Leitungen und Verbindungsstücke ist es auch möglich, mehrere Tanks auf jeder Seite der Pumpe anzuordnen. Allerdings müssen die Tanks den selben Inhalt haben.
- zum Füllen, oder volle Fässer zul Leeren
- in einen Eimer oder einen Kanister passt eine Einheit einer Flüssigkeit, bspw. Wasser
- in ein Fass passen 10 Einheiten Flüssigkeit, bspw. Öl
Die TA3 Pumpe pumpt 4 Einheiten Flüssigkeit alle zwei Sekunden.
Hinweis 1: Die Pumpe darf nicht direkt neben den Tank platziert werden. Es muss immer mindestens ein Stück gelbe Leitung dazwischen sein.
Hinweis 2: Nach dem Starten markiert die Pumpe 10 x die Blöcke, von und zu denen gepumpt wird.
[ta3_pump|image]
## Werkzeuge
### Techage Info Tool

View File

@ -60,12 +60,19 @@
- [TA3 Ofen-Ölbrenner / Furnace Oil Burner](./manual_ta3_DE.md#ta3-ofen-Ölbrenner--furnace-oil-burner)
- [TA3 Ofenoberteil / Furnace Top](./manual_ta3_DE.md#ta3-ofenoberteil--furnace-top)
- [TA3 Gebläse / Booster](./manual_ta3_DE.md#ta3-gebläse--booster)
- [Öl-Anlagen](./manual_ta3_DE.md#Öl-anlagen)
- [Flüssigkeiten](./manual_ta3_DE.md#flüssigkeiten)
- [TA3 Tank / TA3 Tank](./manual_ta3_DE.md#ta3-tank--ta3-tank)
- [TA3 Pumpe / TA3 Pump](./manual_ta3_DE.md#ta3-pumpe--ta3-pump)
- [Öl-Förderung](./manual_ta3_DE.md#Öl-förderung)
- [TA3 Ölexplorer / Oil Explorer](./manual_ta3_DE.md#ta3-Ölexplorer--oil-explorer)
- [TA3 Ölbohrkiste / Oil Drill Box](./manual_ta3_DE.md#ta3-Ölbohrkiste--oil-drill-box)
- [TA3 Ölpumpe / Oil Pumpjack](./manual_ta3_DE.md#ta3-Ölpumpe--oil-pumpjack)
- [TA3 Bohrgestänge / Drill Bit](./manual_ta3_DE.md#ta3-bohrgestänge--drill-bit)
- [Öltank / Oil Tank](./manual_ta3_DE.md#Öltank--oil-tank)
- [Öl-Verarbeitung](./manual_ta3_DE.md#Öl-verarbeitung)
- [Destillationsturm / distiller tower](./manual_ta3_DE.md#destillationsturm--distiller-tower)
- [Aufkocher / reboiler)](./manual_ta3_DE.md#aufkocher--reboiler))
- [Chemischer Reaktor / chemical reactor](./manual_ta3_DE.md#chemischer-reaktor--chemical-reactor)
- [Logik-/Schalt-Blöcke](./manual_ta3_DE.md#logik-schalt-blöcke)
- [TA3 Taster/Schalter / Button/Switch](./manual_ta3_DE.md#ta3-tasterschalter--buttonswitch)
- [TA3 Logikblock / Logic Block](./manual_ta3_DE.md#ta3-logikblock--logic-block)
@ -89,9 +96,6 @@
- [TA3 Kiessieb / Gravel Sieve](./manual_ta3_DE.md#ta3-kiessieb--gravel-sieve)
- [TA3 Mühle / Grinder](./manual_ta3_DE.md#ta3-mühle--grinder)
- [TA3 Flüssigkeitensammler / Liquid Sampler](./manual_ta3_DE.md#ta3-flüssigkeitensammler--liquid-sampler)
- [Flüssigkeiten](./manual_ta3_DE.md#flüssigkeiten)
- [TA3 Tank / TA3 Tank](./manual_ta3_DE.md#ta3-tank--ta3-tank)
- [TA3 Pumpe / TA3 Pump](./manual_ta3_DE.md#ta3-pumpe--ta3-pump)
- [Werkzeuge](./manual_ta3_DE.md#werkzeuge)
- [Techage Info Tool](./manual_ta3_DE.md#techage-info-tool)
- [TechAge Programmer](./manual_ta3_DE.md#techage-programmer)

View File

@ -83,6 +83,13 @@ minetest.register_node("techage:ta3_distiller_base", {
groups = {cracky=2},
is_ground_content = false,
sounds = default.node_sound_metal_defaults(),
networks = {
pipe = {
sides = {B=1}, -- Pipe connection sides
ntype = "pump",
},
},
})
minetest.register_node("techage:ta3_distiller1", {
@ -101,7 +108,7 @@ minetest.register_node("techage:ta3_distiller1", {
after_place_node = function(pos, placer)
local res = orientation(pos, {"techage:ta3_distiller_base"})
M(pos):set_int("outdir", networks.side_to_outdir(pos, "R"))
M(pos):set_int("outdir", networks.side_to_outdir(pos, "B"))
after_place_node(pos, placer)
return res
end,
@ -115,6 +122,13 @@ minetest.register_node("techage:ta3_distiller1", {
groups = {cracky=2},
is_ground_content = false,
sounds = default.node_sound_metal_defaults(),
networks = {
pipe = {
sides = {F=1}, -- Pipe connection sides
ntype = "tank",
},
},
})
minetest.register_node("techage:ta3_distiller2", {
@ -171,6 +185,13 @@ minetest.register_node("techage:ta3_distiller3", {
groups = {cracky=2},
is_ground_content = false,
sounds = default.node_sound_metal_defaults(),
networks = {
pipe = {
sides = {B=1}, -- Pipe connection sides
ntype = "pump",
},
},
})
minetest.register_node("techage:ta3_distiller4", {
@ -202,25 +223,87 @@ minetest.register_node("techage:ta3_distiller4", {
groups = {cracky=2},
is_ground_content = false,
sounds = default.node_sound_metal_defaults(),
networks = {
pipe = {
sides = {U=1}, -- Pipe connection sides
ntype = "pump",
},
},
})
Pipe:add_secondary_node_names({
"techage:ta3_distiller_base",
"techage:ta3_distiller1", "techage:ta3_distiller2",
"techage:ta3_distiller_base", "techage:ta3_distiller1",
"techage:ta3_distiller3", "techage:ta3_distiller4",
})
local Liquids = {
[-1] = "techage:bitumen",
[2] = "techage:fueloil",
[4] = "techage:naphtha",
[6] = "techage:gasoline",
[7] = "techage:gas",
}
techage.register_node({"techage:ta3_distiller1"}, {
on_recv_message = function(pos, src, topic, payload)
on_transfer = function(pos, in_dir, topic, payload)
if topic == "put" then
local pos2 = {x = pos.x, y = pos.y + payload.height, z = pos.z}
local outdir = 6
if payload.height ~= 7 then
outdir = M(pos):get_int("outdir")
local leftover = 0
local outdir = M(pos):get_int("outdir")
for _,y in ipairs({-1, 2, 4, 6, 7}) do
local pos2 = {x = pos.x, y = pos.y + y, z = pos.z}
if y == 7 then
outdir = 6
end
leftover = leftover + liquid.put(pos2, outdir, Liquids[y], 1)
end
techage.mark_position("singleplayer", pos2, "put", "", 1)------------------------debug
return liquid.put(pos2, outdir, payload.name, payload.amount)
return leftover
end
end,
})
minetest.register_craft({
output = 'techage:ta3_distiller2',
recipe = {
{'default:steel_ingot', 'default:tin_ingot', 'default:steel_ingot'},
{'techage:iron_ingot', 'techage:ta3_barrel_empty', 'techage:iron_ingot'},
{'default:steel_ingot', 'default:tin_ingot', 'default:steel_ingot'},
}
})
minetest.register_craft({
output = 'techage:ta3_distiller1',
recipe = {
{'', '', ''},
{'techage:ta3_pipeS', 'techage:ta3_distiller2', ''},
{'', '', ''},
}
})
minetest.register_craft({
output = 'techage:ta3_distiller3',
recipe = {
{'', '', ''},
{'', 'techage:ta3_distiller2', 'techage:ta3_pipeS'},
{'', '', ''},
}
})
minetest.register_craft({
output = 'techage:ta3_distiller4',
recipe = {
{'', 'techage:ta3_pipeS', ''},
{'', 'techage:ta3_distiller2', ''},
{'', '', ''},
}
})
minetest.register_craft({
output = 'techage:ta3_distiller_base',
recipe = {
{'basic_materials:concrete_block', 'techage:ta3_pipeS', 'basic_materials:concrete_block'},
{'', 'techage:ta3_pipeS', 'techage:ta3_pipeS'},
{'basic_materials:concrete_block', '', 'basic_materials:concrete_block'},
}
})

182
oil/gasflare.lua Normal file
View File

@ -0,0 +1,182 @@
--[[
TechAge
=======
Copyright (C) 2019 Joachim Stolberg
GPL v3
See LICENSE.txt for more information
TA3 Gas flare
]]--
local HEIGHT = 7
local function remove_flame(pos)
local idx
for idx=HEIGHT,1,-1 do
pos = {x=pos.x, y=pos.y+1, z=pos.z}
local node = minetest.get_node(pos)
if string.find(node.name, "techage:flame") then
minetest.remove_node(pos)
end
end
end
local function flame(pos)
local idx
for idx=HEIGHT,1,-1 do
pos = {x=pos.x, y=pos.y+1, z=pos.z}
idx = math.min(idx, 12)
local node = minetest.get_node(pos)
if node.name ~= "air" then
return
end
minetest.add_node(pos, {name = "techage:flame"..math.min(idx,7)})
local meta = minetest.get_meta(pos)
end
end
local lRatio = {120, 110, 95, 75, 55, 28, 0}
local lColor = {"400040", "600020", "800000", "800000", "800000", "800000", "800000"}
for idx,ratio in ipairs(lRatio) do
local color = "techage_flame_animated.png^[colorize:#"..lColor[idx].."B0:"..ratio
minetest.register_node("techage:flame"..idx, {
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-3/8, -4/8, -2/8, 3/8, 4/8, 2/8},
{-2/8, -4/8, -3/8, 2/8, 4/8, 3/8},
},
},
tiles = {
{
name = color,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1
},
},
},
after_destruct = function(pos, oldnode)
pos.y = pos.y + 1
local node = minetest.get_node(pos)
if minetest.get_item_group(node.name, "techage_flame") > 0 then
minetest.remove_node(pos)
end
end,
use_texture_alpha = true,
inventory_image = "techage_flame.png",
paramtype = "light",
light_source = 13,
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
drop = "",
drowning = 1,
damage_per_second = 4 + idx,
groups = {igniter = 2, dig_immediate = 3, techage_flame=1, not_in_creative_inventory=1},
drop = "",
})
end
local function start_flarestack(pos, playername)
if minetest.is_protected(
{x=pos.x, y=pos.y+1, z=pos.z},
playername) then
return
end
local meta = minetest.get_meta(pos)
flame({x=pos.x, y=pos.y+1, z=pos.z})
local handle = minetest.sound_play("gasflare", {
pos = pos,
max_hear_distance = 20,
gain = 1,
loop = true})
print("handle", handle)
meta:set_int("handle", handle)
end
local function stop_flarestack(pos, handle)
remove_flame({x=pos.x, y=pos.y+1, z=pos.z})
minetest.sound_stop(handle)
end
minetest.register_node("techage:gasflare", {
description = "gas flare",
tiles = {
"techage_gasflare.png",
"techage_gasflare.png",
"techage_gasflare.png",
"techage_gasflare.png",
"techage_gasflare.png",
"techage_gasflare.png^techage_appl_hole_pipe.png",
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
local node = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z})
if node.name ~= "air" then
return
end
minetest.add_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "techage:gasflare2"})
end,
on_punch = function(pos, node, puncher)
local meta = minetest.get_meta(pos)
local handle = meta:get_int("handle")
minetest.sound_stop(handle)
start_flarestack(pos, puncher:get_player_name())
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
print(dump(oldmetadata))
stop_flarestack(pos, oldmetadata.fields.handle)
local node = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z})
if node.name == "techage:gasflare2" then
minetest.remove_node({x=pos.x, y=pos.y+1, z=pos.z})
end
end,
paramtype = "light",
light_source = 0,
sunlight_propagates = true,
paramtype2 = "facedir",
groups = {cracky=2, crumbly=2, choppy=2},
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("techage:gasflare2", {
description = "",
tiles = {
"techage_gasflare.png^techage_appl_hole_tube.png",
"techage_gasflare.png"
},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-1/8, -4/8, -1/8, 1/8, 4/8, 1/8},
{-4/8, 3/8, -4/8, 4/8, 4/8, 4/8},
},
},
paramtype = "light",
light_source = 0,
sunlight_propagates = true,
paramtype2 = "facedir",
diggable = false,
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
})

View File

@ -19,13 +19,13 @@ local S = techage.S
local Power = techage.ElectricCable
local firebox = techage.firebox
local power = techage.power
local oilburner = techage.oilburner
local fuel = techage.fuel
local Pipe = techage.LiquidPipe
local liquid = techage.liquid
local CYCLE_TIME = 2
local PWR_CAPA = 12
local BURN_CYCLE_FACTOR = 2.5
local EFFICIENCY = 2.5
local function formspec(self, pos, mem)
local fuel_percent = 0
@ -36,7 +36,7 @@ local function formspec(self, pos, mem)
default.gui_bg..
default.gui_bg_img..
default.gui_slots..
oilburner.formspec_oil(1, 0, mem)..
fuel.formspec_fuel(1, 0, mem)..
"button[1.6,1;1.8,1;update;"..S("Update").."]"..
"image_button[5.5,0.5;1,1;".. self:get_state_button_image(mem) ..";state_button;]"..
"image[6.5,0;1,2;"..power.formspec_power_bar(PWR_CAPA, mem.provided).."]"..
@ -87,10 +87,11 @@ local function burning(pos, mem)
if mem.burn_cycles <= 0 then
if mem.liquid.amount > 0 then
mem.liquid.amount = mem.liquid.amount - 1
mem.burn_cycles = (oilburner.Oilburntime or 1) / CYCLE_TIME * BURN_CYCLE_FACTOR
mem.burn_cycles = fuel.burntime(mem.liquid.name) * EFFICIENCY / CYCLE_TIME
mem.burn_cycles_total = mem.burn_cycles
return true
else
mem.liquid.name = nil
State:fault(pos, mem)
return false
end
@ -124,26 +125,13 @@ local function on_receive_fields(pos, formname, fields, player)
M(pos):set_string("formspec", formspec(State, pos, mem))
end
local function allow_metadata_inventory_put(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return 1
end
local function allow_metadata_inventory_take(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return stack:get_count()
end
local function formspec_clbk(pos, mem)
return formspec(State, pos, mem)
end
local function on_metadata_inventory_put(pos, listname, index, stack, player)
minetest.after(0.5, oilburner.move_item, pos, stack, formspec_clbk)
minetest.after(0.5, fuel.move_item, pos, stack, formspec_clbk)
end
local function on_rightclick(pos)
@ -151,6 +139,26 @@ local function on_rightclick(pos)
M(pos):set_string("formspec", formspec(State, pos, mem))
end
local _liquid = {
fuel_cat = fuel.BT_NAPHTHA,
capa = fuel.CAPACITY,
peek = liquid.srv_peek,
put = function(pos, indir, name, amount)
if fuel.valid_fuel(name, fuel.BT_NAPHTHA) then
return liquid.srv_put(pos, indir, name, amount)
end
return amount
end,
take = liquid.srv_take,
}
local _networks = {
pipe = {
sides = techage.networks.AllSides, -- Pipe connection sides
ntype = "tank",
},
}
minetest.register_node("techage:tiny_generator", {
description = S("TA3 Tiny Power Generator"),
tiles = {
@ -179,21 +187,16 @@ minetest.register_node("techage:tiny_generator", {
inv:set_size('fuel', 1)
end,
liquid = {
capa = oilburner.CAPACITY,
peek = liquid.srv_peek,
put = liquid.srv_put,
take = liquid.srv_take,
},
networks = oilburner.networks,
allow_metadata_inventory_put = allow_metadata_inventory_put,
allow_metadata_inventory_take = allow_metadata_inventory_take,
allow_metadata_inventory_put = fuel.allow_metadata_inventory_put,
allow_metadata_inventory_take = fuel.allow_metadata_inventory_take,
on_metadata_inventory_put = on_metadata_inventory_put,
on_receive_fields = on_receive_fields,
on_rightclick = on_rightclick,
on_timer = node_timer,
can_dig = oilburner.can_dig,
can_dig = fuel.can_dig,
liquid = _liquid,
networks = _networks,
})
minetest.register_node("techage:tiny_generator_on", {
@ -226,14 +229,6 @@ minetest.register_node("techage:tiny_generator_on", {
},
},
liquid = {
capa = oilburner.CAPACITY,
peek = liquid.srv_peek,
put = liquid.srv_put,
take = liquid.srv_take,
},
networks = oilburner.networks,
paramtype = "light",
paramtype2 = "facedir",
groups = {not_in_creative_inventory=1},
@ -248,7 +243,9 @@ minetest.register_node("techage:tiny_generator_on", {
on_receive_fields = on_receive_fields,
on_rightclick = on_rightclick,
on_timer = node_timer,
can_dig = oilburner.can_dig,
can_dig = fuel.can_dig,
liquid = _liquid,
networks = _networks,
})
Pipe:add_secondary_node_names({"techage:tiny_generator", "techage:tiny_generator_on"})

View File

@ -109,7 +109,7 @@ minetest.register_node("techage:oil_flowing", {
minetest.register_craft({
type = "fuel",
recipe = "techage:oil_source",
burntime = 40,
burntime = 30,
})
bucket.register_liquid(
@ -119,20 +119,5 @@ bucket.register_liquid(
"techage_bucket_oil.png",
"Oil Bucket")
minetest.register_craftitem("techage:ta3_barrel_oil", {
description = S("TA3 Oil Barrel"),
inventory_image = "techage_barrel_oil_inv.png",
stack_max = 1,
})
--minetest.register_craftitem("techage:oil", {
-- description = S("TA Oil"),
-- inventory_image = "techage_oil_inv.png",
-- groups = {not_in_creative_inventory=1},
--})
techage.register_liquid("techage:ta3_barrel_oil", "techage:ta3_barrel_empty", 10, "techage:oil_source")
techage.register_liquid("techage:bucket_oil", "bucket:bucket_empty", 1, "techage:oil_source")
techage.register_liquid("techage:oil_source", "", 1, "techage:oil_source")

147
oil/petroleum.lua Normal file
View File

@ -0,0 +1,147 @@
--[[
TechAge
=======
Copyright (C) 2019 Joachim Stolberg
GPL v3
See LICENSE.txt for more information
TA3 Petroleum types: bitumen, fueloil, naphtha, gasoline, gas
]]--
local S = techage.S
minetest.register_craftitem("techage:bitumen", {
description = S("TA3 Bitumen"),
inventory_image = "techage_bitumen_inv.png",
groups = {not_in_creative_inventory=1},
})
minetest.register_craftitem("techage:fueloil", {
description = S("TA3 Fuel Oil"),
inventory_image = "techage_fueloil_inv.png",
groups = {not_in_creative_inventory=1},
})
minetest.register_craftitem("techage:naphtha", {
description = S("TA3 Naphtha"),
inventory_image = "techage_naphtha_inv.png",
groups = {not_in_creative_inventory=1},
})
minetest.register_craftitem("techage:gasoline", {
description = S("TA3 Gasoline"),
inventory_image = "techage_gasoline_inv.png",
groups = {not_in_creative_inventory=1},
})
minetest.register_craftitem("techage:gas", {
description = S("TA3 Gas"),
inventory_image = "techage_gas_inv.png",
groups = {not_in_creative_inventory=1},
})
minetest.register_craftitem("techage:ta3_barrel_oil", {
description = S("TA3 Oil Barrel"),
inventory_image = "techage_barrel_oil_inv.png",
stack_max = 1,
})
minetest.register_craftitem("techage:ta3_barrel_bitumen", {
description = S("TA3 Bitumen Barrel"),
inventory_image = "techage_barrel_bitumen_inv.png",
stack_max = 1,
})
minetest.register_craftitem("techage:ta3_barrel_fueloil", {
description = S("TA3 Fuel Oil Barrel"),
inventory_image = "techage_barrel_fueloil_inv.png",
stack_max = 1,
})
minetest.register_craftitem("techage:ta3_barrel_naphtha", {
description = S("TA3 Naphtha Barrel"),
inventory_image = "techage_barrel_naphtha_inv.png",
stack_max = 1,
})
minetest.register_craftitem("techage:ta3_barrel_gasoline", {
description = S("TA3 Gasoline Barrel"),
inventory_image = "techage_barrel_gasoline_inv.png",
stack_max = 1,
})
minetest.register_craftitem("techage:ta3_canister_oil", {
description = S("TA3 Oil Canister"),
inventory_image = "techage_canister_bitumen_inv.png",
stack_max = 1,
})
minetest.register_craftitem("techage:ta3_canister_bitumen", {
description = S("TA3 Bitumen Canister"),
inventory_image = "techage_canister_bitumen_inv.png",
stack_max = 1,
})
minetest.register_craftitem("techage:ta3_canister_fueloil", {
description = S("TA3 Fuel Oil Canister"),
inventory_image = "techage_canister_fueloil_inv.png",
stack_max = 1,
})
minetest.register_craftitem("techage:ta3_canister_naphtha", {
description = S("TA3 Naphtha Canister"),
inventory_image = "techage_canister_naphtha_inv.png",
stack_max = 1,
})
minetest.register_craftitem("techage:ta3_canister_gasoline", {
description = S("TA3 Gasoline Canister"),
inventory_image = "techage_canister_gasoline_inv.png",
stack_max = 1,
})
minetest.register_craft({
type = "fuel",
recipe = "techage:gas",
burntime = 30,
})
minetest.register_craft({
type = "fuel",
recipe = "techage:gasoline",
burntime = 50,
})
minetest.register_craft({
type = "fuel",
recipe = "techage:naphtha",
burntime = 45,
})
minetest.register_craft({
type = "fuel",
recipe = "techage:fueloil",
burntime = 40,
})
techage.register_liquid("techage:ta3_barrel_oil", "techage:ta3_barrel_empty", 10, "techage:oil_source")
techage.register_liquid("techage:ta3_barrel_bitumen", "techage:ta3_barrel_empty", 10, "techage:bitumen")
techage.register_liquid("techage:ta3_barrel_fueloil", "techage:ta3_barrel_empty", 10, "techage:fueloil")
techage.register_liquid("techage:ta3_barrel_naphtha", "techage:ta3_barrel_empty", 10, "techage:naphtha")
techage.register_liquid("techage:ta3_barrel_gasoline", "techage:ta3_barrel_empty", 10, "techage:gasoline")
techage.register_liquid("techage:ta3_canister_oil", "techage:ta3_canister_empty", 1, "techage:oil_source")
techage.register_liquid("techage:ta3_canister_bitumen", "techage:ta3_canister_empty", 1, "techage:bitumen")
techage.register_liquid("techage:ta3_canister_fueloil", "techage:ta3_canister_empty", 1, "techage:fueloil")
techage.register_liquid("techage:ta3_canister_naphtha", "techage:ta3_canister_empty", 1, "techage:naphtha")
techage.register_liquid("techage:ta3_canister_gasoline", "techage:ta3_canister_empty", 1, "techage:gasoline")

View File

@ -20,60 +20,114 @@ local Pipe = techage.LiquidPipe
local networks = techage.networks
local liquid = techage.liquid
local Flip = techage.networks.Flip
local Cable = techage.ElectricCable
local power = techage.power
local CYCLE_TIME = 4
local CYCLE_TIME = 6
local CAPA = 12
local PWR_NEEDED = 14
local function swap_node(pos)
local node = techage.get_node_lvm(pos)
if node.name == "techage:ta3_reboiler" then
local function swap_node(pos, on)
local mem = tubelib2.get_mem(pos)
if on then
local node = techage.get_node_lvm(pos)
node.name = "techage:ta3_reboiler_on"
else
minetest.swap_node(pos, node)
minetest.get_node_timer(pos):start(CYCLE_TIME)
minetest.sound_play("techage_reboiler", {
pos = pos,
gain = 1,
max_hear_distance = 10})
elseif not on and mem.running then
local node = techage.get_node_lvm(pos)
node.name = "techage:ta3_reboiler"
minetest.swap_node(pos, node)
minetest.get_node_timer(pos):stop()
mem.running = false
power.consumer_stop(pos, mem)
end
minetest.swap_node(pos, node)
end
--local function pumping(pos, mem, state, capa)
-- local outdir = M(pos):get_int("outdir")
-- local taken, name = liquid.take(pos, Flip[outdir], nil, capa)
-- if taken > 0 then
-- local leftover = liquid.put(pos, outdir, name, taken)
-- if leftover and leftover > 0 then
-- liquid.put(pos, Flip[outdir], name, leftover)
-- state:blocked(pos, mem)
-- return
-- end
-- state:keep_running(pos, mem, COUNTDOWN_TICKS)
-- return
-- end
-- state:idle(pos, mem)
--end
local function after_place_node(pos, placer)
M(pos):set_int("outdir", networks.side_to_outdir(pos, "R"))
Pipe:after_place_node(pos)
local function on_power(pos, mem)
if mem.running then
swap_node(pos, true)
end
end
local function on_nopower(pos, mem)
swap_node(pos, false)
end
local function pump_cmnd(pos, cmnd, payload)
return techage.transfer(
pos,
"R", -- outdir
cmnd, -- topic
payload, -- payload
Pipe, -- Pipe
{"techage:ta3_distiller1"})
end
local function start_node(pos)
local mem = tubelib2.get_mem(pos)
if mem.running then return end
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
if mem.liquid.amount >= 5 and mem.liquid.name == "techage:oil_source" then
if power.power_available(pos, mem, PWR_NEEDED) then
mem.running = true
power.consumer_start(pos, mem, CYCLE_TIME, PWR_NEEDED)
end
end
end
local function node_timer(pos, elapsed)
local mem = tubelib2.get_mem(pos)
pumping(pos, mem, State3, CAPA)
return State3:is_active(mem)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
power.consumer_alive(pos, mem)
if mem.liquid.amount >= 5 and mem.liquid.name == "techage:oil_source" then
mem.liquid.amount = mem.liquid.amount - 5
local leftover = pump_cmnd(pos, "put")
if leftover > 0 then
swap_node(pos, false)
return false
end
minetest.sound_play("techage_reboiler", {
pos = pos,
gain = 1,
max_hear_distance = 10})
return true
end
swap_node(pos, false)
return false
end
-- liquid
local function tubelib2_on_update2(pos, outdir, tlib2, node)
liquid.update_network(pos, outdir)
end
-- power
local function after_tube_update(node, pos, out_dir, peer_pos, peer_in_dir)
power.after_tube_update2(node, pos, out_dir, peer_pos, peer_in_dir)
end
local function after_dig_node(pos, oldnode, oldmetadata, digger)
Pipe:after_dig_node(pos)
power.after_dig_node(pos, oldnode)
tubelib2.del_mem(pos)
end
local _liquid = {
capa = CAPA,
peek = liquid.srv_peek,
put = function(pos, indir, name, amount)
--start timer
start_node(pos)
return liquid.srv_put(pos, indir, name, amount)
end,
take = liquid.srv_take,
@ -86,10 +140,6 @@ local _networks = {
},
}
local function on_rightclick(pos, node, clicker)
swap_node(pos)
end
minetest.register_node("techage:ta3_reboiler", {
description = S("TA3 Oil Reboiler"),
tiles = {
@ -109,12 +159,13 @@ minetest.register_node("techage:ta3_reboiler", {
meta:set_string("infotext", S("TA3 Oil Reboiler"))
meta:set_int("outdir", networks.side_to_outdir(pos, "R"))
Pipe:after_place_node(pos)
power.after_place_node(pos)
end,
tubelib2_on_update2 = tubelib2_on_update2,
tubelib2_on_update2 = tubelib2_on_update2, -- liquid
after_tube_update = after_tube_update, -- power
on_timer = node_timer,
after_dig_node = after_dig_node,
on_rightclick = on_rightclick,
liquid = _liquid,
networks = _networks,
@ -155,36 +206,41 @@ minetest.register_node("techage:ta3_reboiler_on", {
},
},
tubelib2_on_update2 = tubelib2_on_update2,
tubelib2_on_update2 = tubelib2_on_update2, -- liquid
after_tube_update = after_tube_update, -- power
on_timer = node_timer,
after_dig_node = after_dig_node,
on_rightclick = on_rightclick,
liquid = _liquid,
networks = _networks,
paramtype2 = "facedir",
on_rotate = screwdriver.disallow,
groups = {cracky=2},
diggable = false,
groups = {not_in_creative_inventory=1},
is_ground_content = false,
sounds = default.node_sound_metal_defaults(),
})
--
-- Liquids
--
Pipe:add_secondary_node_names({"techage:ta3_reboiler", "techage:ta3_reboiler_on"})
--minetest.register_craft({
-- output = "techage:t3_pump 2",
-- recipe = {
-- {"group:wood", "techage:iron_ingot", "group:wood"},
-- {"techage:ta3_pipeS", "techage:usmium_nuggets", "techage:ta3_pipeS"},
-- {"group:wood", "techage:iron_ingot", "group:wood"},
-- },
--})
--
-- Power
--
techage.power.enrich_node({"techage:ta3_reboiler", "techage:ta3_reboiler_on"}, {
power_network = Cable,
on_power = on_power,
on_nopower = on_nopower,
})
minetest.register_craft({
output = "techage:ta3_reboiler",
recipe = {
{"", "basic_materials:heating_element", ""},
{"default:mese_crystal_fragment", "techage:t3_pump", "default:mese_crystal_fragment"},
{"", "basic_materials:heating_element", ""},
},
})
--minetest.register_craft({
-- output = "techage:t4_pump",
-- recipe = {
-- {"default:tin_ingot", "dye:blue", "default:steel_ingot"},
-- {"", "techage:t3_pump", ""},
-- {"", "", ""},
-- },
--})

Binary file not shown.

BIN
sounds/techage_reboiler.ogg Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
textures/techage_ta3b.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB