mirror of
https://github.com/Keyslam-Group/Concord.git
synced 2025-09-03 21:03:54 -04:00
Changed lib layout once more
This commit is contained in:
parent
6caf99afb4
commit
b1e30e83b1
11 changed files with 2 additions and 2 deletions
39
lib/pool.lua
Normal file
39
lib/pool.lua
Normal file
|
@ -0,0 +1,39 @@
|
|||
local PATH = (...):gsub('%.[^%.]+$', '')
|
||||
|
||||
local List = require(PATH..".list")
|
||||
|
||||
local Pool = {}
|
||||
Pool.__index = Pool
|
||||
|
||||
--- Creates a new Pool
|
||||
-- @param name Identifier for the Pool.
|
||||
-- @param filter Table containing the required Components
|
||||
-- @return The new Pool
|
||||
function Pool.new(name, filter)
|
||||
local pool = setmetatable(List(), Pool)
|
||||
|
||||
pool.name = name
|
||||
pool.filter = filter
|
||||
|
||||
pool.__isPool = true
|
||||
|
||||
return pool
|
||||
end
|
||||
|
||||
--- Checks if an Entity is eligible for the Pool.
|
||||
-- @param e The Entity to check
|
||||
-- @return True if the entity is eligible, false otherwise
|
||||
function Pool:eligible(e)
|
||||
for _, component in ipairs(self.filter) do
|
||||
if not e.components[component] or e.removed[component] then
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
return setmetatable(Pool, {
|
||||
__index = List,
|
||||
__call = function(_, ...) return Pool.new(...) end,
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue