Mercurial > rinkhals
changeset 262:d508248041ff
avoid passing events in twice
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Sat, 05 Sep 2009 13:36:00 +0000 |
parents | 86291107d67a |
children | 8896bae31eda |
files | gamelib/engine.py gamelib/gameboard.py |
diffstat | 2 files changed, 19 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/gamelib/engine.py Sat Sep 05 13:20:59 2009 +0000 +++ b/gamelib/engine.py Sat Sep 05 13:36:00 2009 +0000 @@ -51,8 +51,11 @@ self.open_window(game_over) def event(self, e): - if not Game.event(self, e) and self.gameboard: - self.gameboard.event(e) + if not Game.event(self, e): + if self.gameboard: + return self.gameboard.event(e) + return False + return True class MainMenuState(State):
--- a/gamelib/gameboard.py Sat Sep 05 13:20:59 2009 +0000 +++ b/gamelib/gameboard.py Sat Sep 05 13:36:00 2009 +0000 @@ -1,7 +1,8 @@ import random import pygame -from pygame.locals import MOUSEBUTTONDOWN, MOUSEMOTION, KEYDOWN, K_UP, K_DOWN, K_LEFT, K_RIGHT +from pygame.locals import MOUSEBUTTONDOWN, MOUSEMOTION, KEYDOWN, K_UP, K_DOWN, \ + K_LEFT, K_RIGHT from pgu import gui import data @@ -560,6 +561,15 @@ def close_callback(): building.selected(False) + def evict_callback(): + print 'evict called', self.animal_to_place + + if not sell_callback: + tbl.tr() + button = gui.Button('Evict') + button.connect(gui.CLICK, evict_callback) + tbl.td(button, colspan=2, **kwargs) + self.open_dialog(tbl, close_callback=close_callback) def buy_fence(self, tile_pos): @@ -664,7 +674,7 @@ dialog = self.open_dialog(tbl) def event(self, e): - if e.type == KEYDOWN: + if e.type == KEYDOWN and e.key in [K_UP, K_DOWN, K_LEFT, K_RIGHT]: if e.key == K_UP: self.tvw.move_view(0, -self.TILE_DIMENSIONS[1]) if e.key == K_DOWN: @@ -673,8 +683,8 @@ self.tvw.move_view(-self.TILE_DIMENSIONS[0], 0) if e.key == K_RIGHT: self.tvw.move_view(self.TILE_DIMENSIONS[0], 0) - else: - self.disp.event(e) + return True + return False def advance_day(self): self.days += 1