package com.intellectualcrafters.plot.object; import com.intellectualcrafters.plot.PS; import com.intellectualcrafters.plot.config.Settings; import com.intellectualcrafters.plot.util.MainUtil; import java.io.File; public class BO3 { private final ChunkLoc chunk; private final String world; private final StringBuilder blocks; private final StringBuilder children; private final String name; public BO3(String name, String world, ChunkLoc loc) { this.world = world; this.name = name; this.chunk = loc; this.blocks = new StringBuilder(); this.children = new StringBuilder(); } public void addChild(BO3 child) { ChunkLoc childloc = child.getLoc(); this.children.append("Branch(").append(childloc.x - this.chunk.x).append(",0,").append(childloc.z - this.chunk.z).append(',') .append(this.name).append('_').append(childloc.x).append('_').append(childloc.z).append(",NORTH,100)\n"); } public ChunkLoc getLoc() { return this.chunk; } public String getWorld() { return this.world; } public String getName() { return this.name; } public void addBlock(int x, int y, int z, PlotBlock block) { if (block.data == 0) { // Block(-3,1,-2,AIR) this.blocks.append("Block(").append(x).append(',').append(y).append(',').append(z).append(',').append(block.id).append(")\n"); } else { this.blocks.append("Block(").append(x).append(',').append(y).append(',').append(z).append(',').append(block.id).append(':') .append(block.data).append(")\n"); } } public String getBlocks() { return this.blocks.toString(); } public String getChildren() { return this.children.toString(); } public File getFile() { return MainUtil.getFile(PS.get().IMP.getDirectory(), Settings.Paths.BO3 + File.separator + getWorld() + File.separator + getFilename()); } public String getFilename() { if (this.chunk.x == 0 && this.chunk.z == 0) { return this.name + ".bo3"; } else { return this.name + ("_" + this.chunk.x + '_' + this.chunk.z) + ".bo3"; } } }