| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- Players = class()
- function Players:init()
- self.players = {}
- end
- function Players:update()
- table.with(self.players, 'update')
- end
- function Players:keypressed(...)
- local p = ctx.id and self:get(ctx.id)
- if p then
- p:keypressed(...)
- end
- end
- function Players:keyreleased(key)
- local p = ctx.id and self:get(ctx.id)
- if p then
- p:keyreleased(key)
- end
- end
- function Players:mousepressed(x, y, b)
- local p = ctx.id and self:get(ctx.id)
- if p then
- p:mousepressed(x, y, b)
- end
- end
- function Players:gamepadpressed(gamepad, button)
- local p = ctx.id and self:get(ctx.id)
- if p then
- p:gamepadpressed(gamepad, button)
- end
- end
- function Players:gamepadaxis(gamepad, axis, value)
- local p = ctx.id and self:get(ctx.id)
- if p then
- p:gamepadaxis(gamepad, axis, value)
- end
- end
- function Players:paused()
- table.with(self.players, 'paused')
- end
- function Players:add(id, vars)
- local player = self:get(id)
- if player then return player end
- player = Player()
- player.id = id
- player.team = 1
- table.merge(vars, player)
- f.exe(player.activate, player)
- self.players[id] = player
- return player
- end
- function Players:remove(id)
- local player = self.players[id]
- if not player then return end
- f.exe(player.deactivate, player)
- self.players[id] = nil
- return player
- end
- function Players:get(id, t)
- if not id or not self.players[id] then return nil end
- return self.players[id]
- end
- function Players:each(fn)
- table.each(self.players, function(player, id)
- fn(self:get(id))
- end)
- end
|