Mercurial > parpg-core
comparison src/parpg/gamemodel.py @ 120:1703dbb4fefb
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 | 3564a46544bc |
children | 21dd4da40eab |
comparison
equal
deleted
inserted
replaced
119:3564a46544bc | 120:1703dbb4fefb |
---|---|
435 | 435 |
436 if (map_obj.getAction('default')): | 436 if (map_obj.getAction('default')): |
437 target = fife.Location(self.active_map.agent_layer) | 437 target = fife.Location(self.active_map.agent_layer) |
438 inst.act('default', target, True) | 438 inst.act('default', target, True) |
439 | 439 |
440 | 440 if entity_data.has_key("behaviour"): |
441 if entity_data["fifeagent"].has_key("behaviour"): | 441 entity_data["fifeagent"]["behaviour"] = \ |
442 entity_data["fifeagent"]["behaviour"] = getattr(behaviours, entity_data["fifeagent"]["behaviour"])() | 442 getattr(behaviours, |
443 entity_data["behaviour"]["behaviour_type"])() | |
443 else: | 444 else: |
444 entity_data["fifeagent"]["behaviour"] = behaviours.Base() | 445 entity_data["fifeagent"]["behaviour"] = behaviours.Base() |
445 if self.dialogues.has_key(inst_id): | 446 if self.dialogues.has_key(inst_id): |
446 entity_data["dialogue"] = {} | 447 entity_data["dialogue"] = {} |
447 entity_data["dialogue"]["dialogue"] = self.dialogues[inst_id] | 448 entity_data["dialogue"]["dialogue"] = self.dialogues[inst_id] |
672 agent_data = self.agents[map_id][identifier] | 673 agent_data = self.agents[map_id][identifier] |
673 | 674 |
674 entity_data = {} | 675 entity_data = {} |
675 entity_data["general"] = {"identifier": identifier} | 676 entity_data["general"] = {"identifier": identifier} |
676 for name, component in components.components.iteritems(): | 677 for name, component in components.components.iteritems(): |
677 if hasattr(entity, name): | 678 if getattr(entity, name): |
678 comp_data = {} | 679 comp_data = {} |
679 if name == "fifeagent": | 680 if name == "fifeagent": |
680 if agent_data["Entity"].has_key("fifeagent"): | 681 if agent_data["Entity"].has_key("fifeagent"): |
681 comp_data = agent_data["Entity"]["fifeagent"] | 682 comp_data = agent_data["Entity"]["fifeagent"] |
682 if entity.fifeagent.layer: | 683 if entity.fifeagent.layer: |
699 comp_data[field] = getattr(comp_vals, field) | 700 comp_data[field] = getattr(comp_vals, field) |
700 except AttributeError: | 701 except AttributeError: |
701 #The entity doesn't have this specific value, | 702 #The entity doesn't have this specific value, |
702 #ignore it | 703 #ignore it |
703 pass | 704 pass |
704 entity_data[name] = comp_data | 705 if comp_data: |
706 entity_data[name] = comp_data | |
705 agent_data["Entity"] = entity_data | 707 agent_data["Entity"] = entity_data |
706 | 708 |
707 | 709 |
708 def getAgentImportFiles(self): | 710 def getAgentImportFiles(self): |
709 """Searches the agents directory for import files """ | 711 """Searches the agents directory for import files """ |