예제 #1
0
    public Color GetColor(int x, int y)
    {
        var moistureLevel = _moistureMap.GetMoisture(x, y);
        var heatLevel     = _comboMap.GetHeat(x, y);
        var biome         = whittakerGraph[(int)moistureLevel, (int)heatLevel];

        /*
         * if (_heightmap.GetColor(x,y)==Color.black) //if the height level is void we don't want it to be affected by moisture or heat
         * {
         *  return Color.black;
         * }
         */
        if (_heightmap.GetColor(x, y) == extendedColors.DeepColor & !_maskWater) //account for water
        {
            return(extendedColors.DeepColor);
        }
        else if (_heightmap.GetColor(x, y) == extendedColors.ShallowColor & !_maskWater)
        {
            return(extendedColors.ShallowColor);
        }

        else if (_heightmap.GetColor(x, y) == extendedColors.ShallowColor & _maskWater)
        {
            return(Color.black);
        }
        else if (_heightmap.GetColor(x, y) == extendedColors.DeepColor & _maskWater)
        {
            return(Color.black);
        }
        else
        {
            switch (biome)  //color per biome
            {
            case biomes.Ice:
                return(extendedColors.Ice);

            case biomes.BorealForest:
                return(extendedColors.BorealForest);

            case biomes.Desert:
                return(extendedColors.Desert);

            case biomes.Grassland:
                return(extendedColors.Grassland);

            case biomes.Savanna:
                return(extendedColors.Savanna);

            case biomes.SeasonalForest:
                return(extendedColors.SeasonalForest);

            case biomes.TemperateRainforest:
                return(extendedColors.TemperateRainforest);

            case biomes.TropicalRainforest:
                return(extendedColors.TropicalRainforest);

            case biomes.Tundra:
                return(extendedColors.Tundra);

            case biomes.Woodland:
                return(extendedColors.Woodland);
            }
        }

        return(Color.black);
    }