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