Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public abstract class BaseProvider<TYPE> implements ICapabilitySerializable<NBTTagCompound> {
- public abstract TYPE defaultImpl();
- public abstract Capability<TYPE> dataInstance();
- TYPE impl = defaultImpl();
- private final LazyOptional<TYPE> cap = LazyOptional.of(() -> impl);
- @Override
- public NBTTagCompound serializeNBT() {
- return (NBTTagCompound) dataInstance().getStorage()
- .writeNBT(dataInstance(), impl, null);
- }
- @Override
- public void deserializeNBT(NBTTagCompound nbt) {
- dataInstance().getStorage().readNBT(dataInstance(), impl, null, nbt);
- }
- @Nonnull
- @Override
- public <T> LazyOptional<T> getCapability(Capability<T> cap, EnumFacing side) {
- if (cap == dataInstance()) {
- return this.cap.cast();
- }
- return LazyOptional.empty();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement