Java 类net.minecraft.world.chunk.storage.RegionFileCache 实例源码

项目:RuneCraftery    文件:AnvilChunkLoader.java   
public Chunk func_75815_a(World p_75815_1_, int p_75815_2_, int p_75815_3_) throws IOException {
   NBTTagCompound var4 = null;
   ChunkCoordIntPair var5 = new ChunkCoordIntPair(p_75815_2_, p_75815_3_);
   Object var6 = this.field_75827_c;
   synchronized(this.field_75827_c) {
      if(this.field_75826_b.contains(var5)) {
         for(int var7 = 0; var7 < this.field_75828_a.size(); ++var7) {
            if(((AnvilChunkLoaderPending)this.field_75828_a.get(var7)).field_76548_a.equals(var5)) {
               var4 = ((AnvilChunkLoaderPending)this.field_75828_a.get(var7)).field_76547_b;
               break;
            }
         }
      }
   }

   if(var4 == null) {
      DataInputStream var10 = RegionFileCache.func_76549_c(this.field_75825_d, p_75815_2_, p_75815_3_);
      if(var10 == null) {
         return null;
      }

      var4 = CompressedStreamTools.func_74794_a(var10);
   }

   return this.func_75822_a(p_75815_1_, p_75815_2_, p_75815_3_, var4);
}
项目:forge_world_downloader    文件:WDL.java   
/** Load the previously saved TileEntities and add them to the Chunk **/
public static void importTileEntities( Chunk chunk )
{
    File chunkSaveLocation = (File) Reflexion.stealField( AnvilChunkLoader.class, File.class ).get(chunkLoader);
    DataInputStream dis = RegionFileCache.getChunkInputStream( chunkSaveLocation, chunk.xPosition, chunk.zPosition );
    try
    {
        NBTTagCompound chunkNBT = CompressedStreamTools.read( dis );
        NBTTagCompound levelNBT = chunkNBT.getCompoundTag( "Level" );
        // The official code checks if the chunk is in the right location. Should I too?.
        NBTTagList tileEntitiesNBT = levelNBT.getTagList( "TileEntities" );
        for( int i = 0; i < tileEntitiesNBT.tagCount(); i++ )
        {
            NBTTagCompound tileEntityNBT = (NBTTagCompound) tileEntitiesNBT.tagAt( i );
            TileEntity te = TileEntity.createAndLoadEntity( tileEntityNBT );
            String entityType = getTEName(te);
            if(( isImportableTileEntity( te ) ))
            {
              if( ! newTileEntities.contains( new ChunkPosition( te.xCoord, te.yCoord, te.zCoord ) ) )
              {
                wc.setBlockTileEntity( te.xCoord, te.yCoord, te.zCoord, te );
                chatDebug("Loaded TE: " + entityType + " at " + te.xCoord + " " + te.yCoord + " " + te.zCoord );
              }
              else
                {
                chatDebug( "Dropping old TE: " + entityType + " at " + te.xCoord + " " + te.yCoord + " " + te.zCoord );
                }
            }
            else 
            {
                chatDebug( "TE is not importable: " + entityType + " at " + te.xCoord + " " + te.yCoord + " " + te.zCoord );
            }
        }
    }
    catch ( Exception e ) { } // Couldn't load the old chunk. Nothing unusual. Happens with every not downloaded chunk.
}
项目:RuneCraftery    文件:AnvilSaveHandler.java   
public void func_75759_a() {
   try {
      ThreadedFileIOBase.field_75741_a.func_75734_a();
   } catch (InterruptedException var2) {
      var2.printStackTrace();
   }

   RegionFileCache.func_76551_a();
}
项目:chunkgen    文件:Utilities.java   
private static boolean chunksExist(MinecraftServer server, int x, int z, int dimensionID) {
    WorldServer world = DimensionManager.getWorld(dimensionID);
    ChunkProviderServer chunkProvider = server.worldServerForDimension(dimensionID).getChunkProvider();
    return chunkProvider.chunkExists(x, z) || RegionFileCache.createOrLoadRegionFile(world.getChunkSaveLocation(), x, z).chunkExists(x & 0x1F, z & 0x1F);
}
项目:RuneCraftery    文件:AnvilChunkLoader.java   
private void func_75821_a(AnvilChunkLoaderPending p_75821_1_) throws IOException {
   DataOutputStream var2 = RegionFileCache.func_76552_d(this.field_75825_d, p_75821_1_.field_76548_a.field_77276_a, p_75821_1_.field_76548_a.field_77275_b);
   CompressedStreamTools.func_74800_a(p_75821_1_.field_76547_b, var2);
   var2.close();
}
项目:RuneCraftery    文件:AnvilSaveConverter.java   
public void func_75800_d() {
   RegionFileCache.func_76551_a();
}
项目:JAM    文件:ChunkGenUtils.java   
private static boolean chunksExist(ChunkProviderServer cps, int x, int z, int dimensionID) {
    WorldServer world = null;

    world = DimensionManager.getWorld(dimensionID);

    return RegionFileCache.createOrLoadRegionFile(world.getChunkSaveLocation(), x, z).chunkExists(x & 0x1F, z & 0x1F);


}