mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
22 lines
486 B
Python
22 lines
486 B
Python
class Event(object):
|
|
pass
|
|
|
|
|
|
class Observable(object):
|
|
def __init__(self) -> None:
|
|
self.callbacks = []
|
|
|
|
def subscribe(self, callback) -> None:
|
|
self.callbacks.append(callback)
|
|
|
|
def unsubscribe(self, callback) -> None:
|
|
self.callbacks.remove(callback)
|
|
|
|
def fire(self, **attrs) -> None:
|
|
e = Event()
|
|
e.source = self
|
|
for k, v in attrs.items():
|
|
setattr(e, k, v)
|
|
for fn in self.callbacks:
|
|
fn(e)
|