예제 #1
0
        private void CreateEvent(EventData eventData, Color32 colour)
        {
            SimulationManager manager = Singleton <SimulationManager> .instance;
            uint frameLength          = (uint)Mathf.RoundToInt(eventData.Info.m_eventAI.m_eventDuration * SimulationManager.DAYTIME_HOUR_TO_FRAME);

            CreateEvent(manager.FrameToTime(eventData.m_startFrame), manager.FrameToTime(eventData.m_startFrame + frameLength), eventData.m_building, colour);
        }
예제 #2
0
        public static bool EventStartsWithin(EventData eventData, double hours)
        {
            SimulationManager simulationManager = Singleton <SimulationManager> .instance;

            bool eventStartsSoon = false;
            bool created         = (eventData.m_flags & EventData.Flags.Created) != EventData.Flags.None;
            bool started         = (eventData.m_flags & EventData.Flags.Active) != EventData.Flags.None;
            bool ended           = (eventData.m_flags & EventData.Flags.Completed) != EventData.Flags.None;

            if (created && !started && !ended)
            {
                DateTime startTime = simulationManager.FrameToTime(eventData.m_startFrame);

                TimeSpan difference = startTime - CityEventManager.CITY_TIME;
                eventStartsSoon = difference.TotalHours > 0 && difference.TotalHours <= hours;
            }

            return(eventStartsSoon);
        }