Mekanism-tilera-Edition/src/minecraft/mekanism/common/network/PacketTileEntity.java

59 lines
1.3 KiB
Java
Raw Normal View History

package mekanism.common.network;
import java.io.DataOutputStream;
import mekanism.api.Object3D;
import mekanism.common.ITileNetwork;
import mekanism.common.PacketHandler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import com.google.common.io.ByteArrayDataInput;
public class PacketTileEntity implements IMekanismPacket
{
public Object3D object3D;
public Object[] parameters;
public PacketTileEntity(Object3D obj, Object... params)
{
object3D = obj;
parameters = params;
}
public PacketTileEntity() {}
@Override
public String getName()
{
return "TileEntity";
}
@Override
public void read(ByteArrayDataInput dataStream, EntityPlayer player, World world) throws Exception
{
int x = dataStream.readInt();
int y = dataStream.readInt();
int z = dataStream.readInt();
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
if(tileEntity instanceof ITileNetwork)
{
((ITileNetwork)tileEntity).handlePacketData(dataStream);
}
}
@Override
public void write(DataOutputStream dataStream) throws Exception
{
dataStream.writeInt(object3D.xCoord);
dataStream.writeInt(object3D.yCoord);
dataStream.writeInt(object3D.zCoord);
PacketHandler.encode(parameters, dataStream, 0);
}
}