diff clients/rio_de_hola/scripts/agents/agent.py @ 98:214e3eb81eb2

better structure for techdemo scripts + svn:ignore fixes
author jasoka@33b003aa-7bff-0310-803a-e67f0ece8222
date Mon, 21 Jul 2008 13:46:15 +0000
parents clients/rio_de_hola/scripts/agent.py@4a0efb7baf70
children 9a1529f9625e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/clients/rio_de_hola/scripts/agents/agent.py	Mon Jul 21 13:46:15 2008 +0000
@@ -0,0 +1,32 @@
+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