Exemplo n.º 1
0
 public override void OnLevelLoaded(LoadMode mode)
 {
     if (mode == LoadMode.NewGame || mode == LoadMode.LoadGame)
     {
         Redirector.PerformRedirections((ulong)PathfindingOptions);
     }
 }
Exemplo n.º 2
0
        public void OnEnabled()
        {
            sm_optionsManager.LoadOptions();
            if (!sm_redirectionInstalled)
            {
                Redirector.PerformRedirections();
                sm_redirectionInstalled = true;
            }

            ExtendedPathManager.DefinePathFinding <TPPPathFind>();
        }
Exemplo n.º 3
0
        public void Init()
        {
            _instance = this;

            STORAGE_MANIFEST_PATH = Path.Combine(Util.getFilesFolder(), STORAGE_MANIFEST_PATH);

            Controller       = new StorageController();
            allResources     = StorageMapping.GetAllResources();
            allResourceTypes = allResources.Select(x => x.Key.GetType()).ToArray();
            allIcons         = ContentManager.LoadContent(allResources.Keys.ToArray());

            Redirector.PerformRedirections();
            UnityEngine.Debug.Log("[MOD] StorageManager activated");
        }
Exemplo n.º 4
0
        public static RealTimeCore Run(RealTimeConfig config, string rootPath, LocalizationProvider localizationProvider)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            if (string.IsNullOrEmpty(rootPath))
            {
                throw new ArgumentException("The root path cannot be null or empty string", nameof(rootPath));
            }

            if (localizationProvider == null)
            {
                throw new ArgumentNullException(nameof(localizationProvider));
            }

            try
            {
                int redirectedCount = Redirector.PerformRedirections();
                Log.Info($"Successfully redirected {redirectedCount} methods.");
            }
            catch (Exception ex)
            {
                Log.Error("Failed to perform method redirections: " + ex.Message);
                return(null);
            }

            var      timeAdjustment = new TimeAdjustment();
            DateTime gameDate       = timeAdjustment.Enable();

            var timeInfo          = new TimeInfo();
            var buildingManager   = new BuildingManagerConnection();
            var simulationManager = new SimulationManagerConnection();

            var gameConnections = new GameConnections <Citizen>(
                timeInfo,
                new CitizenConnection(),
                new CitizenManagerConnection(),
                buildingManager,
                simulationManager,
                new TransferManagerConnection());

            var eventManager = new RealTimeEventManager(
                config,
                CityEventsLoader.Istance,
                new EventManagerConnection(),
                buildingManager,
                simulationManager,
                timeInfo);

            SetupCustomAI(timeInfo, config, gameConnections, eventManager);

            CityEventsLoader.Istance.ReloadEvents(rootPath);

            var customTimeBar = new CustomTimeBar();

            customTimeBar.Enable(gameDate);
            customTimeBar.CityEventClick += CustomTimeBarCityEventClick;

            var result = new RealTimeCore(timeAdjustment, customTimeBar, eventManager);

            eventManager.EventsChanged += result.CityEventsChanged;
            SimulationHandler.NewDay   += result.CityEventsChanged;

            SimulationHandler.DayTimeSimulation = new DayTimeSimulation();
            SimulationHandler.EventManager      = eventManager;
            SimulationHandler.CommercialAI      = new CommercialAI(timeInfo, buildingManager);

            RealTimeStorage.Instance.GameSaving += result.GameSaving;
            result.storageData.Add(eventManager);
            result.LoadStorageData();

            result.Translate(localizationProvider);

            return(result);
        }
Exemplo n.º 5
0
 public void Install()
 {
     Redirector.PerformRedirections();
 }