# HG changeset patch # User KarstenBock@gmx.net # Date 1317133779 -7200 # Node ID c0db5f521695dae2de31d023af3560955ccaf371 # Parent f94d4577ca5ed67de5599b97732f495defce720e updateObjectDB of GameModel now uses saveable_fields. diff -r f94d4577ca5e -r c0db5f521695 gamemodel.py --- a/gamemodel.py Tue Sep 27 16:27:36 2011 +0200 +++ b/gamemodel.py Tue Sep 27 16:29:39 2011 +0200 @@ -678,9 +678,22 @@ for name, component in components.components.iteritems(): if getattr(entity, name): comp_data = {} + comp_vals = getattr(entity, name) + #Items that are in containers will be saved with them. + if name == "equipable" and entity.equipable.wearer or \ + name == "containable" and entity.containable.container: + continue + else: + for field in component.saveable_fields: + try: + comp_data[field] = getattr(comp_vals, field) + except AttributeError: + #The entity doesn't have this specific value, + #ignore it + pass + if comp_data: + entity_data[name] = comp_data if name == "fifeagent": - if agent_data["Entity"].has_key("fifeagent"): - comp_data = agent_data["Entity"]["fifeagent"] if entity.fifeagent.layer: layer = entity.fifeagent.layer inst = layer.getInstance(identifier) @@ -694,17 +707,6 @@ elif name == "equip": #TODO: Save Equipment pass - else: - comp_vals = getattr(entity, name) - for field in component.saveable_fields: - try: - comp_data[field] = getattr(comp_vals, field) - except AttributeError: - #The entity doesn't have this specific value, - #ignore it - pass - if comp_data: - entity_data[name] = comp_data agent_data["Entity"] = entity_data