Change TA4 Furnace Heater recipe, fix TA4 Doser bug

master
Joachim Stolberg 2021-05-02 16:59:29 +02:00
parent 6c050908f4
commit c7ae0a236b
10 changed files with 191 additions and 146 deletions

View File

@ -153,14 +153,9 @@ local State = techage.NodeStates:new({
stop_node = stop_node,
})
local function untake(recipe, pos, liquids)
for _,item in pairs(recipe.input) do
if item.name ~= "" then
local outdir = liquids[item.name] or reload_liquids(pos)[item.name]
if outdir then
liquid.untake(pos, outdir, item.name, item.num)
end
end
local function untake(pos, taken)
for _,item in pairs(taken) do
liquid.untake(pos, item.outdir, item.name, item.num)
end
end
@ -205,43 +200,50 @@ local function dosing(pos, nvm, elapsed)
end
-- inputs
local starter = get_starter_name(pos)
local taken = {}
for _,item in pairs(recipe.input) do
if item.name ~= "" then
local outdir = liquids[item.name] or reload_liquids(pos)[item.name]
if not outdir then
State:standby(pos, nvm)
reactor_cmnd(pos, "stop")
untake(pos, taken)
return
end
if liquid.take(pos, outdir, item.name, item.num, starter) < item.num then
local num = liquid.take(pos, outdir, item.name, item.num, starter)
if num < item.num then
taken[#taken + 1] = {outdir = outdir, name = item.name, num = num}
State:standby(pos, nvm)
reactor_cmnd(pos, "stop")
untake(pos, taken)
return
end
taken[#taken + 1] = {outdir = outdir, name = item.name, num = item.num}
end
end
-- output
-- waste
local leftover
leftover = reactor_cmnd(pos, "output", {
name = recipe.output.name,
amount = recipe.output.num})
if not leftover or (tonumber(leftover) or 1) > 0 then
untake(recipe, pos, liquids)
State:blocked(pos, nvm)
reactor_cmnd(pos, "stop")
return
end
if recipe.waste.name ~= "" then
leftover = reactor_cmnd(pos, "waste", {
name = recipe.waste.name,
amount = recipe.waste.num})
if not leftover or (tonumber(leftover) or 1) > 0 then
untake(recipe, pos, liquids)
untake(pos, taken)
State:blocked(pos, nvm)
reactor_cmnd(pos, "stop")
return
end
end
-- output
leftover = reactor_cmnd(pos, "output", {
name = recipe.output.name,
amount = recipe.output.num})
if not leftover or (tonumber(leftover) or 1) > 0 then
untake(pos, taken)
State:blocked(pos, nvm)
reactor_cmnd(pos, "stop")
return
end
State:keep_running(pos, nvm, COUNTDOWN_TICKS)
end

View File

@ -1301,7 +1301,7 @@ techage.manual_DE.aText = {
" - dem Einfüllstutzen der auf den Reaktorbehälter gesetzt werden muss\n"..
" - dem Dosierer\\, welcher über Leitungen mit den Tanks oder Silos sowie dem Einfüllstutzen verbunden werden muss\n"..
"\n"..
"Hinweis 1: Flüssigkeiten werden nur in Tanks gelagert\\, Stoffe in Pulverform nur in Silos. Dies gilt für Zutaten und Ausgangsstoffe.\n"..
"Hinweis 1: Flüssigkeiten werden nur in Tanks gelagert\\, feste Stoffe und Stoffe in Pulverform nur in Silos. Dies gilt für Zutaten und Ausgangsstoffe.\n"..
"\n"..
"Hinweis 2: Tanks oder Silos mit verschiedenen Inhalten dürfen nicht zu einem Leitungssystem verbunden werden. Mehrere Tanks oder Silos mit gleichem Inhalt dürfen dagegen parallel an einer Leitung hängen.\n"..
"\n"..

View File

@ -1279,7 +1279,7 @@ techage.manual_EN.aText = {
" - The filler pipe that must be placed on the reactor vessel\n"..
" - The dosing device\\, which has to be connected to the tanks or silos and the filler pipe via pipes\n"..
"\n"..
"Note 1: Liquids are only stored in tanks\\, substances in powder form only in silos. This applies to ingredients and raw materials.\n"..
"Note 1: Liquids are only stored in tanks\\, solids and substances in powder form only in silos. This applies to ingredients and raw materials.\n"..
"\n"..
"Note 2: Tanks or silos with different contents must not be connected to a pipe system. In contrast\\, several tanks or silos with the same content may hang in parallel on one line.\n"..
"\n"..

View File

@ -131,9 +131,9 @@ Cable:add_secondary_node_names({"techage:furnace_heater", "techage:furnace_heate
minetest.register_craft({
output = "techage:furnace_heater",
recipe = {
{'techage:basalt_stone', 'default:steel_ingot', 'techage:basalt_stone'},
{'default:steel_ingot', 'basic_materials:heating_element', 'default:steel_ingot'},
{'techage:basalt_stone', 'techage:basalt_stone', 'techage:basalt_stone'},
{'techage:aluminum', 'default:steel_ingot', 'techage:aluminum'},
{'techage:basalt_stone', 'basic_materials:heating_element', 'techage:basalt_stone'},
{'techage:aluminum', 'techage:ta4_furnace_ceramic', 'techage:aluminum'},
},
})

View File

@ -332,6 +332,7 @@ dofile(MP.."/items/electronic.lua")
dofile(MP.."/items/redstone.lua")
dofile(MP.."/items/cement.lua")
dofile(MP.."/items/cracking.lua")
dofile(MP.."/items/ceramic.lua")
if techage.basalt_stone_enabled then
dofile(MP.."/items/basalt.lua")

View File

@ -32,6 +32,24 @@ minetest.register_craftitem("techage:iron_powder", {
groups = {powder = 1},
})
minetest.register_craftitem("techage:clay_powder", {
description = S("Clay Powder"),
inventory_image = "techage_powder_inv.png^[colorize:#F9DE80:160",
groups = {powder = 1},
})
minetest.register_craftitem("techage:aluminum_powder", {
description = S("Aluminum Powder"),
inventory_image = "techage_powder_inv.png^[colorize:#A1BDC4:160",
groups = {powder = 1},
})
minetest.register_craftitem("techage:silver_sandstone_powder", {
description = S("Silver Sandstone Powder"),
inventory_image = "techage_powder_inv.png^[colorize:#FFFFFF:160",
groups = {powder = 1},
})
techage.add_grinder_recipe({input="default:acacia_bush_leaves", output="techage:leave_powder"})
techage.add_grinder_recipe({input="default:acacia_leaves", output="techage:leave_powder"})
techage.add_grinder_recipe({input="default:aspen_leaves", output="techage:leave_powder"})
@ -41,4 +59,9 @@ techage.add_grinder_recipe({input="default:jungleleaves", output="techage:leave_
techage.add_grinder_recipe({input="default:leaves", output="techage:leave_powder"})
techage.add_grinder_recipe({input="default:pine_needles", output="techage:needle_powder"})
techage.add_grinder_recipe({input="default:iron_lump", output="techage:iron_powder"})
techage.add_grinder_recipe({input="default:clay", output="techage:clay_powder"})
techage.add_grinder_recipe({input="techage:aluminum", output="techage:aluminum_powder"})
techage.add_grinder_recipe({input="default:silver_sandstone", output="techage:silver_sandstone_powder"})

View File

@ -111,6 +111,16 @@ TA4 Button/Switch=TA4 Schalter/Taster
TA3 Cart Detector=TA3 Wagen Detektor
### cart_detector.lua ###
### node_detector.lua ###
accept=akzeptieren
### cart_detector.lua ###
### player_detector.lua ###
TA3 Player Detector=TA3 Spieler Detektor
### ceilinglamp.lua ###
TA Ceiling Lamp=TA Deckenlampe
@ -120,6 +130,11 @@ TA Ceiling Lamp=TA Deckenlampe
Cement Block=Zement Block
Cement Powder=Zement Pulver
### ceramic.lua ###
TA4 Ceramic Material=TA4 Keramik Material
TA4 Furnace Ceramic=TA4 Ofen Keramik
### charcoalpile.lua ###
Dirt with Ash=Erde mit Asche
@ -166,6 +181,26 @@ TA2 Cylinder=TA2 Zylinder
TA3 Detector=TA3 Detektor
TA4 Detector=TA4 Detektor
### detector.lua ###
### doorcontroller.lua ###
### button.lua ###
### repeater.lua ###
### chest.lua ###
### mesecons_converter.lua ###
Save=Speichern
### detector.lua ###
### lua_logic.lua ###
### node_detector.lua ###
### button.lua ###
### cart_detector.lua ###
### player_detector.lua ###
### repeater.lua ###
### mesecons_converter.lua ###
Insert destination node number(s)=Gebe Zielnummer(n) ein
### display.lua ###
TA4 Display=TA4 Display
@ -342,22 +377,6 @@ storage empty?=Speicher leer?
TA4 Generator=TA4 Generator
TA3 Generator=TA3 Generator
### generator.lua ###
### akkubox.lua ###
### tiny_generator.lua ###
### fuelcell.lua ###
### electrolyzer.lua ###
### heatexchanger2.lua ###
Electricity=Strom
### generator.lua ###
### source.lua ###
### solarcell.lua ###
### flywheel.lua ###
power=Energie
### gravelrinser.lua ###
Gravel Rinser=Kiesspüler
@ -478,11 +497,6 @@ to=bis
Laser beam error!=Laserstrahl Fehler!
TA4 Laser Beam Receiver=TA4 Laserstrahl Empfänger
### lib.lua ###
### sensorchest.lua ###
connected with=verbunden mit
### lighter.lua ###
TA1 Lighter=TA1 Anzünder
@ -502,6 +516,11 @@ TA Junction Pipe=TA Leitungskupplung
Liquid Sampler=Flüssigkeitensammler
### liquidsampler.lua ###
### waterpump.lua ###
no usable water=Kein brauchbares Wasser
### logic_block.lua ###
Send an 'on'/'off' command if the@nexpression becomes true.@n=Sende ein 'on'/'off' Kommando, wenn der @nAusdruck wahr wird.@n
@ -575,22 +594,6 @@ added or removed=hinzugefügt oder entfernt wird
Send signal if nodes have been:=Sende ein Signal falls Blöcke:
TA3 Node Detector=TA3 Block Detektor
### node_detector.lua ###
### cart_detector.lua ###
accept=akzeptieren
### node_detector.lua ###
### player_detector.lua ###
### repeater.lua ###
### lua_logic.lua ###
### detector.lua ###
### button.lua ###
### cart_detector.lua ###
### mesecons_converter.lua ###
Insert destination node number(s)=Gebe Zielnummer(n) ein
### nodes.lua ###
TechAge Gravel=TechAge Kies
@ -644,16 +647,14 @@ Plastic Granules=Plastikgranulat
TA4 Player Detector=TA4 Spieler Detektor
### player_detector.lua ###
### cart_detector.lua ###
TA3 Player Detector=TA3 Spieler Detektor
### powder.lua ###
Leave Powder=Laub Pulver
Needle Powder=Nadel Pulver
Iron Powder=Eisen Pulver
Clay Powder=Ton Pulver
Aluminum Powder=Aluminium Pulver
Silver Sandstone Powder=Silbersandstein Pulver
### power2axle.lua ###
@ -820,19 +821,9 @@ Time=Zeit
TA3 Repeater=TA3 Wiederholer
### repeater.lua ###
### chest.lua ###
### detector.lua ###
### button.lua ###
### doorcontroller.lua ###
### mesecons_converter.lua ###
Save=Speichern
### rotor.lua ###
TA4 Wind Turbine=TA4 Windkraftanlage
Not suitable position!=Ungeeignete Position!
Nacelle is missing=Die Gondel fehlt
TA4 Wind Turbine Nacelle=TA4 Windkraftanlagengondel
TA4 Carbon Fiber=TA4 Kohlefaser
@ -844,6 +835,11 @@ Allow public chest access=Erlaube öffentlichen Zugriff
TA4 Sensor Chest=Sensorkiste
not connected=nicht verbunden
### sensorchest.lua ###
### lib.lua ###
connected with=verbunden mit
### sequencer.lua ###
TA3 Sequencer=TA3 Sequenzer
@ -876,6 +872,13 @@ 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
### solarcell.lua ###
### source.lua ###
### generator.lua ###
### flywheel.lua ###
power=Energie
### source.lua ###
Power Source=Stromquelle
@ -960,11 +963,6 @@ TA4 Reactor Stand=TA4 Reaktor Ständer
off=aus
TA4 Reactor Base=TA4 Reaktor Sockel
### ta4_stand.lua ###
### waterpump.lua ###
no power=kein Strom
### tank.lua ###
TA3 Tank=TA3 Tank
@ -993,6 +991,15 @@ Tiny Generator=Kleingenerator
no fuel=kein Kraftstoff
TA3 Tiny Power Generator=TA3 Kleiner Stromgenerator
### tiny_generator.lua ###
### electrolyzer.lua ###
### akkubox.lua ###
### fuelcell.lua ###
### generator.lua ###
### heatexchanger2.lua ###
Electricity=Strom
### tower.lua ###
TA3 Derrick=TA3 Bohrturm
@ -1039,9 +1046,9 @@ Water Pump=Wasserpumpe
TA4 Water Pump=Wasserpumpe
### waterpump.lua ###
### liquidsampler.lua ###
### ta4_stand.lua ###
no usable water=Kein brauchbares Wasser
no power=kein Strom
### windturbine_lib.lua ###
@ -1054,3 +1061,8 @@ Here is not enough wind@n(A free air space of 41x41x21 m is necessary)!=Hier ist
Here is not enough water (41x41 m)!=Hier ist nicht genug Wasser (41x41 m)!
The next wind turbines is too close!= Die nächste Windkraftanlagen iat zu nahe!
is a suitable place for a wind turbine!=ist ein geeigneter Ort für eine Windkraftanlage!
##### not used anymore #####
Not suitable position!=Ungeeignete Position!

View File

@ -111,6 +111,16 @@ TA4 Button/Switch=
TA3 Cart Detector=
### cart_detector.lua ###
### node_detector.lua ###
accept=
### cart_detector.lua ###
### player_detector.lua ###
TA3 Player Detector=
### ceilinglamp.lua ###
TA Ceiling Lamp=
@ -120,6 +130,11 @@ TA Ceiling Lamp=
Cement Block=
Cement Powder=
### ceramic.lua ###
TA4 Ceramic Material=
TA4 Furnace Ceramic=
### charcoalpile.lua ###
Dirt with Ash=
@ -166,6 +181,26 @@ TA2 Cylinder=
TA3 Detector=
TA4 Detector=
### detector.lua ###
### doorcontroller.lua ###
### button.lua ###
### repeater.lua ###
### chest.lua ###
### mesecons_converter.lua ###
Save=
### detector.lua ###
### lua_logic.lua ###
### node_detector.lua ###
### button.lua ###
### cart_detector.lua ###
### player_detector.lua ###
### repeater.lua ###
### mesecons_converter.lua ###
Insert destination node number(s)=
### display.lua ###
TA4 Display=
@ -342,22 +377,6 @@ storage empty?=
TA4 Generator=
TA3 Generator=
### generator.lua ###
### akkubox.lua ###
### tiny_generator.lua ###
### fuelcell.lua ###
### electrolyzer.lua ###
### heatexchanger2.lua ###
Electricity=
### generator.lua ###
### source.lua ###
### solarcell.lua ###
### flywheel.lua ###
power=
### gravelrinser.lua ###
Gravel Rinser=
@ -478,11 +497,6 @@ to=
Laser beam error!=
TA4 Laser Beam Receiver=
### lib.lua ###
### sensorchest.lua ###
connected with=
### lighter.lua ###
TA1 Lighter=
@ -502,6 +516,11 @@ TA Junction Pipe=
Liquid Sampler=
### liquidsampler.lua ###
### waterpump.lua ###
no usable water=
### logic_block.lua ###
Send an 'on'/'off' command if the@nexpression becomes true.@n=
@ -575,22 +594,6 @@ added or removed=
Send signal if nodes have been:=
TA3 Node Detector=
### node_detector.lua ###
### cart_detector.lua ###
accept=
### node_detector.lua ###
### player_detector.lua ###
### repeater.lua ###
### lua_logic.lua ###
### detector.lua ###
### button.lua ###
### cart_detector.lua ###
### mesecons_converter.lua ###
Insert destination node number(s)=
### nodes.lua ###
TechAge Gravel=
@ -644,16 +647,14 @@ Plastic Granules=
TA4 Player Detector=
### player_detector.lua ###
### cart_detector.lua ###
TA3 Player Detector=
### powder.lua ###
Leave Powder=
Needle Powder=
Iron Powder=
Clay Powder=
Aluminum Powder=
Silver Sandstone Powder=
### power2axle.lua ###
@ -820,19 +821,9 @@ Time=
TA3 Repeater=
### repeater.lua ###
### chest.lua ###
### detector.lua ###
### button.lua ###
### doorcontroller.lua ###
### mesecons_converter.lua ###
Save=
### rotor.lua ###
TA4 Wind Turbine=
Not suitable position!=
Nacelle is missing=
TA4 Wind Turbine Nacelle=
TA4 Carbon Fiber=
@ -844,6 +835,11 @@ Allow public chest access=
TA4 Sensor Chest=
not connected=
### sensorchest.lua ###
### lib.lua ###
connected with=
### sequencer.lua ###
TA3 Sequencer=
@ -876,6 +872,13 @@ TA4 Solar Carrier Module=
TA4 Solar Carrier Module B=
TA4 Solar Carrier Module T=
### solarcell.lua ###
### source.lua ###
### generator.lua ###
### flywheel.lua ###
power=
### source.lua ###
Power Source=
@ -960,11 +963,6 @@ TA4 Reactor Stand=
off=
TA4 Reactor Base=
### ta4_stand.lua ###
### waterpump.lua ###
no power=
### tank.lua ###
TA3 Tank=
@ -993,6 +991,15 @@ Tiny Generator=
no fuel=
TA3 Tiny Power Generator=
### tiny_generator.lua ###
### electrolyzer.lua ###
### akkubox.lua ###
### fuelcell.lua ###
### generator.lua ###
### heatexchanger2.lua ###
Electricity=
### tower.lua ###
TA3 Derrick=
@ -1039,9 +1046,9 @@ Water Pump=
TA4 Water Pump=
### waterpump.lua ###
### liquidsampler.lua ###
### ta4_stand.lua ###
no usable water=
no power=
### windturbine_lib.lua ###
@ -1050,7 +1057,7 @@ This is not the surface of the ocean!=
This is no ocean water!=
This is a=
biome and no ocean!=
Here is not enough wind (A free air space of 41x41x21 m is necessary)!=
Here is not enough wind@n(A free air space of 41x41x21 m is necessary)!=
Here is not enough water (41x41 m)!=
The next wind turbines is too close!=
is a suitable place for a wind turbine!=

View File

@ -236,7 +236,7 @@ Ein Reaktor besteht aus:
- dem Einfüllstutzen der auf den Reaktorbehälter gesetzt werden muss
- dem Dosierer, welcher über Leitungen mit den Tanks oder Silos sowie dem Einfüllstutzen verbunden werden muss
Hinweis 1: Flüssigkeiten werden nur in Tanks gelagert, Stoffe in Pulverform nur in Silos. Dies gilt für Zutaten und Ausgangsstoffe.
Hinweis 1: Flüssigkeiten werden nur in Tanks gelagert, feste Stoffe und Stoffe in Pulverform nur in Silos. Dies gilt für Zutaten und Ausgangsstoffe.
Hinweis 2: Tanks oder Silos mit verschiedenen Inhalten dürfen nicht zu einem Leitungssystem verbunden werden. Mehrere Tanks oder Silos mit gleichem Inhalt dürfen dagegen parallel an einer Leitung hängen.

View File

@ -237,7 +237,7 @@ A reactor consists of:
- The filler pipe that must be placed on the reactor vessel
- The dosing device, which has to be connected to the tanks or silos and the filler pipe via pipes
Note 1: Liquids are only stored in tanks, substances in powder form only in silos. This applies to ingredients and raw materials.
Note 1: Liquids are only stored in tanks, solids and substances in powder form only in silos. This applies to ingredients and raw materials.
Note 2: Tanks or silos with different contents must not be connected to a pipe system. In contrast, several tanks or silos with the same content may hang in parallel on one line.