public void Reset() { this.seedString = GenText.RandomSeedString(); this.planetCoverage = (float)((Prefs.DevMode && UnityData.isEditor) ? 0.05000000074505806 : 0.30000001192092896); this.rainfall = OverallRainfall.Normal; this.temperature = OverallTemperature.Normal; }
public void Reset() { this.seedString = GenText.RandomSeedString(); this.planetCoverage = ((Prefs.DevMode && UnityData.isEditor) ? 0.05f : 0.3f); this.rainfall = OverallRainfall.Normal; this.temperature = OverallTemperature.Normal; }
public void Reset() { _seedString = GenText.RandomSeedString(); _planetCoverage = Prefs.DevMode && UnityData.isEditor ? 0.05f : 0.3f; _intCoverage = Prefs.DevMode && UnityData.isEditor ? 5 : 30; _rainfall = OverallRainfall.Normal; _temperature = OverallTemperature.Normal; }
public void Reset() { seedString = GenText.RandomSeedString(); planetCoverage = ((!Prefs.DevMode || !UnityData.isEditor) ? 0.3f : 0.05f); rainfall = OverallRainfall.Normal; temperature = OverallTemperature.Normal; population = OverallPopulation.Normal; }
public override void DoWindowContents(Rect rect) { DrawPageTitle(rect); GUI.BeginGroup(GetMainRect(rect)); Text.Font = GameFont.Small; var num = 0f; Widgets.Label(new Rect(0f, num, 200f, 30f), "WorldSeed".Translate()); var rect2 = new Rect(200f, num, 200f, 30f); _seedString = Widgets.TextField(rect2, _seedString); num += 40f; var rect3 = new Rect(200f, num, 200f, 30f); if (Widgets.ButtonText(rect3, "RandomizeSeed".Translate())) { SoundDefOf.Tick_Tiny.PlayOneShotOnCamera(); _seedString = GenText.RandomSeedString(); } num += 40f; Text.Font = GameFont.Tiny; var textAnchorBackup = Text.Anchor; Text.Anchor = TextAnchor.MiddleCenter; Widgets.Label(new Rect(0, num, rect3.xMax, 20f), "[Prepare Landing] Precise World Generation %"); Text.Font = GameFont.Small; Text.Anchor = textAnchorBackup; num += 20f; Widgets.Label(new Rect(0f, num, 200f, 30f), $"{"PlanetCoverage".Translate()} [1,100]%"); var rect4 = new Rect(200f, num, 200f, 30f); // TextFieldNumericCoverage(rect4.LeftHalf()); ButtonCoverage(rect4.RightHalf()); // TooltipHandler.TipRegion(new Rect(0f, num, rect4.xMax, rect4.height), "PlanetCoverageTip".Translate()); num += 40f; Widgets.Label(new Rect(0f, num, 200f, 30f), "PlanetRainfall".Translate()); var rect5 = new Rect(200f, num, 200f, 30f); _rainfall = (OverallRainfall)Mathf.RoundToInt(Widgets.HorizontalSlider(rect5, (float)_rainfall, 0f, OverallRainfallUtility.EnumValuesCount - 1, true, "PlanetRainfall_Normal".Translate(), "PlanetRainfall_Low".Translate(), "PlanetRainfall_High".Translate(), 1f)); num += 40f; Widgets.Label(new Rect(0f, num, 200f, 30f), "PlanetTemperature".Translate()); var rect6 = new Rect(200f, num, 200f, 30f); _temperature = (OverallTemperature)Mathf.RoundToInt(Widgets.HorizontalSlider(rect6, (float)_temperature, 0f, OverallTemperatureUtility.EnumValuesCount - 1, true, "PlanetTemperature_Normal".Translate(), "PlanetTemperature_Low".Translate(), "PlanetTemperature_High".Translate(), 1f)); GUI.EndGroup(); DoBottomButtons(rect, "WorldGenerate".Translate(), "Reset".Translate(), Reset); }
public static void ShortSetupForQuickTestPlay() { //частичная копия Current.Game = new Game(); Current.Game.InitData = new GameInitData(); Current.Game.Scenario = ScenarioDefOf.Crashlanded.scenario; Find.Scenario.PreConfigure(); Current.Game.storyteller = new Storyteller(StorytellerDefOf.Cassandra, DifficultyDefOf.Rough); Current.Game.World = WorldGenerator.GenerateWorld(0.05f, GenText.RandomSeedString(), OverallRainfall.Normal, OverallTemperature.Normal); }
public void Reset() { this.seedString = GenText.RandomSeedString(); this.planetCoverage = 0.3f; this.worldPreset = "Planets.Vanilla"; Planets_GameComponent.axialTilt = AxialTilt.Normal; Planets_GameComponent.worldType = WorldType.Vanilla; Planets_GameComponent.subcount = 10; this.rainfallMod = RainfallModifier.Normal; this.temperature = OverallTemperature.Normal; }
private static void SetupForQuickTestPlay() { Current.ProgramState = ProgramState.Entry; Current.Game = new Game(); Current.Game.InitData = new GameInitData(); Current.Game.Scenario = ScenarioDefOf.Crashlanded.scenario; Find.Scenario.PreConfigure(); Current.Game.storyteller = new Storyteller(StorytellerDefOf.Cassandra, DifficultyDefOf.Rough); Current.Game.World = WorldGenerator.GenerateWorld(0.05f, GenText.RandomSeedString(), OverallRainfall.Normal, OverallTemperature.Normal, OverallPopulation.Normal); Find.GameInitData.ChooseRandomStartingTile(); Find.GameInitData.mapSize = 150; Find.GameInitData.PrepForMapGen(); Find.Scenario.PreMapGenerate(); }
public void Randomize() { this.seedString = GenText.RandomSeedString(); Planets_GameComponent.axialTilt = Planets_Random.GetRandomAxialTilt(); Planets_GameComponent.worldType = Planets_Random.GetRandomWorldType(); this.rainfallMod = Planets_Random.GetRandomRainfallModifier(); this.temperature = Planets_Random.GetRandomTemperature(); this.population = Planets_Random.GetRandomPopulation(); this.CurrentWorldPreset = "Planets.Custom"; Controller.Settings.randomPlanet = true; if (this.CanDoNext()) { this.DoNext(); } }
public override void DoWindowContents(Rect rect) { base.DrawPageTitle(rect); GUI.BeginGroup(base.GetMainRect(rect, 0f, false)); Text.Font = GameFont.Small; float num = 0f; Widgets.Label(new Rect(0f, num, 200f, 30f), "WorldSeed".Translate()); Rect rect2 = new Rect(200f, num, 200f, 30f); this.seedString = Widgets.TextField(rect2, this.seedString); num += 40f; Rect rect3 = new Rect(200f, num, 200f, 30f); if (Widgets.ButtonText(rect3, "RandomizeSeed".Translate(), true, false, true)) { SoundDefOf.Tick_Tiny.PlayOneShotOnCamera(null); this.seedString = GenText.RandomSeedString(); } num += 40f; Widgets.Label(new Rect(0f, num, 200f, 30f), "PlanetCoverage".Translate()); Rect rect4 = new Rect(200f, num, 200f, 30f); if (Widgets.ButtonText(rect4, this.planetCoverage.ToStringPercent(), true, false, true)) { List <FloatMenuOption> list = new List <FloatMenuOption>(); float[] array = (!Prefs.DevMode) ? Page_CreateWorldParams.PlanetCoverages : Page_CreateWorldParams.PlanetCoveragesDev; for (int i = 0; i < array.Length; i++) { float coverage = array[i]; string text = coverage.ToStringPercent(); if (coverage <= 0.1f) { text += " (dev)"; } FloatMenuOption item = new FloatMenuOption(text, delegate { if (this.planetCoverage != coverage) { this.planetCoverage = coverage; if (this.planetCoverage == 1f) { Messages.Message("MessageMaxPlanetCoveragePerformanceWarning".Translate(), MessageTypeDefOf.CautionInput, false); } } }, MenuOptionPriority.Default, null, null, 0f, null, null); list.Add(item); } Find.WindowStack.Add(new FloatMenu(list)); } TooltipHandler.TipRegion(new Rect(0f, num, rect4.xMax, rect4.height), "PlanetCoverageTip".Translate()); num += 40f; Widgets.Label(new Rect(0f, num, 200f, 30f), "PlanetRainfall".Translate()); Rect rect5 = new Rect(200f, num, 200f, 30f); this.rainfall = (OverallRainfall)Mathf.RoundToInt(Widgets.HorizontalSlider(rect5, (float)this.rainfall, 0f, (float)(OverallRainfallUtility.EnumValuesCount - 1), true, "PlanetRainfall_Normal".Translate(), "PlanetRainfall_Low".Translate(), "PlanetRainfall_High".Translate(), 1f)); num += 40f; Widgets.Label(new Rect(0f, num, 200f, 30f), "PlanetTemperature".Translate()); Rect rect6 = new Rect(200f, num, 200f, 30f); this.temperature = (OverallTemperature)Mathf.RoundToInt(Widgets.HorizontalSlider(rect6, (float)this.temperature, 0f, (float)(OverallTemperatureUtility.EnumValuesCount - 1), true, "PlanetTemperature_Normal".Translate(), "PlanetTemperature_Low".Translate(), "PlanetTemperature_High".Translate(), 1f)); GUI.EndGroup(); base.DoBottomButtons(rect, "WorldGenerate".Translate(), "Reset".Translate(), new Action(this.Reset), true, true); }
public override void DoWindowContents(Rect rect) { base.DrawPageTitle(rect); GUI.BeginGroup(base.GetMainRect(rect, 0f, false)); Text.Font = GameFont.Small; // // PLANET SEED // float single = 0f; Widgets.Label(new Rect(0f, single, 200f, 30f), "WorldSeed".Translate()); Rect rect1 = new Rect(200f, single, 200f, 30f); this.seedString = Widgets.TextField(rect1, this.seedString); single += 40f; Rect rect2 = new Rect(200f, single, 200f, 30f); if (Widgets.ButtonText(rect2, "RandomizeSeed".Translate(), true, false, true)) { SoundDefOf.Tick_Tiny.PlayOneShotOnCamera(null); this.seedString = GenText.RandomSeedString(); } // // PLANET SIZE (IF "MY LITTLE PLANET" IS IN USE) // if (ModsConfig.ActiveModsInLoadOrder.Any(mod => mod.Name.Contains("My Little Planet"))) { single += 80f; Widgets.Label(new Rect(0f, single, 200f, 30f), "MLPWorldPlanetSize".Translate()); Rect rect7 = new Rect(200f, single, 200f, 30f); Planets_GameComponent.subcount = Mathf.RoundToInt(Widgets.HorizontalSlider(rect7, Planets_GameComponent.subcount, 6f, 10f, true, null, "MLPWorldTiny".Translate(), "MLPWorldDefault".Translate(), 1f)); } // // PLANET COVERAGE // single += 80f; Widgets.Label(new Rect(0f, single, 200f, 30f), "PlanetCoverage".Translate()); Rect rect3 = new Rect(200f, single, 200f, 30f); if (Widgets.ButtonText(rect3, this.planetCoverage.ToStringPercent(), true, false, true)) { List <FloatMenuOption> floatMenuOptions = new List <FloatMenuOption>(); float[] singleArray = Planets_CreateWorldParams.PlanetCoverages; for (int i = 0; i < (int)singleArray.Length; i++) { float single1 = singleArray[i]; string stringPercent = single1.ToStringPercent(); FloatMenuOption floatMenuOption = new FloatMenuOption(stringPercent, () => { if (this.planetCoverage != single1) { this.planetCoverage = single1; if (this.planetCoverage < 0.15f) { Messages.Message("Planets.MessageLowPlanetCoverageWarning".Translate(), MessageTypeDefOf.CautionInput, false); } if (this.planetCoverage > 0.7f) { Messages.Message("MessageMaxPlanetCoveragePerformanceWarning".Translate(), MessageTypeDefOf.CautionInput, false); } } }, MenuOptionPriority.Default, null, null, 0f, null, null); floatMenuOptions.Add(floatMenuOption); } Find.WindowStack.Add(new FloatMenu(floatMenuOptions)); } TooltipHandler.TipRegion(new Rect(0f, single, rect3.xMax, rect3.height), "PlanetCoverageTip".Translate()); // // WORLD TYPE PRESETS // single += 80f; Widgets.Label(new Rect(0f, single, 200f, 30f), "Planets.WorldPresets".Translate()); Rect rect8 = new Rect(200f, single, 200f, 30f); if (Widgets.ButtonText(rect8, this.worldPreset.Translate(), true, false, true)) { List <FloatMenuOption> floatMenuOptions = new List <FloatMenuOption>(); string[] singleArray = Planets_CreateWorldParams.WorldPresets; for (int i = 0; i < (int)singleArray.Length; i++) { string single1 = singleArray[i]; string single1Translated = single1.Translate(); FloatMenuOption floatMenuOption = new FloatMenuOption(single1Translated, () => { if (this.worldPreset != single1) { this.worldPreset = single1; if (this.worldPreset == "Planets.Vanilla") { Planets_GameComponent.worldType = WorldType.Vanilla; Planets_GameComponent.axialTilt = AxialTilt.Normal; this.rainfallMod = RainfallModifier.Normal; this.temperature = OverallTemperature.Normal; } else if (this.worldPreset == "Planets.Desert") { Planets_GameComponent.worldType = WorldType.Dry; Planets_GameComponent.axialTilt = AxialTilt.Normal; this.rainfallMod = RainfallModifier.LittleBitLess; this.temperature = OverallTemperature.LittleBitWarmer; } else if (this.worldPreset == "Planets.Frozen") { Planets_GameComponent.worldType = WorldType.VeryDry; Planets_GameComponent.axialTilt = AxialTilt.Normal; this.rainfallMod = RainfallModifier.LittleBitLess; this.temperature = OverallTemperature.Cold; } else if (this.worldPreset == "Planets.Earthlike") { Planets_GameComponent.worldType = WorldType.Earthlike; Planets_GameComponent.axialTilt = AxialTilt.Normal; this.rainfallMod = RainfallModifier.Normal; this.temperature = OverallTemperature.Normal; } else if (this.worldPreset == "Planets.Forest") { Planets_GameComponent.worldType = WorldType.Vanilla; Planets_GameComponent.axialTilt = AxialTilt.Normal; this.rainfallMod = RainfallModifier.LittleBitMore; this.temperature = OverallTemperature.LittleBitColder; } else if (this.worldPreset == "Planets.Iceball") { Planets_GameComponent.worldType = WorldType.Vanilla; Planets_GameComponent.axialTilt = AxialTilt.Normal; this.rainfallMod = RainfallModifier.Normal; this.temperature = OverallTemperature.VeryCold; } else if (this.worldPreset == "Planets.Jungle") { Planets_GameComponent.worldType = WorldType.Earthlike; Planets_GameComponent.axialTilt = AxialTilt.Normal; this.rainfallMod = RainfallModifier.LittleBitMore; this.temperature = OverallTemperature.LittleBitWarmer; } else if (this.worldPreset == "Planets.Ocean") { Planets_GameComponent.worldType = WorldType.Waterworld; Planets_GameComponent.axialTilt = AxialTilt.Normal; this.rainfallMod = RainfallModifier.Normal; this.temperature = OverallTemperature.Normal; } else { } } }, MenuOptionPriority.Default, null, null, 0f, null, null); floatMenuOptions.Add(floatMenuOption); } Find.WindowStack.Add(new FloatMenu(floatMenuOptions)); } TooltipHandler.TipRegion(new Rect(0f, single, rect8.xMax, rect8.height), "Planets.WorldPresetsTip".Translate()); // // OCEAN SLIDER // single += 80f; Widgets.Label(new Rect(0f, single, 200f, 30f), "Planets.OceanType".Translate()); Rect rect6 = new Rect(200f, single, 200f, 30f); WorldType worldTypeCheck = Planets_GameComponent.worldType; Planets_GameComponent.worldType = (WorldType)Mathf.RoundToInt(Widgets.HorizontalSlider(rect6, (float)Planets_GameComponent.worldType, 0f, (float)(WorldTypeUtility.EnumValuesCount - 1), true, "Planets.OceanType_Earthlike".Translate(), "Planets.OceanType_Waterworld".Translate(), "Planets.OceanType_Barren".Translate(), 1f)); if (Planets_GameComponent.worldType != worldTypeCheck) { this.worldPreset = "Planets.Custom"; } TooltipHandler.TipRegion(new Rect(0f, single, rect6.xMax, rect6.height), "Planets.OceanTypeTip".Translate()); // // RAINFALL SLIDER // single += 40f; Widgets.Label(new Rect(0f, single, 200f, 30f), "PlanetRainfall".Translate()); Rect rect4 = new Rect(200f, single, 200f, 30f); RainfallModifier rainfallModCheck = this.rainfallMod; this.rainfallMod = (RainfallModifier)Mathf.RoundToInt(Widgets.HorizontalSlider(rect4, (float)this.rainfallMod, 0f, (float)(RainfallModifierUtility.EnumValuesCount - 1), true, "PlanetRainfall_Normal".Translate(), "PlanetRainfall_Low".Translate(), "PlanetRainfall_High".Translate(), 1f)); if (this.rainfallMod != rainfallModCheck) { this.worldPreset = "Planets.Custom"; } TooltipHandler.TipRegion(new Rect(0f, single, rect4.xMax, rect4.height), "Planets.RainfallTip".Translate()); // // TEMPERATURE SLIDER // single += 40f; Widgets.Label(new Rect(0f, single, 200f, 30f), "PlanetTemperature".Translate()); Rect rect5 = new Rect(200f, single, 200f, 30f); OverallTemperature temperatureCheck = this.temperature; this.temperature = (OverallTemperature)Mathf.RoundToInt(Widgets.HorizontalSlider(rect5, (float)this.temperature, 0f, (float)(OverallTemperatureUtility.EnumValuesCount - 1), true, "PlanetTemperature_Normal".Translate(), "PlanetTemperature_Low".Translate(), "PlanetTemperature_High".Translate(), 1f)); if (this.temperature != temperatureCheck) { this.worldPreset = "Planets.Custom"; } // // AXIAL TILT // single += 40f; Widgets.Label(new Rect(0f, single, 200f, 30f), "Planets.AxialTilt".Translate()); Rect rect9 = new Rect(200f, single, 200f, 30f); AxialTilt axialTiltCheck = Planets_GameComponent.axialTilt; Planets_GameComponent.axialTilt = (AxialTilt)Mathf.RoundToInt(Widgets.HorizontalSlider(rect9, (float)Planets_GameComponent.axialTilt, 0f, (float)(AxialTiltUtility.EnumValuesCount - 1), true, "Planets.AxialTilt_Normal".Translate(), "Planets.AxialTilt_Low".Translate(), "Planets.AxialTilt_High".Translate(), 1f)); if (Planets_GameComponent.axialTilt != axialTiltCheck) { this.worldPreset = "Planets.Custom"; } TooltipHandler.TipRegion(new Rect(0f, single, rect9.xMax, rect9.height), "Planets.AxialTiltTip".Translate()); GUI.EndGroup(); // // BOTTOM BUTTONS // base.DoBottomButtons(rect, "WorldGenerate".Translate(), "Planets.Random".Translate(), new Action(this.Randomize), true, true); }
private void RandomizeSeedAndScenario() { this.seed = GenText.RandomSeedString(); this.curScen = ScenarioMaker.GenerateNewRandomScenario(this.seed); }
public static void GenerateEmptyMap() { LongEventHandler.QueueLongEvent(delegate() { var game = new Game { InitData = new GameInitData() { mapSize = 75, permadeath = false }, Scenario = ScenarioDefOf.Crashlanded.scenario, storyteller = new Storyteller(StorytellerDefOf.Cassandra, DifficultyDefOf.Rough) }; Find.Scenario.PreConfigure(); Current.Game = game; Find.GameInitData.PrepForMapGen(); Find.GameInitData.startedFromEntry = true; Find.Scenario.PreMapGenerate(); Find.GameInitData.ResetWorldRelatedMapInitData(); Current.Game.World = WorldGenerator.GenerateWorld(0.05f, GenText.RandomSeedString(), OverallRainfall.Normal, OverallTemperature.Normal, OverallPopulation.Normal); MemoryUtility.UnloadUnusedUnityAssets(); Find.World.renderer.RegenerateAllLayersNow(); MemoryUtility.UnloadUnusedUnityAssets(); Current.ProgramState = ProgramState.MapInitializing; var mapSize = new IntVec3(game.InitData.mapSize, 1, game.InitData.mapSize); game.World.info.initialMapSize = mapSize; if (game.InitData.permadeath) { game.Info.permadeathMode = true; game.Info.permadeathModeUniqueName = PermadeathModeUtility.GeneratePermadeathSaveName(); } game.tickManager.gameStartAbsTick = GenTicks.ConfiguredTicksAbsAtGameStart; _ = Find.Scenario.parts.RemoveAll(part => part is ScenPart_GameStartDialog); var arrivalMethod = Find.Scenario.AllParts.OfType <ScenPart_PlayerPawnsArriveMethod>().First(); arrivalMethod.method = PlayerPawnsArriveMethod.Standing; var tile = TileFinder.RandomStartingTile(); Find.GameInitData.startingAndOptionalPawns.Clear(); for (var i = 1; i <= 3; i++) { var pawn = StartingPawnUtility.NewGeneratedStartingPawn(); pawn.playerSettings.hostilityResponse = HostilityResponseMode.Ignore; DefDatabase <SkillDef> .AllDefsListForReading.Do(skillDef => pawn.skills.GetSkill(skillDef).EnsureMinLevelWithMargin(1)); Find.GameInitData.startingAndOptionalPawns.Add(pawn); } var settlement = (Settlement)WorldObjectMaker.MakeWorldObject(WorldObjectDefOf.Settlement); settlement.SetFaction(Find.GameInitData.playerFaction); settlement.Tile = tile; settlement.Name = NameGenerator.GenerateName(Faction.OfPlayer.def.factionNameMaker); Find.WorldObjects.Add(settlement); Current.Game.CurrentMap = MapGenerator.GenerateMap(mapSize, settlement, settlement.MapGeneratorDef, settlement.ExtraGenStepDefs, null); PawnUtility.GiveAllStartingPlayerPawnsThought(ThoughtDefOf.NewColonyOptimism); game.FinalizeInit(); game.playSettings.useWorkPriorities = true; Find.CameraDriver.JumpToCurrentMapLoc(MapGenerator.PlayerStartSpot); Find.CameraDriver.ResetSize(); Find.Scenario.PostGameStart(); foreach (var researchProjectDef in DefDatabase <ResearchProjectDef> .AllDefs) { game.researchManager.FinishProject(researchProjectDef, false, null); } GameComponentUtility.StartedNewGame(); game.InitData = null; }, "GeneratingMap", true, new Action <Exception>(GameAndMapInitExceptionHandlers.ErrorWhileGeneratingMap), true); LongEventHandler.QueueLongEvent(delegate() { ScreenFader.SetColor(Color.black); ScreenFader.StartFade(Color.clear, 0.5f); }, null, false, null, true); }
public override void DoWindowContents(Rect rect) { base.DrawPageTitle(rect); GUI.BeginGroup(base.GetMainRect(rect, 0f, false)); Text.Font = GameFont.Small; float single = 0f; Widgets.Label(new Rect(0f, single, 200f, 30f), "WorldSeed".Translate()); Rect rect1 = new Rect(200f, single, 200f, 30f); this.seedString = Widgets.TextField(rect1, this.seedString); single = single + 40f; Rect rect2 = new Rect(200f, single, 200f, 30f); if (Widgets.ButtonText(rect2, "RandomizeSeed".Translate(), true, false, true)) { SoundDefOf.TickTiny.PlayOneShotOnCamera(null); this.seedString = GenText.RandomSeedString(); } single = single + 40f; Widgets.Label(new Rect(0f, single, 200f, 30f), "PlanetCoverage".Translate()); Rect rect3 = new Rect(200f, single, 200f, 30f); if (Widgets.ButtonText(rect3, this.planetCoverage.ToStringPercent(), true, false, true)) { List <FloatMenuOption> floatMenuOptions = new List <FloatMenuOption>(); float[] singleArray = (!Prefs.DevMode ? ProCWP.PlanetCoverages : ProCWP.PlanetCoveragesDev); for (int i = 0; i < (int)singleArray.Length; i++) { float single1 = singleArray[i]; string stringPercent = single1.ToStringPercent(); if (single1 <= 0.1f) { stringPercent = string.Concat(stringPercent, " (dev)"); } FloatMenuOption floatMenuOption = new FloatMenuOption(stringPercent, () => { if (this.planetCoverage != single1) { this.planetCoverage = single1; if (this.planetCoverage == 1f) { Messages.Message("MessageMaxPlanetCoveragePerformanceWarning".Translate(), MessageSound.Standard); } } }, MenuOptionPriority.Default, null, null, 0f, null, null); floatMenuOptions.Add(floatMenuOption); } Find.WindowStack.Add(new FloatMenu(floatMenuOptions)); } TooltipHandler.TipRegion(new Rect(0f, single, rect3.xMax, rect3.height), "PlanetCoverageTip".Translate()); single = single + 40f; Widgets.Label(new Rect(0f, single, 200f, 30f), "PlanetRainfall".Translate()); Rect rect4 = new Rect(200f, single, 200f, 30f); this.rainfall = (OverallRainfall)Mathf.RoundToInt(Widgets.HorizontalSlider(rect4, (float)this.rainfall, 0f, (float)(OverallRainfallUtility.EnumValuesCount - 1), true, "PlanetRainfall_Normal".Translate(), "PlanetRainfall_Low".Translate(), "PlanetRainfall_High".Translate(), 1f)); single = single + 40f; Widgets.Label(new Rect(0f, single, 200f, 30f), "PlanetTemperature".Translate()); Rect rect5 = new Rect(200f, single, 200f, 30f); this.temperature = (OverallTemperature)Mathf.RoundToInt(Widgets.HorizontalSlider(rect5, (float)this.temperature, 0f, (float)(OverallTemperatureUtility.EnumValuesCount - 1), true, "PlanetTemperature_Normal".Translate(), "PlanetTemperature_Low".Translate(), "PlanetTemperature_High".Translate(), 1f)); GUI.EndGroup(); base.DoBottomButtons(rect, "WorldGenerate".Translate(), "Reset".Translate(), new Action(this.Reset), true); }
public override void DoWindowContents(Rect rect) { base.DrawPageTitle(rect); GUI.BeginGroup(base.GetMainRect(rect, 0f, false)); Text.Font = GameFont.Small; // // PLANET SEED // float single = 0f; Widgets.Label(new Rect(0f, single, 200f, 30f), "WorldSeed".Translate()); Rect rect1 = new Rect(200f, single, 200f, 30f); this.seedString = Widgets.TextField(rect1, this.seedString); single += 40f; Rect rect2 = new Rect(200f, single, 200f, 30f); if (Widgets.ButtonText(rect2, "RandomizeSeed".Translate(), true, false, true)) { SoundDefOf.Tick_Tiny.PlayOneShotOnCamera(null); this.seedString = GenText.RandomSeedString(); } // // PLANET SIZE (IF "MY LITTLE PLANET" IS IN USE) // if (ModsConfig.ActiveModsInLoadOrder.Any(mod => mod.Name.Contains("My Little Planet"))) { single += 80f; Widgets.Label(new Rect(0f, single, 200f, 30f), "MLPWorldPlanetSize".Translate()); Rect rect7 = new Rect(200f, single, 200f, 30f); Planets_GameComponent.subcount = Mathf.RoundToInt(Widgets.HorizontalSlider(rect7, Planets_GameComponent.subcount, 6f, 10f, true, null, "MLPWorldTiny".Translate(), "MLPWorldDefault".Translate(), 1f)); } // // PLANET COVERAGE // single += 80f; Widgets.Label(new Rect(0f, single, 200f, 30f), "PlanetCoverage".Translate()); Rect rect3 = new Rect(200f, single, 200f, 30f); if (Widgets.ButtonText(rect3, this.planetCoverage.ToStringPercent(), true, false, true)) { List <FloatMenuOption> floatMenuOptions = new List <FloatMenuOption>(); float[] singleArray = Planets_CreateWorldParams.PlanetCoverages; for (int i = 0; i < (int)singleArray.Length; i++) { float single1 = singleArray[i]; string stringPercent = single1.ToStringPercent(); FloatMenuOption floatMenuOption = new FloatMenuOption(stringPercent, () => { if (this.planetCoverage != single1) { this.planetCoverage = single1; if (this.planetCoverage < 0.15f) { Messages.Message("Planets.MessageLowPlanetCoverageWarning".Translate(), MessageTypeDefOf.CautionInput, false); } if (this.planetCoverage > 0.7f) { Messages.Message("MessageMaxPlanetCoveragePerformanceWarning".Translate(), MessageTypeDefOf.CautionInput, false); } } }, MenuOptionPriority.Default, null, null, 0f, null, null); floatMenuOptions.Add(floatMenuOption); } Find.WindowStack.Add(new FloatMenu(floatMenuOptions)); } TooltipHandler.TipRegion(new Rect(0f, single, rect3.xMax, rect3.height), "PlanetCoverageTip".Translate()); // // WORLD TYPE PRESETS // single += 80f; DoWorldPresetsSelection(single); { single += 80f; DoSeaLevelSlider(single); single += 40f; DoRainfallSlider(single); single += 40f; DoTemperatureSlider(single); single += 40f; DoAxialTiltSlider(single); // Faction Control will override population, so disable this slider if Faction Control is enabled if (Controller.FactionControlSettingsMI == null) { single += 40f; DoPopulationSlider(single); } } GUI.EndGroup(); // // BOTTOM BUTTONS // // Add Faction Control button if (Controller.FactionControlSettingsMI != null) { Text.Font = GameFont.Small; if (Widgets.ButtonText(new Rect(0, rect.yMax - 78f, 150, 32), "RFC.FactionControlName".Translate())) { Controller.FactionControlSettingsMI.Invoke(null, null); } } base.DoBottomButtons(rect, "WorldGenerate".Translate(), "Planets.Random".Translate(), new Action(this.Randomize), true, true); }
public void Randomize() { this.seedString = GenText.RandomSeedString(); float randTilt = Rand.Value; if (randTilt > 0.8) { Planets_GameComponent.axialTilt = AxialTilt.VeryLow; } else if (randTilt > 0.6) { Planets_GameComponent.axialTilt = AxialTilt.Low; } else if (randTilt > 0.4) { Planets_GameComponent.axialTilt = AxialTilt.Normal; } else if (randTilt > 0.2) { Planets_GameComponent.axialTilt = AxialTilt.High; } else { Planets_GameComponent.axialTilt = AxialTilt.VeryHigh; } float randType = Rand.Value; if (randType > 0.86) { Planets_GameComponent.worldType = WorldType.Waterworld; } else if (randType > 0.72) { Planets_GameComponent.worldType = WorldType.Islands; } else if (randType > 0.58) { Planets_GameComponent.worldType = WorldType.Earthlike; } else if (randType > 0.42) { Planets_GameComponent.worldType = WorldType.Vanilla; } else if (randType > 0.28) { Planets_GameComponent.worldType = WorldType.Dry; } else if (randType > 0.14) { Planets_GameComponent.worldType = WorldType.VeryDry; } else { Planets_GameComponent.worldType = WorldType.Barren; } float randRain = Rand.Value; if (randRain > 0.8) { this.rainfallMod = RainfallModifier.Little; } else if (randRain > 0.6) { this.rainfallMod = RainfallModifier.LittleBitLess; } else if (randRain > 0.4) { this.rainfallMod = RainfallModifier.Normal; } else if (randRain > 0.2) { this.rainfallMod = RainfallModifier.LittleBitMore; } else { this.rainfallMod = RainfallModifier.High; } float randTemp = Rand.Value; if (randTemp > 0.86) { this.temperature = OverallTemperature.VeryCold; } else if (randTemp > 0.72) { this.temperature = OverallTemperature.Cold; } else if (randTemp > 0.58) { this.temperature = OverallTemperature.LittleBitColder; } else if (randTemp > 0.42) { this.temperature = OverallTemperature.Normal; } else if (randTemp > 0.28) { this.temperature = OverallTemperature.LittleBitWarmer; } else if (randTemp > 0.14) { this.temperature = OverallTemperature.Hot; } else { this.temperature = OverallTemperature.VeryHot; } Controller.Settings.randomPlanet = true; if (this.CanDoNext()) { this.DoNext(); } }
public override void DoWindowContents(Rect rect) { DrawPageTitle(rect); GUI.BeginGroup(GetMainRect(rect)); Text.Font = GameFont.Small; float num = 0f; Widgets.Label(new Rect(0f, num, 200f, 30f), "WorldSeed".Translate()); Rect rect2 = new Rect(200f, num, 200f, 30f); seedString = Widgets.TextField(rect2, seedString); num += 40f; if (Widgets.ButtonText(new Rect(200f, num, 200f, 30f), "RandomizeSeed".Translate())) { SoundDefOf.Tick_Tiny.PlayOneShotOnCamera(); seedString = GenText.RandomSeedString(); } num += 40f; Widgets.Label(new Rect(0f, num, 200f, 30f), "PlanetCoverage".Translate()); Rect rect3 = new Rect(200f, num, 200f, 30f); if (Widgets.ButtonText(rect3, planetCoverage.ToStringPercent())) { List <FloatMenuOption> list = new List <FloatMenuOption>(); float[] array = Prefs.DevMode ? PlanetCoveragesDev : PlanetCoverages; foreach (float coverage in array) { string text = coverage.ToStringPercent(); if (coverage <= 0.1f) { text += " (dev)"; } FloatMenuOption item = new FloatMenuOption(text, delegate { if (planetCoverage != coverage) { planetCoverage = coverage; if (planetCoverage == 1f) { Messages.Message("MessageMaxPlanetCoveragePerformanceWarning".Translate(), MessageTypeDefOf.CautionInput, historical: false); } } }); list.Add(item); } Find.WindowStack.Add(new FloatMenu(list)); } TooltipHandler.TipRegionByKey(new Rect(0f, num, rect3.xMax, rect3.height), "PlanetCoverageTip"); num += 40f; Widgets.Label(new Rect(0f, num, 200f, 30f), "PlanetRainfall".Translate()); Rect rect4 = new Rect(200f, num, 200f, 30f); rainfall = (OverallRainfall)Mathf.RoundToInt(Widgets.HorizontalSlider(rect4, (float)rainfall, 0f, OverallRainfallUtility.EnumValuesCount - 1, middleAlignment: true, "PlanetRainfall_Normal".Translate(), "PlanetRainfall_Low".Translate(), "PlanetRainfall_High".Translate(), 1f)); num += 40f; Widgets.Label(new Rect(0f, num, 200f, 30f), "PlanetTemperature".Translate()); Rect rect5 = new Rect(200f, num, 200f, 30f); temperature = (OverallTemperature)Mathf.RoundToInt(Widgets.HorizontalSlider(rect5, (float)temperature, 0f, OverallTemperatureUtility.EnumValuesCount - 1, middleAlignment: true, "PlanetTemperature_Normal".Translate(), "PlanetTemperature_Low".Translate(), "PlanetTemperature_High".Translate(), 1f)); num += 40f; Widgets.Label(new Rect(0f, num, 200f, 30f), "PlanetPopulation".Translate()); Rect rect6 = new Rect(200f, num, 200f, 30f); population = (OverallPopulation)Mathf.RoundToInt(Widgets.HorizontalSlider(rect6, (float)population, 0f, OverallPopulationUtility.EnumValuesCount - 1, middleAlignment: true, "PlanetPopulation_Normal".Translate(), "PlanetPopulation_Low".Translate(), "PlanetPopulation_High".Translate(), 1f)); num += 40f; Widgets.Label(new Rect(0f, num, 200f, 30f), "AAAA".Translate()); Rect rect7 = new Rect(200f, num, 200f, 30f); GUI.EndGroup(); DoBottomButtons(rect, "WorldGenerate".Translate(), "Reset".Translate(), Reset); }