package eiteam.esteemedinnovation.armor.tophat; import eiteam.esteemedinnovation.armor.ArmorModule; import net.minecraft.nbt.NBTTagByte; import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.ICapabilitySerializable; public class VillagerDataSerializer implements ICapabilitySerializable<NBTTagByte> { VillagerData instance = ArmorModule.VILLAGER_DATA.getDefaultInstance(); @Override public boolean hasCapability(Capability<?> capability, EnumFacing facing) { return capability == ArmorModule.VILLAGER_DATA; } @Override public <T> T getCapability(Capability<T> capability, EnumFacing facing) { return hasCapability(capability, facing) ? ArmorModule.VILLAGER_DATA.<T>cast(instance) : null; } @Override public NBTTagByte serializeNBT() { NBTTagByte nbtByte = (NBTTagByte) ArmorModule.VILLAGER_DATA.getStorage().writeNBT(ArmorModule.VILLAGER_DATA, instance, null); return nbtByte == null ? new NBTTagByte((byte) 0) : nbtByte; } @Override public void deserializeNBT(NBTTagByte nbt) { ArmorModule.VILLAGER_DATA.getStorage().readNBT(ArmorModule.VILLAGER_DATA, instance, null, nbt); } }