This repository has been archived on 2025-07-31. You can view files and clone it, but cannot push or open issues or pull requests.
Files
barotrauma-custom-components/Lua/activecountercomponent.lua
2022-06-30 23:18:46 +01:00

37 lines
1.1 KiB
Lua

local allItems = {}
Hook.Add("item.created", "activecountercomponent.init", function(item)
if item.Prefab.Identifier == "activecountercomponent" then
allItems[item] = true
end
end)
local signalReceived = function(signal, connection)
local this = connection.Item
local mem = this.Components[2]
if signal.value == "" then return end
local input = tonumber(signal.value) or 1
if input > 0 then
if tonumber(mem.value) >= this.Components[3].clampMax then
mem.value = tostring(this.Components[3].clampMin)
else
mem.value = tostring(tonumber(mem.value) + 1)
end
elseif input == 0 then
mem.value = "0"
elseif input < 0 then
mem.value = tostring(-input)
end
end
local think = function()
for component, _ in pairs(allItems) do
component.SendSignal(component.Components[2].value, "state_out")
end
end
Hook.Add("think", "activecountercomponent.think", think)
Hook.Add("signalreceived.activecountercomponent", "activecountercomponent.signalReceived", signalReceived)