Advertisement
Camellias_

Untitled

Jun 20th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.40 KB | None | 0 0
  1. package com.camellias.voidaicarcania.common.tileentities.altar;
  2.  
  3. import javax.annotation.Nullable;
  4.  
  5. import net.minecraft.entity.player.EntityPlayer;
  6. import net.minecraft.nbt.NBTTagCompound;
  7. import net.minecraft.network.NetworkManager;
  8. import net.minecraft.network.play.server.SPacketUpdateTileEntity;
  9. import net.minecraft.tileentity.TileEntity;
  10. import net.minecraft.util.EnumFacing;
  11. import net.minecraft.util.math.BlockPos;
  12. import net.minecraftforge.common.capabilities.Capability;
  13. import net.minecraftforge.items.CapabilityItemHandler;
  14. import net.minecraftforge.items.ItemStackHandler;
  15.  
  16. public class TileWhitewoodPedestal extends TileEntity
  17. {
  18.     public static final int SLOTS = 1;
  19.    
  20.     public ItemStackHandler handler = new ItemStackHandler(SLOTS)
  21.     {
  22.         @Override
  23.         protected void onContentsChanged(int slot)
  24.         {
  25.             TileWhitewoodPedestal.this.markDirty();
  26.         }
  27.     };
  28.    
  29.     @Override
  30.     @Nullable
  31.     public SPacketUpdateTileEntity getUpdatePacket()
  32.     {
  33.         BlockPos pos1 = getPos();
  34.         return new SPacketUpdateTileEntity(pos1, 0, getUpdateTag());
  35.     }
  36.    
  37.     @Override
  38.     public NBTTagCompound getUpdateTag()
  39.     {
  40.         NBTTagCompound nbt = super.getUpdateTag();
  41.         writeToNBT(nbt);
  42.         return nbt;
  43.     }
  44.    
  45.     @Override
  46.     public void onDataPacket(NetworkManager manager, SPacketUpdateTileEntity packet)
  47.     {
  48.         NBTTagCompound tag = packet.getNbtCompound();
  49.         readFromNBT(tag);
  50.     }
  51.    
  52.     @Override
  53.     public void readFromNBT(NBTTagCompound nbt)
  54.     {
  55.         super.readFromNBT(nbt);
  56.        
  57.         if(nbt.hasKey("items"))
  58.         {
  59.             handler.deserializeNBT((NBTTagCompound) nbt.getTag("items"));
  60.         }
  61.     }
  62.    
  63.     @Override
  64.     public NBTTagCompound writeToNBT(NBTTagCompound nbt)
  65.     {
  66.         super.writeToNBT(nbt);
  67.        
  68.         nbt.setTag("items", handler.serializeNBT());
  69.        
  70.         return nbt;
  71.     }
  72.    
  73.     @Override
  74.     public boolean hasCapability(Capability<?> capability, EnumFacing facing)
  75.     {
  76.         if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
  77.         {
  78.             return true;
  79.         }
  80.        
  81.         return super.hasCapability(capability, facing);
  82.     }
  83.    
  84.     @Override
  85.     public <T> T getCapability(Capability<T> capability, EnumFacing facing)
  86.     {
  87.         if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
  88.         {
  89.             return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(handler);
  90.         }
  91.        
  92.         return super.getCapability(capability, facing);
  93.     }
  94.    
  95.     public boolean canInteractWith(EntityPlayer player)
  96.     {
  97.         return !isInvalid() && player.getDistanceSq(pos.add(0.5D, 0.5D, 0.5D)) <= 64D;
  98.     }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement