private void InitTiles(TileMapData tileMapData)
        {
            TerrainType[] terrainTypes = MaterialPropertiesFactory.GetAllowedInitialTerrainTypes();

            float terrainSeed = Random.Range(0.0f, 200.0f);
            float heightSeed  = Random.Range(0.0f, 200.0f);

            for (int x = 0; x < _sizeX; x++)
            {
                for (int y = 0; y < _sizeY; y++)
                {
                    int   generatedType   = GenerateTerrainType(x, y, terrainSeed, terrainTypes.Length);
                    float generatedHeight = GenerateTerrainHeight(x, y, heightSeed);

                    TerrainType        terrainType        = terrainTypes[generatedType];
                    MaterialProperties materialProperties = MaterialPropertiesFactory.GetProperties(terrainType);

                    TerrainData terrainData = new TerrainData(terrainType, generatedHeight, materialProperties);
                    tileMapData.SetTileData(x, y, new TileData(x, y, terrainData));
                }
            }
        }
        public void CalculateVariables(Data.TerrainData terrainData, float slopeSteepness, float moistureContent,
                                       float windSpeed, float cosAngle)
        {
            this.materialProperties = terrainData.MaterialProperties;

            netFuelLoad             = CalculateNetFuelLoad();
            ovenDryBulkDensity      = CalculateOvenDryBulkDensity();
            packingRatio            = CalculatePackingRatio();
            optimumPackingRatio     = CalculateOptimumPackingRatio();
            maximumReactionVelocity = CalculateMaximumReactionVelocity();
            optimumReactionVelocity = CalculateOptimumReactionVelocity();

            moistureDampingCoefficient = CalculateMoistureDampingCoefficient(moistureContent);
            mineralDampingCoefficient  = CalculateMineralDampingCoefficient();

            reactionIntensity      = CalculateReactionIntensity();
            propagatingFluxRatio   = CalculatePropagatingFluxRatio();
            windFactor             = CalculateWindFactor(windSpeed, cosAngle);
            slopeFactor            = CalculateSlopeFactor(slopeSteepness);
            effectiveHeatingNumber = CalculateEffectiveHeatingNumber();
            heatOfPreignition      = CalculateHeatOfPreignition(moistureContent);

            RateOfSpread = CalculateRateOfSpread();
        }