GUI у Entity

Версия Minecraft
1.7.10
118
0
Возник такой вопрос: возможно ли при клике на Entity открывать GUI?
Если да, то как?
Заранее спасибо
 
Код:
public MessageSyncNbtEntityMagicChest getDescriptionPacket() {
	NBTTagCompound nbt = new NBTTagCompound();
	writeEntityToNBT(nbt);
	MessageSyncNbtEntityMagicChest packet = new MessageSyncNbtEntityMagicChest();
	packet.entityID = this.getEntityId();
	packet.nbt = nbt;
	return packet;
}

public void onDataPacket(MessageSyncNbtEntityMagicChest packet) {
	System.out.println("onDataPacket");
	readFromNBT(packet.nbt);
}
Код:
public class MessageSyncNbtEntityMagicChest implements IMessage {

	public int entityID;
	public NBTTagCompound nbt;

	public MessageSyncNbtEntityMagicChest() {}
	/*
	public MessageSyncNbtEntityMagicChest(int id, NBTTagCompound nbt) {
		this.id = id;
		this.nbt = nbt;
	}
	 */
	@Override
	public void toBytes(ByteBuf buf) {
		buf.writeInt(entityID);
		ByteBufUtils.writeTag(buf, nbt);
	}

	@Override
	public void fromBytes(ByteBuf buf) {
		entityID = buf.readInt();
		nbt = ByteBufUtils.readTag(buf);
	}

	public static class Handler implements IMessageHandler<MessageSyncNbtEntityMagicChest, IMessage> {

		@Override
		public IMessage onMessage(MessageSyncNbtEntityMagicChest packet, MessageContext message) {
			if (FMLCommonHandler.instance().getSide().isClient())
				act(packet);
			else
				act(message.getServerHandler().playerEntity, packet);
			return null;
		}

		@SideOnly(Side.CLIENT)
		private void act(MessageSyncNbtEntityMagicChest packet) {
			Minecraft mc = Minecraft.getMinecraft();
			Entity entity = mc.theWorld.getEntityByID(packet.entityID);
			if (entity instanceof EntityMagicChest) {
				((EntityMagicChest)entity).onDataPacket(packet);
			}
		}

		private void act(EntityPlayerMP player, MessageSyncNbtEntityMagicChest packet) {
			Entity entity = player.worldObj.getEntityByID(packet.entityID);
			if (entity instanceof EntityMagicChest) {
				((EntityMagicChest)entity).onDataPacket(packet);
			}
		}

	}

}
 
Назад
Сверху