Mercurial > boomslang
annotate pyntnclick/scenewidgets.py @ 658:2703924c8c70 pyntnclick
Custom mouse cursors return
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 12 Feb 2012 14:25:27 +0200 |
parents | e59b119bb0f9 |
children | 096a568d98aa |
rev | line source |
---|---|
525
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
1 """Interactive elements within a Scene.""" |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
2 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
3 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
4 from pygame import Rect |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
5 from pygame.color import Color |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
6 from pygame.colordict import THECOLORS |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
7 from pygame.surface import Surface |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
8 |
551 | 9 from pyntnclick.state import Thing |
649
e59b119bb0f9
Evict the last BoomLabel.
Jeremy Thurgood <firxen@gmail.com>
parents:
625
diff
changeset
|
10 from pyntnclick.widgets.text import LabelWidget |
525
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
11 |
613
44d4e3020874
Remove a lot of albow
Stefano Rivera <stefano@rivera.za.net>
parents:
578
diff
changeset
|
12 # XXX: Needs a way to get at resource: |
617
ecde1d6bdda0
Correct fake get_image
Stefano Rivera <stefano@rivera.za.net>
parents:
613
diff
changeset
|
13 from pyntnclick.resources import Resources |
ecde1d6bdda0
Correct fake get_image
Stefano Rivera <stefano@rivera.za.net>
parents:
613
diff
changeset
|
14 get_image = Resources("Resources").get_image |
613
44d4e3020874
Remove a lot of albow
Stefano Rivera <stefano@rivera.za.net>
parents:
578
diff
changeset
|
15 |
525
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
16 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
17 class Interact(object): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
18 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
19 def __init__(self, image, rect, interact_rect): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
20 self.image = image |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
21 self.rect = rect |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
22 self.interact_rect = interact_rect |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
23 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
24 def set_thing(self, thing): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
25 pass |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
26 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
27 def draw(self, surface): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
28 if self.image is not None: |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
29 surface.blit(self.image, self.rect, None) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
30 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
31 def animate(self): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
32 return False |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
33 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
34 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
35 class InteractNoImage(Interact): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
36 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
37 def __init__(self, x, y, w, h): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
38 super(InteractNoImage, self).__init__(None, None, Rect(x, y, w, h)) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
39 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
40 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
41 class InteractText(Interact): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
42 """Display box with text to interact with -- mostly for debugging.""" |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
43 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
44 def __init__(self, x, y, text, bg_color=None): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
45 if bg_color is None: |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
46 bg_color = (127, 127, 127) |
649
e59b119bb0f9
Evict the last BoomLabel.
Jeremy Thurgood <firxen@gmail.com>
parents:
625
diff
changeset
|
47 label = LabelWidget((0, 0), text) |
e59b119bb0f9
Evict the last BoomLabel.
Jeremy Thurgood <firxen@gmail.com>
parents:
625
diff
changeset
|
48 # label.set_margin(5) |
e59b119bb0f9
Evict the last BoomLabel.
Jeremy Thurgood <firxen@gmail.com>
parents:
625
diff
changeset
|
49 # label.border_width = 1 |
e59b119bb0f9
Evict the last BoomLabel.
Jeremy Thurgood <firxen@gmail.com>
parents:
625
diff
changeset
|
50 # label.border_color = (0, 0, 0) |
e59b119bb0f9
Evict the last BoomLabel.
Jeremy Thurgood <firxen@gmail.com>
parents:
625
diff
changeset
|
51 # label.bg_color = bg_color |
e59b119bb0f9
Evict the last BoomLabel.
Jeremy Thurgood <firxen@gmail.com>
parents:
625
diff
changeset
|
52 # label.fg_color = (0, 0, 0) |
525
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
53 image = Surface(label.size) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
54 rect = Rect((x, y), label.size) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
55 label.draw_all(image) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
56 super(InteractText, self).__init__(image, rect, rect) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
57 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
58 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
59 class InteractRectUnion(Interact): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
60 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
61 def __init__(self, rect_list): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
62 # pygame.rect.Rect.unionall should do this, but is broken |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
63 # in some pygame versions (including 1.8, it appears) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
64 rect_list = [Rect(x) for x in rect_list] |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
65 union_rect = rect_list[0] |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
66 for rect in rect_list[1:]: |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
67 union_rect = union_rect.union(rect) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
68 super(InteractRectUnion, self).__init__(None, None, union_rect) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
69 self.interact_rect = rect_list |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
70 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
71 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
72 class InteractImage(Interact): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
73 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
74 def __init__(self, x, y, image_name): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
75 super(InteractImage, self).__init__(None, None, None) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
76 self._pos = (x, y) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
77 self._image_name = image_name |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
78 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
79 def set_thing(self, thing): |
625
85153f422522
Differently yuck get_image().
Jeremy Thurgood <firxen@gmail.com>
parents:
622
diff
changeset
|
80 self.image = get_image(thing.folder, self._image_name) |
525
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
81 self.rect = Rect(self._pos, self.image.get_size()) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
82 self.interact_rect = self.rect |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
83 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
84 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
85 class InteractImageRect(InteractImage): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
86 def __init__(self, x, y, image_name, r_x, r_y, r_w, r_h): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
87 super(InteractImageRect, self).__init__(x, y, image_name) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
88 self._r_pos = (r_x, r_y) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
89 self._r_size = (r_w, r_h) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
90 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
91 def set_thing(self, thing): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
92 super(InteractImageRect, self).set_thing(thing) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
93 self.interact_rect = Rect(self._r_pos, self._r_size) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
94 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
95 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
96 class InteractAnimated(Interact): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
97 """Interactive with an animation rather than an image""" |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
98 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
99 # FIXME: Assumes all images are the same size |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
100 # anim_seq - sequence of image names |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
101 # delay - number of frames to wait between changing images |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
102 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
103 def __init__(self, x, y, anim_seq, delay): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
104 self._pos = (x, y) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
105 self._anim_pos = 0 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
106 self._names = anim_seq |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
107 self._frame_count = 0 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
108 self._anim_seq = None |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
109 self._delay = delay |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
110 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
111 def set_thing(self, thing): |
625
85153f422522
Differently yuck get_image().
Jeremy Thurgood <firxen@gmail.com>
parents:
622
diff
changeset
|
112 self._anim_seq = [get_image(thing.folder, x) for x in self._names] |
525
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
113 self.image = self._anim_seq[0] |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
114 self.rect = Rect(self._pos, self.image.get_size()) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
115 self.interact_rect = self.rect |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
116 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
117 def animate(self): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
118 if self._anim_seq: |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
119 self._frame_count += 1 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
120 if self._frame_count > self._delay: |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
121 self._frame_count = 0 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
122 self._anim_pos += 1 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
123 if self._anim_pos >= len(self._anim_seq): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
124 self._anim_pos = 0 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
125 self.image = self._anim_seq[self._anim_pos] |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
126 # queue redraw |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
127 return True |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
128 return False |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
129 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
130 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
131 class GenericDescThing(Thing): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
132 "Thing with an InteractiveUnionRect and a description" |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
133 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
134 INITIAL = "description" |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
135 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
136 def __init__(self, prefix, number, description, areas): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
137 super(GenericDescThing, self).__init__() |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
138 self.description = description |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
139 self.name = '%s.%s' % (prefix, number) |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
140 self.interacts = { |
533 | 141 'description': InteractRectUnion(areas) |
525
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
142 } |
578
356795038b87
Remove a couple of uses os DEBUG.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
576
diff
changeset
|
143 # Individual colors to make debugging easier |
356795038b87
Remove a couple of uses os DEBUG.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
576
diff
changeset
|
144 self._interact_hilight_color = Color(THECOLORS.keys()[number]) |
525
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
145 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
146 def get_description(self): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
147 return self.description |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
148 |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
149 def is_interactive(self, tool=None): |
821b322e903b
Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
150 return False |