diff src/parpg/gamemodel.py @ 182:59c9ce2b8351

PARPG now works with, and needs Fife 0.3.3.
author KarstenBock@gmx.net
date Tue, 11 Oct 2011 14:47:37 +0200
parents 097782ae9c77
children 8cc26e89398c
line wrap: on
line diff
--- a/src/parpg/gamemodel.py	Mon Oct 10 15:13:56 2011 +0200
+++ b/src/parpg/gamemodel.py	Tue Oct 11 14:47:37 2011 +0200
@@ -94,12 +94,7 @@
         self.dialogue_directory = settings.parpg.DialoguesPath
         self.dialogues = {}
         self.agent_import_files = {}
-        self.obj_loader = XMLObjectLoader(
-                                          self.engine.getImagePool(), 
-                                          self.engine.getAnimationPool(), 
-                                          self.engine.getModel(),
-                                          self.engine.getVFS() 
-                                          )
+        self.obj_loader = XMLObjectLoader(self.engine)
 
     def checkAttributes(self, attributes, template):
         """Checks for attributes that where not given in the map file
@@ -134,7 +129,9 @@
                 id_number += 1
                 if id_number > self.MAX_ID_NUMBER:
                     raise ValueError(
-                        "Number exceeds MAX_ID_NUMBER:" + str(self.MAX_ID_NUMBER))
+                        "Number exceeds MAX_ID_NUMBER:" + 
+                        str(self.MAX_ID_NUMBER)
+                    )
             
             ID = ID + "_" + str(id_number)
         return ID
@@ -207,7 +204,8 @@
          
     def teleport(self, agent, position):
         """Called when a an agent is moved instantly to a new position. 
-        The setting of position may wan to be created as its own method down the road.
+        The setting of position may wan to be created as its own method down 
+        the road.
         @type position: String Tuple
         @param position: X,Y coordinates passed from engine.changeMap
         @return: fife.Location"""
@@ -303,7 +301,8 @@
            and agent_values["Entity"]["graphics"].has_key("gfx"): 
             object_model = agent_values["Entity"]["graphics"]["gfx"]
         elif agent_values.has_key("Template"):
-            object_model = self.object_db[agent_values["Template"]]["graphics"]["gfx"]
+            template = self.object_db[agent_values["Template"]]
+            object_model = template["graphics"]["gfx"]
         else:
             object_model = self.GENERIC_ITEM_GFX
         import_file = self.agent_import_files[object_model]
@@ -427,7 +426,8 @@
             entity_data["containable"]["item_type"] = template
             
                        
-        obj = self.createMapObject(self.active_map.agent_layer, entity_data, inst_id, world)
+        obj = self.createMapObject(self.active_map.agent_layer, 
+                                   entity_data, inst_id, world)
 
         if agent.has_key("Inventory"):
             inv = agent["Inventory"]
@@ -440,12 +440,16 @@
                     item_type = data["type"]
                     item_data = {}
                     item_data = self.checkAttributes(item_data, item_type)
-                    if item_data.has_key("containable") and item_data.has_key("equipable"):
+                    if (item_data.has_key("containable") and 
+                        item_data.has_key("equipable")):
                         item = self.createItem(
                             self.createUniqueID(data["ID"]), 
                             item_data, world, item_type)
                     else:
-                        raise Exception("Item %s is not containable or equipable." % item_type)
+                        raise Exception(
+                            "Item %s is not containable or equipable." % 
+                            item_type
+                        )
                 else:
                     identifier = data["ID"]
                     if self.game_state.hasObject(identifier):
@@ -533,7 +537,8 @@
         self.active_map.addPC()
         #self.game_state.getObjectById("PlayerCharacter").fifeagent.start()
         if agent.has_key("PeopleKnown"):
-            self.game_state.getObjectById("PlayerCharacter").fifeagent.people_i_know = agent["PeopleKnown"]
+            player = self.game_state.getObjectById("PlayerCharacter")
+            player.fifeagent.people_i_know = agent["PeopleKnown"]
                       
     def changeMap(self, map_name, target_position = None):
         """Registers for a map change on the next pump().
@@ -607,9 +612,10 @@
         # For now we copy the PlayerCharacter, 
         # in the future we will need to copy
         # PlayerCharacter specifics between the different PlayerCharacter's
-        self.game_state.getObjectById("PlayerCharacter").fifeagent = player_char
-        self.game_state.getObjectById("PlayerCharacter").fifeagent.setup()        
-        self.game_state.getObjectById("PlayerCharacter").fifeagent.behaviour.speed = self.settings.parpg.PCSpeed
+        player = self.game_state.getObjectById("PlayerCharacter")
+        player.fifeagent = player_char
+        player.fifeagent.setup()        
+        player.fifeagent.behaviour.speed = self.settings.parpg.PCSpeed
 
 
     def addObject(self, layer, obj):
@@ -625,7 +631,8 @@
                                             self.game_state.current_map_name) 
         if ref is None:
             # no, add it to the game state
-            self.game_state.addObject(obj.general.identifier, self.game_state.current_map_name, obj)
+            self.game_state.addObject(obj.general.identifier, 
+                                      self.game_state.current_map_name, obj)
         else:
             # yes, use the current game state data
             obj.fifeagent.pos.X = ref.X
@@ -667,10 +674,11 @@
            @type position: fife.ScreenPoint
            @param position: Screen position to move to
            @return: None"""
+        player = self.game_state.getObjectById("PlayerCharacter")
         if(self.pc_run == 1):
-            self.game_state.getObjectById("PlayerCharacter").fifeagent.behaviour.run(position)
+            player.fifeagent.behaviour.run(position)
         else:
-            self.game_state.getObjectById("PlayerCharacter").fifeagent.behaviour.walk(position)
+            player.fifeagent.behaviour.walk(position)
         
     def teleportAgent(self, agent, position):
         """Code called when an agent should teleport to another location