Package appeng.core.sync.packets

Source Code of appeng.core.sync.packets.PacketCompassRequest

package appeng.core.sync.packets;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import appeng.api.util.DimensionalCoord;
import appeng.core.WorldSettings;
import appeng.core.sync.AppEngPacket;
import appeng.core.sync.network.INetworkInfo;
import appeng.core.sync.network.NetworkHandler;
import appeng.services.helpers.ICompassCallback;

public class PacketCompassRequest extends AppEngPacket implements ICompassCallback
{

  final public long attunement;
  final public int cx, cz, cdy;

  EntityPlayer talkBackTo;

  // automatic.
  public PacketCompassRequest(ByteBuf stream) {
    attunement = stream.readLong();
    cx = stream.readInt();
    cz = stream.readInt();
    cdy = stream.readInt();
  }

  @Override
  public void calculatedDirection(boolean hasResult, boolean spin, double radians, double dist)
  {
    NetworkHandler.instance.sendTo( new PacketCompassResponse( this, hasResult, spin, radians ), (EntityPlayerMP) talkBackTo );
  }

  @Override
  public void serverPacketData(INetworkInfo manager, AppEngPacket packet, EntityPlayer player)
  {
    talkBackTo = player;

    DimensionalCoord loc = new DimensionalCoord( player.worldObj, this.cx << 4, this.cdy << 5, this.cz << 4 );
    WorldSettings.getInstance().getCompass().getCompassDirection( loc, 174, this );
  }

  // api
  public PacketCompassRequest(long attunement, int cx, int cz, int cdy) {

    ByteBuf data = Unpooled.buffer();

    data.writeInt( getPacketID() );
    data.writeLong( this.attunement = attunement );
    data.writeInt( this.cx = cx );
    data.writeInt( this.cz = cz );
    data.writeInt( this.cdy = cdy );

    configureWrite( data );

  }
}
TOP

Related Classes of appeng.core.sync.packets.PacketCompassRequest

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.