Fix issue #190 (Chemical reactor deleting resources when blocked)
This commit is contained in:
parent
fcb583c062
commit
90bfe85403
@ -109,10 +109,13 @@ local function can_start(pos, nvm, state)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local test_setup = nil
|
||||||
|
|
||||||
local function start_node(pos, nvm, state)
|
local function start_node(pos, nvm, state)
|
||||||
reactor_cmnd(pos, "start")
|
reactor_cmnd(pos, "start")
|
||||||
del_liquids(pos)
|
del_liquids(pos)
|
||||||
nvm.running = true
|
nvm.running = true
|
||||||
|
test_setup(pos, nvm)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function stop_node(pos, nvm, state)
|
local function stop_node(pos, nvm, state)
|
||||||
@ -138,7 +141,43 @@ local function untake(pos, taken)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test_setup = function(pos, nvm)
|
||||||
|
local recipe = recipes.get(nvm, "ta4_doser")
|
||||||
|
local ndef = minetest.registered_craftitems[recipe.output.name]
|
||||||
|
local container = ndef.groups and ndef.groups.powder == 1 and "silo" or "tank"
|
||||||
|
nvm.fault = nil
|
||||||
|
|
||||||
|
if reactor_cmnd(pos, "get_output_container") ~= container then
|
||||||
|
if container == "silo" then
|
||||||
|
nvm.fault = S("output: silo expected")
|
||||||
|
else
|
||||||
|
nvm.fault = S("output: tank expected")
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if recipe.waste.name == "" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
ndef = minetest.registered_craftitems[recipe.waste.name]
|
||||||
|
container = ndef.groups and ndef.groups.powder == 1 and "silo" or "tank"
|
||||||
|
if reactor_cmnd(pos, "get_waste_container") ~= container then
|
||||||
|
if container == "silo" then
|
||||||
|
nvm.fault = S("waste: silo expected")
|
||||||
|
else
|
||||||
|
nvm.fault = S("waste: tank expected")
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function dosing(pos, nvm, elapsed)
|
local function dosing(pos, nvm, elapsed)
|
||||||
|
if nvm.fault then
|
||||||
|
reactor_cmnd(pos, "stop")
|
||||||
|
State:fault(pos, nvm, nvm.fault)
|
||||||
|
return
|
||||||
|
end
|
||||||
-- trigger reactor (power)
|
-- trigger reactor (power)
|
||||||
if not reactor_cmnd(pos, "power") then
|
if not reactor_cmnd(pos, "power") then
|
||||||
if not nvm.techage_countdown or nvm.techage_countdown < 3 then
|
if not nvm.techage_countdown or nvm.techage_countdown < 3 then
|
||||||
|
@ -78,6 +78,17 @@ local function base_waste(pos, payload)
|
|||||||
return liquid.put(pos2, Pipe, outdir, payload.name, payload.amount, payload.player_name)
|
return liquid.put(pos2, Pipe, outdir, payload.name, payload.amount, payload.player_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function connection_test(pos)
|
||||||
|
local outdir = M(pos):get_int("outdir")
|
||||||
|
local pos2, _ = Pipe:get_connected_node_pos(pos, outdir)
|
||||||
|
local name = techage.get_node_lvm(pos2).name
|
||||||
|
if name:find("silo") then
|
||||||
|
return "silo"
|
||||||
|
elseif name:find("tank") then
|
||||||
|
return "tank"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- controlled by the doser
|
-- controlled by the doser
|
||||||
techage.register_node({"techage:ta4_reactor_fillerpipe"}, {
|
techage.register_node({"techage:ta4_reactor_fillerpipe"}, {
|
||||||
on_transfer = function(pos, in_dir, topic, payload)
|
on_transfer = function(pos, in_dir, topic, payload)
|
||||||
@ -91,6 +102,10 @@ techage.register_node({"techage:ta4_reactor_fillerpipe"}, {
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
|
elseif topic == "get_output_container" then
|
||||||
|
return connection_test({x = pos.x, y = pos.y-2, z = pos.z})
|
||||||
|
elseif topic == "get_waste_container" then
|
||||||
|
return connection_test({x = pos.x, y = pos.y-3, z = pos.z})
|
||||||
elseif topic == "waste" then
|
elseif topic == "waste" then
|
||||||
return base_waste(pos, payload or {})
|
return base_waste(pos, payload or {})
|
||||||
elseif topic == "catalyst" then
|
elseif topic == "catalyst" then
|
||||||
|
@ -1411,9 +1411,13 @@ right to left=von rechts nach links
|
|||||||
Doser=Dosierer
|
Doser=Dosierer
|
||||||
TA4 Doser=TA4 Dosierer
|
TA4 Doser=TA4 Dosierer
|
||||||
catalyst missing=Katalysator fehlt
|
catalyst missing=Katalysator fehlt
|
||||||
|
output: silo expected=Ausgabe benötigt ein Silo
|
||||||
|
output: tank expected=Ausgabe benötigt einen Tank
|
||||||
reactor defect=Reaktor defekt
|
reactor defect=Reaktor defekt
|
||||||
reactor defect or no power=Reaktor defekt oder kein Strom
|
reactor defect or no power=Reaktor defekt oder kein Strom
|
||||||
reactor has no power=Reaktor hat keinen Strom
|
reactor has no power=Reaktor hat keinen Strom
|
||||||
|
waste: silo expected=Abfall benötigt ein Silo
|
||||||
|
waste: tank expected=Abfall benötigt einen Tank
|
||||||
wrong catalyst=falscher Katalysator
|
wrong catalyst=falscher Katalysator
|
||||||
|
|
||||||
### ta4_doser.lua ###
|
### ta4_doser.lua ###
|
||||||
|
@ -1411,9 +1411,13 @@ right to left=de droite à gauche
|
|||||||
Doser=Doseur
|
Doser=Doseur
|
||||||
TA4 Doser=TA4 Doseur
|
TA4 Doser=TA4 Doseur
|
||||||
catalyst missing=catalyseur manquant
|
catalyst missing=catalyseur manquant
|
||||||
|
output: silo expected=
|
||||||
|
output: tank expected=
|
||||||
reactor defect=défaut du réacteur
|
reactor defect=défaut du réacteur
|
||||||
reactor defect or no power=défaut du réacteur ou absence de courant
|
reactor defect or no power=défaut du réacteur ou absence de courant
|
||||||
reactor has no power=Le réacteur n'a pas de courant
|
reactor has no power=Le réacteur n'a pas de courant
|
||||||
|
waste: silo expected=
|
||||||
|
waste: tank expected=
|
||||||
wrong catalyst=mauvais catalyseur
|
wrong catalyst=mauvais catalyseur
|
||||||
|
|
||||||
### ta4_doser.lua ###
|
### ta4_doser.lua ###
|
||||||
|
@ -307,7 +307,6 @@ Shell shape error@n(@1% found / 100% expected)=Ошибка формы обол
|
|||||||
TA5 Fusion Reactor Controller=TA5 Контроллер ядерного реактора
|
TA5 Fusion Reactor Controller=TA5 Контроллер ядерного реактора
|
||||||
|
|
||||||
### controller.lua ###
|
### controller.lua ###
|
||||||
|
|
||||||
### heatexchanger2.lua ###
|
### heatexchanger2.lua ###
|
||||||
|
|
||||||
No power=Нет энергии
|
No power=Нет энергии
|
||||||
@ -333,24 +332,30 @@ per minute=в минуту
|
|||||||
|
|
||||||
TA2 Cylinder=TA2 Цилиндр
|
TA2 Cylinder=TA2 Цилиндр
|
||||||
|
|
||||||
### electricmeter.lua ###
|
|
||||||
|
|
||||||
Countdown=Кол-во электроэнергии которое должно передаться
|
|
||||||
|
|
||||||
### logic_block.lua ###
|
|
||||||
|
|
||||||
### tele.lua ###
|
|
||||||
|
|
||||||
Blocking Time=Время блокировки
|
|
||||||
|
|
||||||
### detector.lua ###
|
### detector.lua ###
|
||||||
|
|
||||||
Counts down the number of items passed through@nand only triggers an 'on' command when it reaches zero.=Считает количество проходящих предметов@nи включается когда количество достигает нуля.
|
Counts down the number of items passed through@nand only triggers an 'on' command when it reaches zero.=Считает количество проходящих предметов@nи включается когда количество достигает нуля.
|
||||||
Current countdown=Кол-во предметов которое должно пройти
|
Current countdown=Кол-во предметов которое должно пройти
|
||||||
Current countdown value.=Кол-во прошедших предметов
|
Current countdown value.=Кол-во прошедших предметов
|
||||||
TA3 Item Detector=TA3 Детектор предметов
|
TA3 Item Detector=TA3 Детектор предметов
|
||||||
|
TA4 Collider Detector=TA4 Детектор коллайдера
|
||||||
|
TA4 Collider Detector Core=TA4 Ядро детектора коллайдера
|
||||||
TA4 Item Detector=TA3 Детектор предметов
|
TA4 Item Detector=TA3 Детектор предметов
|
||||||
TA3 Detector=TA3 Детектор
|
|
||||||
|
### detector.lua ###
|
||||||
|
### electricmeter.lua ###
|
||||||
|
|
||||||
|
Countdown=Кол-во электроэнергии которое должно передаться
|
||||||
|
|
||||||
|
### detector.lua ###
|
||||||
|
### logic_block.lua ###
|
||||||
|
### tele.lua ###
|
||||||
|
|
||||||
|
Blocking Time=Время блокировки
|
||||||
|
|
||||||
|
### detector.lua ###
|
||||||
|
### tele.lua ###
|
||||||
|
|
||||||
Configured Items=Настроенные предметы
|
Configured Items=Настроенные предметы
|
||||||
Items which generate an 'on' command.@nIf empty, all passed items generate an 'on' command.=Предметы, которые генерируют команду 'on' (включить).@nЕсли пусто, все прошедшие предметы генерируют команду 'on'.
|
Items which generate an 'on' command.@nIf empty, all passed items generate an 'on' command.=Предметы, которые генерируют команду 'on' (включить).@nЕсли пусто, все прошедшие предметы генерируют команду 'on'.
|
||||||
On Time=Вовремя
|
On Time=Вовремя
|
||||||
@ -1406,9 +1411,13 @@ right to left=справа налево
|
|||||||
Doser=Дозатор
|
Doser=Дозатор
|
||||||
TA4 Doser=TA4 Дозатор
|
TA4 Doser=TA4 Дозатор
|
||||||
catalyst missing=отсутствует катализатор
|
catalyst missing=отсутствует катализатор
|
||||||
|
output: silo expected=
|
||||||
|
output: tank expected=
|
||||||
reactor defect=дефект реактора
|
reactor defect=дефект реактора
|
||||||
reactor defect or no power=дефект реактора или нет энергии
|
reactor defect or no power=дефект реактора или нет энергии
|
||||||
reactor has no power=у реактора нет энергии
|
reactor has no power=у реактора нет энергии
|
||||||
|
waste: silo expected=
|
||||||
|
waste: tank expected=
|
||||||
wrong catalyst=неправильный катализатор
|
wrong catalyst=неправильный катализатор
|
||||||
|
|
||||||
### ta4_doser.lua ###
|
### ta4_doser.lua ###
|
||||||
@ -1496,7 +1505,6 @@ TA5 Teleport Block Items=TA5 Блок для телепортирования п
|
|||||||
### terminal.lua ###
|
### terminal.lua ###
|
||||||
|
|
||||||
Syntax error, try help=Синтаксическая ошибка, попробуйте написать help
|
Syntax error, try help=Синтаксическая ошибка, попробуйте написать help
|
||||||
TA3 Terminal=TA3 Терминал
|
|
||||||
TA4 Terminal=TA4 Терминал
|
TA4 Terminal=TA4 Терминал
|
||||||
commands like: help=команды как: help
|
commands like: help=команды как: help
|
||||||
|
|
||||||
@ -1620,8 +1628,3 @@ Remove detector=Убрать детектор
|
|||||||
TA4 Collider Detector Worker=TA4 Построитель детектора коллайдера
|
TA4 Collider Detector Worker=TA4 Построитель детектора коллайдера
|
||||||
[TA4] Detector is being built!=[TA4] Детектор был построен!
|
[TA4] Detector is being built!=[TA4] Детектор был построен!
|
||||||
[TA4] Detector is being removed!=[TA4] Детектор был удален!
|
[TA4] Detector is being removed!=[TA4] Детектор был удален!
|
||||||
|
|
||||||
### detector.lua ###
|
|
||||||
|
|
||||||
TA4 Collider Detector=TA4 Детектор коллайдера
|
|
||||||
TA4 Collider Detector Core=TA4 Ядро детектора коллайдера
|
|
||||||
|
@ -1411,9 +1411,13 @@ right to left=
|
|||||||
Doser=
|
Doser=
|
||||||
TA4 Doser=
|
TA4 Doser=
|
||||||
catalyst missing=
|
catalyst missing=
|
||||||
|
output: silo expected=
|
||||||
|
output: tank expected=
|
||||||
reactor defect=
|
reactor defect=
|
||||||
reactor defect or no power=
|
reactor defect or no power=
|
||||||
reactor has no power=
|
reactor has no power=
|
||||||
|
waste: silo expected=
|
||||||
|
waste: tank expected=
|
||||||
wrong catalyst=
|
wrong catalyst=
|
||||||
|
|
||||||
### ta4_doser.lua ###
|
### ta4_doser.lua ###
|
||||||
|
Loading…
Reference in New Issue
Block a user