public virtual void OnScheduleEvent(GameObject gameObject, ScheduleEventArgs e) { //Console.WriteLine("GameObject.OnScheduleEvent"); ScheduleEventHandler handler = ScheduleEvent; handler?.Invoke(gameObject, e); }
private void OnScheduleEvent(GameObject gameObject, ScheduleEventArgs e) { GameTime scheduleTime = GameTime.Copy(); scheduleTime.AddSeconds(e.SecondsUntilAction); //Schedule.Add(new ActionGroup(scheduleTime, e.Action, gameObject)); ScheduleQueue.Insert(new ActionGroup(scheduleTime, e.Action, gameObject)); // Pattern match for events that need extra listeners. if (e.Action is BirthAction && gameObject is Person p) { p.GiveBirth += EntityController.OnGiveBirth; } }