Oil as liquid, barrels, tanks, and pumps added

master
Joachim Stolberg 2019-11-03 21:21:03 +01:00
parent b1ea6a2d6a
commit c33bc5d11c
21 changed files with 553 additions and 206 deletions

View File

@ -148,22 +148,22 @@ local function dosing(pos, mem, elapsed)
print("dosing", item.name, dump(liquids)) print("dosing", item.name, dump(liquids))
local outdir = liquids[item.name] local outdir = liquids[item.name]
if not outdir then if not outdir then
State:fault(pos, mem, S("input liquid missing")) State:fault(pos, mem, S("input missing"))
return return
end end
if liquid.take(pos, outdir, item.name, item.num) < item.num then if liquid.take(pos, outdir, item.name, item.num) < item.num then
State:fault(pos, mem, S("input liquid gone out")) State:fault(pos, mem, S("input missing"))
return return
end end
end end
end end
-- output -- output
if not reactor_cmnd(pos, "output", recipe.output.name) then if not reactor_cmnd(pos, "output", recipe.output.name) then
State:fault(pos, mem, S("output liquid blocked")) State:fault(pos, mem, S("output blocked"))
return return
end end
if not reactor_cmnd(pos, "waste", recipe.waste.name) then if not reactor_cmnd(pos, "waste", recipe.waste.name) then
State:fault(pos, mem, S("output liquid blocked")) State:fault(pos, mem, S("output blocked"))
return return
end end
State:keep_running(pos, mem, COUNTDOWN_TICKS) State:keep_running(pos, mem, COUNTDOWN_TICKS)

View File

