예제 #1
0
 private static ScenarioSummary ConvertToScenarioSummary(ISummary summary, ScenarioMetaData scenarioMetaData)
 {
     return(new ScenarioSummary(GetScenarioType(summary),
                                scenarioMetaData.ContainerType,
                                summary.LevelMin,
                                summary.LevelMax,
                                summary.Name,
                                summary.Author,
                                summary.Description,
                                summary,
                                scenarioMetaData.LastWriteTime,
                                scenarioMetaData.FullName));
 }
예제 #2
0
        private void StartNewGameRoutine()
        {
            //begin mod
            var m_CityName        = this.Find <UITextField>("MapName");
            var m_FileList        = this.Find <UIListBox>("MapList");
            var m_leftHandTraffic = this.Find <UICheckBox>("InvertTraffic");

            //end mod

            Package.Asset      listingData     = this.GetListingData(m_FileList.selectedIndex);
            ScenarioMetaData   listingMetaData = this.GetListingMetaData(m_FileList.selectedIndex);
            SimulationMetaData ngs             = new SimulationMetaData()
            {
                m_CityName = m_CityName.text,
                m_gameInstanceIdentifier = Guid.NewGuid().ToString(),
                m_invertTraffic          = !m_leftHandTraffic.isChecked ? SimulationMetaData.MetaBool.False : SimulationMetaData.MetaBool.True,
                m_disableAchievements    = Singleton <PluginManager> .instance.enabledModCount <= 0 ? SimulationMetaData.MetaBool.False : SimulationMetaData.MetaBool.True,
                m_currentDateTime        = DateTime.Now,
                m_newGameAppVersion      = 159507472,
                m_updateMode             = SimulationManager.UpdateMode.NewGameFromScenario,
                m_ScenarioAsset          = StringUtils.SafeFormat("{0}.{1}", (object)listingData.package.packageName, (object)listingData.name),
                m_ScenarioName           = listingMetaData.scenarioName
            };

            //begin mod
            ngs.m_environment = m_forceEnvironment;
            //end mod
            if (listingMetaData.mapThemeRef != null)
            {
                Package.Asset assetByName = PackageManager.FindAssetByName(listingMetaData.mapThemeRef);
                if (assetByName != (Package.Asset)null)
                {
                    ngs.m_MapThemeMetaData = assetByName.Instantiate <MapThemeMetaData>();
                    ngs.m_MapThemeMetaData.SetSelfRef(assetByName);
                }
            }
            Singleton <LoadingManager> .instance.LoadLevel(listingData, "Game", "InGame", ngs);

            UIView.library.Hide(this.GetType().Name, 1);
        }
예제 #3
0
        private static ISummaryXmlBinaryRepository CreateSummaryXmlBinaryRepository(ScenarioMetaData scenarioMetaData)
        {
            switch (scenarioMetaData.ContainerType)
            {
            case ContainerType.Directory:
                DirectoryInfo directory = new DirectoryInfo(scenarioMetaData.FullName);
                return(new SummaryXmlBinaryDirectory(directory));

            case ContainerType.ZipFile:
                FileInfo zipFile = new FileInfo(scenarioMetaData.FullName);
                return(new SummaryXmlBinaryZip(zipFile));

            case ContainerType.CabFile:
                FileInfo cabFile = new FileInfo(scenarioMetaData.FullName);
                return(new SummaryXmlBinaryCab(cabFile));

            case ContainerType.WsnFile:
                FileInfo wsnFile = new FileInfo(scenarioMetaData.FullName);
                return(new SummaryXmlBinaryWsn(wsnFile));

            default:
                throw new Exception();
            }
        }
예제 #4
0
 private static SummaryXmlBinary GetSummaryXmlBinary(ScenarioMetaData scenarioMetaData)
 {
     return(CreateSummaryXmlBinaryRepository(scenarioMetaData).Get());
 }