001 package net.minecraft.world.chunk.storage;
002
003 import java.io.File;
004 import net.minecraft.nbt.NBTTagCompound;
005 import net.minecraft.world.WorldProvider;
006 import net.minecraft.world.WorldProviderEnd;
007 import net.minecraft.world.WorldProviderHell;
008 import net.minecraft.world.storage.SaveHandler;
009 import net.minecraft.world.storage.ThreadedFileIOBase;
010 import net.minecraft.world.storage.WorldInfo;
011
012 public class AnvilSaveHandler extends SaveHandler
013 {
014 public AnvilSaveHandler(File par1File, String par2Str, boolean par3)
015 {
016 super(par1File, par2Str, par3);
017 }
018
019 /**
020 * Returns the chunk loader with the provided world provider
021 */
022 public IChunkLoader getChunkLoader(WorldProvider par1WorldProvider)
023 {
024 File var2 = this.getSaveDirectory();
025 File var3;
026
027 if (par1WorldProvider.getSaveFolder() != null)
028 {
029 var3 = new File(var2, par1WorldProvider.getSaveFolder());
030 var3.mkdirs();
031 return new AnvilChunkLoader(var3);
032 }
033 else
034 {
035 return new AnvilChunkLoader(var2);
036 }
037 }
038
039 /**
040 * Saves the given World Info with the given NBTTagCompound as the Player.
041 */
042 public void saveWorldInfoWithPlayer(WorldInfo par1WorldInfo, NBTTagCompound par2NBTTagCompound)
043 {
044 par1WorldInfo.setSaveVersion(19133);
045 super.saveWorldInfoWithPlayer(par1WorldInfo, par2NBTTagCompound);
046 }
047
048 /**
049 * Called to flush all changes to disk, waiting for them to complete.
050 */
051 public void flush()
052 {
053 try
054 {
055 ThreadedFileIOBase.threadedIOInstance.waitForFinish();
056 }
057 catch (InterruptedException var2)
058 {
059 var2.printStackTrace();
060 }
061
062 RegionFileCache.clearRegionFileReferences();
063 }
064 }