@ -203,7 +203,6 @@ local function on_timer2(pos, elapsed)
mem.liquid = mem.liquid or {} mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0 mem.liquid.amount = mem.liquid.amount or 0
if mem.burn_cycles <= 0 then if mem.burn_cycles <= 0 then
local taken = firebox.get_fuel(pos)
if mem.liquid.amount > 0 then if mem.liquid.amount > 0 then
mem.liquid.amount = mem.liquid.amount - 1 mem.liquid.amount = mem.liquid.amount - 1
mem.burn_cycles = oilburner.Oilburntime / CYCLE_TIME * BURN_CYCLE_FACTOR mem.burn_cycles = oilburner.Oilburntime / CYCLE_TIME * BURN_CYCLE_FACTOR
@ -220,7 +219,6 @@ local function on_timer2(pos, elapsed)
end end
local function start_firebox2(pos, mem) local function start_firebox2(pos, mem)
print("start_firebox2", mem.running, mem.liquid and mem.liquid.amount)
if not mem.running and mem.liquid.amount > 0 then if not mem.running and mem.liquid.amount > 0 then
mem.running = true mem.running = true
on_timer2(pos, 0) on_timer2(pos, 0)
@ -230,8 +228,8 @@ local function start_firebox2(pos, mem)
end end
minetest.register_node("techage:oilfirebox", { minetest.register_node("techage:oilfirebox", {
description = S("TA3 Power Station Oil Firebox"), description = S("TA3 Power Station Oil Burner"),
inventory_image = "techage_coal_boiler_inv.png", inventory_image = "techage_oil_boiler_inv.png",
tiles = {"techage_coal_boiler_mesh_top.png"}, tiles = {"techage_coal_boiler_mesh_top.png"},
drawtype = "mesh", drawtype = "mesh",
mesh = "techage_boiler_large.obj", mesh = "techage_boiler_large.obj",
@ -336,6 +334,22 @@ techage.register_node({"techage:coalfirebox"}, {
end, end,
}) })
techage.register_node({"techage:oilfirebox"}, {
on_recv_message = function(pos, src, topic, payload)
local mem = tubelib2.get_mem(pos)
if topic == "state" then
if mem.running then
return "running"
else
return "stopped"
end
elseif topic == "fuel" then
return mem.liquid and mem.liquid.amount and mem.liquid.amount
else
return "unsupported"
end
end,
})
minetest.register_craft({ minetest.register_craft({
output = "techage:coalfirebox", output = "techage:coalfirebox",

View File

@ -44,6 +44,7 @@ techage.Items = {
--------------------- ---------------------
techage_ta3 = "techage_ta3.png", techage_ta3 = "techage_ta3.png",
ta3_firebox = "techage:coalfirebox", ta3_firebox = "techage:coalfirebox",
ta3_oilbox = "techage:oilfirebox",
ta3_boiler = "techage:coalboiler_top", ta3_boiler = "techage:coalboiler_top",
ta3_turbine = "techage:turbine", ta3_turbine = "techage:turbine",
ta3_generator = "techage:generator", ta3_generator = "techage:generator",
@ -78,6 +79,8 @@ techage.Items = {
ta3_pumpjack = "techage:ta3_pumpjack_pas", ta3_pumpjack = "techage:ta3_pumpjack_pas",
ta3_drillbit = "techage:oil_drillbit", ta3_drillbit = "techage:oil_drillbit",
ta3_end_wrench = "techage:end_wrench", ta3_end_wrench = "techage:end_wrench",
ta3_tank = "techage:ta3_tank",
ta3_pump = "techage:t3_pump",
---------------------------- ----------------------------
ta3_button = "techage:ta3_button_off", ta3_button = "techage:ta3_button_off",
ta3_cartdetector = "techage:ta3_cartdetector_off", ta3_cartdetector = "techage:ta3_cartdetector_off",
@ -114,5 +117,7 @@ techage.Items = {
ta4_hydrogen = "techage_hydrogen_inv.png", ta4_hydrogen = "techage_hydrogen_inv.png",
ta4_electrolyzer = "techage:ta4_electrolyzer", ta4_electrolyzer = "techage:ta4_electrolyzer",
ta4_fuelcell = "techage:ta4_fuelcell", ta4_fuelcell = "techage:ta4_fuelcell",
ta4_tank = "techage:ta4_tank",
ta4_pump = "techage:t4_pump",
--ta4_ "", --ta4_ "",
} }

View File

@ -37,8 +37,9 @@ techage.manual_DE.aTitel = {
"3,TA2 Gesicherte Kiste / Protected Chest", "3,TA2 Gesicherte Kiste / Protected Chest",
"3,Techage Forceload Block", "3,Techage Forceload Block",
"1,TA3: Ölzeitalter", "1,TA3: Ölzeitalter",
"2,Kohlekraftwerk", "2,Kohlekraftwerk / Ölkraftwerk",
"3,TA3 Kraftwerks-Feuerbox / Power Station Firebox", "3,TA3 Kraftwerks-Feuerbox / Power Station Firebox",
"3,TA3 Kraftwerks-Ölbrenner / TA3 Power Station Oil Burner",
"3,TA3 Boiler unten/oben", "3,TA3 Boiler unten/oben",
"3,TA3 Turbine", "3,TA3 Turbine",
"3,TA3 Generator", "3,TA3 Generator",
@ -57,7 +58,7 @@ techage.manual_DE.aTitel = {
"3,TA3 Akku Block / Akku Box", "3,TA3 Akku Block / Akku Box",
"3,TA3 Strom Terminal / Power Terminal", "3,TA3 Strom Terminal / Power Terminal",
"2,TA3 Industrieofen", "2,TA3 Industrieofen",
"3,TA3 Ofen-Feuerkiste / Furnace Firebox", "3,TA3 Ofen-Ölbrenner / Furnace Oil Burner",
"3,TA3 Ofenoberteil / Furnace Top", "3,TA3 Ofenoberteil / Furnace Top",
"3,TA3 Gebläse / Booster", "3,TA3 Gebläse / Booster",
"2,Öl-Anlagen", "2,Öl-Anlagen",
@ -88,6 +89,9 @@ techage.manual_DE.aTitel = {
"3,TA3 Kiessieb / Gravel Sieve", "3,TA3 Kiessieb / Gravel Sieve",
"3,TA3 Mühle / Grinder", "3,TA3 Mühle / Grinder",
"3,TA3 Flüssigkeitensammler / Liquid Sampler", "3,TA3 Flüssigkeitensammler / Liquid Sampler",
"2,Flüssigkeiten",
"3,TA3 Tank / TA3 Tank",
"3,TA3 Pumpe / TA3 Pump",
"2,Werkzeuge", "2,Werkzeuge",
"3,Techage Info Tool", "3,Techage Info Tool",
"3,TechAge Programmer", "3,TechAge Programmer",
@ -113,6 +117,9 @@ techage.manual_DE.aTitel = {
"2,Wasserstoff", "2,Wasserstoff",
"3,Elektrolyseur", "3,Elektrolyseur",
"3,Brennstoffzelle", "3,Brennstoffzelle",
"2,Weitere TA4 Blöcke",
"3,TA4 Tank / TA4 Tank",
"3,TA4 Pumpe / TA4 Pump",
} }
techage.manual_DE.aText = { techage.manual_DE.aText = {
@ -281,6 +288,7 @@ techage.manual_DE.aText = {
"\n".. "\n"..
"\n", "\n",
"Ein Schieber ist in der Lage\\, Items aus Kisten oder Maschinen zu ziehen und in andere Kisten oder Maschinen zu schieben. Oder anders gesagt: Zwischen zwei Blöcken mit Inventar muss ein und genau ein Schieber sein. Mehrere Schieber in Reihe sind nicht möglich.\n".. "Ein Schieber ist in der Lage\\, Items aus Kisten oder Maschinen zu ziehen und in andere Kisten oder Maschinen zu schieben. Oder anders gesagt: Zwischen zwei Blöcken mit Inventar muss ein und genau ein Schieber sein. Mehrere Schieber in Reihe sind nicht möglich.\n"..
"In die Gegenrichtung ist ein Schieber für Items aber durchlässig\\, so dass eine Kiste über eine Röhre gefüllt und ebenso gelehrt werden kann. \n"..
"\n".. "\n"..
"Ein Schieber geht in den Zustand \"standby\"\\, wenn der keine Items zum Schieben hat. Ist der Ausgang blockiert oder das Inventory des Empfängers voll\\, so geht der Schieber in den Zustand \"blocked\". Aus beiden Zuständen kommt der Schieber nach einigen Sekunden selbsttätig wieder raus\\, sofern sich die Situation geändert hat.\n".. "Ein Schieber geht in den Zustand \"standby\"\\, wenn der keine Items zum Schieben hat. Ist der Ausgang blockiert oder das Inventory des Empfängers voll\\, so geht der Schieber in den Zustand \"blocked\". Aus beiden Zuständen kommt der Schieber nach einigen Sekunden selbsttätig wieder raus\\, sofern sich die Situation geändert hat.\n"..
"\n".. "\n"..
@ -389,10 +397,13 @@ techage.manual_DE.aText = {
"Das Kohlekraftwerk besteht aus mehreren Blöcken und muss wie im Plan rechts abgebildet\\, zusammen gebaut werden. Dazu werden die Blöcke TA3 Kraftwerks-Feuerbox\\, TA3 Boiler oben\\, TA3 Boiler unten\\, TA3 Turbine\\, TA3 Generator und TA3 Kühler benötigt.\n".. "Das Kohlekraftwerk besteht aus mehreren Blöcken und muss wie im Plan rechts abgebildet\\, zusammen gebaut werden. Dazu werden die Blöcke TA3 Kraftwerks-Feuerbox\\, TA3 Boiler oben\\, TA3 Boiler unten\\, TA3 Turbine\\, TA3 Generator und TA3 Kühler benötigt.\n"..
"\n".. "\n"..
"Der Boiler muss mit Wasser gefüllt werden. Dazu bis zu 10 Eimer Wasser in den Boiler füllen.\n".. "Der Boiler muss mit Wasser gefüllt werden. Dazu bis zu 10 Eimer Wasser in den Boiler füllen.\n"..
"Die Feuerbox muss mit Kohle\\, Holzkohle oder Erdöl gefüllt werden.\n".. "Die Feuerbox muss mit Kohle oder Holzkohle gefüllt werden.\n"..
"Wenn das Wasser heiß ist\\, kann das Ventil am Boiler geöffnet und anschließend die Generator gestartet werden.\n".. "Wenn das Wasser heiß ist\\, kann das Ventil am Boiler geöffnet und anschließend die Generator gestartet werden.\n"..
"\n".. "\n"..
"Das Kraftwerk liefert eine Leistung von 80 ku und kann mit Kohle\\, Holzkohle oder Erdöl betrieben werden.\n".. "Das Kraftwerk kann alternativ auch mit einem Ölbrenner ausgestattet und dann mit Öl betrieben werden.\n"..
"Das Öl kann über eine Pumpe und Ölleitung nachgefüllt werden.\n"..
"\n"..
"Das Kraftwerk liefert eine Leistung von 80 ku.\n"..
"\n".. "\n"..
"\n".. "\n"..
"\n", "\n",
@ -401,6 +412,11 @@ techage.manual_DE.aText = {
"\n".. "\n"..
"\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"..
"\n"..
"\n",
"Teil des Kraftwerk. Muss mit Wasser gefüllt werden. Wem kein Wasser mehr vorhanden ist oder die Temperatur zu weit absinkt\\, schaltet sich der Boiler ab.\n".. "Teil des Kraftwerk. Muss mit Wasser gefüllt werden. Wem kein Wasser mehr vorhanden ist oder die Temperatur zu weit absinkt\\, schaltet sich der Boiler ab.\n"..
"\n".. "\n"..
"\n".. "\n"..
@ -499,13 +515,13 @@ techage.manual_DE.aText = {
"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\" Rezepte\\, 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".. "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".. "\n"..
"Der Industrieofen benötigt Strom (für das Gebläse) sowie Kohle\\, Holzkohle oder Erdöl für die Befeuerung. Der Industrieofens und muss wie im Plan rechts abgebildet\\, zusammen gebaut werden.\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".. "\n"..
"Die Brennzeit für Kohle und Erdöl beträgt 80 s und für Holzkohle 240 s.\n".. "Die Brennzeit für Öl beträgt 80 s.\n"..
"\n".. "\n"..
"\n".. "\n"..
"\n", "\n",
"Ist Teil des TA3 Industrieofen. Muss mit Kohle\\, Holzkohle oder Erdöl befeuert werden.\n".. "Ist Teil des TA3 Industrieofen. Muss mit Öl befeuert werden.\n"..
"\n".. "\n"..
"\n".. "\n"..
"\n", "\n",
@ -547,7 +563,7 @@ techage.manual_DE.aText = {
"\n".. "\n"..
"\n".. "\n"..
"\n", "\n",
"An die Stelle der Ölbohrkiste muss nun die Ölpumpe platziert werden. Auch die Ölpumpe benötigt Strom (16 ku) und liefert alle 8 s ein Erdöl-Item\\, das in einer Kiste gesammelt werden muss. Dazu muss die Ölpumpe über eine Röhre mit der Kiste verbunden werden.\n".. "An die Stelle der Ölbohrkiste muss nun die Ölpumpe platziert werden. Auch die Ölpumpe benötigt Strom (16 ku) und liefert alle 8 s ein Einheit Erdöl. Das Erdöl muss in einem Tank gesammelt werden. Dazu muss die Ölpumpe über eine Leitung (gelbe Röhre) mit dem Tank verbunden werden.\n"..
"Ist alles Öl abgepumpt\\, kann auch die Ölpumpe wieder entfernt werden.\n".. "Ist alles Öl abgepumpt\\, kann auch die Ölpumpe wieder entfernt werden.\n"..
"\n".. "\n"..
"\n".. "\n"..
@ -743,6 +759,32 @@ techage.manual_DE.aText = {
"\n".. "\n"..
"\n".. "\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"..
"\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".. "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".. "Wird auf einen TechAge Block mit Kommandoschnittstelle geklickt\\, werden alle verfügbaren Daten abgerufen (siehe auch \"Logik-/Schalt-Blöcke\").\n"..
@ -908,6 +950,19 @@ techage.manual_DE.aText = {
"\n".. "\n"..
"\n".. "\n"..
"\n", "\n",
"",
"Siehe TA3 Tank.\n"..
"\n"..
"In einen TA4 Tank passen 1000 Einheiten oder 100 Fässer einer Flüssigkeit.\n"..
"\n"..
"\n"..
"\n",
"Siehe TA3 Pumpe.\n"..
"\n"..
"Die TA4 Pumpe pumpt 8 Einheiten Flüssigkeit alle zwei Sekunden.\n"..
"\n"..
"\n"..
"\n",
} }
techage.manual_DE.aItemName = { techage.manual_DE.aItemName = {
@ -949,6 +1004,7 @@ techage.manual_DE.aItemName = {
"techage_ta3", "techage_ta3",
"", "",
"ta3_firebox", "ta3_firebox",
"ta3_oilbox",
"ta3_boiler", "ta3_boiler",
"ta3_turbine", "ta3_turbine",
"ta3_generator", "ta3_generator",
@ -999,6 +1055,9 @@ techage.manual_DE.aItemName = {
"ta3_grinder", "ta3_grinder",
"ta3_liquidsampler", "ta3_liquidsampler",
"", "",
"ta3_tank",
"ta3_pump",
"",
"ta3_end_wrench", "ta3_end_wrench",
"ta3_programmer", "ta3_programmer",
"ta3_trowel", "ta3_trowel",
@ -1023,6 +1082,9 @@ techage.manual_DE.aItemName = {
"ta4_hydrogen", "ta4_hydrogen",
"ta4_electrolyzer", "ta4_electrolyzer",
"ta4_fuelcell", "ta4_fuelcell",
"",
"ta4_tank",
"ta4_pump",
} }
techage.manual_DE.aPlanTable = { techage.manual_DE.aPlanTable = {
@ -1081,6 +1143,7 @@ techage.manual_DE.aPlanTable = {
"", "",
"", "",
"", "",
"",
"ta3_furnace", "ta3_furnace",
"", "",
"", "",
@ -1113,6 +1176,9 @@ techage.manual_DE.aPlanTable = {
"", "",
"", "",
"", "",
"ta3_tank",
"",
"",
"", "",
"", "",
"", "",
@ -1138,5 +1204,8 @@ techage.manual_DE.aPlanTable = {
"", "",
"", "",
"", "",
"",
"",
"",
} }

View File

@ -116,7 +116,9 @@ techage.ConstructionPlans["itemtransport"] = {
local RINSR = {"techage_filling_ta2.png^techage_appl_rinser.png^techage_frame_ta2.png", "techage:ta2_rinser_pas"} local RINSR = {"techage_filling_ta2.png^techage_appl_rinser.png^techage_frame_ta2.png", "techage:ta2_rinser_pas"}
local GLASS = {"default_glass.png", "default:glass"} local GLASS = {"default_glass.png", "default:glass"}
local WATER = {"default_water.png^default_glass.png", "default:water_source"} local WATER = {"default_water.png^default_glass.png", "default:water_source"}
local TK000 = {"techage_tube_knee.png", "techage:tubeS"} local TK000 = {"techage_tube_knee.png", "techage:tubeS"} -- like 'r'
local TK090 = {"techage_tube_knee.png^[transformR90", "techage:tubeS"} -- '7'
local TK180 = {"techage_tube_knee.png^[transformR180", "techage:tubeS"}
local TK270 = {"techage_tube_knee.png^[transformR270", "techage:tubeS"} local TK270 = {"techage_tube_knee.png^[transformR270", "techage:tubeS"}
techage.ConstructionPlans["gravelrinser"] = { techage.ConstructionPlans["gravelrinser"] = {
@ -150,7 +152,8 @@ techage.ConstructionPlans["coalpowerstation"] = {
-- --
local Cable = {"techage_electric_cable_inv.png", "techage:electric_cableS"} local Cable = {"techage_electric_cable_inv.png", "techage:electric_cableS"}
local Tubes = {"techage_tube_tube.png", "techage:tubeS"} local Tubes = {"techage_tube_tube.png", "techage:tubeS"}
local Pushr = {"techage_appl_pusher.png^techage_frame_ta3.png", "techage:ta3_pusher_pas"} local PushR = {"techage_appl_pusher.png^techage_frame_ta3.png", "techage:ta3_pusher_pas"}
local PushL = {"techage_appl_pusher.png^techage_frame_ta3.png^[transformFX", "techage:ta3_pusher_pas"}
local Boost = {"techage_filling_ta3.png^techage_appl_compressor.png^[transformFX^techage_frame_ta3.png", "techage:ta3_booster"} local Boost = {"techage_filling_ta3.png^techage_appl_compressor.png^[transformFX^techage_frame_ta3.png", "techage:ta3_booster"}
local Fibox = {"techage_concrete.png^techage_appl_firehole.png^techage_frame_ta3.png", "techage:furnace_firebox"} local Fibox = {"techage_concrete.png^techage_appl_firehole.png^techage_frame_ta3.png", "techage:furnace_firebox"}
local Furnc = {"techage_concrete.png^techage_appl_furnace.png^techage_frame_ta3.png", "techage:ta3_furnace_pas"} local Furnc = {"techage_concrete.png^techage_appl_furnace.png^techage_frame_ta3.png", "techage:ta3_furnace_pas"}
@ -158,11 +161,31 @@ local Furnc = {"techage_concrete.png^techage_appl_furnace.png^techage_frame_ta3.
techage.ConstructionPlans["ta3_furnace"] = { techage.ConstructionPlans["ta3_furnace"] = {
{false, false, false, false, false, false, false, false}, {false, false, false, false, false, false, false, false},
{false, false, false, false, false, false, false, false}, {false, false, false, false, false, false, false, false},
{false, Tubes, Pushr, Tubes, Furnc, Tubes, Pushr, Tubes}, {false, Tubes, PushR, Tubes, Furnc, Tubes, PushR, Tubes},
{false, false, Cable, Boost, Fibox, false, false, false}, {false, false, Cable, Boost, Fibox, false, false, false},
} }
--
-- TA3 Tank Pump Pusher
--
local Pump = {"techage_filling_ta3.png^techage_appl_pump.png^techage_frame_ta3.png", "techage:t3_pump"}
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 PN180 = {"techage_gaspipe_knee.png^[transformR180", "techage:ta4_pipeS"}
local PN270 = {"techage_gaspipe_knee.png^[transformR270", "techage:ta4_pipeS"}
techage.ConstructionPlans["ta3_tank"] = {
{false, false, false, false, false, false, false, false, false},
{false, false, false, false, false, false, false, false, false},
{false, Tubes, PushR, Tubes, Tank, PIPEH, Pump, PIPEH, Tank},
{false, PushL, Tubes, Tubes, TK180, false, false, false, false},
}
-- --
-- Wind Turbine -- Wind Turbine
-- --
@ -187,12 +210,6 @@ techage.ConstructionPlans["ta4_windturbine"] = {
-- Thermal Storage System -- Thermal Storage System
-- --
local CONCR = {"basic_materials_concrete_block.png", "basic_materials:concrete_block"} local CONCR = {"basic_materials_concrete_block.png", "basic_materials:concrete_block"}
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 PN180 = {"techage_gaspipe_knee.png^[transformR180", "techage:ta4_pipeS"}
local PN270 = {"techage_gaspipe_knee.png^[transformR270", "techage:ta4_pipeS"}
local HEXR1 = {"techage_filling_ta4.png^techage_frameT_ta4.png^techage_appl_ribsT.png", "techage:heatexchanger3"} local HEXR1 = {"techage_filling_ta4.png^techage_frameT_ta4.png^techage_appl_ribsT.png", "techage:heatexchanger3"}
local HEXR2 = {"techage_filling_ta4.png^techage_frameM_ta4.png^techage_appl_ribsB.png", "techage:heatexchanger2"} local HEXR2 = {"techage_filling_ta4.png^techage_frameM_ta4.png^techage_appl_ribsB.png", "techage:heatexchanger2"}
local HEXR3 = {"techage_filling_ta4.png^techage_frameB_ta4.png^techage_appl_hole_electric.png", "techage:heatexchanger1"} local HEXR3 = {"techage_filling_ta4.png^techage_frameB_ta4.png^techage_appl_hole_electric.png", "techage:heatexchanger1"}

View File

@ -96,11 +96,11 @@ function techage.furnace.smelting(pos, mem, elapsed)
local state = techage.RUNNING local state = techage.RUNNING
if inv and not inv:is_empty("src") then if inv and not inv:is_empty("src") then
if not mem.output or not mem.num_recipe then if not mem.output or not mem.num_recipe then
return techage.FAULT return techage.FAULT, "recipe error"
end end
local recipe = Recipes[mem.output][mem.num_recipe] local recipe = Recipes[mem.output][mem.num_recipe]
if not recipe then if not recipe then
return techage.FAULT return techage.FAULT, "recipe error"
end end
-- check dst inv -- check dst inv
local item = ItemStack(mem.output) local item = ItemStack(mem.output)

View File

@ -17,28 +17,34 @@ local M = minetest.get_meta
local S = techage.S local S = techage.S
local firebox = techage.firebox local firebox = techage.firebox
local oilburner = techage.oilburner
local Pipe = techage.LiquidPipe
local liquid = techage.liquid
local CYCLE_TIME = 2 local CYCLE_TIME = 2
local function has_fuel(pos, mem) local function has_fuel(pos, mem)
return mem.burn_cycles > 0 or firebox.has_fuel(pos) return mem.burn_cycles > 0 or (mem.liquid and mem.liquid.amount and mem.liquid.amount > 0)
end end
local function stop_firebox(pos, mem) local function stop_firebox(pos, mem)
mem.running = false mem.running = false
firebox.swap_node(pos, "techage:furnace_firebox") firebox.swap_node(pos, "techage:furnace_firebox")
minetest.get_node_timer(pos):stop() minetest.get_node_timer(pos):stop()
M(pos):set_string("formspec", firebox.formspec(mem)) M(pos):set_string("formspec", oilburner.formspec(mem))
end end
local function node_timer(pos, elapsed) local function node_timer(pos, elapsed)
local mem = tubelib2.get_mem(pos) local mem = tubelib2.get_mem(pos)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
if mem.running then if mem.running then
oilburner.formspec_update(pos, mem)
mem.burn_cycles = (mem.burn_cycles or 0) - 1 mem.burn_cycles = (mem.burn_cycles or 0) - 1
if mem.burn_cycles <= 0 then if mem.burn_cycles <= 0 then
local taken = firebox.get_fuel(pos) if mem.liquid.amount > 0 then
if taken then mem.liquid.amount = mem.liquid.amount - 1
mem.burn_cycles = (firebox.Burntime[taken:get_name()] or 1) / CYCLE_TIME mem.burn_cycles = (oilburner.Oilburntime or 1) / CYCLE_TIME
mem.burn_cycles_total = mem.burn_cycles mem.burn_cycles_total = mem.burn_cycles
else else
stop_firebox(pos, mem) stop_firebox(pos, mem)
@ -55,7 +61,7 @@ local function start_firebox(pos, mem)
node_timer(pos, 0) node_timer(pos, 0)
firebox.swap_node(pos, "techage:furnace_firebox_on") firebox.swap_node(pos, "techage:furnace_firebox_on")
minetest.get_node_timer(pos):start(CYCLE_TIME) minetest.get_node_timer(pos):start(CYCLE_TIME)
M(pos):set_string("formspec", firebox.formspec(mem)) M(pos):set_string("formspec", oilburner.formspec(mem))
end end
end end
@ -70,7 +76,7 @@ local function booster_cmnd(pos, cmnd)
end end
minetest.register_node("techage:furnace_firebox", { minetest.register_node("techage:furnace_firebox", {
description = S("TA3 Furnace Firebox"), description = S("TA3 Furnace Oil Burner"),
tiles = { tiles = {
-- up, down, right, left, back, front -- up, down, right, left, back, front
"techage_concrete.png^techage_appl_open.png^techage_frame_ta3.png", "techage_concrete.png^techage_appl_open.png^techage_frame_ta3.png",
@ -87,25 +93,43 @@ minetest.register_node("techage:furnace_firebox", {
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_timer = node_timer, on_timer = node_timer,
can_dig = firebox.can_dig, can_dig = oilburner.can_dig,
allow_metadata_inventory_put = firebox.allow_metadata_inventory_put, allow_metadata_inventory_put = oilburner.allow_metadata_inventory_put,
allow_metadata_inventory_take = firebox.allow_metadata_inventory_take, allow_metadata_inventory_take = oilburner.allow_metadata_inventory_take,
on_receive_fields = firebox.on_receive_fields, on_receive_fields = oilburner.on_receive_fields,
on_rightclick = firebox.on_rightclick, on_rightclick = oilburner.on_rightclick,
on_construct = function(pos) on_construct = function(pos)
local mem = tubelib2.init_mem(pos) local mem = tubelib2.init_mem(pos)
techage.add_node(pos, "techage:furnace_firebox")
mem.running = false mem.running = false
mem.burn_cycles = 0 mem.burn_cycles = 0
mem.liquid = {}
mem.liquid.amount = 0
local meta = M(pos) local meta = M(pos)
meta:set_string("formspec", firebox.formspec(mem)) meta:set_string("formspec", oilburner.formspec(mem))
local inv = meta:get_inventory() local inv = meta:get_inventory()
inv:set_size('fuel', 1) inv:set_size('fuel', 1)
end, 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", { minetest.register_node("techage:furnace_firebox_on", {
description = S("TA3 Furnace Firebox"), description = S("TA3 Furnace Oil Burner"),
tiles = { tiles = {
-- up, down, right, left, back, front -- up, down, right, left, back, front
"techage_concrete.png^techage_frame_ta3.png", "techage_concrete.png^techage_frame_ta3.png",
@ -134,11 +158,33 @@ minetest.register_node("techage:furnace_firebox_on", {
drop = "techage:furnace_firebox", drop = "techage:furnace_firebox",
on_timer = node_timer, on_timer = node_timer,
can_dig = firebox.can_dig, can_dig = oilburner.can_dig,
allow_metadata_inventory_put = firebox.allow_metadata_inventory_put, allow_metadata_inventory_put = oilburner.allow_metadata_inventory_put,
allow_metadata_inventory_take = firebox.allow_metadata_inventory_take, allow_metadata_inventory_take = oilburner.allow_metadata_inventory_take,
on_receive_fields = firebox.on_receive_fields, on_receive_fields = oilburner.on_receive_fields,
on_rightclick = firebox.on_rightclick, on_rightclick = oilburner.on_rightclick,
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)
end,
liquid = {
capa = oilburner.CAPACITY,
peek = liquid.srv_peek,
put = function(pos, indir, name, amount)
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_firebox(pos, mem)
end,
take = liquid.srv_take,
},
networks = oilburner.networks,
}) })
minetest.register_craft({ minetest.register_craft({
@ -151,25 +197,6 @@ minetest.register_craft({
}) })
techage.register_node({"techage:furnace_firebox", "techage:furnace_firebox_on"}, { techage.register_node({"techage:furnace_firebox", "techage:furnace_firebox_on"}, {
on_pull_item = function(pos, in_dir, num)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
return techage.get_items(inv, "fuel", num)
end,
on_push_item = function(pos, in_dir, stack)
if firebox.Burntime[stack:get_name()] then
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local mem = tubelib2.get_mem(pos)
return techage.put_items(inv, "fuel", stack)
end
return false
end,
on_unpull_item = function(pos, in_dir, stack)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
return techage.put_items(inv, "fuel", stack)
end,
on_recv_message = function(pos, src, topic, payload) on_recv_message = function(pos, src, topic, payload)
local mem = tubelib2.get_mem(pos) local mem = tubelib2.get_mem(pos)
if topic == "state" then if topic == "state" then
@ -179,9 +206,7 @@ techage.register_node({"techage:furnace_firebox", "techage:furnace_firebox_on"},
return "stopped" return "stopped"
end end
elseif topic == "fuel" then elseif topic == "fuel" then
local inv = M(pos):get_inventory() return mem.liquid and mem.liquid.amount and mem.liquid.amount
local stack = inv:get_stack("fuel", 1)
return stack:get_count()
else else
return "unsupported" return "unsupported"
end end
@ -201,6 +226,9 @@ techage.register_node({"techage:furnace_firebox", "techage:furnace_firebox_on"},
end end
}) })
Pipe:add_secondary_node_names({"techage:furnace_firebox", "techage:furnace_firebox_on"})
minetest.register_lbm({ minetest.register_lbm({
label = "[techage] Furnace firebox", label = "[techage] Furnace firebox",
name = "techage:furnace", name = "techage:furnace",

View File

@ -45,6 +45,8 @@ local function formspec(self, pos, mem)
"image[2,0.5;1,1;techage_form_arrow_bg.png^[lowpart:".. "image[2,0.5;1,1;techage_form_arrow_bg.png^[lowpart:"..
(mem.item_percent or 0)..":techage_form_arrow_fg.png^[transformR270]".. (mem.item_percent or 0)..":techage_form_arrow_fg.png^[transformR270]"..
"image_button[2,2;1,1;".. self:get_state_button_image(mem) ..";state_button;]".. "image_button[2,2;1,1;".. self:get_state_button_image(mem) ..";state_button;]"..
"tooltip[2,2;1,1;"..self:get_state_tooltip(mem).."]"..
"list[context;dst;3,0;2,2;]".. "list[context;dst;3,0;2,2;]"..
"label[6,0;"..S("Outp")..": "..idx.."/"..num.."]".. "label[6,0;"..S("Outp")..": "..idx.."/"..num.."]"..
@ -78,13 +80,13 @@ end
local function cooking(pos, crd, mem, elapsed) local function cooking(pos, crd, mem, elapsed)
if firebox_cmnd(pos, "fuel") then if firebox_cmnd(pos, "fuel") then
local state = smelting(pos, mem, elapsed) local state, err = smelting(pos, mem, elapsed)
if state == techage.RUNNING then if state == techage.RUNNING then
crd.State:keep_running(pos, mem, COUNTDOWN_TICKS) crd.State:keep_running(pos, mem, COUNTDOWN_TICKS)
elseif state == techage.BLOCKED then elseif state == techage.BLOCKED then
crd.State:blocked(pos, mem) crd.State:blocked(pos, mem)
elseif state == techage.FAULT then elseif state == techage.FAULT then
crd.State:fault(pos, mem) crd.State:fault(pos, mem, err)
elseif state == techage.STANDBY then elseif state == techage.STANDBY then
crd.State:idle(pos, mem) crd.State:idle(pos, mem)
end end
@ -167,7 +169,10 @@ end
local function can_start(pos, mem, state) local function can_start(pos, mem, state)
if D.dbg2 then D.dbg("can_start", state, firebox_cmnd(pos, "fuel")) end if D.dbg2 then D.dbg("can_start", state, firebox_cmnd(pos, "fuel")) end
return firebox_cmnd(pos, "fuel") if not firebox_cmnd(pos, "fuel") then
return S("no fuel or no power")
end
return true
end end
local function on_node_state_change(pos, old_state, new_state) local function on_node_state_change(pos, old_state, new_state)

View File

@ -214,8 +214,8 @@ else
dofile(MP.."/energy_storage/nodes.lua") dofile(MP.."/energy_storage/nodes.lua")
-- Chemistry -- Chemistry
dofile(MP.."/chemistry/ta4_reactor.lua") --dofile(MP.."/chemistry/ta4_reactor.lua")
dofile(MP.."/chemistry/ta4_doser.lua") --dofile(MP.."/chemistry/ta4_doser.lua")
-- Hydrogen -- Hydrogen
dofile(MP.."/hydrogen/hydrogen.lua") dofile(MP.."/hydrogen/hydrogen.lua")

View File

@ -243,7 +243,23 @@ minetest.register_craftitem("techage:river_water", {
}) })
minetest.register_craftitem("techage:barrel_water", {
description = S("Water Barrel"),
inventory_image = "techage_barrel_water_inv.png",
stack_max = 1,
})
minetest.register_craftitem("techage:barrel_river_water", {
description = S("River Water Barrel"),
inventory_image = "techage_barrel_water_inv.png",
stack_max = 1,
})
techage.register_liquid("bucket:bucket_water", "bucket:bucket_empty", 1, "techage:water") techage.register_liquid("bucket:bucket_water", "bucket:bucket_empty", 1, "techage:water")
techage.register_liquid("bucket:bucket_river_water", "bucket:bucket_empty", 1, "techage:river_water") techage.register_liquid("bucket:bucket_river_water", "bucket:bucket_empty", 1, "techage:river_water")
techage.register_liquid("techage:barrel_water", "techage:ta3_barrel_empty", 10, "techage:water")
techage.register_liquid("techage:barrel_river_water", "techage:ta3_barrel_empty", 10, "techage:river_water")
techage.register_liquid("bucket:bucket_lava", "bucket:bucket_empty", 1, "default:lava_source") techage.register_liquid("bucket:bucket_lava", "bucket:bucket_empty", 1, "default:lava_source")

View File

@ -181,9 +181,9 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
output = "techage:ta3_pipeS 6", output = "techage:ta3_pipeS 6",
recipe = { recipe = {
{'', '', "default:steel_ingot"}, {'', '', "techage:iron_ingot"},
{'dye:yellow', 'techage:meridium_ingot', ''}, {'dye:yellow', 'default:steel_ingot', ''},
{"default:steel_ingot", '', ''}, {"techage:iron_ingot", '', ''},
}, },
}) })

View File

@ -54,14 +54,6 @@ local function formspec_oil(x, y, mem)
if mem.running then if mem.running then
fuel_percent = ((mem.burn_cycles or 1) * 100) / (mem.burn_cycles_total or 1) fuel_percent = ((mem.burn_cycles or 1) * 100) / (mem.burn_cycles_total or 1)
end end
-- return "container["..x..","..y.."]"..
-- "background[0,0;2,2.05;techage_form_grey.png]"..
-- "image[0,0;1,1;techage_form_input_arrow.png]"..
-- "image[1,0;1,1;default_furnace_fire_bg.png^[lowpart:"..
-- fuel_percent..":default_furnace_fire_fg.png]"..
-- techage.item_image(1, 1, itemname)..
-- "list[context;fuel;0,1;1,1;]"..
-- "container_end[]"
return "container["..x..","..y.."]".. return "container["..x..","..y.."]"..
"background[0,0;3,1.05;techage_form_grey.png]".. "background[0,0;3,1.05;techage_form_grey.png]"..
"list[context;fuel;0,0;1,1;]".. "list[context;fuel;0,0;1,1;]"..
@ -71,6 +63,9 @@ local function formspec_oil(x, y, mem)
"container_end[]" "container_end[]"
end end
techage.oilburner.formspec_oil = formspec_oil
function techage.oilburner.formspec(mem) function techage.oilburner.formspec(mem)
local update = ((mem.countdown or 0) > 0 and mem.countdown) or S("Update") local update = ((mem.countdown or 0) > 0 and mem.countdown) or S("Update")
return "size[8,5]".. return "size[8,5]"..
@ -123,6 +118,17 @@ local function move_item(pos, stack)
M(pos):set_string("formspec", techage.oilburner.formspec(mem)) M(pos):set_string("formspec", techage.oilburner.formspec(mem))
end end
function techage.oilburner.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.oilburner.allow_metadata_inventory_put(pos, listname, index, stack, player) function techage.oilburner.allow_metadata_inventory_put(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then if minetest.is_protected(pos, player:get_player_name()) then
return 0 return 0

View File

@ -293,4 +293,20 @@ Pipe:add_secondary_node_names({
"techage:t4_pump", "techage:t4_pump_on", "techage:t4_pump", "techage:t4_pump_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"},
},
})
minetest.register_craft({
output = "techage:t4_pump",
recipe = {
{"default:tin_ingot", "dye:blue", "default:steel_ingot"},
{"", "techage:t3_pump", ""},
{"", "", ""},
},
})

View File

@ -20,7 +20,7 @@ local LQD = function(pos) return (minetest.registered_nodes[techage.get_node_lvm
local Pipe = techage.LiquidPipe local Pipe = techage.LiquidPipe
local liquid = techage.liquid local liquid = techage.liquid
local CAPACITY = 1000 local CAPACITY = 500
local function formspec_tank(x, y, mem) local function formspec_tank(x, y, mem)
@ -224,78 +224,80 @@ minetest.register_node("techage:ta3_tank", {
sounds = default.node_sound_metal_defaults(), sounds = default.node_sound_metal_defaults(),
}) })
Pipe:add_secondary_node_names({"techage:ta3_tank"}) minetest.register_node("techage:ta4_tank", {
description = S("TA4 Tank"),
--minetest.register_node("techage:ta4_tank", { tiles = {
-- description = S("TA4 Tank"), -- up, down, right, left, back, front
-- tiles = { "techage_filling_ta4.png^techage_frame_ta4_top.png",
-- -- up, down, right, left, back, front "techage_filling_ta4.png^techage_frame_ta4.png",
-- "techage_filling_ta4.png^techage_frame_ta4_top.png", "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_tank.png",
-- "techage_filling_ta4.png^techage_frame_ta4.png", "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_tank.png",
-- "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_hole_pipe.png", "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_tank.png",
-- "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_hole_tube.png", "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_tank.png",
-- "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_tank.png", },
-- "techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_tank.png",
-- },
-- on_construct = function(pos)
-- local meta = minetest.get_meta(pos)
-- local inv = meta:get_inventory()
-- inv:set_size('src', 1)
-- inv:set_size('dst', 1)
-- end,
-- liquid = {
-- peek = function(pos, indir)
-- if indir == M(pos):get_int("indir") then
-- return liquid.srv_peek(pos, "main")
-- end
-- end,
-- put = function(pos, indir, name, amount)
-- if indir == M(pos):get_int("indir") then
-- return liquid.srv_put(pos, "main", name, amount)
-- end
-- end,
-- take = function(pos, indir, name, amount)
-- if indir == M(pos):get_int("indir") then
-- return liquid.srv_take(pos, "main", name, amount)
-- end
-- end,
-- },
-- on_rightclick = on_rightclick,
-- can_dig = can_dig,
-- allow_metadata_inventory_put = allow_metadata_inventory_put,
-- allow_metadata_inventory_take = allow_metadata_inventory_take,
-- paramtype2 = "facedir",
-- on_rotate = screwdriver.disallow,
-- groups = {cracky=2},
-- is_ground_content = false,
-- sounds = default.node_sound_metal_defaults(),
--})
---- for mechanical pipe connections
--techage.power.register_node({"techage:ta4_tank"}, {
-- conn_sides = {"R"},
-- power_network = Pipe,
-- after_place_node = function(pos, placer)
-- local meta = M(pos)
-- local mem = tubelib2.init_mem(pos)
-- mem.liquid = mem.liquid or {}
-- local number = techage.add_node(pos, "techage:ta4_tank")
-- meta:set_string("node_number", number)
-- meta:set_string("owner", placer:get_player_name())
-- local node = minetest.get_node(pos)
-- local indir = techage.side_to_indir("R", node.param2)
-- meta:set_int("indir", indir) -- from liquid point of view
-- meta:set_string("formspec", formspec(mem))
-- meta:set_string("infotext", S("TA4 Tank").." "..number)
-- end,
-- after_dig_node = function(pos, oldnode, oldmetadata, digger)
-- techage.remove_node(pos)
-- end,
--})
on_construct = function(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
inv:set_size('src', 1)
inv:set_size('dst', 1)
end,
after_place_node = function(pos, placer)
local meta = M(pos)
local mem = tubelib2.init_mem(pos)
mem.liquid = {}
local number = techage.add_node(pos, "techage:ta4_tank")
meta:set_string("node_number", number)
meta:set_string("owner", placer:get_player_name())
meta:set_string("formspec", formspec(mem))
meta:set_string("infotext", S("TA4 Tank").." "..number)
Pipe:after_place_node(pos)
end,
tubelib2_on_update2 = function(pos, dir, tlib2, node)
liquid.update_network(pos)
end,
on_timer = function(pos, elapsed)
local mem = tubelib2.get_mem(pos)
mem.countdown = mem.countdown - 1
M(pos):set_string("formspec", formspec(mem))
return mem.countdown > 0
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
Pipe:after_dig_node(pos)
techage.remove_node(pos)
end,
liquid = {
capa = CAPACITY * 2,
peek = liquid.srv_peek,
put = function(pos, indir, name, amount)
local leftover = liquid.srv_put(pos, indir, name, amount)
local inv = M(pos):get_inventory()
if not inv:is_empty("src") and inv:is_empty("dst") then
fill_container(pos, inv)
end
return leftover
end,
take = liquid.srv_take,
},
networks = {
pipe = {
sides = techage.networks.AllSides, -- Pipe connection sides
ntype = "tank",
},
},
on_rightclick = on_rightclick,
on_receive_fields = on_receive_fields,
can_dig = can_dig,
allow_metadata_inventory_put = allow_metadata_inventory_put,
allow_metadata_inventory_take = allow_metadata_inventory_take,
allow_metadata_inventory_move = allow_metadata_inventory_move,
on_metadata_inventory_put = on_metadata_inventory_put,
paramtype2 = "facedir",
on_rotate = screwdriver.disallow,
groups = {cracky=2},
is_ground_content = false,
sounds = default.node_sound_metal_defaults(),
})
techage.register_node({"techage:ta3_tank", "techage:ta4_tank"}, { techage.register_node({"techage:ta3_tank", "techage:ta4_tank"}, {
on_pull_item = function(pos, in_dir, num) on_pull_item = function(pos, in_dir, num)
@ -336,3 +338,23 @@ techage.register_node({"techage:ta3_tank", "techage:ta4_tank"}, {
end end
end, end,
}) })
Pipe:add_secondary_node_names({"techage:ta3_tank", "techage:ta4_tank"})
minetest.register_craft({
output = "techage:ta3_tank 2",
recipe = {
{"techage:iron_ingot", "techage:ta3_barrel_empty", "group:wood"},
{"techage:tubeS", "techage:ta3_barrel_empty", "techage:ta3_pipeS"},
{"group:wood", "techage:ta3_barrel_empty", "techage:iron_ingot"},
},
})
minetest.register_craft({
output = "techage:ta4_tank",
recipe = {
{"default:tin_ingot", "dye:blue", "default:steel_ingot"},
{"", "techage:ta3_tank", ""},
{"", "", ""},
},
})

View File

@ -74,8 +74,10 @@ Power=Energie
Primary available=Primär verfügbar Primary available=Primär verfügbar
Primary needed=Primär benötigt Primary needed=Primär benötigt
Pusher=Schieber Pusher=Schieber
Recipe=Rezepte
Remove derrick=Entferne Ölturm Remove derrick=Entferne Ölturm
Rinsing=Waschen Rinsing=Waschen
River Water Barrel=Flusswasserfass
Save=Speichern Save=Speichern
Secondary available=Sekundär verfügbar Secondary available=Sekundär verfügbar
Secondary needed=Sekundär benötigt Secondary needed=Sekundär benötigt
@ -91,10 +93,14 @@ TA Ceiling Lamp=TA Deckenlampe
TA Construction Board=TA Konstruktionsplan TA Construction Board=TA Konstruktionsplan
TA Electric Cable=TA Stromkabel TA Electric Cable=TA Stromkabel
TA Electric Junction Box=TA Verteilerdose TA Electric Junction Box=TA Verteilerdose
TA Empty Barrel=TA leeres Fass
TA Industrial Lamp 1=TA Industrielampe 1 TA Industrial Lamp 1=TA Industrielampe 1
TA Industrial Lamp 2=TA Industrielampe 2 TA Industrial Lamp 2=TA Industrielampe 2
TA Industrial Lamp 3=TA Industrielampe 3 TA Industrial Lamp 3=TA Industrielampe 3
TA Junction Pipe=TA Leitungskupplung
TA Lamp=TA Lampe TA Lamp=TA Lampe
TA Oil=TA Öl
TA Pipe=TA Leitung (Flüssigkeiten)
TA Power Line=TA Stromleitung TA Power Line=TA Stromleitung
TA Power Pole=TA Strommast 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 (for up to 6 connections)=TA Strommastkopf (für bis zu 6 Verbindungen)
@ -142,20 +148,24 @@ TA3 Detector=TA3 Detektor
TA3 Drill Bit=TA3 Bohrgestänge TA3 Drill Bit=TA3 Bohrgestänge
TA3 Ele Fab=TA3 E-Fabrik TA3 Ele Fab=TA3 E-Fabrik
TA3 Funnel=TA3 Trichter TA3 Funnel=TA3 Trichter
TA3 Furnace Firebox=TA3 Ofen-Feuerkiste TA3 Furnace Oil Burner=TA3 Ofen-Ölbrenner
TA3 Generator=TA3 Generator TA3 Generator=TA3 Generator
TA3 Gravel Sieve=TA3 Kiessieb TA3 Gravel Sieve=TA3 Kiessieb
TA3 Logic Block=TA3 Logikblock TA3 Logic Block=TA3 Logikblock
TA3 Melting=TA3 Schmelzen TA3 Melting=TA3 Schmelzen
TA3 Node Detector=TA3 Block Detektor TA3 Node Detector=TA3 Block Detektor
TA3 Oil Barrel=TA3 Ölfass
TA3 Oil Explorer=TA3 Ölexplorer TA3 Oil Explorer=TA3 Ölexplorer
TA3 Oil Storage=TA3 Öl Speicher TA3 Oil Storage=TA3 Öl Speicher
TA3 Player Detector=TA3 Spieler Detektor TA3 Player Detector=TA3 Spieler Detektor
TA3 Power Station Firebox=TA3 Kraftwerks-Feuerbox TA3 Power Station Firebox=TA3 Kraftwerks-Feuerbox
TA3 Power Station Oil Burner=TA3 Kraftwerks-Ölbrenner
TA3 Power Terminal=TA3 Strom Terminal TA3 Power Terminal=TA3 Strom Terminal
TA3 Protected Chest=TA3 Gesicherte Kiste TA3 Protected Chest=TA3 Gesicherte Kiste
TA3 Pump=TA3 Pumpe
TA3 Repeater=TA3 Wiederholer TA3 Repeater=TA3 Wiederholer
TA3 Sequencer=TA3 Sequenzer TA3 Sequencer=TA3 Sequenzer
TA3 Tank=TA3 Tank
TA3 Terminal=TA3 Terminal TA3 Terminal=TA3 Terminal
TA3 Timer=TA3 Timer TA3 Timer=TA3 Timer
TA3 Tiny Power Generator=TA3 Kleiner Stromgenerator TA3 Tiny Power Generator=TA3 Kleiner Stromgenerator
@ -163,6 +173,7 @@ TA3 Turbine=TA3 Turbine
TA3 Vacuum Tube=TA3 Vakuumröhre TA3 Vacuum Tube=TA3 Vakuumröhre
TA4 Carbon Fiber=TA4 Kohlefaser TA4 Carbon Fiber=TA4 Kohlefaser
TA4 Derrick=TA4 Bohrturm TA4 Derrick=TA4 Bohrturm
TA4 Doser=TA4 Dosierer
TA4 Electrolyzer=TA4 Elektrolyseur TA4 Electrolyzer=TA4 Elektrolyseur
TA4 Energy Storage=TA4 Energiespeicher TA4 Energy Storage=TA4 Energiespeicher
TA4 Epoxide Resin=TA4 Epoxidharz TA4 Epoxide Resin=TA4 Epoxidharz
@ -178,10 +189,11 @@ TA4 Junction Pipe=TA4 Verbindungsrohr
TA4 Low Power Box==TA4 Niederspannungsverteilerbox TA4 Low Power Box==TA4 Niederspannungsverteilerbox
TA4 Low Power Cable=TA4 Niederspannungskabel TA4 Low Power Cable=TA4 Niederspannungskabel
TA4 Pillar=TA4 Säule TA4 Pillar=TA4 Säule
TA4 Pipe=TA4 Röhre
TA4 Pipe Inlet=TA4 Rohrzulauf TA4 Pipe Inlet=TA4 Rohrzulauf
TA4 Protected Chest=TA4 Gesicherte Kiste TA4 Protected Chest=TA4 Gesicherte Kiste
TA4 Pump=TA4 Pumpe
TA4 Reactor=Reaktor TA4 Reactor=Reaktor
TA4 Reactor Filler Pipe=TA4 Reaktor Einfüllstutzen
TA4 Rotor Blade=TA4 Rotorblatt TA4 Rotor Blade=TA4 Rotorblatt
TA4 Silicon Wafer=TA4 Silizium-Wafer TA4 Silicon Wafer=TA4 Silizium-Wafer
TA4 Solar Carrier Module=TA4 Solar Trägermodul TA4 Solar Carrier Module=TA4 Solar Trägermodul
@ -192,6 +204,7 @@ TA4 Solar Inverter AC=TA4 Solar Wechselrichter AC
TA4 Solar Inverter DC=TA4 Solar Wechselrichter DC TA4 Solar Inverter DC=TA4 Solar Wechselrichter DC
TA4 Solar Module=TA4 Solarmodul TA4 Solar Module=TA4 Solarmodul
TA4 Streetlamp Solar Cell=TA4 Straßenlampen-Solarzelle TA4 Streetlamp Solar Cell=TA4 Straßenlampen-Solarzelle
TA4 Tank=TA4 Tank
TA4 Turbine=TA4 Turbine TA4 Turbine=TA4 Turbine
TA4 WLAN Chip=TA4 WLAN Chip TA4 WLAN Chip=TA4 WLAN Chip
TA4 Wind Turbine=TA4 Windkraftanlage TA4 Wind Turbine=TA4 Windkraftanlage
@ -214,6 +227,8 @@ Time=Zeit
Update=Update Update=Update
Usmium Nuggets=Usmium Nuggets Usmium Nuggets=Usmium Nuggets
WLAN Chip=WLAN Chip WLAN Chip=WLAN Chip
Water=Wasser
Water Barrel=Wasserfass
Wrong place for wind turbines!=Falscher Ort für Windkraftanlagen Wrong place for wind turbines!=Falscher Ort für Windkraftanlagen
[TA4 Wind Turbine]=[TA4 Windkraftanlage] [TA4 Wind Turbine]=[TA4 Windkraftanlage]
[TA] Area is protected!=[TA] Bereich ist geschützt [TA] Area is protected!=[TA] Bereich ist geschützt
@ -233,8 +248,14 @@ added=hinzugefügt wird
added or removed=hinzugefügt oder entfernt wird added or removed=hinzugefügt oder entfernt wird
commands like: help=Kommandos wie: help commands like: help=Kommandos wie: help
connected with=verbunden mit connected with=verbunden mit
empty=leer
input missing=Zufuhr fehlt
light=Licht light=Licht
no fuel or no power=kein Strom oder Brennstoff
output blocked=Ausgang blockiert
power=Strom power=Strom
reactor defect=Reaktor defekt
reactor has no power=Reaktor hat keinen Strom
removed=entfernt removed=entfernt
stopped=gestoppt stopped=gestoppt
##### not used anymore ##### ##### not used anymore #####

View File

@ -72,8 +72,10 @@ Power=
Primary available= Primary available=
Primary needed= Primary needed=
Pusher= Pusher=
Recipe=
Remove derrick= Remove derrick=
Rinsing= Rinsing=
River Water Barrel=
Save= Save=
Secondary available= Secondary available=
Secondary needed= Secondary needed=
@ -89,10 +91,14 @@ TA Ceiling Lamp=
TA Construction Board= TA Construction Board=
TA Electric Cable= TA Electric Cable=
TA Electric Junction Box= TA Electric Junction Box=
TA Empty Barrel=
TA Industrial Lamp 1= TA Industrial Lamp 1=
TA Industrial Lamp 2= TA Industrial Lamp 2=
TA Industrial Lamp 3= TA Industrial Lamp 3=
TA Junction Pipe=
TA Lamp= TA Lamp=
TA Oil=
TA Pipe=
TA Power Line= TA Power Line=
TA Power Pole= TA Power Pole=
TA Power Pole Top (for up to 6 connections)= TA Power Pole Top (for up to 6 connections)=
@ -140,20 +146,24 @@ TA3 Detector=
TA3 Drill Bit= TA3 Drill Bit=
TA3 Ele Fab= TA3 Ele Fab=
TA3 Funnel= TA3 Funnel=
TA3 Furnace Firebox= TA3 Furnace Oil Burner=
TA3 Generator= TA3 Generator=
TA3 Gravel Sieve= TA3 Gravel Sieve=
TA3 Logic Block= TA3 Logic Block=
TA3 Melting= TA3 Melting=
TA3 Node Detector= TA3 Node Detector=
TA3 Oil Barrel=
TA3 Oil Explorer= TA3 Oil Explorer=
TA3 Oil Storage= TA3 Oil Storage=
TA3 Player Detector= TA3 Player Detector=
TA3 Power Station Firebox= TA3 Power Station Firebox=
TA3 Power Station Oil Burner=
TA3 Power Terminal= TA3 Power Terminal=
TA3 Protected Chest= TA3 Protected Chest=
TA3 Pump=
TA3 Repeater= TA3 Repeater=
TA3 Sequencer= TA3 Sequencer=
TA3 Tank=
TA3 Terminal= TA3 Terminal=
TA3 Timer= TA3 Timer=
TA3 Tiny Power Generator= TA3 Tiny Power Generator=
@ -161,6 +171,7 @@ TA3 Turbine=
TA3 Vacuum Tube= TA3 Vacuum Tube=
TA4 Carbon Fiber= TA4 Carbon Fiber=
TA4 Derrick= TA4 Derrick=
TA4 Doser=
TA4 Electrolyzer= TA4 Electrolyzer=
TA4 Energy Storage= TA4 Energy Storage=
TA4 Epoxide Resin= TA4 Epoxide Resin=
@ -176,10 +187,11 @@ TA4 Junction Pipe=
TA4 Low Power Box= TA4 Low Power Box=
TA4 Low Power Cable= TA4 Low Power Cable=
TA4 Pillar= TA4 Pillar=
TA4 Pipe=
TA4 Pipe Inlet= TA4 Pipe Inlet=
TA4 Protected Chest= TA4 Protected Chest=
TA4 Pump=
TA4 Reactor= TA4 Reactor=
TA4 Reactor Filler Pipe=
TA4 Rotor Blade= TA4 Rotor Blade=
TA4 Silicon Wafer= TA4 Silicon Wafer=
TA4 Solar Carrier Module= TA4 Solar Carrier Module=
@ -190,6 +202,7 @@ TA4 Solar Inverter AC=
TA4 Solar Inverter DC= TA4 Solar Inverter DC=
TA4 Solar Module= TA4 Solar Module=
TA4 Streetlamp Solar Cell= TA4 Streetlamp Solar Cell=
TA4 Tank=
TA4 Turbine= TA4 Turbine=
TA4 WLAN Chip= TA4 WLAN Chip=
TA4 Wind Turbine= TA4 Wind Turbine=
@ -212,6 +225,8 @@ Time=
Update= Update=
Usmium Nuggets= Usmium Nuggets=
WLAN Chip= WLAN Chip=
Water=
Water Barrel=
Wrong place for wind turbines!= Wrong place for wind turbines!=
[TA4 Wind Turbine]= [TA4 Wind Turbine]=
[TA] Area is protected!= [TA] Area is protected!=
@ -231,7 +246,13 @@ added=
added or removed= added or removed=
commands like: help= commands like: help=
connected with= connected with=
empty=
input missing=
light= light=
no fuel or no power=
output blocked=
power= power=
reactor defect=
reactor has no power=
removed= removed=
stopped= stopped=

View File

@ -9,15 +9,18 @@ Das Industrielle Zeitalter ist auf seinem Höhepunkt.
[techage_ta3|image] [techage_ta3|image]
## Kohlekraftwerk ## Kohlekraftwerk / Ölkraftwerk
Das Kohlekraftwerk besteht aus mehreren Blöcken und muss wie im Plan rechts abgebildet, zusammen gebaut werden. Dazu werden die Blöcke TA3 Kraftwerks-Feuerbox, TA3 Boiler oben, TA3 Boiler unten, TA3 Turbine, TA3 Generator und TA3 Kühler benötigt. Das Kohlekraftwerk besteht aus mehreren Blöcken und muss wie im Plan rechts abgebildet, zusammen gebaut werden. Dazu werden die Blöcke TA3 Kraftwerks-Feuerbox, TA3 Boiler oben, TA3 Boiler unten, TA3 Turbine, TA3 Generator und TA3 Kühler benötigt.
Der Boiler muss mit Wasser gefüllt werden. Dazu bis zu 10 Eimer Wasser in den Boiler füllen. Der Boiler muss mit Wasser gefüllt werden. Dazu bis zu 10 Eimer Wasser in den Boiler füllen.
Die Feuerbox muss mit Kohle, Holzkohle oder Erdöl gefüllt werden. Die Feuerbox muss mit Kohle oder Holzkohle gefüllt werden.
Wenn das Wasser heiß ist, kann das Ventil am Boiler geöffnet und anschließend die Generator gestartet werden. Wenn das Wasser heiß ist, kann das Ventil am Boiler geöffnet und anschließend die Generator gestartet werden.
Das Kraftwerk liefert eine Leistung von 80 ku und kann mit Kohle, Holzkohle oder Erdöl betrieben werden. Das Kraftwerk kann alternativ auch mit einem Ölbrenner ausgestattet und dann mit Öl betrieben werden.
Das Öl kann über eine Pumpe und Ölleitung nachgefüllt werden.
Das Kraftwerk liefert eine Leistung von 80 ku.
[coalpowerstation|plan] [coalpowerstation|plan]
@ -30,6 +33,14 @@ Die Feuerbox muss mit Kohle, Holzkohle oder Erdöl gefüllt werden. Die Brenndau
[ta3_firebox|image] [ta3_firebox|image]
### 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).
[ta3_oilbox|image]
### TA3 Boiler unten/oben ### TA3 Boiler unten/oben
Teil des Kraftwerk. Muss mit Wasser gefüllt werden. Wem kein Wasser mehr vorhanden ist oder die Temperatur zu weit absinkt, schaltet sich der Boiler ab. Teil des Kraftwerk. Muss mit Wasser gefüllt werden. Wem kein Wasser mehr vorhanden ist oder die Temperatur zu weit absinkt, schaltet sich der Boiler ab.
@ -179,16 +190,16 @@ Die Daten des Terminals werden beim Öffnen des Menüs und dann nur durch Anklic
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" Rezepte, 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 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 Kohle, Holzkohle oder Erdöl für die Befeuerung. Der Industrieofens und muss wie im Plan rechts abgebildet, zusammen gebaut 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 Kohle und Erdöl beträgt 80 s und für Holzkohle 240 s. Die Brennzeit für Öl beträgt 80 s.
[ta3_furnace|plan] [ta3_furnace|plan]
### TA3 Ofen-Feuerkiste / Furnace Firebox ### TA3 Ofen-Ölbrenner / Furnace Oil Burner
Ist Teil des TA3 Industrieofen. Muss mit Kohle, Holzkohle oder Erdöl befeuert werden. Ist Teil des TA3 Industrieofen. Muss mit Öl befeuert werden.
[ta3_furnacefirebox|image] [ta3_furnacefirebox|image]
@ -248,7 +259,7 @@ Wurde das Ölfeld erreicht, kann der Bohrturm abgebaut und die Kiste entfernt we
### TA3 Ölpumpe / Oil Pumpjack ### TA3 Ölpumpe / Oil Pumpjack
An die Stelle der Ölbohrkiste muss nun die Ölpumpe platziert werden. Auch die Ölpumpe benötigt Strom (16 ku) und liefert alle 8 s ein Erdöl-Item, das in einer Kiste gesammelt werden muss. Dazu muss die Ölpumpe über eine Röhre mit der Kiste verbunden werden. An die Stelle der Ölbohrkiste muss nun die Ölpumpe platziert werden. Auch die Ölpumpe benötigt Strom (16 ku) und liefert alle 8 s ein Einheit Erdöl. Das Erdöl muss in einem Tank gesammelt werden. Dazu muss die Ölpumpe über eine Leitung (gelbe Röhre) mit dem Tank verbunden werden.
Ist alles Öl abgepumpt, kann auch die Ölpumpe wieder entfernt werden. Ist alles Öl abgepumpt, kann auch die Ölpumpe wieder entfernt werden.
[ta3_pumpjack|image] [ta3_pumpjack|image]
@ -515,6 +526,41 @@ Die Verarbeitungsleistung ist 2 Items alle 8 s. Der Block benötigt 5 ku Strom.
[ta3_liquidsampler|image] [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.
[ta3_pump|image]
## Werkzeuge ## Werkzeuge

View File

@ -210,6 +210,26 @@ Die Brennstoffzelle kann bis zu 40 ku an Strom abgeben und benötigt dazu alle 6
[ta4_fuelcell|image] [ta4_fuelcell|image]
## Weitere TA4 Blöcke
### TA4 Tank / TA4 Tank
Siehe TA3 Tank.
In einen TA4 Tank passen 1000 Einheiten oder 100 Fässer einer Flüssigkeit.
[ta4_tank|image]
### TA4 Pumpe / TA4 Pump
Siehe TA3 Pumpe.
Die TA4 Pumpe pumpt 8 Einheiten Flüssigkeit alle zwei Sekunden.
[ta4_pump|image]

View File

@ -36,8 +36,9 @@
- [TA2 Gesicherte Kiste / Protected Chest](./manual_ta2_DE.md#ta2-gesicherte-kiste--protected-chest) - [TA2 Gesicherte Kiste / Protected Chest](./manual_ta2_DE.md#ta2-gesicherte-kiste--protected-chest)
- [Techage Forceload Block](./manual_ta2_DE.md#techage-forceload-block) - [Techage Forceload Block](./manual_ta2_DE.md#techage-forceload-block)
- [TA3: Ölzeitalter](./manual_ta3_DE.md#ta3:-Ölzeitalter) - [TA3: Ölzeitalter](./manual_ta3_DE.md#ta3:-Ölzeitalter)
- [Kohlekraftwerk](./manual_ta3_DE.md#kohlekraftwerk) - [Kohlekraftwerk / Ölkraftwerk](./manual_ta3_DE.md#kohlekraftwerk--Ölkraftwerk)
- [TA3 Kraftwerks-Feuerbox / Power Station Firebox](./manual_ta3_DE.md#ta3-kraftwerks-feuerbox--power-station-firebox) - [TA3 Kraftwerks-Feuerbox / Power Station Firebox](./manual_ta3_DE.md#ta3-kraftwerks-feuerbox--power-station-firebox)
- [TA3 Kraftwerks-Ölbrenner / TA3 Power Station Oil Burner](./manual_ta3_DE.md#ta3-kraftwerks-Ölbrenner--ta3-power-station-oil-burner)
- [TA3 Boiler unten/oben](./manual_ta3_DE.md#ta3-boiler-untenoben) - [TA3 Boiler unten/oben](./manual_ta3_DE.md#ta3-boiler-untenoben)
- [TA3 Turbine](./manual_ta3_DE.md#ta3-turbine) - [TA3 Turbine](./manual_ta3_DE.md#ta3-turbine)
- [TA3 Generator](./manual_ta3_DE.md#ta3-generator) - [TA3 Generator](./manual_ta3_DE.md#ta3-generator)
@ -56,7 +57,7 @@
- [TA3 Akku Block / Akku Box](./manual_ta3_DE.md#ta3-akku-block---akku-box) - [TA3 Akku Block / Akku Box](./manual_ta3_DE.md#ta3-akku-block---akku-box)
- [TA3 Strom Terminal / Power Terminal](./manual_ta3_DE.md#ta3-strom-terminal--power-terminal) - [TA3 Strom Terminal / Power Terminal](./manual_ta3_DE.md#ta3-strom-terminal--power-terminal)
- [TA3 Industrieofen](./manual_ta3_DE.md#ta3-industrieofen) - [TA3 Industrieofen](./manual_ta3_DE.md#ta3-industrieofen)
- [TA3 Ofen-Feuerkiste / Furnace Firebox](./manual_ta3_DE.md#ta3-ofen-feuerkiste--furnace-firebox) - [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 Ofenoberteil / Furnace Top](./manual_ta3_DE.md#ta3-ofenoberteil--furnace-top)
- [TA3 Gebläse / Booster](./manual_ta3_DE.md#ta3-gebläse--booster) - [TA3 Gebläse / Booster](./manual_ta3_DE.md#ta3-gebläse--booster)
- [Öl-Anlagen](./manual_ta3_DE.md#Öl-anlagen) - [Öl-Anlagen](./manual_ta3_DE.md#Öl-anlagen)
@ -87,6 +88,9 @@
- [TA3 Kiessieb / Gravel Sieve](./manual_ta3_DE.md#ta3-kiessieb--gravel-sieve) - [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 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) - [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) - [Werkzeuge](./manual_ta3_DE.md#werkzeuge)
- [Techage Info Tool](./manual_ta3_DE.md#techage-info-tool) - [Techage Info Tool](./manual_ta3_DE.md#techage-info-tool)
- [TechAge Programmer](./manual_ta3_DE.md#techage-programmer) - [TechAge Programmer](./manual_ta3_DE.md#techage-programmer)
@ -111,4 +115,7 @@
- [TA4 Röhre / Pipe](./manual_ta4_DE.md#ta4-röhre--pipe) - [TA4 Röhre / Pipe](./manual_ta4_DE.md#ta4-röhre--pipe)
- [Wasserstoff](./manual_ta4_DE.md#wasserstoff) - [Wasserstoff](./manual_ta4_DE.md#wasserstoff)
- [Elektrolyseur](./manual_ta4_DE.md#elektrolyseur) - [Elektrolyseur](./manual_ta4_DE.md#elektrolyseur)
- [Brennstoffzelle](./manual_ta4_DE.md#brennstoffzelle) - [Brennstoffzelle](./manual_ta4_DE.md#brennstoffzelle)
- [Weitere TA4 Blöcke](./manual_ta4_DE.md#weitere-ta4-blöcke)
- [TA4 Tank / TA4 Tank](./manual_ta4_DE.md#ta4-tank--ta4-tank)
- [TA4 Pumpe / TA4 Pump](./manual_ta4_DE.md#ta4-pumpe--ta4-pump)

View File

@ -19,6 +19,9 @@ local S = techage.S
local Power = techage.ElectricCable local Power = techage.ElectricCable
local firebox = techage.firebox local firebox = techage.firebox
local power = techage.power local power = techage.power
local oilburner = techage.oilburner
local Pipe = techage.LiquidPipe
local liquid = techage.liquid
local CYCLE_TIME = 2 local CYCLE_TIME = 2
local PWR_CAPA = 12 local PWR_CAPA = 12
@ -26,31 +29,30 @@ local BURN_CYCLE_FACTOR = 2.5
local function formspec(self, pos, mem) local function formspec(self, pos, mem)
local fuel_percent = 0 local fuel_percent = 0
if mem.generating then if mem.running then
fuel_percent = ((mem.burn_cycles or 1) * 100) / (mem.burn_cycles_total or 1) fuel_percent = ((mem.burn_cycles or 1) * 100) / (mem.burn_cycles_total or 1)
end end
return "size[8,7]".. return "size[8,6]"..
default.gui_bg.. default.gui_bg..
default.gui_bg_img.. default.gui_bg_img..
default.gui_slots.. default.gui_slots..
"list[current_name;fuel;0.5,1;1,1;]".. oilburner.formspec_oil(1, 0, mem)..
"image[1.5,1;1,1;default_furnace_fire_bg.png^[lowpart:".. "button[1.6,1;1.8,1;update;"..S("Update").."]"..
fuel_percent..":default_furnace_fire_fg.png]".. "image_button[5.5,0.5;1,1;".. self:get_state_button_image(mem) ..";state_button;]"..
"button[3,1;1.8,1;update;"..S("Update").."]".. "image[6.5,0;1,2;"..power.formspec_power_bar(PWR_CAPA, mem.provided).."]"..
"image_button[5.5,1;1,1;".. self:get_state_button_image(mem) ..";state_button;]".. "list[current_player;main;0,2.3;8,4;]"..
"image[6.5,0.5;1,2;"..power.formspec_power_bar(PWR_CAPA, mem.provided).."]"..
"list[current_player;main;0,3;8,4;]"..
default.get_hotbar_bg(0, 3) default.get_hotbar_bg(0, 3)
end end
local function can_start(pos, mem, state) local function can_start(pos, mem, state)
if mem.burn_cycles > 0 then return true end if mem.burn_cycles > 0 or (mem.liquid and mem.liquid.amount and mem.liquid.amount > 0) then
local inv = M(pos):get_inventory() return true
return not inv:is_empty("fuel") end
return false
end end
local function start_node(pos, mem, state) local function start_node(pos, mem, state)
mem.generating = true mem.running = true
power.generator_start(pos, mem, PWR_CAPA) power.generator_start(pos, mem, PWR_CAPA)
minetest.sound_play("techage_generator", { minetest.sound_play("techage_generator", {
pos = pos, pos = pos,
@ -59,7 +61,7 @@ local function start_node(pos, mem, state)
end end
local function stop_node(pos, mem, state) local function stop_node(pos, mem, state)
mem.generating = false mem.running = false
mem.provided = 0 mem.provided = 0
power.generator_stop(pos, mem) power.generator_stop(pos, mem)
end end
@ -79,12 +81,13 @@ local State = techage.NodeStates:new({
local function burning(pos, mem) local function burning(pos, mem)
local ratio = math.max((mem.provided or PWR_CAPA) / PWR_CAPA, 0.02) local ratio = math.max((mem.provided or PWR_CAPA) / PWR_CAPA, 0.02)
mem.liquid = mem.liquid or {}
mem.liquid.amount = mem.liquid.amount or 0
mem.burn_cycles = (mem.burn_cycles or 0) - ratio mem.burn_cycles = (mem.burn_cycles or 0) - ratio
if mem.burn_cycles <= 0 then if mem.burn_cycles <= 0 then
local taken = firebox.get_fuel(pos) if mem.liquid.amount > 0 then
if taken then mem.liquid.amount = mem.liquid.amount - 1
mem.burn_cycles = (firebox.Burntime[taken:get_name()] or 1) / CYCLE_TIME * BURN_CYCLE_FACTOR mem.burn_cycles = (oilburner.Oilburntime or 1) / CYCLE_TIME * BURN_CYCLE_FACTOR
mem.burn_cycles_total = mem.burn_cycles mem.burn_cycles_total = mem.burn_cycles
return true return true
else else
@ -98,7 +101,7 @@ end
local function node_timer(pos, elapsed) local function node_timer(pos, elapsed)
local mem = tubelib2.get_mem(pos) local mem = tubelib2.get_mem(pos)
if mem.generating and burning(pos, mem) then if mem.running and burning(pos, mem) then
mem.provided = power.generator_alive(pos, mem) mem.provided = power.generator_alive(pos, mem)
minetest.sound_play("techage_generator", { minetest.sound_play("techage_generator", {
pos = pos, pos = pos,
@ -118,19 +121,29 @@ local function on_receive_fields(pos, formname, fields, player)
local mem = tubelib2.get_mem(pos) local mem = tubelib2.get_mem(pos)
State:state_button_event(pos, mem, fields) State:state_button_event(pos, mem, fields)
if fields.update then M(pos):set_string("formspec", formspec(State, pos, mem))
M(pos):set_string("formspec", formspec(State, pos, mem))
end
end end
local function allow_metadata_inventory(pos, listname, index, stack, player) local function allow_metadata_inventory_put(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then if minetest.is_protected(pos, player:get_player_name()) then
return 0 return 0
end end
if stack:get_name() == "techage:oil_source" then return 1
return stack:get_count() 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 end
return 0 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)
end end
local function on_rightclick(pos) local function on_rightclick(pos)
@ -157,7 +170,7 @@ minetest.register_node("techage:tiny_generator", {
on_construct = function(pos) on_construct = function(pos)
local mem = tubelib2.init_mem(pos) local mem = tubelib2.init_mem(pos)
local number = techage.add_node(pos, "techage:tiny_generator") local number = techage.add_node(pos, "techage:tiny_generator")
mem.generating = false mem.running = false
mem.burn_cycles = 0 mem.burn_cycles = 0
State:node_init(pos, mem, number) State:node_init(pos, mem, number)
local meta = M(pos) local meta = M(pos)
@ -166,12 +179,21 @@ minetest.register_node("techage:tiny_generator", {
inv:set_size('fuel', 1) inv:set_size('fuel', 1)
end, end,
allow_metadata_inventory_put = allow_metadata_inventory, liquid = {
allow_metadata_inventory_take = allow_metadata_inventory, 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,
on_metadata_inventory_put = on_metadata_inventory_put,
on_receive_fields = on_receive_fields, on_receive_fields = on_receive_fields,
on_rightclick = on_rightclick, on_rightclick = on_rightclick,
on_timer = node_timer, on_timer = node_timer,
can_dig = techage.firebox.can_dig, can_dig = oilburner.can_dig,
}) })
minetest.register_node("techage:tiny_generator_on", { minetest.register_node("techage:tiny_generator_on", {
@ -203,6 +225,15 @@ 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", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
groups = {not_in_creative_inventory=1}, groups = {not_in_creative_inventory=1},
@ -211,14 +242,17 @@ minetest.register_node("techage:tiny_generator_on", {
on_rotate = screwdriver.disallow, on_rotate = screwdriver.disallow,
is_ground_content = false, is_ground_content = false,
allow_metadata_inventory_put = allow_metadata_inventory, allow_metadata_inventory_put = allow_metadata_inventory_put,
allow_metadata_inventory_take = allow_metadata_inventory, allow_metadata_inventory_take = allow_metadata_inventory_take,
on_metadata_inventory_put = on_metadata_inventory_put,
on_receive_fields = on_receive_fields, on_receive_fields = on_receive_fields,
on_rightclick = on_rightclick, on_rightclick = on_rightclick,
on_timer = node_timer, on_timer = node_timer,
can_dig = techage.firebox.can_dig, can_dig = oilburner.can_dig,
}) })
Pipe:add_secondary_node_names({"techage:tiny_generator", "techage:tiny_generator_on"})
techage.power.register_node({"techage:tiny_generator", "techage:tiny_generator_on"}, { techage.power.register_node({"techage:tiny_generator", "techage:tiny_generator_on"}, {
conn_sides = {"R"}, conn_sides = {"R"},
power_network = Power, power_network = Power,

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB