37 lines
1.1 KiB
Lua
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)
|