2015-03-19 02:52:53 +01:00
|
|
|
package com.pahimar.ee3.network.message;
|
|
|
|
|
|
|
|
import com.pahimar.ee3.tileentity.TileEntityTransmutationTablet;
|
|
|
|
import cpw.mods.fml.client.FMLClientHandler;
|
|
|
|
import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
|
|
|
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
|
|
|
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
|
|
|
import io.netty.buffer.ByteBuf;
|
|
|
|
import net.minecraft.nbt.CompressedStreamTools;
|
|
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
|
|
import net.minecraft.tileentity.TileEntity;
|
|
|
|
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
|
|
import java.io.IOException;
|
|
|
|
|
2016-05-30 04:10:32 +02:00
|
|
|
public class MessageTileEntityTransmutationTablet implements IMessage, IMessageHandler<MessageTileEntityTransmutationTablet, IMessage> {
|
2015-03-19 02:52:53 +01:00
|
|
|
|
2016-05-30 04:10:32 +02:00
|
|
|
public NBTTagCompound tileEntityTransmutationTabletNBT;
|
2015-03-19 02:52:53 +01:00
|
|
|
|
2016-05-30 04:10:32 +02:00
|
|
|
public MessageTileEntityTransmutationTablet() {
|
2015-03-19 02:52:53 +01:00
|
|
|
}
|
|
|
|
|
2016-05-30 04:10:32 +02:00
|
|
|
public MessageTileEntityTransmutationTablet(TileEntityTransmutationTablet tileEntityTransmutationTablet) {
|
|
|
|
|
2015-03-19 02:52:53 +01:00
|
|
|
tileEntityTransmutationTabletNBT = new NBTTagCompound();
|
|
|
|
tileEntityTransmutationTablet.writeToNBT(tileEntityTransmutationTabletNBT);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-05-30 04:10:32 +02:00
|
|
|
public void fromBytes(ByteBuf buf) {
|
|
|
|
|
2015-03-19 02:52:53 +01:00
|
|
|
byte[] compressedNBT = null;
|
|
|
|
int readableBytes = buf.readInt();
|
|
|
|
|
2016-05-30 04:10:32 +02:00
|
|
|
if (readableBytes > 0) {
|
2015-03-19 02:52:53 +01:00
|
|
|
compressedNBT = buf.readBytes(readableBytes).array();
|
|
|
|
}
|
|
|
|
|
2016-05-30 04:10:32 +02:00
|
|
|
if (compressedNBT != null) {
|
|
|
|
|
|
|
|
try {
|
2015-03-19 02:52:53 +01:00
|
|
|
this.tileEntityTransmutationTabletNBT = CompressedStreamTools.readCompressed(new ByteArrayInputStream(compressedNBT));
|
|
|
|
}
|
2016-05-30 04:10:32 +02:00
|
|
|
catch (IOException e) {
|
2015-03-19 02:52:53 +01:00
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-05-30 04:10:32 +02:00
|
|
|
public void toBytes(ByteBuf buf) {
|
|
|
|
|
2015-03-19 02:52:53 +01:00
|
|
|
byte[] compressedNBT = null;
|
|
|
|
|
2016-05-30 04:10:32 +02:00
|
|
|
try {
|
|
|
|
if (tileEntityTransmutationTabletNBT != null) {
|
2015-03-19 02:52:53 +01:00
|
|
|
compressedNBT = CompressedStreamTools.compress(tileEntityTransmutationTabletNBT);
|
|
|
|
}
|
|
|
|
}
|
2016-05-30 04:10:32 +02:00
|
|
|
catch (IOException e) {
|
2015-03-19 02:52:53 +01:00
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
|
2016-05-30 04:10:32 +02:00
|
|
|
if (compressedNBT != null) {
|
2015-03-19 02:52:53 +01:00
|
|
|
buf.writeInt(compressedNBT.length);
|
|
|
|
buf.writeBytes(compressedNBT);
|
|
|
|
}
|
2016-05-30 04:10:32 +02:00
|
|
|
else {
|
2015-03-19 02:52:53 +01:00
|
|
|
buf.writeInt(0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-05-30 04:10:32 +02:00
|
|
|
public IMessage onMessage(MessageTileEntityTransmutationTablet message, MessageContext ctx) {
|
|
|
|
|
|
|
|
if (message.tileEntityTransmutationTabletNBT != null) {
|
|
|
|
|
|
|
|
TileEntityTransmutationTablet tileEntityTransmutationTablet = new TileEntityTransmutationTablet();
|
|
|
|
tileEntityTransmutationTablet.readFromNBT(message.tileEntityTransmutationTabletNBT);
|
2015-03-19 02:52:53 +01:00
|
|
|
|
2016-05-30 04:10:32 +02:00
|
|
|
TileEntity tileEntity = FMLClientHandler.instance().getClient().theWorld.getTileEntity(tileEntityTransmutationTablet.xCoord, tileEntityTransmutationTablet.yCoord, tileEntityTransmutationTablet.zCoord);
|
2015-03-19 02:52:53 +01:00
|
|
|
|
2016-05-30 04:10:32 +02:00
|
|
|
if (tileEntity instanceof TileEntityTransmutationTablet) {
|
2015-03-19 02:52:53 +01:00
|
|
|
tileEntity.readFromNBT(message.tileEntityTransmutationTabletNBT);
|
|
|
|
//NAME UPDATE
|
2016-05-30 04:10:32 +02:00
|
|
|
FMLClientHandler.instance().getClient().theWorld.func_147451_t(tileEntityTransmutationTablet.xCoord, tileEntityTransmutationTablet.yCoord, tileEntityTransmutationTablet.zCoord);
|
2015-03-19 02:52:53 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|