| 123456789101112131415161718192021222324 |
- BattleObjectPool = {}
- function BattleObjectPool.New(onCreate)
- local o = {}
- setmetatable(o, BattleObjectPool)
- BattleObjectPool.__index = BattleObjectPool
- o.buffer = {}
- o.size = 0
- o.onCreate = onCreate
- return o
- end
- function BattleObjectPool:Get(...)
- local e = self.buffer[self.size]
- if not e then
- return self.onCreate(...)
- end
- self.size = self.size - 1
- return e
- end
- function BattleObjectPool:Put(item)
- self.size = self.size + 1
- self.buffer[self.size] = item
- end
|