Added event system functionality

This commit is contained in:
itdominator 2023-01-22 19:47:47 -06:00
parent 3911421356
commit 3e0b79551a
2 changed files with 7 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

View File

@ -18,6 +18,12 @@ class EventSystem:
def subscribe(self, event_type, fn):
self.subscribers[event_type].append(fn)
def unsubscribe(self, event_type, fn):
self.subscribers[event_type].remove(fn)
def unsubscribe_all(self, event_type):
self.subscribers.pop(event_type, None)
def emit(self, event_type, data = None):
if event_type in self.subscribers:
for fn in self.subscribers[event_type]:
@ -29,8 +35,8 @@ class EventSystem:
else:
fn()
# NOTE: Should be used when signal has only one listener and vis-a-vis
def emit_and_await(self, event_type, data = None):
""" NOTE: Should be used when signal has only one listener and vis-a-vis """
if event_type in self.subscribers:
for fn in self.subscribers[event_type]:
if data: