Package tconstruct.util.network

Source Code of tconstruct.util.network.SmelteryPacket

package tconstruct.util.network;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import mantle.common.network.*;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidStack;
import tconstruct.TConstruct;
import tconstruct.smeltery.logic.SmelteryLogic;

public class SmelteryPacket extends AbstractPacket
{

    int dimension, x, y, z, fluidID;
    boolean isShiftPressed;

    public SmelteryPacket()
    {

    }

    public SmelteryPacket(int dimension, int x, int y, int z, boolean isShiftPressed, int fluidID)
    {
        this.dimension = dimension;
        this.x = x;
        this.y = y;
        this.z = z;
        this.isShiftPressed = isShiftPressed;
        this.fluidID = fluidID;
    }

    @Override
    public void encodeInto (ChannelHandlerContext ctx, ByteBuf buffer)
    {
        buffer.writeInt(dimension);
        buffer.writeInt(x);
        buffer.writeInt(y);
        buffer.writeInt(z);
        buffer.writeBoolean(isShiftPressed);
        buffer.writeInt(fluidID);

    }

    @Override
    public void decodeInto (ChannelHandlerContext ctx, ByteBuf buffer)
    {
        dimension = buffer.readInt();
        x = buffer.readInt();
        y = buffer.readInt();
        z = buffer.readInt();
        isShiftPressed = buffer.readBoolean();
        fluidID = buffer.readInt();
    }

    @Override
    public void handleClientSide (EntityPlayer player)
    {

    }

    @Override
    public void handleServerSide (EntityPlayer player)
    {
        World world = player.worldObj;

        TileEntity te = world.getTileEntity(x, y, z);
        if (te instanceof SmelteryLogic)
        {
            FluidStack temp = null;

            for (FluidStack liquid : ((SmelteryLogic) te).moltenMetal)
            {
                if (liquid.fluidID == fluidID)
                {
                    temp = liquid;
                }
            }

            if (temp != null)
            {
                ((SmelteryLogic) te).moltenMetal.remove(temp);
                if (isShiftPressed)
                    ((SmelteryLogic) te).moltenMetal.add(temp);
                else
                    ((SmelteryLogic) te).moltenMetal.add(0, temp);
            }

            NBTTagCompound data = new NBTTagCompound();
            te.writeToNBT(data);
            TConstruct.packetPipeline.sendToDimension(new PacketUpdateTE(x, y, z, data), dimension);
        }
    }

}
TOP

Related Classes of tconstruct.util.network.SmelteryPacket

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.