view src/parpg/world.py @ 80:84d03dc70904

Added code that checks if the object is the player so certain actions (talk, attack) will not appear in the menu.
author KarstenBock@gmx.net
date Thu, 08 Sep 2011 18:36:40 +0200
parents c25c734bd2a7
children b764229a0fad
line wrap: on
line source

from bGrease.world import *
from bGrease.component import Component

from parpg.mode import FifeMode
from parpg import components

class World(FifeMode, BaseWorld):

    def __init__(self):
        FifeMode.__init__(self)
        BaseWorld.__init__(self)
        
    def configure(self):
        """Configure the game world's components, systems and renderers"""
        self.components.characterstats = components.CharacterStatistics()
        self.components.containable = components.Containable()
        self.components.container = components.Container()
        self.components.description = components.Description()
        self.components.dialogue = components.Dialogue()
        self.components.fifeagent = components.FifeAgent()
        self.components.lockable = components.Lockable()
        self.components.usable = components.Usable()
        
        #WORKAROUND: To get rid of exception in gamescenecontroller
        self.components.change_map = Component()
    
    def pump(self, dt):
        for component in self.components:
            if hasattr(component, "step"):
                component.step(dt)
        for system in self.systems:
            if hasattr(system, "step"):
                system.step(dt)