changeset 212:e768056b0588

Refactor tile image loading stuff. More magic is good, right?
author Jeremy Thurgood <firxen@gmail.com>
date Wed, 14 Sep 2011 21:12:20 +0200
parents 077626113593
children 7a9be9add4c7
files mamba/data.py mamba/mutators.py mamba/snake.py mamba/sprites.py
diffstat 4 files changed, 15 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/data.py	Wed Sep 14 21:01:20 2011 +0200
+++ b/mamba/data.py	Wed Sep 14 21:12:20 2011 +0200
@@ -50,3 +50,8 @@
         image = mutator(image)
     MUTATED_IMAGES[key] = image
     return image
+
+
+def load_tile_image(image_name, tileset='common', mutators=()):
+    filename = "tiles/%s/%s.png" % (tileset, image_name)
+    return load_image(filename, mutators)
--- a/mamba/mutators.py	Wed Sep 14 21:01:20 2011 +0200
+++ b/mamba/mutators.py	Wed Sep 14 21:12:20 2011 +0200
@@ -4,7 +4,7 @@
 from pygame.locals import BLEND_MULT
 from pygame.surface import Surface
 
-from mamba.data import load_image
+from mamba.data import load_tile_image
 
 
 class Mutator(object):
@@ -45,12 +45,12 @@
 class Overlay(Mutator):
     """Overlay another image on top of the given one."""
 
-    def __init__(self, filename, blend=0):
-        super(Overlay, self).__init__(self.overlay, filename, blend)
+    def __init__(self, image_name, tileset="common", blend=0):
+        super(Overlay, self).__init__(self.overlay, image_name, tileset, blend)
 
-    def overlay(self, image, filename, blend):
+    def overlay(self, image, image_name, tileset, blend):
         image = image.copy()
-        overlay = load_image(filename)
+        overlay = load_tile_image(image_name, tileset)
         image.blit(overlay, (0, 0), None, blend)
         return image
 
--- a/mamba/snake.py	Wed Sep 14 21:01:20 2011 +0200
+++ b/mamba/snake.py	Wed Sep 14 21:12:20 2011 +0200
@@ -189,8 +189,8 @@
 class Head(Segment):
     CLOSED = "snake-head"
     OPEN = "snake-head-mouth-open-r"
-    EYE = mutators.Overlay("tiles/common/snake/snake-head-eye-r.png")
-    TONGUE = mutators.Overlay("tiles/common/snake/snake-head-tongue-r.png")
+    EYE = mutators.Overlay("snake/snake-head-eye-r")
+    TONGUE = mutators.Overlay("snake/snake-head-tongue-r")
 
     is_head = True
 
--- a/mamba/sprites.py	Wed Sep 14 21:01:20 2011 +0200
+++ b/mamba/sprites.py	Wed Sep 14 21:12:20 2011 +0200
@@ -1,7 +1,7 @@
 from pygame.sprite import Sprite
 from pygame import Rect
 
-from mamba.data import load_image
+from mamba.data import load_tile_image
 from mamba.constants import TILE_SIZE, UP, DOWN, LEFT, RIGHT
 from mamba import mutators
 
@@ -14,8 +14,7 @@
 
 
 def colour_with_fittings(image_name, tileset, colour):
-    fittings_mutator = mutators.Overlay(
-            "tiles/%s/%s-fittings.png" % (tileset, image_name))
+    fittings_mutator = mutators.Overlay("%s-fittings" % (image_name,), tileset)
     return image_name, (COLOURS[colour], fittings_mutator)
 
 
@@ -105,8 +104,7 @@
             self.image = self.load_image(image_name, mutators=mutators)
 
     def load_image(self, image_name, mutators=()):
-        return load_image('tiles/%s/%s.png' % (self.tileset, image_name),
-                          mutators)
+        return load_tile_image(image_name, self.tileset, mutators)
 
     def set_tile_pos(self, tile_pos):
         self.tile_pos = tile_pos