Mercurial > parpg-source
diff gamemodel.py @ 90:4a8a0cd7f79a
Added Behaviour component.
Fixed updateObjectDB of GameModel storing values about components the Entity doesn't have.
author | KarstenBock@gmx.net |
---|---|
date | Tue, 27 Sep 2011 15:23:43 +0200 |
parents | 939984cff702 |
children | 84b5808d995c |
line wrap: on
line diff
--- a/gamemodel.py Tue Sep 27 14:58:03 2011 +0200 +++ b/gamemodel.py Tue Sep 27 15:23:43 2011 +0200 @@ -437,9 +437,10 @@ target = fife.Location(self.active_map.agent_layer) inst.act('default', target, True) - - if entity_data["fifeagent"].has_key("behaviour"): - entity_data["fifeagent"]["behaviour"] = getattr(behaviours, entity_data["fifeagent"]["behaviour"])() + if entity_data.has_key("behaviour"): + entity_data["fifeagent"]["behaviour"] = \ + getattr(behaviours, + entity_data["behaviour"]["behaviour_type"])() else: entity_data["fifeagent"]["behaviour"] = behaviours.Base() if self.dialogues.has_key(inst_id): @@ -674,7 +675,7 @@ entity_data = {} entity_data["general"] = {"identifier": identifier} for name, component in components.components.iteritems(): - if hasattr(entity, name): + if getattr(entity, name): comp_data = {} if name == "fifeagent": if agent_data["Entity"].has_key("fifeagent"): @@ -701,7 +702,8 @@ #The entity doesn't have this specific value, #ignore it pass - entity_data[name] = comp_data + if comp_data: + entity_data[name] = comp_data agent_data["Entity"] = entity_data