de.paleocrafter.pmfw.network.packet.TileDataPacket.java Source code

Java tutorial

Introduction

Here is the source code for de.paleocrafter.pmfw.network.packet.TileDataPacket.java

Source

package de.paleocrafter.pmfw.network.packet;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;

import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;

import cpw.mods.fml.relauncher.Side;
import de.paleocrafter.pmfw.tileentity.TileEntityWithData;

/**
 * 
 * PaleoMachineFramework
 * 
 * TileDataPacket
 * 
 * @author PaleoCrafter
 * @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html)
 * 
 */
public class TileDataPacket extends PaleoPacket {

    private byte[] data;
    private int x, y, z;

    public TileDataPacket() {
        x = 0;
        y = 0;
        z = 0;
        data = null;
    }

    public TileDataPacket(int x, int y, int z, byte[] data) {
        this.x = x;
        this.y = y;
        this.z = z;
        this.data = data;
    }

    @Override
    public void write(ByteArrayDataOutput out) {
        out.writeInt(x);
        out.writeInt(y);
        out.writeInt(z);
        out.writeInt(data.length);
        out.write(data);
    }

    @Override
    public void read(ByteArrayDataInput in) {
        this.x = in.readInt();
        this.y = in.readInt();
        this.z = in.readInt();
        int dataLength = in.readInt();
        data = new byte[dataLength];
        try {
            in.readFully(data);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("");
        }
    }

    @Override
    public void execute(EntityPlayer player, Side side) {
        if (side.isClient()) {
            TileEntity tile = player.worldObj.getBlockTileEntity(x, y, z);
            if (tile instanceof TileEntityWithData) {
                ((TileEntityWithData) tile).readFromPacket(ByteStreams.newDataInput(data));
            }
        }
    }

}