Mercurial > pyntnclick
comparison gamelib/state.py @ 129:4223d66d88b4
Cursor change when you select a Tool
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Tue, 24 Aug 2010 18:36:31 +0200 |
parents | 9646e7c8bb97 |
children | 11afefc4aeaf |
comparison
equal
deleted
inserted
replaced
128:a2f6e975af67 | 129:4223d66d88b4 |
---|---|
7 from pygame.rect import Rect | 7 from pygame.rect import Rect |
8 from pygame.color import Color | 8 from pygame.color import Color |
9 | 9 |
10 import constants | 10 import constants |
11 from sound import get_sound | 11 from sound import get_sound |
12 from cursor import HAND | |
12 | 13 |
13 | 14 |
14 class Result(object): | 15 class Result(object): |
15 """Result of interacting with a thing""" | 16 """Result of interacting with a thing""" |
16 | 17 |
29 MessageDialog(self.message, 60).present() | 30 MessageDialog(self.message, 60).present() |
30 # queue a redraw to show updated state | 31 # queue a redraw to show updated state |
31 scene.invalidate() | 32 scene.invalidate() |
32 | 33 |
33 | 34 |
34 def initial_state(): | 35 def initial_state(screen): |
35 """Load the initial state.""" | 36 """Load the initial state.""" |
36 state = State() | 37 state = State(screen) |
37 state.load_scenes("cryo") | 38 state.load_scenes("cryo") |
38 state.load_scenes("bridge") | 39 state.load_scenes("bridge") |
39 #state.load_scenes("mess") | 40 #state.load_scenes("mess") |
40 #state.load_scenes("engine") | 41 #state.load_scenes("engine") |
41 #state.load_scenes("machine") | 42 #state.load_scenes("machine") |
52 | 53 |
53 * items | 54 * items |
54 * scenes | 55 * scenes |
55 """ | 56 """ |
56 | 57 |
57 def __init__(self): | 58 def __init__(self, screen): |
58 # map of scene name -> Scene object | 59 # map of scene name -> Scene object |
59 self.scenes = {} | 60 self.scenes = {} |
60 # map of detail view name -> DetailView object | 61 # map of detail view name -> DetailView object |
61 self.detail_views = {} | 62 self.detail_views = {} |
62 # map of item name -> Item object | 63 # map of item name -> Item object |
73 self.previous_scene = None | 74 self.previous_scene = None |
74 # scene transion helpers | 75 # scene transion helpers |
75 self.do_check = None | 76 self.do_check = None |
76 self.old_pos = None | 77 self.old_pos = None |
77 | 78 |
79 self.screen = screen | |
80 | |
78 def add_scene(self, scene): | 81 def add_scene(self, scene): |
79 self.scenes[scene.name] = scene | 82 self.scenes[scene.name] = scene |
80 | 83 |
81 def add_detail_view(self, detail_view): | 84 def add_detail_view(self, detail_view): |
82 self.detail_views[detail_view.name] = detail_view | 85 self.detail_views[detail_view.name] = detail_view |
115 if self.tool == self.items[name]: | 118 if self.tool == self.items[name]: |
116 self.set_tool(None) | 119 self.set_tool(None) |
117 | 120 |
118 def set_tool(self, item): | 121 def set_tool(self, item): |
119 self.tool = item | 122 self.tool = item |
123 if item is None: | |
124 self.screen.set_cursor(HAND) | |
125 else: | |
126 self.screen.set_cursor(item.CURSOR) | |
120 | 127 |
121 def draw(self, surface): | 128 def draw(self, surface): |
122 if self.do_check and self.previous_scene and self.do_check == constants.LEAVE: | 129 if self.do_check and self.previous_scene and self.do_check == constants.LEAVE: |
123 # We still need to handle leave events, so still display the scene | 130 # We still need to handle leave events, so still display the scene |
124 self.previous_scene.draw(surface) | 131 self.previous_scene.draw(surface) |