mirror of
https://github.com/Keyslam-Group/Concord.git
synced 2025-09-02 04:13:58 -04:00
Optimized Lists. Added pool.added and .removed. Added entity:ensure
This commit is contained in:
parent
e2b7af87fd
commit
11255fd722
7 changed files with 104 additions and 48 deletions
|
@ -31,10 +31,7 @@ end)
|
|||
|
||||
local RectangleRenderer = System({Position, Rectangle})
|
||||
function RectangleRenderer:draw()
|
||||
local e
|
||||
for i = 1, self.pool.size do
|
||||
e = self.pool:get(i)
|
||||
|
||||
for _, e in ipairs(self.pool) do
|
||||
local position = e:get(Position)
|
||||
local rectangle = e:get(Rectangle)
|
||||
local color = e:get(Color)
|
||||
|
@ -49,11 +46,16 @@ function RectangleRenderer:draw()
|
|||
end
|
||||
|
||||
local CircleRenderer = System({Position, Circle})
|
||||
function CircleRenderer:draw()
|
||||
local e
|
||||
for i = 1, self.pool.size do
|
||||
e = self.pool:get(i)
|
||||
function CircleRenderer:flush()
|
||||
for _, e in ipairs(self.pool.removed) do
|
||||
print(tostring(e).. " was removed from my pool D:")
|
||||
end
|
||||
|
||||
self:clear()
|
||||
end
|
||||
|
||||
function CircleRenderer:draw()
|
||||
for _, e in ipairs(self.pool) do
|
||||
local position = e:get(Position)
|
||||
local circle = e:get(Circle)
|
||||
local color = e:get(Color)
|
||||
|
@ -76,7 +78,7 @@ end
|
|||
function RandomRemover:update(dt)
|
||||
self.time = self.time + dt
|
||||
|
||||
if self.time >= 0.25 then
|
||||
if self.time >= 0.5 then
|
||||
self.time = 0
|
||||
|
||||
if self.pool.size > 0 then
|
||||
|
@ -115,4 +117,4 @@ for i = 1, 100 do
|
|||
end
|
||||
|
||||
Game:addEntity(e)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue