Ejemplo n.º 1
0
        // Token: 0x06000E01 RID: 3585 RVA: 0x00062450 File Offset: 0x00060850
        public static void getHeightmapVertices(Bounds worldBounds, Landscape.LandscapeGetHeightmapVerticesHandler callback)
        {
            if (callback == null)
            {
                return;
            }
            LandscapeBounds landscapeBounds = new LandscapeBounds(worldBounds);

            for (int i = landscapeBounds.min.x; i <= landscapeBounds.max.x; i++)
            {
                for (int j = landscapeBounds.min.y; j <= landscapeBounds.max.y; j++)
                {
                    LandscapeCoord landscapeCoord = new LandscapeCoord(i, j);
                    LandscapeTile  tile           = Landscape.getTile(landscapeCoord);
                    if (tile != null)
                    {
                        HeightmapBounds heightmapBounds = new HeightmapBounds(landscapeCoord, worldBounds);
                        for (int k = heightmapBounds.min.x; k <= heightmapBounds.max.x; k++)
                        {
                            for (int l = heightmapBounds.min.y; l <= heightmapBounds.max.y; l++)
                            {
                                HeightmapCoord heightmapCoord = new HeightmapCoord(k, l);
                                float          height         = tile.sourceHeightmap[k, l];
                                Vector3        worldPosition  = Landscape.getWorldPosition(landscapeCoord, heightmapCoord, height);
                                callback(landscapeCoord, heightmapCoord, worldPosition);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        // Token: 0x06000E02 RID: 3586 RVA: 0x00062570 File Offset: 0x00060970
        public static void getSplatmapVertices(Bounds worldBounds, Landscape.LandscapeGetSplatmapVerticesHandler callback)
        {
            if (callback == null)
            {
                return;
            }
            LandscapeBounds landscapeBounds = new LandscapeBounds(worldBounds);

            for (int i = landscapeBounds.min.x; i <= landscapeBounds.max.x; i++)
            {
                for (int j = landscapeBounds.min.y; j <= landscapeBounds.max.y; j++)
                {
                    LandscapeCoord landscapeCoord = new LandscapeCoord(i, j);
                    if (Landscape.getTile(landscapeCoord) != null)
                    {
                        SplatmapBounds splatmapBounds = new SplatmapBounds(landscapeCoord, worldBounds);
                        for (int k = splatmapBounds.min.x; k <= splatmapBounds.max.x; k++)
                        {
                            for (int l = splatmapBounds.min.y; l <= splatmapBounds.max.y; l++)
                            {
                                SplatmapCoord splatmapCoord = new SplatmapCoord(k, l);
                                Vector3       worldPosition = Landscape.getWorldPosition(landscapeCoord, splatmapCoord);
                                callback(landscapeCoord, splatmapCoord, worldPosition);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        // Token: 0x06000DFE RID: 3582 RVA: 0x00061FD4 File Offset: 0x000603D4
        public static void readSplatmap(Bounds worldBounds, Landscape.LandscapeReadSplatmapHandler callback)
        {
            if (callback == null)
            {
                return;
            }
            LandscapeBounds landscapeBounds = new LandscapeBounds(worldBounds);

            for (int i = landscapeBounds.min.x; i <= landscapeBounds.max.x; i++)
            {
                for (int j = landscapeBounds.min.y; j <= landscapeBounds.max.y; j++)
                {
                    LandscapeCoord landscapeCoord = new LandscapeCoord(i, j);
                    LandscapeTile  tile           = Landscape.getTile(landscapeCoord);
                    if (tile != null)
                    {
                        SplatmapBounds splatmapBounds = new SplatmapBounds(landscapeCoord, worldBounds);
                        for (int k = splatmapBounds.min.x; k < splatmapBounds.max.x; k++)
                        {
                            for (int l = splatmapBounds.min.y; l < splatmapBounds.max.y; l++)
                            {
                                SplatmapCoord splatmapCoord = new SplatmapCoord(k, l);
                                for (int m = 0; m < Landscape.SPLATMAP_LAYERS; m++)
                                {
                                    Landscape.SPLATMAP_LAYER_BUFFER[m] = tile.sourceSplatmap[k, l, m];
                                }
                                Vector3 worldPosition = Landscape.getWorldPosition(landscapeCoord, splatmapCoord);
                                callback(landscapeCoord, splatmapCoord, worldPosition, Landscape.SPLATMAP_LAYER_BUFFER);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 4
0
 public void convertLegacyHeightmap()
 {
     for (int i = 0; i < Landscape.HEIGHTMAP_RESOLUTION; i++)
     {
         for (int j = 0; j < Landscape.HEIGHTMAP_RESOLUTION; j++)
         {
             HeightmapCoord heightmapCoord = new HeightmapCoord(i, j);
             Vector3        worldPosition  = Landscape.getWorldPosition(this.coord, heightmapCoord, this.sourceHeightmap[i, j]);
             float          num            = LevelGround.getConversionHeight(worldPosition);
             num /= Landscape.TILE_HEIGHT;
             num += 0.5f;
             this.sourceHeightmap[i, j] = num;
         }
     }
     this.data.SetHeights(0, 0, this.sourceHeightmap);
 }
Ejemplo n.º 5
0
 public void convertLegacySplatmap()
 {
     for (int i = 0; i < Landscape.SPLATMAP_RESOLUTION; i++)
     {
         for (int j = 0; j < Landscape.SPLATMAP_RESOLUTION; j++)
         {
             SplatmapCoord splatmapCoord = new SplatmapCoord(i, j);
             Vector3       worldPosition = Landscape.getWorldPosition(this.coord, splatmapCoord);
             for (int k = 0; k < Landscape.SPLATMAP_LAYERS; k++)
             {
                 float conversionWeight = LevelGround.getConversionWeight(worldPosition, k, true);
                 this.sourceSplatmap[i, j, k] = conversionWeight;
             }
         }
     }
     this.data.SetAlphamaps(0, 0, this.sourceSplatmap);
 }
Ejemplo n.º 6
0
        // Token: 0x06000E00 RID: 3584 RVA: 0x00062290 File Offset: 0x00060690
        public static void writeSplatmap(Bounds worldBounds, Landscape.LandscapeWriteSplatmapHandler callback)
        {
            if (callback == null)
            {
                return;
            }
            LandscapeBounds landscapeBounds = new LandscapeBounds(worldBounds);

            for (int i = landscapeBounds.min.x; i <= landscapeBounds.max.x; i++)
            {
                for (int j = landscapeBounds.min.y; j <= landscapeBounds.max.y; j++)
                {
                    LandscapeCoord landscapeCoord = new LandscapeCoord(i, j);
                    LandscapeTile  tile           = Landscape.getTile(landscapeCoord);
                    if (tile != null)
                    {
                        if (!Landscape.splatmapTransactions.ContainsKey(landscapeCoord))
                        {
                            LandscapeSplatmapTransaction landscapeSplatmapTransaction = new LandscapeSplatmapTransaction(tile);
                            DevkitTransactionManager.recordTransaction(landscapeSplatmapTransaction);
                            Landscape.splatmapTransactions.Add(landscapeCoord, landscapeSplatmapTransaction);
                        }
                        SplatmapBounds splatmapBounds = new SplatmapBounds(landscapeCoord, worldBounds);
                        for (int k = splatmapBounds.min.x; k <= splatmapBounds.max.x; k++)
                        {
                            for (int l = splatmapBounds.min.y; l <= splatmapBounds.max.y; l++)
                            {
                                SplatmapCoord splatmapCoord = new SplatmapCoord(k, l);
                                for (int m = 0; m < Landscape.SPLATMAP_LAYERS; m++)
                                {
                                    Landscape.SPLATMAP_LAYER_BUFFER[m] = tile.sourceSplatmap[k, l, m];
                                }
                                Vector3 worldPosition = Landscape.getWorldPosition(landscapeCoord, splatmapCoord);
                                callback(landscapeCoord, splatmapCoord, worldPosition, Landscape.SPLATMAP_LAYER_BUFFER);
                                for (int n = 0; n < Landscape.SPLATMAP_LAYERS; n++)
                                {
                                    tile.sourceSplatmap[k, l, n] = Mathf.Clamp01(Landscape.SPLATMAP_LAYER_BUFFER[n]);
                                }
                            }
                        }
                        tile.data.SetAlphamaps(0, 0, tile.sourceSplatmap);
                    }
                }
            }
        }
Ejemplo n.º 7
0
        // Token: 0x06000DFF RID: 3583 RVA: 0x00062118 File Offset: 0x00060518
        public static void writeHeightmap(Bounds worldBounds, Landscape.LandscapeWriteHeightmapHandler callback)
        {
            if (callback == null)
            {
                return;
            }
            LandscapeBounds landscapeBounds = new LandscapeBounds(worldBounds);

            for (int i = landscapeBounds.min.x; i <= landscapeBounds.max.x; i++)
            {
                for (int j = landscapeBounds.min.y; j <= landscapeBounds.max.y; j++)
                {
                    LandscapeCoord landscapeCoord = new LandscapeCoord(i, j);
                    LandscapeTile  tile           = Landscape.getTile(landscapeCoord);
                    if (tile != null)
                    {
                        if (!Landscape.heightmapTransactions.ContainsKey(landscapeCoord))
                        {
                            LandscapeHeightmapTransaction landscapeHeightmapTransaction = new LandscapeHeightmapTransaction(tile);
                            DevkitTransactionManager.recordTransaction(landscapeHeightmapTransaction);
                            Landscape.heightmapTransactions.Add(landscapeCoord, landscapeHeightmapTransaction);
                        }
                        HeightmapBounds heightmapBounds = new HeightmapBounds(landscapeCoord, worldBounds);
                        for (int k = heightmapBounds.min.x; k <= heightmapBounds.max.x; k++)
                        {
                            for (int l = heightmapBounds.min.y; l <= heightmapBounds.max.y; l++)
                            {
                                HeightmapCoord heightmapCoord = new HeightmapCoord(k, l);
                                float          num            = tile.sourceHeightmap[k, l];
                                Vector3        worldPosition  = Landscape.getWorldPosition(landscapeCoord, heightmapCoord, num);
                                tile.sourceHeightmap[k, l] = Mathf.Clamp01(callback(landscapeCoord, heightmapCoord, worldPosition, num));
                            }
                        }
                        tile.data.SetHeightsDelayLOD(0, 0, tile.sourceHeightmap);
                    }
                }
            }
        }