Пример #1
0
    public TerrainCellAlteration GetAlteration(bool regardless = false, bool addLayerData = true)
    {
        // If cell hasn't been modified there's no need to create a TerrainCellChanges object (unless it is regardless)
        if (!regardless && !Modified)
        {
            return(null);
        }

        TerrainCellAlteration alteration = new TerrainCellAlteration(this, addLayerData);

        return(alteration);
    }
Пример #2
0
    public void SetAlteration(TerrainCellAlteration alteration)
    {
        BaseAltitudeValue    = alteration.BaseAltitudeValue;
        BaseTemperatureValue = alteration.BaseTemperatureValue;
        BaseRainfallValue    = alteration.BaseRainfallValue;

        BaseTemperatureOffset = alteration.BaseTemperatureOffset;
        BaseRainfallOffset    = alteration.BaseRainfallOffset;

        FarmlandPercentage = alteration.FarmlandPercentage;
        Accessibility      = alteration.Accessibility;
        Arability          = alteration.Arability;

        foreach (CellLayerData data in alteration.LayerData)
        {
            SetLayerData(Layer.Layers[data.Id], data.Value, data.Offset);
        }

        Modified = alteration.Modified;

        if (Altitude > World.MaxAltitude)
        {
            World.MaxAltitude = Altitude;
        }
        if (Altitude < World.MinAltitude)
        {
            World.MinAltitude = Altitude;
        }

        if (Rainfall > World.MaxRainfall)
        {
            World.MaxRainfall = Rainfall;
        }
        if (Rainfall < World.MinRainfall)
        {
            World.MinRainfall = Rainfall;
        }

        if (Temperature > World.MaxTemperature)
        {
            World.MaxTemperature = Temperature;
        }
        if (Temperature < World.MinTemperature)
        {
            World.MinTemperature = Temperature;
        }
    }