Mercurial > pyntnclick
comparison gamelib/state.py @ 490:2e784f978d1a engine_refactor
Add state to Items.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sun, 29 Aug 2010 15:15:59 +0200 |
parents | 463a8d60c73e |
children | 9f488671c02e |
comparison
equal
deleted
inserted
replaced
489:463a8d60c73e | 490:2e784f978d1a |
---|---|
110 def add_detail_view(self, detail_view): | 110 def add_detail_view(self, detail_view): |
111 self.detail_views[detail_view.name] = detail_view | 111 self.detail_views[detail_view.name] = detail_view |
112 | 112 |
113 def add_item(self, item): | 113 def add_item(self, item): |
114 self.items[item.name] = item | 114 self.items[item.name] = item |
115 item.set_state(self) | |
115 | 116 |
116 def load_scenes(self, modname): | 117 def load_scenes(self, modname): |
117 mod = __import__("gamelib.scenes.%s" % (modname,), fromlist=[modname]) | 118 mod = __import__("gamelib.scenes.%s" % (modname,), fromlist=[modname]) |
118 for scene_cls in mod.SCENES: | 119 for scene_cls in mod.SCENES: |
119 self.add_scene(scene_cls(self)) | 120 self.add_scene(scene_cls(self)) |
503 """Base class for inventory items.""" | 504 """Base class for inventory items.""" |
504 | 505 |
505 # image for inventory | 506 # image for inventory |
506 INVENTORY_IMAGE = None | 507 INVENTORY_IMAGE = None |
507 | 508 |
509 # name of item | |
510 NAME = None | |
511 | |
508 # name for interactions (i.e. def interact_with_<TOOL_NAME>) | 512 # name for interactions (i.e. def interact_with_<TOOL_NAME>) |
509 TOOL_NAME = None | 513 TOOL_NAME = None |
510 | 514 |
511 # name for interactions (i.e. def interact_with_<TOOL_NAME>) | |
512 NAME = None | |
513 | |
514 # set to instance of CursorSprite | 515 # set to instance of CursorSprite |
515 CURSOR = None | 516 CURSOR = None |
516 | 517 |
517 def __init__(self, name=None): | 518 def __init__(self, name=None): |
519 self.state = None | |
518 self.name = self.NAME | 520 self.name = self.NAME |
519 if name is not None: | 521 if name is not None: |
520 self.name = name | 522 self.name = name |
521 self.tool_name = name | 523 self.tool_name = name |
522 if self.TOOL_NAME is not None: | 524 if self.TOOL_NAME is not None: |
523 self.tool_name = self.TOOL_NAME | 525 self.tool_name = self.TOOL_NAME |
524 self.inventory_image = get_image('items', self.INVENTORY_IMAGE) | 526 self.inventory_image = get_image('items', self.INVENTORY_IMAGE) |
527 | |
528 def set_state(self, state): | |
529 assert self.state is None | |
530 self.state = state | |
525 | 531 |
526 def get_inventory_image(self): | 532 def get_inventory_image(self): |
527 return self.inventory_image | 533 return self.inventory_image |
528 | 534 |
529 def interact(self, tool, state): | 535 def interact(self, tool, state): |
549 def _get_new_id(cls): | 555 def _get_new_id(cls): |
550 cls._counter += 1 | 556 cls._counter += 1 |
551 return cls._counter - 1 | 557 return cls._counter - 1 |
552 | 558 |
553 def __init__(self, name=None): | 559 def __init__(self, name=None): |
560 super(CloneableItem, self).__init__(name) | |
554 my_count = self._get_new_id() | 561 my_count = self._get_new_id() |
555 super(CloneableItem, self).__init__("%s.%s" % (name, my_count)) | 562 self.name = "%s.%s" % (self.name, my_count) |
556 self.tool_name = name | |
557 if self.TOOL_NAME is not None: | |
558 self.tool_name = self.TOOL_NAME |