/// <summary> /// Processes the city events simulation step. The method can be called frequently, but the processing occurs periodically /// at an interval specified by <see cref="EventProcessInterval"/>. /// </summary> public void ProcessEvents() { if (RemoveCanceledEvents()) { OnEventsChanged(); } if ((timeInfo.Now - lastProcessed) < EventProcessInterval) { return; } lastProcessed = timeInfo.Now; Update(); if (upcomingEvents.Count >= MaximumEventsCount || !config.AreEventsEnabled) { return; } ushort building = buildingManager.GetRandomBuilding(EventBuildingServices); if (!buildingManager.BuildingHasFlags(building, Building.Flags.Active)) { return; } CreateRandomEvent(building); }
public void ProcessEvents() { if ((timeInfo.Now - lastProcessed) < EventProcessInterval) { return; } lastProcessed = timeInfo.Now; Update(); if (upcomingEvents.Count >= MaximumEventsCount) { return; } ushort building = buildingManager.GetRandomBuilding(EventBuildingServices); if (!buildingManager.BuildingHasFlags(building, Building.Flags.Active)) { return; } CreateRandomEvent(building); }