diff --git a/src/main/java/com/garbagemule/MobArena/region/RegionSerializer.java b/src/main/java/com/garbagemule/MobArena/region/RegionSerializer.java deleted file mode 100644 index 469c4c0..0000000 --- a/src/main/java/com/garbagemule/MobArena/region/RegionSerializer.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.garbagemule.MobArena.region; - -import com.garbagemule.MobArena.framework.Arena; -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.block.Block; - -public class RegionSerializer -{ - //private UUID worldUID; - private int x1, y1, z1, x2, y2, z2; - private long width, height, length; - - private int[][][] blocks; - private byte[][][] data; - - //private transient World world; - - public RegionSerializer(World world, Location p1, Location p2) { - //this.worldUID = world.getUID(); - - this.x1 = p1.getBlockX(); - this.y1 = p1.getBlockY(); - this.z1 = p1.getBlockZ(); - - this.x2 = p2.getBlockX(); - this.y2 = p2.getBlockY(); - this.z2 = p2.getBlockZ(); - - this.width = (x2 - x1) + 1; - this.height = (y2 - y1) + 1; - this.length = (z2 - z1) + 1; - - int w = (int) width; - int h = (int) height; - int l = (int) length; - - this.blocks = new int[w][h][l]; - this.data = new byte[w][h][l]; - } - - public void serialize(Arena arena) { - Serializer s = new Serializer(arena); - s.start(); - } - - public void deserialize(Arena arena) { - Deserializer d = new Deserializer(arena); - d.start(); - } - - private class Serializer implements Runnable - { - private Arena arena; - private long total; - - public Serializer(Arena arena) { - this.arena = arena; - } - - public void start() { - // Disable the arena while serializing. - arena.setEnabled(false); - - // Start serializing! - total = 0; - arena.scheduleTask(this, 1); - } - - @Override - public void run() { - int y = (int) (total / (width*length)); - int z = (int) ((total % (width*length)) / width); - int x = (int) ((total % (width*length)) % width); - - long max = width*height*length; - int amount = (int) Math.min(20, (max - total)); - - for (int i = 0; i < amount; i++) { - Block b = arena.getWorld().getBlockAt(x,y,z); - blocks[x][y][z] = b.getTypeId(); - data[x][y][z] = b.getData(); - - x = (int) ((x+1) % width); - y = (int) ((y+1) % height); - z = (int) ((z+1) % length); - } - - total += amount; - - if (total == max) { - arena.setEnabled(true); - return; - } - - arena.scheduleTask(this, 1); - } - } - - private class Deserializer implements Runnable - { - private Arena arena; - private long total; - - public Deserializer(Arena arena) { - this.arena = arena; - } - - public void start() { - // Disable the arena while serializing. - arena.setEnabled(false); - - // Start serializing! - total = 0; - arena.scheduleTask(this, 1); - } - - @Override - public void run() { - int y = (int) (total / (width*length)); - int z = (int) ((total % (width*length)) / width); - int x = (int) ((total % (width*length)) % width); - - long max = width*height*length; - int amount = (int) Math.min(20, (max - total)); - - for (int i = 0; i < 20; i++) { - Block b = arena.getWorld().getBlockAt(x,y,z); - b.setTypeIdAndData(blocks[x][y][z], data[x][y][z], false); - } - - total += amount; - - if (total == max) { - arena.setEnabled(true); - return; - } - - arena.scheduleTask(this, 1); - } - } -}