def initAgents(self): """ Initialize agents. """ self.agentlayer = self.map.getLayer('ObjectLayer') self.survivor = Survivor(self.engine, TDS, 'player', self.agentlayer) self.instance_to_agent[self.survivor.agent.getFifeId()] = self.survivor self.survivor.start() self.zombies = create_mob_agents(TDS, self.model, 'zombie', self.agentlayer, Zombie) for zombie in self.zombies: self.instance_to_agent[zombie.agent.getFifeId()] = zombie zombie.aggro(self.survivor) zombie.start()
class World(EventListenerBase): """ The world! """ def __init__(self, engine): super(World, self).__init__(engine, regKeys=True) self.engine = engine self.model = engine.getModel() self.imagepool = self.engine.getImagePool() self.extscheduler = ExtScheduler() self._global_light = DEFAULT_GLOBAL_LIGHT self._survivor_light_node = None self._survivor_light_opts = DEFAULT_SURVIVOR_LIGHT # cursor_name = TDS.get("zombieswtf", "default_crosshair") self.cursor_image = self.imagepool.addResourceFromFile("gui/crosshairs/crosshair6a.png") self.cursor_x_offset = -32 self.cursor_y_offset = -32 self.filename = '' # self.pump_ctr = 0 # for testing purposis # self.instancemenu = None self.instance_to_agent = {} # self.dynamic_widgets = {} # self.light_intensity = 1 # self.light_sources = 0 self.load('maps/snow.xml') self.controller = Controller(self.engine, self.survivor, self) def load(self, filename): self.filename = filename self.reset() self.map = loadMapFile(filename, self.engine, extensions = {'lights': True}) self.maplistener = MapListener(self.map) self.initAgents() self.initCameras() def initAgents(self): """ Initialize agents. """ self.agentlayer = self.map.getLayer('ObjectLayer') self.survivor = Survivor(self.engine, TDS, 'player', self.agentlayer) self.instance_to_agent[self.survivor.agent.getFifeId()] = self.survivor self.survivor.start() self.zombies = create_mob_agents(TDS, self.model, 'zombie', self.agentlayer, Zombie) for zombie in self.zombies: self.instance_to_agent[zombie.agent.getFifeId()] = zombie zombie.aggro(self.survivor) zombie.start() def getInstancesAt(self, clickpoint): """ Query the main camera for instances on our active(agent) layer. """ return self.cameras['main'].getMatchingInstances(clickpoint, self.agentlayer) def getLocationAt(self, clickpoint): """ Query the main camera for the Map location (on the agent layer) that a screen point refers to. """ target_mapcoord = self.cameras['main'].toMapCoordinates(clickpoint, False) target_mapcoord.z = 0 location = fife.Location(self.agentlayer) location.setMapCoordinates(target_mapcoord) return location def onConsoleCommand(self, command): result = '' try: result = str(eval(command)) except Exception, e: result = str(e) return result