comparison mamba/sprites.py @ 168:0fffb97db193

Add name field to sprites for editor
author Neil Muller <drnlmuller@gmail.com>
date Tue, 13 Sep 2011 23:51:49 +0200
parents a904c1c55f92
children d9ee0e50a78f
comparison
equal deleted inserted replaced
167:ce30befccc94 168:0fffb97db193
80 class BaseSprite(Sprite): 80 class BaseSprite(Sprite):
81 tileset = 'common' 81 tileset = 'common'
82 variants_class = InvariantSpriteImageVariants 82 variants_class = InvariantSpriteImageVariants
83 variants = None 83 variants = None
84 84
85 def __init__(self, tileset=None, image_name=None, mutators=()): 85 def __init__(self, tileset=None, image_name=None, name=None,
86 mutators=()):
86 super(BaseSprite, self).__init__() 87 super(BaseSprite, self).__init__()
88 if name is not None:
89 self.name = name
87 if tileset is not None: 90 if tileset is not None:
88 self.tileset = tileset 91 self.tileset = tileset
89 if image_name is not None: 92 if image_name is not None:
90 self.image_name = image_name 93 self.image_name = image_name
91 self.image = self.load_image(image_name, mutators=mutators) 94 self.image = self.load_image(image_name, mutators=mutators)
116 def get_solid(self, snake_mutations): 119 def get_solid(self, snake_mutations):
117 return self.solid 120 return self.solid
118 121
119 122
120 class SingleImageTileSprite(TileSprite): 123 class SingleImageTileSprite(TileSprite):
121
122 image_name = None # subclasses will override this 124 image_name = None # subclasses will override this
125 name = None
123 126
124 def __init__(self, **kw): 127 def __init__(self, **kw):
125 kw.setdefault('image_name', self.image_name) 128 kw.setdefault('image_name', self.image_name)
129 kw.setdefault('name', self.name)
126 super(SingleImageTileSprite, self).__init__(**kw) 130 super(SingleImageTileSprite, self).__init__(**kw)
127 131
128 132
129 class DoorSprite(TileSprite): 133 class DoorSprite(TileSprite):
134 name = 'door'
135
130 def __init__(self, colour, **kw): 136 def __init__(self, colour, **kw):
131 self.colour = colour 137 self.colour = colour
132 image_name = 'door_%s' % (colour,) 138 image_name = 'door_%s' % (colour,)
133 kw.setdefault('image_name', image_name) 139 kw.setdefault('image_name', image_name)
134 super(DoorSprite, self).__init__(**kw) 140 super(DoorSprite, self).__init__(**kw)
137 return self.colour in self.snake_mutations 143 return self.colour in self.snake_mutations
138 144
139 145
140 class EntrySprite(SingleImageTileSprite): 146 class EntrySprite(SingleImageTileSprite):
141 image_name = 'arrow-r' 147 image_name = 'arrow-r'
148 name = 'entrance'
142 149
143 def __init__(self, direction, **kw): 150 def __init__(self, direction, **kw):
144 self.direction = direction 151 self.direction = direction
145 super(EntrySprite, self).__init__(**kw) 152 super(EntrySprite, self).__init__(**kw)
146 153
147 154
148 class ExitSprite(SingleImageTileSprite): 155 class ExitSprite(SingleImageTileSprite):
149 image_name = 'arrow-r' 156 image_name = 'arrow-r'
157 name = 'exit'
150 158
151 159
152 class PuddleSprite(SingleImageTileSprite): 160 class PuddleSprite(SingleImageTileSprite):
153 image_name = 'puddle' 161 image_name = 'puddle'
162 name = 'puddle'
154 variants_class = SolidSpriteImageVariants 163 variants_class = SolidSpriteImageVariants
155 164
156 def __init__(self, variant=(0, 0, 0, 0), **kw): 165 def __init__(self, variant=(0, 0, 0, 0), **kw):
157 super(PuddleSprite, self).__init__(**kw) 166 super(PuddleSprite, self).__init__(**kw)
158 self.image = self.load_image(*self.get_variant(*variant)) 167 self.image = self.load_image(*self.get_variant(*variant))