Exemple #1
0
        public bool dataEqualFor(GeoBlock block)
        {
            GeoByteBuffer geoBlockData = _geoBlocksData[block.getBlockX(), block.getBlockY()];

            geoBlockData.clear();
            return(block.dataEquals(geoBlockData));
        }
Exemple #2
0
        public GeoRegion(int regionX, int regionY, GeoReader reader, bool l2j, string file)
        {
            _file          = file;
            _regionX       = regionX;
            _regionY       = regionY;
            _minGeoX       = GeoEngine.getGeoXY(regionX, 0);
            _maxGeoX       = GeoEngine.getGeoXY(regionX, GeoEngine.GEO_REGION_SIZE - 1);
            _minGeoY       = GeoEngine.getGeoXY(regionY, 0);
            _maxGeoY       = GeoEngine.getGeoXY(regionY, GeoEngine.GEO_REGION_SIZE - 1);
            _geoBlocks     = new GeoBlock[GeoEngine.GEO_REGION_SIZE, GeoEngine.GEO_REGION_SIZE];
            _geoBlocksData = new GeoByteBuffer[GeoEngine.GEO_REGION_SIZE, GeoEngine.GEO_REGION_SIZE];
            //
            GeoBlock      block;
            GeoByteBuffer writer;

            for (int blockX = 0, blockY; blockX < GeoEngine.GEO_REGION_SIZE; blockX++)
            {
                for (blockY = 0; blockY < GeoEngine.GEO_REGION_SIZE; blockY++)
                {
                    block = readBlock(blockX, blockY, reader, l2j);
                    _geoBlocks[blockX, blockY] = block;
                    writer = GeoByteBuffer.allocate(block.getRequiredCapacity(true));
                    block.writeTo(writer, true);
                    _geoBlocksData[blockX, blockY] = writer;
                }
            }
        }
Exemple #3
0
        public void restoreBlock(GeoBlock block)
        {
            int           blockX = block.getBlockX();
            int           blockY = block.getBlockY();
            GeoByteBuffer reader = _geoBlocksData[blockX, blockY];

            reader.clear();
            block.unload();
            _geoBlocks[blockX, blockY] = readBlock(blockX, blockY, reader, true);
        }