示例#1
0
 public boolean loadRegion(
     RegionManager regionManager, int x, int z, int zoomLevel, int dimension) {
   // MwUtil.log("mapTexture.loadRegion %d %d %d %d", x, z, zoomLevel, dimension);
   boolean alreadyLoaded = true;
   int index = this.getRegionIndex(x, z, zoomLevel);
   Region currentRegion = this.regionArray[index];
   if ((currentRegion == null) || (!currentRegion.equals(x, z, zoomLevel, dimension))) {
     if (currentRegion != null) {
       currentRegion.refCount--;
     }
     Region newRegion = regionManager.getRegion(x, z, zoomLevel, dimension);
     this.regionArray[index] = newRegion;
     newRegion.refCount++;
     this.updateTextureFromRegion(
         newRegion, newRegion.x, newRegion.z, newRegion.size, newRegion.size);
     // oops! this needs to be after updateTextureFromRegion otherwise the GL texture will be
     // updated
     // and the regionModified flag cleared before the region is actually loaded.
     this.setRegionModified(index);
     // MwUtil.log("regionArray[%d] = %s", newRegion.index, newRegion);
     alreadyLoaded = false;
   }
   return alreadyLoaded;
 }