예제 #1
0
    public static Biome GetBiome(BoardNode node)
    {
        float scaledTemp     = node.temperature / BOARD_NODE_SCALE;
        float scaledMoist    = node.moisture / BOARD_NODE_SCALE;
        float moistureOffset = scaledMoist - scaledTemp / 3;

        MoistureBiome moistureCategory;

        if (moistureOffset < 0f)
        {
            moistureCategory = MoistureBiome.Dry;
        }
        else if (moistureOffset < .33f)
        {
            moistureCategory = MoistureBiome.Moist;
        }
        else if (moistureOffset < .66f)
        {
            moistureCategory = MoistureBiome.Wet;
        }
        else
        {
            moistureCategory = MoistureBiome.Water;
        }

        TemperatureBiome temperatureCategory;

        if (scaledTemp < .33f)
        {
            temperatureCategory = TemperatureBiome.Cold;
        }
        else if (scaledTemp < .66f)
        {
            temperatureCategory = TemperatureBiome.Temperate;
        }
        else
        {
            temperatureCategory = TemperatureBiome.Tropical;
        }

        AltitudeBiome altitudeCategory = GetAltitudeBiome(node.altitude);

        return(new Biome(moistureCategory, temperatureCategory, altitudeCategory));
    }
예제 #2
0
 public Biome(MoistureBiome moisture, TemperatureBiome temperature, AltitudeBiome altitude)
 {
     this.moisture    = moisture;
     this.temperature = temperature;
     this.altitude    = altitude;
 }