Exemplo n.º 1
0
class GameManager:
    def __init__(self):
        self.entityManager = EntityManager()
        self.messageDispatcher = MessageDispatcher(self)
        self.gameTime = GameTime()

    def AddEntity(self, entity):
        self.entityManager.Register(entity)

    def GetEntityName(self, ID):
        return self.entityManager.GetFromID(ID).name

    def GetEntity(self, ID):
        return self.entityManager.GetFromID(ID)

    def Broadcast(self, delay, sender, receiverID, msg, extraInfo):
        log("At loop " + str(self.gameTime.GetLoop()) + ", " +
            str(self.entityManager.GetFromID(sender.GetID()).name) +
            " sent message to " +
            str(self.entityManager.GetFromID(receiverID).name) +
            " with message: " + str(msg) + ". Delay: " + str(delay))
        self.messageDispatcher.DispatchMessage(delay, sender.GetID(),
                                               receiverID, msg, extraInfo)

    def NextTimeStep(self):
        self.gameTime.NextTimestep()

    def HoursTo(self, time):
        return self.gameTime.HoursTo(time)

    def GetTime(self):
        return self.gameTime.GetTime()

    def GetTimeStr(self):
        return self.gameTime.GetTimeStr()

    def ToTimeStr(self, time):
        return self.gameTime.ToTimeStr(time)

    def GetWeekday(self):
        return self.gameTime.GetWeekday()

    def GetWeekdayStr(self):
        return self.gameTime.GetWeekdayStr()

    def NextLoop(self):
        self.gameTime.NextLoop()

    def GetLoop(self):
        return self.gameTime.GetLoop()