Advertisement
Guest User

Untitled

a guest
Feb 1st, 2015
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.69 KB | None | 0 0
  1. package com.nextlevelminecraft.cad435.objloader.ColoredLamp;
  2.  
  3. import com.nextlevelminecraft.cad435.TNL_Client_Dependencies.libs.RGBVec;
  4. import net.minecraft.nbt.NBTTagCompound;
  5. import net.minecraft.network.NetworkManager;
  6. import net.minecraft.network.Packet;
  7. import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
  8. import net.minecraft.tileentity.TileEntity;
  9. import net.minecraft.world.EnumSkyBlock;
  10. import net.minecraft.world.World;
  11.  
  12. import java.util.Timer;
  13. import java.util.TimerTask;
  14.  
  15.  
  16. public class LampTileEntity extends TileEntity {
  17.    
  18.    
  19.     //TODO: clean it!
  20.    
  21.     public RGBVec RGB_VALUES = new RGBVec(255,255,255);
  22.  
  23.  
  24.     @Override
  25.     public void writeToNBT(NBTTagCompound var1) {
  26.         try {
  27.             var1.setIntArray("RGB_VALUE", RGB_VALUES.toIntArray());
  28.             super.writeToNBT(var1);
  29.         }
  30.         catch(Exception e)
  31.         {
  32.  
  33.         }
  34.     }
  35.  
  36.     @Override
  37.     public void readFromNBT(NBTTagCompound var1) {
  38.         try {
  39.             RGB_VALUES = new RGBVec(var1.getIntArray("RGB_VALUE"));
  40.             super.readFromNBT(var1);
  41.         }
  42.         catch(Exception e)
  43.         {
  44.  
  45.         }
  46.     }
  47.  
  48.     public void setRGB_VALUES(RGBVec vec)
  49.     {
  50.         RGB_VALUES = vec;
  51.     }
  52.  
  53.     @Override
  54.     public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt)
  55.     {
  56.         NBTTagCompound tag = pkt.func_148857_g();
  57.         this.readFromNBT(tag);
  58.     }
  59.  
  60.  
  61.     @Override
  62.     public Packet getDescriptionPacket()
  63.     {
  64.         NBTTagCompound syncData = new NBTTagCompound();
  65.         syncData.setIntArray("RGB_VALUE",RGB_VALUES.toIntArray());
  66.         //this.writeToNBT(syncData);
  67.         this.updateContainingBlockInfo();
  68.         return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 1, syncData);
  69.     }
  70.  
  71.  
  72.     public void CustomupdateEntity()
  73.     {
  74.  
  75.         try {
  76.             this.getWorldObj().markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord);
  77.  
  78.             this.getWorldObj().updateLightByType(EnumSkyBlock.Block,this.xCoord,this.yCoord,this.zCoord);
  79.         }
  80.         catch (Exception e) {}
  81.  
  82.         doDelayedLightUpdate(this.getWorldObj(),this.xCoord,this.yCoord,this.zCoord);
  83.     }
  84.  
  85.  
  86.     private void doDelayedLightUpdate(final World world,final int x ,final int y, final int z)
  87.     {
  88.  
  89.  
  90.         final Timer DelayTick = new Timer();
  91.         DelayTick.schedule(new TimerTask() {
  92.             @Override
  93.             public void run() {
  94.  
  95.                 world.markBlockForUpdate(x,y,z);
  96.                 world.updateLightByType(EnumSkyBlock.Block, x, y, z);
  97.                 DelayTick.cancel();
  98.                 DelayTick.purge();
  99.  
  100.             }
  101.         }, 500);
  102.     }
  103.  
  104.  
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement