From bac62871353fe8882a704b1f559ab3996f5888bf Mon Sep 17 00:00:00 2001 From: qfx Date: Sun, 23 Feb 2020 13:12:48 +0200 Subject: [PATCH] More miniFixes --- conf.lua | 1 + core/element.lua | 9 ++++++++- init.lua | 18 +++--------------- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/conf.lua b/conf.lua index 752e08f..ad4cf34 100644 --- a/conf.lua +++ b/conf.lua @@ -3,4 +3,5 @@ return { AUTO_RUN = true, --Replaces the default love.run DEBUG = true, --Reserved for later PURE_G = true, --whether to keep _G pure + HARD_ERROR = true, --Whether to display element errors inside or hard cras } \ No newline at end of file diff --git a/core/element.lua b/core/element.lua index 8af9e59..8cbd2e5 100644 --- a/core/element.lua +++ b/core/element.lua @@ -266,6 +266,9 @@ function element:classlessRender() love.graphics.pop() if not status then + if helium.conf.HARD_ERROR then + error(status) + end setColor(1,0,0) rectangle('line',0,0,self.view.w,self.view.h) setColor(1,1,1) @@ -273,6 +276,9 @@ function element:classlessRender() end elseif type(self.renderer)=='string' then + if helium.conf.HARD_ERROR then + error(self.renderer) + end setColor(1,0,0) rectangle('line',0,0,self.view.w,self.view.h) setColor(1,1,1) @@ -326,6 +332,7 @@ function element:externalUpdate() self.settings.needsRendering = true self.settings.pendingUpdate = false end + return self.settings.remove end local insert = table.insert @@ -334,13 +341,13 @@ local insert = table.insert ---@param x number ---@param y number function element:draw(x, y) - self.settings.remove =false if not self.view.lock then if x then self.view.x = x end if y then self.view.y = y end end if self.settings.firstDraw then + self.settings.remove = false if self.baseState.onFirstDraw then self.baseState.onFirstDraw() end diff --git a/init.lua b/init.lua index 2e4c9d1..17ddf36 100644 --- a/init.lua +++ b/init.lua @@ -32,23 +32,11 @@ function helium.update(dt) helium.loader.update(dt) end - local remove = false - - for i, e in ipairs(helium.elementBuffer) do - if e.settings.remove then - remove = true - else - e:externalUpdate() + for i = #helium.elementBuffer, 1, -1 do + if helium.elementBuffer[i]:externalUpdate() then + table.remove(helium.elementBuffer,i) end end - - if remove then - helium.utils.ArrayRemove(helium.elementBuffer, function(t, i) - --returns false or (true if nil) - return (t[i].settings.remove) - end) - end - end --[[