diff --git a/chemistry/ta4_doser.lua b/chemistry/ta4_doser.lua index d2c05db..705efa6 100644 --- a/chemistry/ta4_doser.lua +++ b/chemistry/ta4_doser.lua @@ -109,10 +109,13 @@ local function can_start(pos, nvm, state) return true end +local test_setup = nil + local function start_node(pos, nvm, state) reactor_cmnd(pos, "start") del_liquids(pos) nvm.running = true + test_setup(pos, nvm) end local function stop_node(pos, nvm, state) @@ -138,7 +141,43 @@ local function untake(pos, taken) 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) + if nvm.fault then + reactor_cmnd(pos, "stop") + State:fault(pos, nvm, nvm.fault) + return + end -- trigger reactor (power) if not reactor_cmnd(pos, "power") then if not nvm.techage_countdown or nvm.techage_countdown < 3 then diff --git a/chemistry/ta4_reactor.lua b/chemistry/ta4_reactor.lua index 6b2108d..77defa9 100644 --- a/chemistry/ta4_reactor.lua +++ b/chemistry/ta4_reactor.lua @@ -78,6 +78,17 @@ local function base_waste(pos, payload) return liquid.put(pos2, Pipe, outdir, payload.name, payload.amount, payload.player_name) 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 techage.register_node({"techage:ta4_reactor_fillerpipe"}, { on_transfer = function(pos, in_dir, topic, payload) @@ -91,6 +102,10 @@ techage.register_node({"techage:ta4_reactor_fillerpipe"}, { return false end 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 return base_waste(pos, payload or {}) elseif topic == "catalyst" then diff --git a/locale/techage.de.tr b/locale/techage.de.tr index 2a536a4..41d8047 100644 --- a/locale/techage.de.tr +++ b/locale/techage.de.tr @@ -1411,9 +1411,13 @@ right to left=von rechts nach links Doser=Dosierer TA4 Doser=TA4 Dosierer 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 or no power=Reaktor defekt oder kein 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 ### ta4_doser.lua ### diff --git a/locale/techage.fr.tr b/locale/techage.fr.tr index 6881a9a..f3b4003 100644 --- a/locale/techage.fr.tr +++ b/locale/techage.fr.tr @@ -1411,9 +1411,13 @@ right to left=de droite à gauche Doser=Doseur TA4 Doser=TA4 Doseur catalyst missing=catalyseur manquant +output: silo expected= +output: tank expected= reactor defect=défaut du réacteur 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 +waste: silo expected= +waste: tank expected= wrong catalyst=mauvais catalyseur ### ta4_doser.lua ### diff --git a/locale/techage.ru.tr b/locale/techage.ru.tr index dd562c9..6af02f5 100644 --- a/locale/techage.ru.tr +++ b/locale/techage.ru.tr @@ -307,7 +307,6 @@ Shell shape error@n(@1% found / 100% expected)=Ошибка формы обол TA5 Fusion Reactor Controller=TA5 Контроллер ядерного реактора ### controller.lua ### - ### heatexchanger2.lua ### No power=Нет энергии @@ -333,24 +332,30 @@ per minute=в минуту TA2 Cylinder=TA2 Цилиндр -### electricmeter.lua ### - -Countdown=Кол-во электроэнергии которое должно передаться - -### logic_block.lua ### - -### tele.lua ### - -Blocking Time=Время блокировки - ### detector.lua ### Counts down the number of items passed through@nand only triggers an 'on' command when it reaches zero.=Считает количество проходящих предметов@nи включается когда количество достигает нуля. Current countdown=Кол-во предметов которое должно пройти Current countdown value.=Кол-во прошедших предметов TA3 Item Detector=TA3 Детектор предметов +TA4 Collider Detector=TA4 Детектор коллайдера +TA4 Collider Detector Core=TA4 Ядро детектора коллайдера 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=Настроенные предметы Items which generate an 'on' command.@nIf empty, all passed items generate an 'on' command.=Предметы, которые генерируют команду 'on' (включить).@nЕсли пусто, все прошедшие предметы генерируют команду 'on'. On Time=Вовремя @@ -1406,9 +1411,13 @@ right to left=справа налево Doser=Дозатор TA4 Doser=TA4 Дозатор catalyst missing=отсутствует катализатор +output: silo expected= +output: tank expected= reactor defect=дефект реактора reactor defect or no power=дефект реактора или нет энергии reactor has no power=у реактора нет энергии +waste: silo expected= +waste: tank expected= wrong catalyst=неправильный катализатор ### ta4_doser.lua ### @@ -1496,7 +1505,6 @@ TA5 Teleport Block Items=TA5 Блок для телепортирования п ### terminal.lua ### Syntax error, try help=Синтаксическая ошибка, попробуйте написать help -TA3 Terminal=TA3 Терминал TA4 Terminal=TA4 Терминал commands like: help=команды как: help @@ -1620,8 +1628,3 @@ Remove detector=Убрать детектор TA4 Collider Detector Worker=TA4 Построитель детектора коллайдера [TA4] Detector is being built!=[TA4] Детектор был построен! [TA4] Detector is being removed!=[TA4] Детектор был удален! - -### detector.lua ### - -TA4 Collider Detector=TA4 Детектор коллайдера -TA4 Collider Detector Core=TA4 Ядро детектора коллайдера diff --git a/locale/template.txt b/locale/template.txt index 0613504..50f1ccd 100644 --- a/locale/template.txt +++ b/locale/template.txt @@ -1411,9 +1411,13 @@ right to left= Doser= TA4 Doser= catalyst missing= +output: silo expected= +output: tank expected= reactor defect= reactor defect or no power= reactor has no power= +waste: silo expected= +waste: tank expected= wrong catalyst= ### ta4_doser.lua ###