public ChunkWorker(AnvilCleaner main, int x, int z, int rx, int rz, RegionFile regionSource, RegionFile regionDest, Options options) { this.main = main; this.x = x; this.z = z; this.rx = rx; this.rz = rz; this.regionSource = regionSource; this.regionDest = regionDest; this.options = options; this.completion = CompletionType.INCOMPLETE; }
public ChunkBuffer(RegionFile par1RegionFile, int par2, int par3) { super(8096); regionFile = par1RegionFile; chunkX = par2; chunkZ = par3; }
public Region(File file) { if(!file.exists()) { Program.exitWithError("Region file does not exist!"); } try { regionFile = new RegionFile(file); } catch (Exception e) { e.printStackTrace(); } }
public static void main(String[] args) { if (args.length < 5) { System.out.println("usage: java -jar RegionTiler.jar <origin chunk x> <origin chunk z> <min region x> <max region x> <min region z> <max region z>"); return; } int originX = Integer.parseInt(args[0]); int originZ = Integer.parseInt(args[1]); int minX = Integer.parseInt(args[2]); int maxX = Integer.parseInt(args[3]); int minZ = Integer.parseInt(args[4]); int maxZ = Integer.parseInt(args[5]); try { System.out.println("loading origin chunk..."); int originRegionX = originX / 32; int originRegionZ = originZ / 32; int insideOriginChunkX = originX % 32; int insideOriginChunkZ = originZ % 32; File originRegionFile = new File("r." + originRegionX + "." + originRegionZ + ".mca"); RegionFile originRegion = new RegionFile(originRegionFile); DataInputStream originChunkStream = originRegion.getChunkDataInputStream(insideOriginChunkX, insideOriginChunkZ); CompoundTag originChunk = NbtIo.read(originChunkStream); originChunkStream.close(); originRegion.close(); for (int x = minX; x <= maxX; x++) { for (int z = minZ; z <= maxZ; z++) { System.out.println("writing region " + x + " " + z + "..."); File regionFile = new File("r." + x + "." + z + ".mca"); RegionFile region = new RegionFile(regionFile); for (int cX = 0; cX < 32; cX++) { for (int cZ = 0; cZ < 32; cZ++) { int actualChunkX = x * 32 + cX; int actualChunkZ = z * 32 + cZ; modifyChunkCoordinates(originChunk, actualChunkX, actualChunkZ); DataOutputStream stream = region.getChunkDataOutputStream(cX, cZ); NbtIo.write(originChunk, stream); stream.close(); } } region.close(); } } } catch (IOException e) { e.printStackTrace(); } }
public ChunkTrimmerWorker(AnvilCleaner anvilCleaner, int x, int z, int rx, int rz, RegionFile regionSource, RegionFile regionDest, Options options, List<ChunkLocation> keep) { super(anvilCleaner, x, z, rx, rz, regionSource, regionDest, options); this.keep = keep; }
public ChunkCleanerWorker(AnvilCleaner anvilCleaner, int x, int z, int rx, int rz, RegionFile regionSource, RegionFile regionDest, Options options) { super(anvilCleaner, x, z, rx, rz, regionSource, regionDest, options); }
public TypeCleanerChunkWorker(AnvilCleaner anvilCleaner, int x, int z, int rx, int rz, RegionFile regionSource, RegionFile regionDest, Options options) { super(anvilCleaner, x, z, rx, rz, regionSource, regionDest, options); }
public void scanRegion(File regionFile, List<ChunkLocation> keep, int currentCount, int totalCount) { try { RegionFile regionSource = new RegionFile(regionFile); for (int x = 0; x < 32; x++) { for (int z = 0; z < 32; z++) { if (regionSource.hasChunk(x, z)) { DataInputStream regionChunkInputStream = regionSource.getChunkDataInputStream(x, z); if (regionChunkInputStream == null) { System.out.println("Failed to fetch input stream"); } else { CompoundTag chunkData = (CompoundTag) Tag.readNamedTag(regionChunkInputStream); regionChunkInputStream.close(); CompoundTag compound = chunkData.getCompound("Level"); ChunkStorage.LevelChunk chunk = ChunkStorage.load(compound); if (! ChunkStorage.trim(chunk, options)) { keep.add(new ChunkLocation(chunk.x, chunk.z)); } } } } int basePercent = (int) Math.round(80.0D * (currentCount * 1024) / (totalCount * 1024)); int newPercent = (int) Math.round(80.0D * ((x + 1) * 32 + currentCount * 1024) / (totalCount * 1024)); if (newPercent > basePercent) { progress.progressStagePercentage(newPercent); } } regionSource.close(); } catch (IOException ex) { main.getLogger().log(Level.SEVERE, "Encountered an exception trimming region \"" + regionFile.getName() + "\": ", ex); } }
public final RegionFile getRegionFile() { return regionFile; }