Mercurial > boomslang
comparison pyntnclick/state.py @ 808:d99400fcd624 pyntnclick
Avoid setting Thing state twice and empty state at all.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sun, 27 Jan 2013 16:24:22 +0200 |
parents | bcc9277a23e6 |
children | eed75a1d50c4 |
comparison
equal
deleted
inserted
replaced
807:642564a3bedf | 808:d99400fcd624 |
---|---|
260 self.state = None # set this with set_state if required | 260 self.state = None # set this with set_state if required |
261 | 261 |
262 def set_state(self, state): | 262 def set_state(self, state): |
263 """Set the state object and initialize if needed""" | 263 """Set the state object and initialize if needed""" |
264 self.state = state | 264 self.state = state |
265 self.state.initialize_state(self.state_key, self.INITIAL_DATA) | 265 if self.state_key is None: |
266 assert self.INITIAL_DATA is None, ( | |
267 "Can't provide self.INITIAL_DATA without self.state_key.") | |
268 if self.INITIAL_DATA is not None: | |
269 self.state.initialize_state(self.state_key, self.INITIAL_DATA) | |
266 | 270 |
267 def set_data(self, key, value): | 271 def set_data(self, key, value): |
268 if self.state: | 272 if self.state: |
269 self.state.set_data(self.state_key, key, value) | 273 self.state.set_data(self.state_key, key, value) |
270 | 274 |
484 assert self.scene is None | 488 assert self.scene is None |
485 self.scene = scene | 489 self.scene = scene |
486 if self.folder is None: | 490 if self.folder is None: |
487 self.folder = scene.FOLDER | 491 self.folder = scene.FOLDER |
488 self.game = scene.game | 492 self.game = scene.game |
489 self.set_state(self.game.data) | |
490 for interact in self.interacts.itervalues(): | 493 for interact in self.interacts.itervalues(): |
491 interact.set_thing(self) | 494 interact.set_thing(self) |
492 self.set_interact() | 495 self.set_interact() |
493 | 496 |
494 def set_interact(self): | 497 def set_interact(self): |