From b75b2ab2a4c49a1af52c00156163107d4a8277a7 Mon Sep 17 00:00:00 2001 From: AURUMVORXX Date: Wed, 6 Nov 2024 19:45:19 +0300 Subject: [PATCH] feat: Added remaining event related functionality --- g2o/__init__.py | 2 ++ g2o/events.py | 23 +++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/g2o/__init__.py b/g2o/__init__.py index f3ab0f0..fd31941 100644 --- a/g2o/__init__.py +++ b/g2o/__init__.py @@ -3,6 +3,8 @@ from g2o.events import addEvent from g2o.events import callEvent from g2o.events import event from g2o.events import removeEventHandler +from g2o.events import toggleEvent +from g2o.events import removeEvent from g2o.packets import Packet from g2o.damage import DamageDescription diff --git a/g2o/events.py b/g2o/events.py index 5930c20..2767aed 100644 --- a/g2o/events.py +++ b/g2o/events.py @@ -1,5 +1,6 @@ -eventList = {} +eventList = {} +disabledEventList = [] def callEvent(evtName : str, **kwargs : dict): """ @@ -31,9 +32,13 @@ def callEvent(evtName : str, **kwargs : dict): isEventCancelled = False - if evtName in eventList: + if evtName in eventList and evtName not in disabledEventList: for event in eventList[evtName]: + + event['function'].eventName = evtName + event['function'].cancelled = isEventCancelled result = event['function'](**kwargs) + if result != None: isEventCancelled = not result @@ -87,8 +92,8 @@ def event(name : str, priority : int = 9999): ``` """ def inlineEvt(func): - if not name in eventList: - pass + if name not in eventList: + return None eventList[name].append({'function': func, 'priority': priority}) eventList[name].sort(key = lambda x: x['priority']) @@ -125,6 +130,16 @@ def removeEventHandler(name : str, func : object): for index, item in enumerate(eventList[name]): if item['function'] == func: 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