Mercurial > pyntnclick
comparison gamelib/state.py @ 193:738608e90e9c
CloneableItem tweaks and a usable laser welder. zOMG!
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Wed, 25 Aug 2010 21:59:26 +0200 |
parents | 278774b31d3c |
children | 9531a22721d1 |
comparison
equal
deleted
inserted
replaced
192:b1f4262139e7 | 193:738608e90e9c |
---|---|
516 if not self.is_interactive(): | 516 if not self.is_interactive(): |
517 return | 517 return |
518 if item is None: | 518 if item is None: |
519 return self.interact_without() | 519 return self.interact_without() |
520 else: | 520 else: |
521 handler = getattr(self, 'interact_with_' + item.name, None) | 521 handler = getattr(self, 'interact_with_' + item.tool_name, None) |
522 if handler is not None: | 522 if handler is not None: |
523 return handler(item) | 523 return handler(item) |
524 else: | 524 else: |
525 return self.interact_default(item) | 525 return self.interact_default(item) |
526 | 526 |
551 # image for inventory | 551 # image for inventory |
552 INVENTORY_IMAGE = None | 552 INVENTORY_IMAGE = None |
553 | 553 |
554 def __init__(self, name): | 554 def __init__(self, name): |
555 self.name = name | 555 self.name = name |
556 self.tool_name = name | |
556 self.inventory_image = get_image('items', self.INVENTORY_IMAGE) | 557 self.inventory_image = get_image('items', self.INVENTORY_IMAGE) |
557 # TODO: needs cursor | 558 # TODO: needs cursor |
558 | 559 |
559 def get_inventory_image(self): | 560 def get_inventory_image(self): |
560 return self.inventory_image | 561 return self.inventory_image |
561 | 562 |
562 def interact(self, tool, state): | 563 def interact(self, tool, state): |
563 handler = getattr(self, 'interact_with_' + tool.name, None) | 564 handler = getattr(self, 'interact_with_' + tool.name, None) |
564 inverse_handler = getattr(tool, 'interact_with_' + self.name, None) | 565 inverse_handler = getattr(tool, 'interact_with_' + self.tool_name, None) |
565 if handler is not None: | 566 if handler is not None: |
566 return handler(tool, state) | 567 return handler(tool, state) |
567 elif inverse_handler is not None: | 568 elif inverse_handler is not None: |
568 return inverse_handler(self, state) | 569 return inverse_handler(self, state) |
569 else: | 570 else: |
578 | 579 |
579 def __init__(self, name): | 580 def __init__(self, name): |
580 my_count = CloneableItem._counter | 581 my_count = CloneableItem._counter |
581 CloneableItem._counter += 1 | 582 CloneableItem._counter += 1 |
582 super(CloneableItem, self).__init__("%s.%s" % (name, my_count)) | 583 super(CloneableItem, self).__init__("%s.%s" % (name, my_count)) |
584 self.tool_name = name |