changeset 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
files gamelib/state.py
diffstat 1 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/state.py	Sun Aug 29 13:27:29 2010 +0200
+++ b/gamelib/state.py	Sun Aug 29 15:15:59 2010 +0200
@@ -112,6 +112,7 @@
 
     def add_item(self, item):
         self.items[item.name] = item
+        item.set_state(self)
 
     def load_scenes(self, modname):
         mod = __import__("gamelib.scenes.%s" % (modname,), fromlist=[modname])
@@ -505,16 +506,17 @@
     # image for inventory
     INVENTORY_IMAGE = None
 
+    # name of item
+    NAME = None
+
     # name for interactions (i.e. def interact_with_<TOOL_NAME>)
     TOOL_NAME = None
 
-    # name for interactions (i.e. def interact_with_<TOOL_NAME>)
-    NAME = None
-
     # set to instance of CursorSprite
     CURSOR = None
 
     def __init__(self, name=None):
+        self.state = None
         self.name = self.NAME
         if name is not None:
             self.name = name
@@ -523,6 +525,10 @@
             self.tool_name = self.TOOL_NAME
         self.inventory_image = get_image('items', self.INVENTORY_IMAGE)
 
+    def set_state(self, state):
+        assert self.state is None
+        self.state = state
+
     def get_inventory_image(self):
         return self.inventory_image
 
@@ -551,8 +557,6 @@
         return cls._counter - 1
 
     def __init__(self, name=None):
+        super(CloneableItem, self).__init__(name)
         my_count = self._get_new_id()
-        super(CloneableItem, self).__init__("%s.%s" % (name, my_count))
-        self.tool_name = name
-        if self.TOOL_NAME is not None:
-            self.tool_name = self.TOOL_NAME
+        self.name = "%s.%s" % (self.name, my_count)