buildcraft.transport.network.PacketPipeTransportTraveler.java Source code

Java tutorial

Introduction

Here is the source code for buildcraft.transport.network.PacketPipeTransportTraveler.java

Source

/**
 * Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
 * http://www.mod-buildcraft.com
 *
 * BuildCraft is distributed under the terms of the Minecraft Mod Public
 * License 1.0, or MMPL. Please check the contents of the license located in
 * http://www.mod-buildcraft.com/MMPL-1.0.txt
 */
package buildcraft.transport.network;

import io.netty.buffer.ByteBuf;

import net.minecraft.util.MathHelper;

import net.minecraftforge.common.util.ForgeDirection;

import buildcraft.core.network.BuildCraftPacket;
import buildcraft.core.network.PacketIds;
import buildcraft.core.utils.EnumColor;
import buildcraft.transport.TravelingItem;

public class PacketPipeTransportTraveler extends BuildCraftPacket {

    public int posX;
    public int posY;
    public int posZ;

    private TravelingItem item;
    private boolean forceStackRefresh;
    private int entityId;
    private ForgeDirection input;
    private ForgeDirection output;
    private EnumColor color;
    private float itemX;
    private float itemY;
    private float itemZ;
    private float speed;

    public PacketPipeTransportTraveler() {
    }

    public PacketPipeTransportTraveler(TravelingItem item, boolean forceStackRefresh) {
        this.item = item;
        this.forceStackRefresh = forceStackRefresh;
    }

    @Override
    public void writeData(ByteBuf data) {
        data.writeFloat((float) item.xCoord);
        data.writeFloat((float) item.yCoord);
        data.writeFloat((float) item.zCoord);

        data.writeShort(item.id);

        data.writeByte((byte) item.input.ordinal());
        data.writeByte((byte) item.output.ordinal());

        data.writeByte(item.color != null ? item.color.ordinal() : -1);

        data.writeFloat(item.getSpeed());

        data.writeBoolean(forceStackRefresh);
    }

    @Override
    public void readData(ByteBuf data) {
        this.itemX = data.readFloat();
        this.itemY = data.readFloat();
        this.itemZ = data.readFloat();

        posX = MathHelper.floor_float(itemX);
        posY = MathHelper.floor_float(itemY);
        posZ = MathHelper.floor_float(itemZ);

        this.entityId = data.readShort();

        this.input = ForgeDirection.getOrientation(data.readByte());
        this.output = ForgeDirection.getOrientation(data.readByte());

        byte c = data.readByte();
        if (c != -1) {
            this.color = EnumColor.fromId(c);
        }

        this.speed = data.readFloat();

        this.forceStackRefresh = data.readBoolean();
    }

    public int getTravelingEntityId() {
        return entityId;
    }

    public ForgeDirection getInputOrientation() {
        return input;
    }

    public ForgeDirection getOutputOrientation() {
        return output;
    }

    public EnumColor getColor() {
        return color;
    }

    public double getItemX() {
        return itemX;
    }

    public double getItemY() {
        return itemY;
    }

    public double getItemZ() {
        return itemZ;
    }

    public float getSpeed() {
        return speed;
    }

    public boolean forceStackRefresh() {
        return forceStackRefresh;
    }

    @Override
    public int getID() {
        return PacketIds.PIPE_TRAVELER;
    }
}