Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CelestialPowerPedestalTileEntity extends TileEntity {
- public static final int slots = 1;
- public ItemStackHandler inv = new ItemStackHandler();
- private final LazyOptional<IItemHandler> capabilityLazyOptional = LazyOptional.of(() -> inv);
- public CelestialPowerPedestalTileEntity() {
- super(ModTileEntities.CELESTIAL_POWER_PEDESTAL_TILE_ENTITY.get());
- }
- public boolean isFillable() {
- return inv.getStackInSlot(0).getItem() != ModItems.CELESTIAL_POWER_EYE.get();
- }
- @Override
- public void read(BlockState state, CompoundNBT nbt) {
- super.read(state, nbt);
- inv.deserializeNBT(nbt.getCompound("Inv"));
- }
- @Nonnull
- @Override
- public <T> LazyOptional<T> getCapability(Capability<T> cap, Direction side) {
- if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
- return capabilityLazyOptional.cast();
- }
- return super.getCapability(cap, side);
- }
- @Override
- protected void invalidateCaps() {
- super.invalidateCaps();
- capabilityLazyOptional.invalidate();
- }
- @Nullable
- @Override
- public SUpdateTileEntityPacket getUpdatePacket() {
- return new SUpdateTileEntityPacket(this.pos, -1, getUpdateTag());
- }
- @Override
- public void onDataPacket(NetworkManager net, SUpdateTileEntityPacket pkt) {
- handleUpdateTag(this.getBlockState(), pkt.getNbtCompound());
- }
- @Override
- public CompoundNBT getUpdateTag() {
- CompoundNBT nbt = super.getUpdateTag();
- nbt.put("Inv", inv.serializeNBT());
- return nbt;
- }
- @Override
- public void handleUpdateTag(BlockState state, CompoundNBT tag) {
- this.read(state, tag);
- }
- }
Add Comment
Please, Sign In to add comment