/// <summary> /// Converts a generated world into a legends generator world. /// </summary> /// <param name="generated">The generated world.</param> /// <returns>The legends generator world.</returns> private World ConvertToWorld(GeneratedWorld generated) { World world = new World() { #pragma warning disable SA1101 // Prefix local calls with this. New C#9 feature. Grid = new WorldGrid(generated.Width, generated.Height), #pragma warning restore SA1101 // Prefix local calls with this }; for (int x = 0; x < generated.Width; x++) { for (int y = 0; y < generated.Height; y++) { var genSquare = generated.Grid[x, y]; WorldSquare square = this.thingFactory.CreateWorldSquare(this.Random, x, y, this.GetDefinitionName(genSquare)); // Overwrite the attributes provided by the world generation process. square.BaseAttributes[nameof(genSquare.Elevation)] = genSquare.Elevation; square.BaseAttributes[nameof(genSquare.Drainage)] = genSquare.Drainage; square.BaseAttributes[nameof(genSquare.Rainfall)] = genSquare.Rainfall; square.BaseAttributes[nameof(genSquare.Temperature)] = genSquare.Temperature; square.BaseAttributes[nameof(genSquare.Evil)] = genSquare.Evil; square.BaseAttributes[nameof(genSquare.Savagery)] = genSquare.Savagery; square.BaseAttributes[nameof(genSquare.Materials)] = genSquare.Materials; world.Grid.GetSquare(x, y).SquareDefinition = square; } } return(world); }
public override float GetScore(WorldSquare square) { if (square.elevation <= 0f) { return(-100f); } if (square.temperature < -10f) { return(0f); } if ((square.elevation < 1000f) || (square.elevation > 3000f)) { return(0f); } // TODO: debug. return(200); /*if (Rand.Value < 0.05f) * { * return 100f; * } * else * { * return -100f; * }*/ }
public override float GetScore(WorldSquare square) { if (square.elevation <= 0f) { return -100f; } if (square.temperature < -10f) { return 0f; } if ((square.elevation < 1000f) || (square.elevation > 3000f)) { return 0f; } // TODO: debug. return 200; /*if (Rand.Value < 0.05f) { return 100f; } else { return -100f; }*/ }
// draw loop public virtual void Update() { if (inGame) { if (Input.GetKeyUp(KeyCode.F11)) { iconsEnabled = !iconsEnabled; if (iconsEnabled) { Messages.Message(Translator.Translate("PSI.Enabled"), MessageSound.Standard); } else { Messages.Message(Translator.Translate("PSI.Disabled"), MessageSound.Standard); } } worldScale = Screen.height / (2 * Camera.current.orthographicSize); } // if (Input.GetKeyUp(KeyCode.RightControl)) if (false) { IntVec2 wSize = Find.World.Size; float minTemp = float.MaxValue; IntVec2 minTempPos = new IntVec2(); for (int x = 0; x < wSize.x; x++) { for (int z = 0; z < wSize.z; z++) { WorldSquare ws = Find.World.grid.Get(new IntVec2(x, z)); // if (ws.biome == BiomeDefOf.IceSheet) //{ //ws.biome = BiomeDefOf.Tundra; ws.temperature -= 1; //} /* if (ws != null) * { * if (ws.temperature < minTemp && ws.biome.canBuildBase == true) * { * minTemp = ws.temperature; * minTempPos = new IntVec2(x, z); * Log.Message(minTemp + "\t" + minTempPos.ToString()); * } * }*/ } } } }