public static float GenerateRiver(float x, float y) { return(RiverNoise.GetNoise(x, y)); //if (val >= 0.98f) // return new DrawableComponent("0099DB".ToColor(); //else if (val > 0.96f) // return new DrawableComponent("4CB7E5".ToColor(); //else if (val > 0.945f) // return new DrawableComponent("C28569".ToColor(); //else // return null; }
public static Tile GetTile(int x, int y) { float x2, y2; x2 = x; y2 = y; RiverNoise.GradientPerturbFractal(ref x2, ref y2); var river = GenerateRiver(x2, y2); var tile = new Tile(x, y, Color.Purple); if (river > 0.945f) { tile.Color = Color.Blue; } else { float val; switch (GenerateBiome(x2, y2)) { case BiomeType.Plains: val = GeneratePlains(x2, y2); if (val > 0.7f) { tile.Color = "B86F50".ToColor(); //wrong colors } break; case BiomeType.Desert: val = GenerateDesert(x2, y2); if (val > 0.7f) { tile.Color = "B86F50".ToColor(); } else if (val > 0.4f) { tile.Color = "E4A672".ToColor(); } else if (val > 0f) { tile.Color = "E8B796".ToColor(); } else if (val > -0.6) { tile.Color = "E4A672".ToColor(); } else { tile.Color = "C28569".ToColor(); } break; case BiomeType.Swamp: val = GenerateSwamp(x2, y2); if (val > 0.6f) { tile.Color = "193c3e".ToColor(); } else if (val > 0.4f) { tile.Color = "265c42".ToColor(); } else if (val > -0.2f) { tile.Color = "3E8948".ToColor(); } else if (val > -0.4) { tile.Color = "4CB7E5".ToColor(); } else { tile.Color = "0099DB".ToColor(); } break; case BiomeType.Mountains: val = GenerateMountains(x2, y2); if (val > 0.9f) { tile.Color = "C0CBDC".ToColor(); } else if (val > 0.7f) { tile.Color = "3e2731".ToColor(); } else if (val > 0.6f) { tile.Color = "733e39".ToColor(); } else if (val > 0.5f) { tile.Color = "B86F50".ToColor(); } else if (val > 0.4f) { tile.Color = "C28569".ToColor(); } else if (val > 0.3f) { tile.Color = "E4A672".ToColor(); } else if (val > -0.3) { tile.Color = "E8B796".ToColor(); } else { tile.Color = "EAD4AA".ToColor(); } break; default: throw new ArgumentOutOfRangeException("What the f**k"); } } return(tile); }