# HG changeset patch # User Jeremy Thurgood # Date 1378586356 -7200 # Node ID f735665c359ecf532fdc15bb0cfd9249021eeddd # Parent 35168dbf76bdb150aeb16a81c8ac48ebaf019119 Only save state when PuzzleDoor is activated, not on update. diff -r 35168dbf76bd -r f735665c359e nagslang/game_object.py --- a/nagslang/game_object.py Sat Sep 07 22:38:32 2013 +0200 +++ b/nagslang/game_object.py Sat Sep 07 22:39:16 2013 +0200 @@ -400,8 +400,12 @@ ) def _post_door_event(self, protagonist): + self.door_opened() DoorEvent.post(self.destination, self.dest_pos) + def door_opened(self): + pass + class Door(BaseDoor): def __init__(self, space, position, destination, dest_pos, angle): @@ -458,19 +462,18 @@ @property def is_open(self): - return self._stored_state['is_open'] + if self._stored_state['is_open']: + return True + return self.puzzler.glue.get_state_of(self._key_state) + + def door_opened(self): + self._stored_state['is_open'] = True def set_stored_state_dict(self, stored_state): self._stored_state = stored_state self._stored_state.setdefault('is_open', False) return True - def update(self, dt): - if not self.is_open: - self._stored_state['is_open'] = self.puzzler.glue.get_state_of( - self._key_state) - super(PuzzleDoor, self).update(dt) - @classmethod def requires(cls): return [("name", "string"), ("position", "coordinates"),