From 5cb437a559afca739a8e59d03338827ba66dca3a Mon Sep 17 00:00:00 2001 From: Astralcircle <142503363+Astralcircle@users.noreply.github.com> Date: Sat, 4 Apr 2026 17:14:39 +0300 Subject: [PATCH] Optimize runOnTick a bit --- .../gmod_wire_expression2/core/gametick.lua | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) 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")