private void ColorModeDropdown_OnValueChanged(int value) { CurrentColorMode = (MapColorMode)Enum.Parse(typeof(MapColorMode), ColorModeDropdown.options[value].text); if (CurrentMap != null) { CurrentMap.UpdateColorMode(CurrentColorMode); } }
/// <summary> /// Updates the colors of all regions according to the specified mode. /// </summary> public void UpdateColorMode(MapColorMode drawMode) { ColorMode = drawMode; switch (ColorMode) { case MapColorMode.White: foreach (Region r in Regions) { r.SetColor(Color.white); } foreach (River r in Rivers) { r.SetColor(Color.white); } break; case MapColorMode.Basic: foreach (Region r in Regions) { if (r.IsWater) { r.SetColor(MapDisplayResources.Singleton.WaterColor); } else { r.SetColor(MapDisplayResources.Singleton.LandColor); } } foreach (River r in Rivers) { r.SetColor(MapDisplayResources.Singleton.WaterColor); } break; case MapColorMode.Biomes: foreach (Region r in Regions) { if (r.IsWater) { r.SetColor(MapDisplayResources.Singleton.WaterColor); } else { r.SetColor(MapDisplayResources.Singleton.GetBiomeColor(r.Biome)); } } foreach (River r in Rivers) { r.SetColor(MapDisplayResources.Singleton.WaterColor); } break; case MapColorMode.Continents: foreach (Region r in WaterRegions) { r.SetColor(MapDisplayResources.Singleton.WaterColor); } foreach (River r in Rivers) { r.SetColor(MapDisplayResources.Singleton.WaterColor); } List <Color> continentColors = new List <Color>(); foreach (Continent continent in Continents) { Color continentColor = ColorManager.GetRandomDistinctColor(continentColors); foreach (Region r in continent.Regions) { r.SetColor(continentColor); } continentColors.Add(continentColor); } break; case MapColorMode.ParriskBoard: foreach (Region r in Regions) { if (r.IsOuterOcean) { r.SetColor(Color.black); } else if (r.IsWater) { r.SetColor(Color.white); r.SetTexture(MapDisplayResources.Singleton.WaterBackgroundTexture); } else { r.SetColor(Color.white); } } foreach (River r in Rivers) { r.SetColor(MapDisplayResources.Singleton.WaterColor); } break; } }
/// <summary> /// This function always has to be called after the map is received from the map generator /// </summary> public void InitializeMap(bool showRegionBorders, bool showShorelineBorders, bool showContinentBorders, bool showWaterConnections, MapColorMode drawMode, MapTextureMode textureMode) { UpdateColorMode(drawMode); UpdateTextureMode(textureMode); ShowRegionBorders(showRegionBorders); ShowShorelineBorders(showShorelineBorders); ShowContinentBorders(showContinentBorders); ShowWaterConnections(showWaterConnections); FocusMapInEditor(); }