From eb1ed8890cc074f2358f0c12382116a8b66d59ba Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Wed, 7 Oct 2020 22:06:43 +0200 Subject: [PATCH] silo/tank: Add second return value for load command --- basis/liquid_lib.lua | 4 +++- liquids/silo.lua | 2 +- manuals/ta4_lua_controller_EN.md | 4 ++-- manuals/ta4_lua_controller_EN.pdf | Bin 356652 -> 356755 bytes 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/basis/liquid_lib.lua b/basis/liquid_lib.lua index 6801070..6bc3a54 100644 --- a/basis/liquid_lib.lua +++ b/basis/liquid_lib.lua @@ -55,7 +55,9 @@ techage.liquid.recv_message = { on_recv_message = function(pos, src, topic, payload) if topic == "load" then local nvm = techage.get_nvm(pos) - return techage.power.percent(LQD(pos).capa, (nvm.liquid and nvm.liquid.amount) or 0) + nvm.liquid = nvm.liquid or {} + nvm.liquid.amount = nvm.liquid.amount or 0 + return techage.power.percent(LQD(pos).capa, nvm.liquid.amount), nvm.liquid.amount elseif topic == "size" then return LQD(pos).capa else diff --git a/liquids/silo.lua b/liquids/silo.lua index 25be282..5e809d2 100644 --- a/liquids/silo.lua +++ b/liquids/silo.lua @@ -309,7 +309,7 @@ techage.register_node({"techage:ta3_silo", "techage:ta4_silo"}, { local nvm = techage.get_nvm(pos) nvm.item_count = nvm.item_count or get_item_count(pos) nvm.capa = nvm.capa or get_silo_capa(pos) - return techage.power.percent(nvm.capa, nvm.item_count) + return techage.power.percent(nvm.capa, nvm.item_count), nvm.item_count else return "unsupported" end diff --git a/manuals/ta4_lua_controller_EN.md b/manuals/ta4_lua_controller_EN.md index 2cca94e..aa97019 100644 --- a/manuals/ta4_lua_controller_EN.md +++ b/manuals/ta4_lua_controller_EN.md @@ -358,12 +358,12 @@ In addition to Lua standard function the Lua Controller provides the following f | "state" | one of: "empty", "loaded", "full" | State of a chest or Sensor Chest | | "fuel" | number | fuel value of a fuel consuming block | | "depth" | number | Read the current depth value of a quarry block (1..80) | -| "load" | number | Read the load value in percent (0..100) of a tank/storage block, a silo block, an accu block, or of the Signs Bot Box. | +| "load" | number | Read the load value in percent (0..100) of a tank/storage block, a silo block, an accu block, or of the Signs Bot Box. Silo and tank return two values: The percentage value and the absolute value in units.
Example: percent, absolute = $read_data("223", "load") | | "delivered" | number | Read the current delivered power value of a generator block. A power consuming block (accu) provides a negative value | | "action" | player-name, action-string | only for Sensor Chests | | "stacks" | Array with up to 4 Stores with the inventory content (see example) | only for Sensor Chests | | "count" | number | Read the item counter of the TA4 Item Detector block | -| "count" | number of items | Read the total amount of TA4 chest items. An optional number as `add_data` is used to address only on inventory slot (1..8, from left to right). | +| "count" | number of items | Read the total amount of TA4 chest items. An optional number as `add_data` is used to address only one inventory slot (1..8, from left to right). | | "itemstring" | item string of the given slot | Specific command for the TA4 8x2000 Chest to read the item type (technical name) of one chest slot, specified via `add_data` (1..8).
Example: s = $read_data("223", "itemstring", 1) | diff --git a/manuals/ta4_lua_controller_EN.pdf b/manuals/ta4_lua_controller_EN.pdf index 87dc0304fca14652f1934bb7f1f2715d715493fc..39d8dcedeecc23508a2113a4f6b625cdd13ca3d2 100644 GIT binary patch delta 9478 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 W2KelD;QWK(NW7;2 delta 9446 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 Rbg%=wh2T|GG}vUw`+tHScJBZH