project-witchy/imperium-porcorum.love/scenes/levels/players.lua

93 lines
1.9 KiB
Lua

local PlayerManager = Object:extend()
local Obj = require "scenes.levels.entities"
function PlayerManager:new(scene)
self.scene = scene
self.players = {}
self.startx, self.starty = self.scene.world:getStartPosition()
end
-- PLAYER FUNCTIONS
-- Handle virtual players
-- TODO: Gérer la manière dont le joueur va avoir une équipe de cochons
function PlayerManager:addPlayer(pigID)
-- Enregistrer le joueur n'est pas le rajouter à une liste des objets qui existe,
-- mais juste insérer ses informations les plus importantes afin d'aider le jeu
-- à pouvoir le reconstruire.
local play = {}
play.pigID = pigID
play.isDead = 0
table.insert(self.players, play)
end
function PlayerManager:spawnPlayer(playerID)
local play = self.players[playerID]
--Obj.Player(self.scene.world, self.startx, self.starty, playerID)
--self.activePlayer = playerID
end
function PlayerManager:getPlayers()
local itemList = self.scene.world:getActors()
local playerList = {}
for i,v in ipairs(itemList) do
if (v.playerID > 0) then
table.insert(playerList, v)
end
end
return playerList
end
function PlayerManager:getPlayerByID(id)
local itemList = self.scene.world:getActors()
local player
if (id == nil) then
return nil
--error("You must have an ID to search")
end
for i,v in ipairs(itemList) do
if (v.playerID == id) then
player = v
end
end
return player
end
function PlayerManager:playerExist(id)
return (self.players[id] ~= nil)
end
function PlayerManager:playerHaveObject(id)
player = self:getPlayerByID(id)
if (player == nil) then
return false
else
return true
end
end
-- UPDATE FUNCTIONS
-- Update the death timer and respawn the player when it's done
function PlayerManager:update(dt)
end
-- DRAW FUNCTIONS
-- Functions made to draw the HUD
function PlayerManager:drawHUD(dt)
end
return PlayerManager