Mercurial > fife-parpg
diff demos/rio_de_hola/scripts/agents/agent.py @ 378:64738befdf3b
bringing in the changes from the build_system_rework branch in preparation for the 0.3.0 release. This commit will require the Jan2010 devkit. Clients will also need to be modified to the new way to import fife.
author | vtchill@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Mon, 11 Jan 2010 23:34:52 +0000 |
parents | |
children | 70697641fca3 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/demos/rio_de_hola/scripts/agents/agent.py Mon Jan 11 23:34:52 2010 +0000 @@ -0,0 +1,32 @@ +from fife import fife +from scripts.common.common import ProgrammingError + +class Agent(fife.InstanceActionListener): + def __init__(self, model, agentName, layer, uniqInMap=True): + fife.InstanceActionListener.__init__(self) + self.model = model + self.agentName = agentName + self.layer = layer + if uniqInMap: + self.agent = layer.getInstance(agentName) + self.agent.addActionListener(self) + + def onInstanceActionFinished(self, instance, action): + raise ProgrammingError('No OnActionFinished defined for Agent') + + def start(self): + raise ProgrammingError('No start defined for Agent') + + +def create_anonymous_agents(model, objectName, layer, agentClass): + agents = [] + instances = [a for a in layer.getInstances() if a.getObject().getId() == objectName] + i = 0 + for a in instances: + agentName = '%s:i:%d' % (objectName, i) + i += 1 + agent = agentClass(model, agentName, layer, False) + agent.agent = a + a.addActionListener(agent) + agents.append(agent) + return agents