feat: Added remaining event related functionality
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
Reference in New Issue
Block a user