diff components/container.py @ 62:bf63da4b27f5

Added item_type attribute to the containable component.
author KarstenBock@gmx.net
date Wed, 21 Sep 2011 15:05:12 +0200
parents ff3e395abf91
children e856b604b650
line wrap: on
line diff
--- a/components/container.py	Sun Sep 18 16:26:12 2011 +0200
+++ b/components/container.py	Wed Sep 21 15:05:12 2011 +0200
@@ -64,25 +64,39 @@
             total_weight += child.weight
     return total_weight
 
-def get_item(container, slot):
-    """Returns the item that is in the slot."""
-    if len(container.children) >= (slot + 1):
-        return container.children[slot]
+def get_item(container, slot_or_type):
+    """Returns the item that is in the slot, or has the given type."""
+    if type(slot_or_type) == int:
+        if len(container.children) >= (slot_or_type + 1):
+            return container.children[slot_or_type]
+    else:
+        for item in container.children:
+            if child and if child.type == slot_or_type:
+                return child
+                
     return None
 
-def remove_item(container, slot):
-    """Removes the item at the given slot."""
-    item = get_item(container, slot)
+def remove_item(container, slot_or_type):
+    """Removes the item at the given slot, or with the given type."""
+    if type(slot_or_type) == int:
+        item = get_item(container, slot_or_type)
+        if item:
+            container.children[slot_or_type] = None
+            item.container = None
+            item.slot = -1
+    else:
+        for item in container.children:
+            if child and if child.type == slot_or_type:
+                container.children[child.slot] = None
+                child.container = None
+                child.slot = -1
+
+def take_item(container, slot_or_type):
+    """Moves the item at the given slot, or with the given type,
+    out of the container and returns it."""
+    item = get_item(container, slot_or_type)
     if item:
-        container.children[slot] = None
-        item.container = None
-        item.slot = -1
-
-def take_item(container, slot):
-    """Moves the item at the given slot out of the container and returns it."""
-    item = get_item(container, slot)
-    if item:
-        remove_item(container, slot)
+        remove_item(container, slot_or_type)
     return item
 
 def put_item(container, item, slot=-1):