Mercurial > fife-parpg
comparison demos/rpg/scripts/gamecontroller.py @ 536:1afe46247ab1
Some misc code cleanup.
Started using the log manager instead of printing directly to console.
Added ObjectAlreadyInSceneError exception.
author | prock@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Mon, 31 May 2010 20:25:46 +0000 |
parents | 9fbe3dce925a |
children | 764510a6d2f9 |
comparison
equal
deleted
inserted
replaced
535:9fbe3dce925a | 536:1afe46247ab1 |
---|---|
33 | 33 |
34 from scripts.scene import Scene | 34 from scripts.scene import Scene |
35 from scripts.guicontroller import GUIController | 35 from scripts.guicontroller import GUIController |
36 from scripts.actors.baseactor import TalkAction, PickUpItemAction | 36 from scripts.actors.baseactor import TalkAction, PickUpItemAction |
37 from scripts.objects.baseobject import GameObjectTypes | 37 from scripts.objects.baseobject import GameObjectTypes |
38 from scripts.misc.exceptions import ObjectNotFoundError | 38 from scripts.misc.exceptions import ObjectNotFoundError, ObjectAlreadyInSceneError |
39 | 39 |
40 | 40 |
41 class KeyState(object): | 41 class KeyState(object): |
42 def __init__(self): | 42 def __init__(self): |
43 self._keystate = { } | 43 self._keystate = { } |
93 self._lastmousepos = (clickpoint.x, clickpoint.y) | 93 self._lastmousepos = (clickpoint.x, clickpoint.y) |
94 self._gamecontroller.scene.player.walk( self._gamecontroller.scene.getLocationAt(clickpoint) ) | 94 self._gamecontroller.scene.player.walk( self._gamecontroller.scene.getLocationAt(clickpoint) ) |
95 actor_instances = self._gamecontroller.scene.getInstancesAt(clickpoint, self._gamecontroller.scene.actorlayer) | 95 actor_instances = self._gamecontroller.scene.getInstancesAt(clickpoint, self._gamecontroller.scene.actorlayer) |
96 item_instances = self._gamecontroller.scene.getInstancesAt(clickpoint, self._gamecontroller.scene.itemlayer) | 96 item_instances = self._gamecontroller.scene.getInstancesAt(clickpoint, self._gamecontroller.scene.itemlayer) |
97 if actor_instances: | 97 if actor_instances: |
98 if actor_instances[0].getId() == "player": | |
99 return | |
100 | |
98 obj = self._gamecontroller.scene.objectlist[actor_instances[0].getId()] | 101 obj = self._gamecontroller.scene.objectlist[actor_instances[0].getId()] |
99 if obj.type == GameObjectTypes["QUESTGIVER"]: | 102 if obj.type == GameObjectTypes["QUESTGIVER"]: |
100 action = TalkAction(self._gamecontroller.scene.player, obj) | 103 action = TalkAction(self._gamecontroller.scene.player, obj) |
101 self._gamecontroller.scene.player.nextaction = action | 104 self._gamecontroller.scene.player.nextaction = action |
102 | 105 |
106 action = PickUpItemAction(self._gamecontroller.scene.player, obj) | 109 action = PickUpItemAction(self._gamecontroller.scene.player, obj) |
107 self._gamecontroller.scene.player.nextaction = action | 110 self._gamecontroller.scene.player.nextaction = action |
108 | 111 |
109 | 112 |
110 if (event.getButton() == fife.MouseEvent.RIGHT): | 113 if (event.getButton() == fife.MouseEvent.RIGHT): |
111 instances = self._gamecontroller.scene.getInstancesAt(clickpoint) | 114 instances = self._gamecontroller.scene.getInstancesAt(clickpoint, self._gamecontroller.scene.actorlayer) |
112 print "selected instances on actor layer: ", [i.getId() for i in instances] | |
113 if instances: | 115 if instances: |
114 #do something | 116 self._gamecontroller.logger.log_debug("Selected instance on actor layer: " + instances[0].getId()) |
115 pass | 117 |
116 | 118 |
117 def mouseReleased(self, event): | 119 def mouseReleased(self, event): |
118 pass | 120 pass |
119 | 121 |
120 def mouseMoved(self, event): | 122 def mouseMoved(self, event): |
126 | 128 |
127 pt = fife.ScreenPoint(event.getX(), event.getY()) | 129 pt = fife.ScreenPoint(event.getX(), event.getY()) |
128 actor_instances = self._gamecontroller.scene.getInstancesAt(pt, self._gamecontroller.scene.actorlayer) | 130 actor_instances = self._gamecontroller.scene.getInstancesAt(pt, self._gamecontroller.scene.actorlayer) |
129 item_instances = self._gamecontroller.scene.getInstancesAt(pt, self._gamecontroller.scene.itemlayer) | 131 item_instances = self._gamecontroller.scene.getInstancesAt(pt, self._gamecontroller.scene.itemlayer) |
130 for i in actor_instances: | 132 for i in actor_instances: |
131 renderer.addOutlined(i, 173, 255, 47, 2) | 133 if i.getId() != "player": |
134 renderer.addOutlined(i, 173, 255, 47, 2) | |
132 | 135 |
133 for j in item_instances: | 136 for j in item_instances: |
134 renderer.addOutlined(j, 173, 255, 47, 2) | 137 renderer.addOutlined(j, 255, 173, 47, 2) |
135 | 138 |
136 def mouseEntered(self, event): | 139 def mouseEntered(self, event): |
137 pass | 140 pass |
138 | 141 |
139 def mouseExited(self, event): | 142 def mouseExited(self, event): |
219 elif cmd[1] == "actor": | 222 elif cmd[1] == "actor": |
220 obj = self._scene.loadActor(cmd[2]) | 223 obj = self._scene.loadActor(cmd[2]) |
221 else: | 224 else: |
222 return result | 225 return result |
223 except ObjectNotFoundError, e: | 226 except ObjectNotFoundError, e: |
224 result = "Error while loading object: " + cmd[2] | 227 result = "Error: Cannot load [" + cmd[2] + "]. It could not be found!" |
225 obj = None | 228 obj = None |
226 | 229 |
227 if obj: | 230 if obj: |
228 self._scene.addObjectToScene(obj) | 231 try: |
229 result = "--OK--" | 232 self._scene.addObjectToScene(obj) |
233 result = "--OK--" | |
234 except ObjectAlreadyInSceneError, e: | |
235 result = "Error: [" + cmd[2] + "] is already on the scene." | |
230 | 236 |
231 return result | 237 return result |
232 | 238 |
233 def newGame(self): | 239 def newGame(self): |
234 self._guicontroller.hideMainMenu() | 240 self._guicontroller.hideMainMenu() |
280 def _getKeyState(self): | 286 def _getKeyState(self): |
281 return self._keystate | 287 return self._keystate |
282 | 288 |
283 def _getInstanceRenderer(self): | 289 def _getInstanceRenderer(self): |
284 return self._instancerenderer | 290 return self._instancerenderer |
291 | |
292 def _getLogManager(self): | |
293 return self._application.logger | |
285 | 294 |
286 guicontroller = property(_getGUIController) | 295 guicontroller = property(_getGUIController) |
287 engine = property(_getEngine) | 296 engine = property(_getEngine) |
288 settings = property(_getSettings) | 297 settings = property(_getSettings) |
289 scene = property(_getScene) | 298 scene = property(_getScene) |
290 keystate = property(_getKeyState) | 299 keystate = property(_getKeyState) |
291 instancerenderer = property(_getInstanceRenderer) | 300 instancerenderer = property(_getInstanceRenderer) |
301 logger = property(_getLogManager) |