Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.nextlevelminecraft.cad435.objloader.ColoredLamp;
- import com.nextlevelminecraft.cad435.TNL_Client_Dependencies.libs.RGBVec;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.network.NetworkManager;
- import net.minecraft.network.Packet;
- import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.world.EnumSkyBlock;
- import net.minecraft.world.World;
- import java.util.Timer;
- import java.util.TimerTask;
- public class LampTileEntity extends TileEntity {
- //TODO: clean it!
- public RGBVec RGB_VALUES = new RGBVec(255,255,255);
- @Override
- public void writeToNBT(NBTTagCompound var1) {
- try {
- var1.setIntArray("RGB_VALUE", RGB_VALUES.toIntArray());
- super.writeToNBT(var1);
- }
- catch(Exception e)
- {
- }
- }
- @Override
- public void readFromNBT(NBTTagCompound var1) {
- try {
- RGB_VALUES = new RGBVec(var1.getIntArray("RGB_VALUE"));
- super.readFromNBT(var1);
- }
- catch(Exception e)
- {
- }
- }
- public void setRGB_VALUES(RGBVec vec)
- {
- RGB_VALUES = vec;
- }
- @Override
- public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt)
- {
- NBTTagCompound tag = pkt.func_148857_g();
- this.readFromNBT(tag);
- }
- @Override
- public Packet getDescriptionPacket()
- {
- NBTTagCompound syncData = new NBTTagCompound();
- syncData.setIntArray("RGB_VALUE",RGB_VALUES.toIntArray());
- //this.writeToNBT(syncData);
- this.updateContainingBlockInfo();
- return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 1, syncData);
- }
- public void CustomupdateEntity()
- {
- try {
- this.getWorldObj().markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord);
- this.getWorldObj().updateLightByType(EnumSkyBlock.Block,this.xCoord,this.yCoord,this.zCoord);
- }
- catch (Exception e) {}
- doDelayedLightUpdate(this.getWorldObj(),this.xCoord,this.yCoord,this.zCoord);
- }
- private void doDelayedLightUpdate(final World world,final int x ,final int y, final int z)
- {
- final Timer DelayTick = new Timer();
- DelayTick.schedule(new TimerTask() {
- @Override
- public void run() {
- world.markBlockForUpdate(x,y,z);
- world.updateLightByType(EnumSkyBlock.Block, x, y, z);
- DelayTick.cancel();
- DelayTick.purge();
- }
- }, 500);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement