private void LevelVertexButtonPressed(IEventArgument arg) { var argument = arg as LevelVertexButtonPressEventArg; var playerData = playerDataManagerEntity.PlayerData; var levelDataState = playerData.GetLevelData(argument.ButtonIndex).LevelState; if (levelDataState == PlayerData.LevelData.LevelStateEnum.Opened || levelDataState == PlayerData.LevelData.LevelStateEnum.InProgress) { playerData.CurrentLevelIndex = argument.ButtonIndex; EventsManager.CallEvent <SavePlayerDataEventType>(); EventsManager.CallEvent <LoadLevelEventType>(); } }
public static void CallEvent(Events key, IEventArgument argument) { if (actionsWithArgument.TryGetValue(key, out var action)) { var valueTuple = new ValueTuple <Action <IEventArgument>, IEventArgument>(action, argument); actionsToCallArgument.Enqueue(valueTuple); } #if UNITY_EDITOR else { Debug.LogError($"Listener with {key} key not found | Call with argument"); } #endif }
public static void CallEventImmediate <T>(IEventArgument argument) where T : struct, IEventType { var key = EventTypeKeys <T> .EventTypeKey; if (actionsWithArgument.TryGetValue(key, out var action)) { action.Invoke(argument); } #if UNITY_EDITOR else { Debug.LogWarning($"Listener with {key} key not found | CallEventImmediate with argument"); } #endif }
public static void CallEvent <T>(IEventArgument argument) where T : struct, IEventType { var key = EventTypeKeys <T> .EventTypeKey; if (actionsWithArgument.TryGetValue(key, out var action)) { var value = new ActionEventArg(action, argument); if (!actionsToCallArgument.Contains(value)) { actionsToCallArgument.Enqueue(value); } } #if UNITY_EDITOR else { Debug.LogWarning($"Listener with {key} key not found | Call with argument"); } #endif }
public void OnNext(IEventArgument eventArgument) { this.OnNext(eventArgument as TArg); }
private void OnLivesLeftChangeText(IEventArgument arg) { var argument = arg as LivesLeftChangeTextEventArg; field.SetText(fieldFormat, argument.LivesLeft); }
private static void OnStaticEventTrigger(IEventArgument argument) { var objectID = ((GameObjectEventArgument)argument).objectID; objects[objectID].OnEventTrigger(); }
public void OnNext(IEventArgument eventArgument) { this.Handler(null); }
public void OnNext(IEventArgument <TArg> eventArgument) { this.Handler(eventArgument.Subject); }
public void OnNext(IEventArgument argument) { this.OnNext((TArg)argument); }
private void OnPlayNote(IEventArgument argument) { var note = ((NoteArgument)argument).note; PlaySound(notes[note]); }
public ActionEventArg(Action <IEventArgument> action, IEventArgument arg) { this.action = action; this.arg = arg; }