class_name EventSystem extends Node enum SpecialEvent { INVALID = 0, TEST_QUEST = 1, }; var eventFlags:Dictionary[int, int] = {} func eventFlagOn(event:SpecialEvent, flagsToTurnOn:int) -> void: if !eventFlags.has(event): eventFlags[event] = 0; eventFlags[event] |= flagsToTurnOn; func eventFlagOff(event:SpecialEvent, flagsToTurnOff:int) -> void: if !eventFlags.has(event): eventFlags[event] = 0; eventFlags[event] &= ~flagsToTurnOff; func eventAreFlagsOn(event:SpecialEvent, flagsToCheck:int) -> bool: if !eventFlags.has(event): eventFlags[event] = 0; return (eventFlags[event] & flagsToCheck) == flagsToCheck; func eventIsAnyOfFlagsOn(event:SpecialEvent, flagsToCheck:int) -> bool: if !eventFlags.has(event): eventFlags[event] = 0; return (eventFlags[event] & flagsToCheck) != 0; func eventAreFlagsOff(event:SpecialEvent, flagsToCheck:int) -> bool: if !eventFlags.has(event): eventFlags[event] = 0; return (eventFlags[event] & flagsToCheck) == 0; func eventIsAnyOfFlagsOff(event:SpecialEvent, flagsToCheck:int) -> bool: if !eventFlags.has(event): eventFlags[event] = 0; return (eventFlags[event] & flagsToCheck) != flagsToCheck;