diff options
Diffstat (limited to 'src/main/java/com/detrav/net/ProspectingPacket.java')
-rw-r--r-- | src/main/java/com/detrav/net/ProspectingPacket.java | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/main/java/com/detrav/net/ProspectingPacket.java b/src/main/java/com/detrav/net/ProspectingPacket.java index 4d6fd72b82..beb8d9d3d7 100644 --- a/src/main/java/com/detrav/net/ProspectingPacket.java +++ b/src/main/java/com/detrav/net/ProspectingPacket.java @@ -1,6 +1,9 @@ package com.detrav.net; +import java.io.*; import java.util.HashMap; +import java.util.zip.DeflaterInputStream; +import java.util.zip.DeflaterOutputStream; import net.minecraft.util.StatCollector; import net.minecraftforge.fluids.FluidRegistry; @@ -12,9 +15,6 @@ import com.detrav.gui.textures.DetravMapTexture; import com.detrav.utils.GTppHelper; import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; import com.google.common.base.Objects; -import com.google.common.io.ByteArrayDataInput; -import com.google.common.io.ByteArrayDataOutput; -import com.google.common.io.ByteStreams; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; @@ -100,7 +100,8 @@ public class ProspectingPacket extends DetravPacket { packet.metaMap.put(meta, name); } - public static Object decode(ByteArrayDataInput aData) { + public static Object decode(InputStream in) throws IOException { + DataInput aData = new DataInputStream(new DeflaterInputStream(in)); ProspectingPacket packet = new ProspectingPacket( aData.readInt(), aData.readInt(), @@ -134,10 +135,9 @@ public class ProspectingPacket extends DetravPacket { return 0; } - @SuppressWarnings("UnstableApiUsage") @Override - public byte[] encode() { - ByteArrayDataOutput tOut = ByteStreams.newDataOutput(1); + public void encode(OutputStream out) throws IOException { + DataOutputStream tOut = new DataOutputStream(new DeflaterOutputStream(out)); tOut.writeInt(chunkX); tOut.writeInt(chunkZ); tOut.writeInt(posX); @@ -149,18 +149,18 @@ public class ProspectingPacket extends DetravPacket { int aSize = (size * 2 + 1) * 16; int checkOut = 0; for (int i = 0; i < aSize; i++) for (int j = 0; j < aSize; j++) { - if (map[i][j] == null) tOut.writeByte(0); + HashMap<Byte, Short> data = map[i][j]; + if (data == null) tOut.writeByte(0); else { - tOut.writeByte(map[i][j].keySet().size()); - for (byte key : map[i][j].keySet()) { + tOut.writeByte(data.keySet().size()); + for (byte key : data.keySet()) { tOut.writeByte(key); - tOut.writeShort(map[i][j].get(key)); + tOut.writeShort(data.get(key)); checkOut++; } } } tOut.writeInt(checkOut); - return tOut.toByteArray(); } @Override |