Advertisement
Guest User

Untitled

a guest
May 27th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.88 KB | None | 0 0
  1.  
  2. public abstract class BaseProvider<TYPE> implements ICapabilitySerializable<NBTTagCompound> {
  3.  
  4.     public abstract TYPE defaultImpl();
  5.  
  6.     public abstract Capability<TYPE> dataInstance();
  7.  
  8.     TYPE impl = defaultImpl();
  9.     private final LazyOptional<TYPE> cap = LazyOptional.of(() -> impl);
  10.  
  11.     @Override
  12.     public NBTTagCompound serializeNBT() {
  13.         return (NBTTagCompound) dataInstance().getStorage()
  14.                 .writeNBT(dataInstance(), impl, null);
  15.  
  16.     }
  17.  
  18.     @Override
  19.     public void deserializeNBT(NBTTagCompound nbt) {
  20.         dataInstance().getStorage().readNBT(dataInstance(), impl, null, nbt);
  21.  
  22.     }
  23.  
  24.     @Nonnull
  25.     @Override
  26.     public <T> LazyOptional<T> getCapability(Capability<T> cap, EnumFacing side) {
  27.         if (cap == dataInstance()) {
  28.             return this.cap.cast();
  29.         }
  30.         return LazyOptional.empty();
  31.     }
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement