예제 #1
0
 public boolean convertMapFormat(String s, IProgressUpdate iprogressupdate) {
   iprogressupdate.setLoadingProgress(0);
   ArrayList arraylist = new ArrayList();
   ArrayList arraylist1 = new ArrayList();
   ArrayList arraylist2 = new ArrayList();
   ArrayList arraylist3 = new ArrayList();
   File file = new File(field_22180_a, s);
   File file1 = new File(file, "DIM-1");
   System.out.println("Scanning folders...");
   func_22183_a(file, arraylist, arraylist1);
   if (file1.exists()) {
     func_22183_a(file1, arraylist2, arraylist3);
   }
   int i = arraylist.size() + arraylist2.size() + arraylist1.size() + arraylist3.size();
   System.out.println(
       (new StringBuilder()).append("Total conversion count is ").append(i).toString());
   func_22181_a(file, arraylist, 0, i, iprogressupdate);
   func_22181_a(file1, arraylist2, arraylist.size(), i, iprogressupdate);
   WorldInfo worldinfo = func_22173_b(s);
   worldinfo.setSaveVersion(19132);
   ISaveHandler isavehandler = getSaveLoader(s, false);
   isavehandler.saveWorldInfo(worldinfo);
   func_22182_a(arraylist1, arraylist.size() + arraylist2.size(), i, iprogressupdate);
   if (file1.exists()) {
     func_22182_a(
         arraylist3, arraylist.size() + arraylist2.size() + arraylist1.size(), i, iprogressupdate);
   }
   return true;
 }
예제 #2
0
  public List func_22176_b() {
    ArrayList arraylist = new ArrayList();
    File afile[] = field_22180_a.listFiles();
    File afile1[] = afile;
    int i = afile1.length;
    for (int j = 0; j < i; j++) {
      File file = afile1[j];
      if (!file.isDirectory()) {
        continue;
      }
      String s = file.getName();
      WorldInfo worldinfo = func_22173_b(s);
      if (worldinfo == null) {
        continue;
      }
      boolean flag = worldinfo.getSaveVersion() != 19132;
      String s1 = worldinfo.getWorldName();
      if (s1 == null || MathHelper.stringNullOrLengthZero(s1)) {
        s1 = s;
      }
      arraylist.add(
          new SaveFormatComparator(
              s, s1, worldinfo.getLastTimePlayed(), worldinfo.getSizeOnDisk(), flag));
    }

    return arraylist;
  }
예제 #3
0
  /**
   * Fired when a control is clicked. This is the equivalent of
   * ActionListener.actionPerformed(ActionEvent e).
   */
  protected void actionPerformed(GuiButton par1GuiButton) {
    if (par1GuiButton.id == 0) {
      mc.displayGuiScreen(new GuiOptions(this, mc.gameSettings));
    }

    if (par1GuiButton.id == 5) {
      mc.displayGuiScreen(new GuiLanguage(this, mc.gameSettings, mc.func_135016_M()));
    }

    if (par1GuiButton.id == 1) {
      mc.displayGuiScreen(new GuiSelectWorld(this));
    }

    if (par1GuiButton.id == 2) {
      mc.displayGuiScreen(new GuiMultiplayer(this));
    }

    if (par1GuiButton.id == 14 && field_130023_H.drawButton) {
      func_140005_i();
    }

    if (par1GuiButton.id == 4) {
      mc.shutdown();
    }

    if (par1GuiButton.id == 10) {
      mc.displayGuiScreen(new GuiScreenTemporaryResourcePackSelect(this, mc.gameSettings));
    }

    if (par1GuiButton.id == 11) {
      mc.enableSP = mc.useSP;
      if (mc.enableSP) {
        mc.playerController = new PlayerControllerDemo(mc);
        mc.startWorldSSP("Demo_World", "Demo_World", DemoWorldServer.demoWorldSettings);
        mc.displayGuiScreen(null);
      } else {
        mc.launchIntegratedServer("Demo_World", "Demo_World", DemoWorldServer.demoWorldSettings);
      }
    }

    if (par1GuiButton.id == 12) {
      ISaveFormat isaveformat = mc.getSaveLoader();
      WorldInfo worldinfo = isaveformat.getWorldInfo("Demo_World");

      if (worldinfo != null) {
        GuiYesNo guiyesno = GuiSelectWorld.getDeleteWorldScreen(this, worldinfo.getWorldName(), 12);
        mc.displayGuiScreen(guiyesno);
      }
    }
  }
예제 #4
0
  public List func_22176_b() {
    ArrayList arraylist = new ArrayList();
    for (int i = 0; i < 5; i++) {
      String s = (new StringBuilder()).append("World").append(i + 1).toString();
      WorldInfo worldinfo = func_22173_b(s);
      if (worldinfo != null) {
        arraylist.add(
            new SaveFormatComparator(
                s, "", worldinfo.getLastTimePlayed(), worldinfo.getSizeOnDisk(), false));
      }
    }

    return arraylist;
  }
예제 #5
0
  @Override
  public void a(WorldInfo worldinfo) {
    NBTTagCompound nbttagcompound = worldinfo.a();
    NBTTagCompound nbttagcompound1 = new NBTTagCompound();

    nbttagcompound1.a("Data", (NBTBase) nbttagcompound);

    try {
      File file1 = new File(this.worldDir, "level.dat_new");
      File file2 = new File(this.worldDir, "level.dat_old");
      File file3 = new File(this.worldDir, "level.dat");

      CompressedStreamTools.a(nbttagcompound1, (OutputStream) (new FileOutputStream(file1)));
      if (file2.exists()) {
        file2.delete();
      }

      file3.renameTo(file2);
      if (file3.exists()) {
        file3.delete();
      }

      file1.renameTo(file3);
      if (file1.exists()) {
        file1.delete();
      }
    } catch (Exception exception) {
      exception.printStackTrace();
    }
  }
  public List getSaveList() {
    ArrayList arraylist = new ArrayList();
    File afile[] = savesDirectory.listFiles();
    File afile1[] = afile;
    int i = afile1.length;

    for (int j = 0; j < i; j++) {
      File file = afile1[j];

      if (!file.isDirectory()) {
        continue;
      }

      String s = file.getName();
      WorldInfo worldinfo = getWorldInfo(s);

      if (worldinfo == null
          || worldinfo.getSaveVersion() != 19132 && worldinfo.getSaveVersion() != 19133) {
        continue;
      }

      boolean flag = worldinfo.getSaveVersion() != getSaveVersion();
      String s1 = worldinfo.getWorldName();

      if (s1 == null || MathHelper.stringNullOrLengthZero(s1)) {
        s1 = s;
      }

      long l = 0L;
      arraylist.add(
          new SaveFormatComparator(
              s,
              s1,
              worldinfo.getLastTimePlayed(),
              l,
              worldinfo.getGameType(),
              flag,
              worldinfo.isHardcoreModeEnabled(),
              worldinfo.areCommandsAllowed()));
    }

    return arraylist;
  }
예제 #7
0
 public boolean isOldMapFormat(String s) {
   WorldInfo worldinfo = func_22173_b(s);
   return worldinfo != null && worldinfo.getSaveVersion() == 0;
 }
예제 #8
0
 public static WorldInfo getInfo(String worldname) {
   WorldInfo info = null;
   try {
     Tag t = getData(worldname);
     if (t != null) {
       info = new WorldInfo();
       info.name = t.findTagByName("LevelName").getValue().toString();
       info.seed = (Long) t.findTagByName("RandomSeed").getValue();
       info.size = (Long) t.findTagByName("SizeOnDisk").getValue();
       info.time = (Long) t.findTagByName("Time").getValue();
       info.raining = ((Byte) t.findTagByName("raining").getValue()) != 0;
       info.thundering = ((Byte) t.findTagByName("thundering").getValue()) != 0;
       if (info.size == 0) info.size = getWorldSize(worldname);
     }
   } catch (Exception ex) {
   }
   World w = getWorld(worldname);
   if (w != null) {
     if (info == null) {
       info = new WorldInfo();
       info.size = getWorldSize(worldname);
     }
     info.name = w.getName();
     info.seed = w.getSeed();
     info.time = w.getFullTime();
     info.raining = w.hasStorm();
     info.thundering = w.isThundering();
   }
   return info;
 }
  /** Converts the specified map to the new map format. Args: worldName, loadingScreen */
  public boolean convertMapFormat(String par1Str, IProgressUpdate par2IProgressUpdate) {
    par2IProgressUpdate.setLoadingProgress(0);
    ArrayList arraylist = new ArrayList();
    ArrayList arraylist1 = new ArrayList();
    ArrayList arraylist2 = new ArrayList();
    File file = new File(savesDirectory, par1Str);
    File file1 = new File(file, "DIM-1");
    File file2 = new File(file, "DIM1");
    System.out.println("Scanning folders...");
    addRegionFilesToCollection(file, arraylist);

    if (file1.exists()) {
      addRegionFilesToCollection(file1, arraylist1);
    }

    if (file2.exists()) {
      addRegionFilesToCollection(file2, arraylist2);
    }

    int i = arraylist.size() + arraylist1.size() + arraylist2.size();
    System.out.println(
        (new StringBuilder()).append("Total conversion count is ").append(i).toString());
    WorldInfo worldinfo = getWorldInfo(par1Str);
    Object obj = null;

    if (worldinfo.getTerrainType() == WorldType.FLAT) {
      obj = new WorldChunkManagerHell(BiomeGenBase.plains, 0.5F, 0.5F);
    } else {
      obj = new WorldChunkManager(worldinfo.getSeed(), worldinfo.getTerrainType());
    }

    convertFile(
        new File(file, "region"),
        arraylist,
        ((WorldChunkManager) (obj)),
        0,
        i,
        par2IProgressUpdate);
    convertFile(
        new File(file1, "region"),
        arraylist1,
        new WorldChunkManagerHell(BiomeGenBase.hell, 1.0F, 0.0F),
        arraylist.size(),
        i,
        par2IProgressUpdate);
    convertFile(
        new File(file2, "region"),
        arraylist2,
        new WorldChunkManagerHell(BiomeGenBase.sky, 0.5F, 0.0F),
        arraylist.size() + arraylist1.size(),
        i,
        par2IProgressUpdate);
    worldinfo.setSaveVersion(19133);

    if (worldinfo.getTerrainType() == WorldType.DEFAULT_1_1) {
      worldinfo.setTerrainType(WorldType.DEFAULT);
    }

    createFile(par1Str);
    ISaveHandler isavehandler = getSaveLoader(par1Str, false);
    isavehandler.saveWorldInfo(worldinfo);
    return true;
  }
 /** Checks if the save directory uses the old map format */
 public boolean isOldMapFormat(String par1Str) {
   WorldInfo worldinfo = getWorldInfo(par1Str);
   return worldinfo != null && worldinfo.getSaveVersion() != getSaveVersion();
 }