Esempio n. 1
0
        void ScheduleUpdatesForChunk(IWorld world, IChunk chunk)
        {
            chunk.UpdateHeightMap();
            int           _x = chunk.Coordinates.X * Chunk.Width;
            int           _z = chunk.Coordinates.Z * Chunk.Depth;
            Coordinates3D coords, _coords;

            for (byte x = 0; x < Chunk.Width; x++)
            {
                for (byte z = 0; z < Chunk.Depth; z++)
                {
                    for (int y = 0; y < chunk.GetHeight(x, z); y++)
                    {
                        _coords.X = x; _coords.Y = y; _coords.Z = z;
                        var id = chunk.GetBlockID(_coords);
                        if (id == 0)
                        {
                            continue;
                        }
                        coords.X = _x + x; coords.Y = y; coords.Z = _z + z;
                        var provider = BlockRepository.GetBlockProvider(id);
                        provider.BlockLoadedFromChunk(coords, this, world);
                    }
                }
            }
        }
Esempio n. 2
0
 void ScheduleUpdatesForChunk(IWorld world, IChunk chunk)
 {
     chunk.UpdateHeightMap();
     int _x = chunk.Coordinates.X * Chunk.Width;
     int _z = chunk.Coordinates.Z * Chunk.Depth;
     Coordinates3D coords, _coords;
     for (byte x = 0; x < Chunk.Width; x++)
     {
         for (byte z = 0; z < Chunk.Depth; z++)
         {
             for (int y = 0; y < chunk.GetHeight(x, z); y++)
             {
                 _coords.X = x; _coords.Y = y; _coords.Z = z;
                 var id = chunk.GetBlockID(_coords);
                 if (id == 0)
                     continue;
                 coords.X = _x + x; coords.Y = y; coords.Z = _z + z;
                 var provider = BlockRepository.GetBlockProvider(id);
                 provider.BlockLoadedFromChunk(coords, this, world);
             }
         }
     }
 }