class ObjectState(dict): """ """ def __init__(self, o, **kwargs): self.image = kwargs.get("image", o.image) self.color = kwargs.get("color", o.get_color()) self.layer = kwargs.get("layer", o.get_layer()) self.size = kwargs.get("size", o.get_size()) self.position = kwargs.get("position", o.get_position()) print "ObjectState size: ", self.size print "ObjectState pos: ", self.position def keys(self): return ["top", "right", "bottom", "left", "centerx", "centery", "width", "height", "image", "color", "layer"] def items(self): items = [("layer", self.layer), ("color", self.color), ("image", self.image)] items.extend(self.size.items()) items.extend(self.position.items()) return items def __getitem__(self, key): if key in ["top", "right", "bottom", "left", "centerx", "centery"]: return self.position.get(key) elif key in ["width", "height"]: return self.size.get(key) elif key == "image": return self.image elif key == "color": return self.color elif key == "layer": return self.layer elif key == "size": return self.size else: return None def __setitem__(self, key, value): if key in ["top", "right", "bottom", "left", "centerx", "centery"]: self.position[key] = value elif key in ["width", "height"]: self.size[key] = value elif key == "image": self.image = value elif key == "color": self.color = value elif key == "layer": self.layer = value else: return False def __class__(self): return DictType