Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package iitest.capability;
- import net.minecraft.item.ItemStack;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.nbt.NBTTagList;
- import net.minecraft.util.EnumFacing;
- import net.minecraftforge.common.capabilities.Capability;
- import net.minecraftforge.common.capabilities.ICapabilitySerializable;
- import net.minecraftforge.common.util.Constants;
- import javax.annotation.Nonnull;
- import javax.annotation.Nullable;
- public class ITestProvider implements ICapabilitySerializable<NBTTagCompound> {
- ITest instance = new ITestImpl();
- @Override
- public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) {
- return capability == ITest.instance;
- }
- @Nullable
- @Override
- public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) {
- if (capability == ITest.instance)
- return (T)instance;
- return null;
- }
- @Override
- public NBTTagCompound serializeNBT() {
- NBTTagCompound nbt = new NBTTagCompound();
- NBTTagList slot = new NBTTagList();
- if (instance.getStackInSlot(0) != ItemStack.EMPTY) {
- NBTTagCompound item = new NBTTagCompound();
- item.setByte("__slot__", (byte)0);
- item.setTag("__item__", instance.getStackInSlot(0).serializeNBT());
- slot.appendTag(item);
- nbt.setTag("__slot__", slot);
- }
- nbt.setInteger("__value__", instance.getValue());
- // nbt.setTag("__stack__", instance.getStackInSlot(0).serializeNBT());
- return nbt;
- }
- @Override
- public void deserializeNBT(NBTTagCompound nbt) {
- NBTTagList slot = nbt.getTagList("__slot__", Constants.NBT.TAG_COMPOUND);
- if (!slot.hasNoTags()) {
- NBTTagCompound item = slot.getCompoundTagAt(0);
- instance.setInventorySlotContents(0, new ItemStack(item));
- }
- instance.setValue(nbt.getInteger("__value__"));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement