package joshie.harvest.player.packet;
import io.netty.buffer.ByteBuf;
import joshie.harvest.core.HFCore;
import joshie.harvest.core.helpers.NBTHelper;
import joshie.harvest.core.lib.HFSounds;
import joshie.harvest.core.network.Packet;
import joshie.harvest.core.network.PenguinPacket;
import joshie.harvest.player.tracking.StackSold;
import joshie.harvest.player.tracking.TrackingRenderer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import java.util.Set;
@Packet(Packet.Side.CLIENT)
@SuppressWarnings("unused")
public class PacketRenderSold extends PenguinPacket {
private Set<StackSold> sold;
public PacketRenderSold() { }
public PacketRenderSold(Set<StackSold> sold) {
this.sold = sold;
}
@Override
public void toBytes(ByteBuf buf) {
NBTTagCompound tag = new NBTTagCompound();
tag.setTag("Data", NBTHelper.writeCollection(sold));
ByteBufUtils.writeTag(buf, tag);
}
@Override
public void fromBytes(ByteBuf buf) {
NBTTagCompound tag = ByteBufUtils.readTag(buf);
sold = NBTHelper.readHashSet(StackSold.class, tag.getTagList("Data", 10));
}
@Override
public void handlePacket(EntityPlayer player) {
if (HFCore.DISPLAY_SHIPPED_LIST) {
player.worldObj.playSound(player, new BlockPos(player), HFSounds.SHIPPED, SoundCategory.PLAYERS, player.worldObj.rand.nextFloat() * 0.25F + 6F, player.worldObj.rand.nextFloat() * 1.0F + 0.5F);
MinecraftForge.EVENT_BUS.register(new TrackingRenderer(sold));
}
}
}