# HG changeset patch # User Jeremy Thurgood # Date 1283017236 -7200 # Node ID d9c47a9e3d843eb617c8e3bc2b113c8961c4c323 # Parent eef2fca1aa11bd71ebe5d5cdc6761783e069388f Working manual. (Still needs arrows.) diff -r eef2fca1aa11 -r d9c47a9e3d84 gamelib/scenes/manual.py --- a/gamelib/scenes/manual.py Sat Aug 28 19:55:30 2010 +0200 +++ b/gamelib/scenes/manual.py Sat Aug 28 19:40:36 2010 +0200 @@ -19,42 +19,76 @@ # classes related the computer detail -class PagePrior(Thing): +class PageBase(Thing): + "Displays manual pages" + + def get_page_thing(self): + return self.state.current_detail.things['manual.page'] + + def get_page(self): + return self.get_page_thing().get_data('page') + + def set_page(self, page): + self.get_page_thing().set_page(page) + + +class PagePrior(PageBase): """Prior page in the manual""" NAME = 'manual.page_prior' INTERACTS = { - 'up' : InteractNoImage(594, 82, 30, 58) + 'up' : InteractNoImage(0, 350, 80, 25) } INITIAL = 'up' def is_interactive(self): - page = self.state.current_detail.get_data('page') - return page > 0 + return self.get_page() > 0 def interact_without(self): - page = self.state.current_detail.get_data('page') - self.state.current_detail.set_data('page', page - 1) + self.set_page(self.get_page() - 1) -class PageNext(Thing): +class PageNext(PageBase): """Next page in the manual""" NAME = 'manual.page_next' INTERACTS = { - 'down' : InteractNoImage(594, 293, 30, 58) + 'down' : InteractNoImage(170, 350, 80, 25) } INITIAL = 'down' def is_interactive(self): - page = self.state.current_detail.get_data('page') - return (page + 1) < self.current_detail.get_data('max page') + return self.get_page() < len(self.get_page_thing().INTERACTS) - 1 def interact_without(self): - page = self.state.current_detail.get_data('page') - self.state.current_detail.set_data('page', page + 1) + self.set_page(self.get_page() + 1) + + +class ManualPage(Thing): + """Page in the manual""" + + NAME = 'manual.page' + + INTERACTS = { + 0 : InteractImage(0, 0, 'manual_p1.png'), + 1 : InteractImage(0, 0, 'manual_p2.png'), + 2 : InteractImage(0, 0, 'manual_p3.png'), + 3 : InteractImage(0, 0, 'manual_p4.png'), + } + INITIAL = 0 + + INITIAL_DATA = { + 'page': 0, + } + + def is_interactive(self): + return False + + def set_page(self, page): + self.set_data('page', page) + self.set_interact(page) class ManualDetail(Scene): @@ -62,25 +96,15 @@ FOLDER = 'manual' NAME = 'manual_detail' - SIZE = (640, 400) - - PAGES = ['manual_p1.png', 'manual_p2.png', - 'manual_p3.png', 'manual_p4.png'] - - BACKGROUND = PAGES[0] - - INITIAL_DATA = { - 'page' : 0, - 'max page' : len(PAGES), - } + BACKGROUND = 'manual_detail.png' def __init__(self, state): super(ManualDetail, self).__init__(state) + self.add_thing(ManualPage()) self.add_thing(PagePrior()) self.add_thing(PageNext()) self._scene_playlist = None - self._pages = [get_image(self.FOLDER, x) for x in self.PAGES] def enter(self): self._scene_playlist = get_current_playlist() @@ -89,10 +113,6 @@ def leave(self): change_playlist(self._scene_playlist) - def draw_background(self, surface): - self._background = self._pages[self.get_data('page')] - super(ManualDetail, self).draw_background(surface) - SCENES = [] DETAIL_VIEWS = [ManualDetail]