diff --git a/lua/entities/gmod_wire_expression2/core/gametick.lua b/lua/entities/gmod_wire_expression2/core/gametick.lua index b94347eeda..18b607c508 100644 --- a/lua/entities/gmod_wire_expression2/core/gametick.lua +++ b/lua/entities/gmod_wire_expression2/core/gametick.lua @@ -26,25 +26,17 @@ e2function number tickClk() return self.data.tickrun and 1 or 0 end -hook.Add("Think", "Expression2TickClock", function() - -- This additional step is needed because we cant modify registered_chips while it is being iterated. - local entities = {} - local i = 1 +E2Lib.registerEvent("tick") +hook.Add("Think", "Expression2TickClock", function() for entity in pairs(registered_chips) do - if entity:IsValid() then - entities[i] = entity - i = i + 1 - end - end + local tab = entity:GetTable() + local data = tab.context.data - for _, entity in ipairs(entities) do - entity.context.data.tickrun = true - entity:Execute() - entity.context.data.tickrun = nil + data.tickrun = true + tab.Execute(entity) + data.tickrun = nil end E2Lib.triggerEvent("tick") end) - -E2Lib.registerEvent("tick")