# HG changeset patch # User Neil Muller # Date 1316209413 -7200 # Node ID ff1c39075452db94de2978bcab03b7505cd9c9f0 # Parent 5f6a23b62b8547e39d2ae054cab8796853883d11 Button and gate sprites diff -r 5f6a23b62b85 -r ff1c39075452 mamba/sprites.py --- a/mamba/sprites.py Fri Sep 16 23:42:00 2011 +0200 +++ b/mamba/sprites.py Fri Sep 16 23:43:33 2011 +0200 @@ -243,6 +243,43 @@ head.shift_tile_and_pixels((other.tile_pos, self.direction)) +class ButtonSprite(SingleImageTileSprite): + image_name = 'button' + name = 'button' + tileset = 'lab' + + def __init__(self, other_id): + super(ButtonSprite, self).__init__(tile_char=None) + self.other_id = other_id + + def interact(self, world, segment): + head = world.snake.head + if segment is head: + other = world.get_sprite(self.other_id) + other.button_pushed() + + +class GateSprite(SingleImageTileSprite): + closed_name = 'closed_gate' + open_image = 'open_gate' + name = 'gate' + tileset = 'lab' + + def __init__(self): + self.image_name = self.closed_name + self.opened = False + super(GateSprite, self).__init__(tile_char=None) + + def get_solid(self, snake, segment): + return not self.opened + + def button_pushed(self): + self.opened = True + # Update image + self.image_name = self.open_image + self.image = self.load_image(self.image_name, mutators=()) + + class PuddleSprite(SingleImageTileSprite): image_name = 'puddle' name = 'puddle'