Mercurial > pyntnclick
comparison pyntnclick/state.py @ 759:386475464202 pyntnclick
Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 26 Jan 2013 13:00:31 +0200 |
parents | 8ac05c038e73 |
children | 683ff96d413e |
comparison
equal
deleted
inserted
replaced
758:f4853f817a7a | 759:386475464202 |
---|---|
48 def __init__(self): | 48 def __init__(self): |
49 self._game_state = {'inventories': {'main': []}} | 49 self._game_state = {'inventories': {'main': []}} |
50 | 50 |
51 def __getitem__(self, key): | 51 def __getitem__(self, key): |
52 return self._game_state[key] | 52 return self._game_state[key] |
53 | |
54 def __contains__(self, key): | |
55 return key in self._game_state | |
53 | 56 |
54 def get_all_gizmo_data(self, state_key): | 57 def get_all_gizmo_data(self, state_key): |
55 """Get all state for a gizmo - returns a dict""" | 58 """Get all state for a gizmo - returns a dict""" |
56 return self[state_key] | 59 return self[state_key] |
57 | 60 |
441 self.folder = scene.FOLDER | 444 self.folder = scene.FOLDER |
442 self.game = scene.game | 445 self.game = scene.game |
443 self.set_state(self.game.data) | 446 self.set_state(self.game.data) |
444 for interact in self.interacts.itervalues(): | 447 for interact in self.interacts.itervalues(): |
445 interact.set_thing(self) | 448 interact.set_thing(self) |
446 self.set_interact(self.INITIAL) | 449 self.set_interact() |
447 | 450 |
448 def set_interact(self, name): | 451 def set_interact(self): |
452 return self._set_interact(self.select_interact()) | |
453 | |
454 def _set_interact(self, name): | |
449 self.current_interact = self.interacts[name] | 455 self.current_interact = self.interacts[name] |
450 self.rect = self.current_interact.interact_rect | 456 self.rect = self.current_interact.interact_rect |
451 if self.scene: | 457 if self.scene: |
452 self._fix_rect() | 458 self._fix_rect() |
453 assert self.rect is not None, name | 459 assert self.rect is not None, name |
460 | |
461 def select_interact(self): | |
462 return self.INITIAL | |
454 | 463 |
455 def contains(self, pos): | 464 def contains(self, pos): |
456 if hasattr(self.rect, 'collidepoint'): | 465 if hasattr(self.rect, 'collidepoint'): |
457 return self.rect.collidepoint(pos) | 466 return self.rect.collidepoint(pos) |
458 else: | 467 else: |