Advertisement
Guest User

TileEntityFancyBed

a guest
Dec 11th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.50 KB | None | 0 0
  1. public class TileEntityFancyBed extends TileEntity {
  2.  
  3.     private EnumDyeColor color = EnumDyeColor.PINK;
  4.    
  5.     public TileEntityFancyBed()
  6.     {
  7.        
  8.     }
  9.    
  10.     @Override
  11.         public void onLoad()
  12.     {
  13.        
  14.     }
  15.    
  16.      
  17.     public void setItemValues(ItemStack p_193051_1_)
  18.     {
  19.         this.setColor(EnumDyeColor.byMetadata(p_193051_1_.getMetadata()));
  20.     }
  21.      
  22.    
  23.    
  24.     public NBTTagCompound writeToNBT(NBTTagCompound compound)
  25.     {
  26.         super.writeToNBT(compound);
  27.         compound.setInteger("color", this.color.getMetadata());
  28.         return compound;
  29.     }
  30.        
  31.     public void setColor(EnumDyeColor color)
  32.     {
  33.         this.color = color;
  34.         this.markDirty();
  35.     }
  36.  
  37.     @Override
  38.     public NBTTagCompound getUpdateTag() {
  39.         return writeToNBT(new NBTTagCompound());
  40.     }
  41.    
  42.     public void readFromNBT(NBTTagCompound compound)
  43.     {
  44.         super.readFromNBT(compound);
  45.         this.color = EnumDyeColor.byMetadata(compound.getInteger("color"));
  46.     }
  47.  
  48.    
  49.     @Override
  50.     public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) {
  51.         readFromNBT(pkt.getNbtCompound());
  52.         notifyBlockUpdate();
  53.     }
  54.    
  55.     public void sendUpdates() {
  56.         world.markBlockRangeForRenderUpdate(pos, pos);
  57.         world.notifyBlockUpdate(pos, getState(), getState().withProperty(BlockFancyBed.COLOR, color), 2);
  58.         world.scheduleBlockUpdate(pos,this.getBlockType(),0,0);
  59.         markDirty();
  60.     }
  61.    
  62.     private IBlockState getState() {
  63.         return world.getBlockState(pos);
  64.     }
  65.    
  66.     private void notifyBlockUpdate() {
  67.         final IBlockState state = getWorld().getBlockState(getPos());
  68.         getWorld().notifyBlockUpdate(getPos(), state, state, 3);
  69.     }
  70.    
  71.     @Override
  72.     public void markDirty() {
  73.         super.markDirty();
  74.         notifyBlockUpdate();
  75.     }
  76.    
  77.     public EnumDyeColor getColor()
  78.     {
  79.         return this.color;
  80.     }
  81.    
  82.     @SideOnly(Side.CLIENT)
  83.     public boolean isHeadPiece()
  84.     {
  85.         return BlockFancyBed.isHeadPiece(this.getBlockMetadata());
  86.     }
  87.    
  88.     public ItemStack getItemStack() {
  89.         return new ItemStack(ModItems.ITEM_FANCY_BED, 1, color.getMetadata());
  90.     }
  91.    
  92.     @Override
  93.     public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState) {
  94.     return (oldState.getBlock() != newState.getBlock());
  95.     }
  96.    
  97.     @Nullable
  98.     @Override
  99.     public SPacketUpdateTileEntity getUpdatePacket() {
  100.         return new SPacketUpdateTileEntity(getPos(), 0, getUpdateTag());
  101.     }
  102.    
  103.     @Override
  104.     public void handleUpdateTag(NBTTagCompound tag)
  105.     {
  106.         this.readFromNBT(tag);
  107.     }
  108.        
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement