Files
PyG2O/g2o/events.py
2024-11-02 18:41:43 +03:00

38 lines
932 B
Python

eventList = {}
def callEvent(name : str, **args : dict):
if name in eventList:
for event in eventList[name]:
event['function'](**args)
def addEvent(name):
if not name in eventList:
eventList[name] = []
def event(name : str, priority : int = 9999):
def inlineEvt(func):
if not name in eventList:
pass
eventList[name].append({'function': func, 'priority': priority})
eventList[name].sort(key = lambda x: x['priority'])
return func
return inlineEvt
def removeEventHandler(name : str, func : int):
if not name in eventList:
pass
for index, item in enumerate(eventList[name]):
if item['function'] == func:
del eventList[name][index]
## registering all events
addEvent('onInit')
addEvent('onExit')
addEvent('onTick')
addEvent('onTime')
addEvent('onBan')
addEvent('onUnban')