feat: Added remaining event related functionality

This commit is contained in:
AURUMVORXX
2024-11-06 19:45:19 +03:00
parent 882d2cc038
commit b75b2ab2a4
2 changed files with 21 additions and 4 deletions

View File

@@ -3,6 +3,8 @@ from g2o.events import addEvent
from g2o.events import callEvent from g2o.events import callEvent
from g2o.events import event from g2o.events import event
from g2o.events import removeEventHandler from g2o.events import removeEventHandler
from g2o.events import toggleEvent
from g2o.events import removeEvent
from g2o.packets import Packet from g2o.packets import Packet
from g2o.damage import DamageDescription from g2o.damage import DamageDescription

View File

@@ -1,5 +1,6 @@
eventList = {} eventList = {}
disabledEventList = []
def callEvent(evtName : str, **kwargs : dict): def callEvent(evtName : str, **kwargs : dict):
""" """
@@ -31,9 +32,13 @@ def callEvent(evtName : str, **kwargs : dict):
isEventCancelled = False isEventCancelled = False
if evtName in eventList: if evtName in eventList and evtName not in disabledEventList:
for event in eventList[evtName]: for event in eventList[evtName]:
event['function'].eventName = evtName
event['function'].cancelled = isEventCancelled
result = event['function'](**kwargs) result = event['function'](**kwargs)
if result != None: if result != None:
isEventCancelled = not result isEventCancelled = not result
@@ -87,8 +92,8 @@ def event(name : str, priority : int = 9999):
``` ```
""" """
def inlineEvt(func): def inlineEvt(func):
if not name in eventList: if name not in eventList:
pass return None
eventList[name].append({'function': func, 'priority': priority}) eventList[name].append({'function': func, 'priority': priority})
eventList[name].sort(key = lambda x: x['priority']) eventList[name].sort(key = lambda x: x['priority'])
@@ -126,6 +131,16 @@ def removeEventHandler(name : str, func : object):
if item['function'] == func: if item['function'] == func:
del eventList[name][index] del eventList[name][index]
def toggleEvent(name : str, toggle : bool):
if not toggle and name not in disabledEventList:
disabledEventList.append(name)
elif toggle and name in disabledEventList:
disabledEventList.remove(name)
def removeEvent(name : str):
if name in eventList:
eventList.pop(name)
## registering default events ## registering default events
addEvent('onInit') addEvent('onInit')