-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathevent_manager.py
58 lines (46 loc) · 1.49 KB
/
event_manager.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
class Event:
def __init__(self):
self.name = "Generic Event"
class TickEvent(Event):
def __init__(self):
self.name = "Tick Event"
class QuitEvent(Event):
def __init__(self):
self.name = "Quit Event"
class GameStartedEvent(Event):
def __init__(self, game):
self.name = "Game Started Event"
self.game = game
class GamePauseEvent(Event):
def __init__(self):
self.name = "Game Pause/Resume Event"
class ConfigureRequest(Event):
def __init__(self, cell_list):
self.name = "Configure Request"
self.cell_list = cell_list
class UniverseChangedEvent(Event):
def __init__(self, live_list):
self.name = "Universe Changed Event"
self.live_list = live_list
class MouseMoveEvent(Event):
def __init__(self, pos):
self.name = "Mouse Move Event"
self.pos = pos
class SelectStartEvent(Event):
def __init__(self, pos):
self.name = "Select Start Event"
self.pos = pos
class SelectEndEvent(Event):
def __init__(self, pos):
self.name = "Select End Event"
self.pos = pos
#-------------------------------------------------------------------------------
class EventManager:
def __init__(self):
from weakref import WeakKeyDictionary
self.listeners = WeakKeyDictionary()
def register_listener(self, listener):
self.listeners[listener] = 1
def post(self, event):
for listener in self.listeners:
listener.notify(event)