Advertisement
ThatBenderGuy

TileEntityLavaHelix.java

Nov 18th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.47 KB | None | 0 0
  1. package tbg.svmod.objects.tileentities;
  2.  
  3. import net.minecraft.block.Block;
  4. import net.minecraft.block.ITileEntityProvider;
  5. import net.minecraft.block.state.IBlockState;
  6. import net.minecraft.init.Blocks;
  7. import net.minecraft.item.ItemStack;
  8. import net.minecraft.nbt.NBTTagCompound;
  9. import net.minecraft.network.NetworkManager;
  10. import net.minecraft.network.play.server.SPacketUpdateTileEntity;
  11. import net.minecraft.tileentity.TileEntity;
  12. import net.minecraft.util.EnumFacing;
  13. import net.minecraft.util.ITickable;
  14. import net.minecraft.util.math.BlockPos;
  15. import net.minecraft.world.World;
  16. import net.minecraftforge.common.capabilities.Capability;
  17. import net.minecraftforge.common.capabilities.ICapabilityProvider;
  18. import net.minecraftforge.items.CapabilityItemHandler;
  19. import net.minecraftforge.items.ItemStackHandler;
  20. import tbg.svmod.init.ItemInit;
  21. import tbg.svmod.objects.blocks.BlockLavaHelix;
  22. import tbg.svmod.util.Utils;
  23.  
  24. public class TileEntityLavaHelix extends TileEntity
  25.         implements ITickable, ITileEntityProvider, ICapabilityProvider {
  26.  
  27.     private ItemStackHandler handler;
  28.     private int combineTime;
  29.     private int totalCombineTime;
  30.     private boolean combining;
  31.    
  32.     public TileEntityLavaHelix() {
  33.         this.combineTime = 0;
  34.         this.totalCombineTime = 500;
  35.         handler = new ItemStackHandler(2);
  36.     }
  37.  
  38.     @Override
  39.     public void update() {
  40.         if (this.getWorld() != null) {
  41.             if (!this.getWorld().isRemote) {
  42.                 ItemStack item1 = handler.getStackInSlot(0);
  43.                 ItemStack item2 = handler.getStackInSlot(1);
  44.                 if(item1.getItem() == ItemInit.FLAMING_POWDER_SOUL && item2.getItem() == ItemInit.INFUSED_SOUL_DIAMOND)
  45.                 {
  46.                     this.combining = true;
  47.                     this.combineTime++;
  48.                     this.combineTime %= totalCombineTime;
  49.                     Utils.getLogger().info("Progress: " + this.combineTime + "/" + this.totalCombineTime);
  50.                     if (this.combineTime == 0) {
  51.                         IBlockState state = this.getWorld().getBlockState(pos);
  52.                         EnumFacing facing = (EnumFacing) state.getValue(BlockLavaHelix.FACING);
  53.                     }
  54.                 } else
  55.                 {
  56.                     this.combining = false;
  57.                     this.combineTime = 0;
  58.                 }
  59.             }
  60.         }
  61.     }
  62.  
  63.     ///////////////////// NBT Packet Stuff / Tile Entity initialization
  64.     @Override
  65.     public TileEntity createNewTileEntity(World worldIn, int meta) {
  66.         return new TileEntityLavaHelix();
  67.     }
  68.  
  69.     @Override
  70.     public void readFromNBT(NBTTagCompound nbt) {
  71.         this.combineTime = nbt.getInteger("CombineTime");
  72.         this.combining = nbt.getBoolean("Combining");
  73.         this.handler.deserializeNBT(nbt.getCompoundTag("ItemStackHandler"));
  74.         super.readFromNBT(nbt);
  75.     }
  76.  
  77.     @Override
  78.     public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
  79.         nbt.setInteger("CombineTime", this.combineTime);
  80.         nbt.setBoolean("Combining", this.combining);
  81.         nbt.setTag("ItemStackHandler", this.handler.serializeNBT());
  82.         return super.writeToNBT(nbt);
  83.     }
  84.  
  85.     @Override
  86.     public SPacketUpdateTileEntity getUpdatePacket() {
  87.         NBTTagCompound nbt = new NBTTagCompound();
  88.         this.writeToNBT(nbt);
  89.         int metadata = getBlockMetadata();
  90.         return new SPacketUpdateTileEntity(this.pos, metadata, nbt);
  91.     }
  92.  
  93.     @Override
  94.     public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) {
  95.         this.readFromNBT(pkt.getNbtCompound());
  96.     }
  97.  
  98.     @Override
  99.     public NBTTagCompound getUpdateTag() {
  100.         NBTTagCompound nbt = new NBTTagCompound();
  101.         this.writeToNBT(nbt);
  102.         return nbt;
  103.     }
  104.  
  105.     @Override
  106.     public void handleUpdateTag(NBTTagCompound tag) {
  107.         this.readFromNBT(tag);
  108.     }
  109.  
  110.     @Override
  111.     public NBTTagCompound getTileData() {
  112.         NBTTagCompound nbt = new NBTTagCompound();
  113.         this.writeToNBT(nbt);
  114.         return nbt;
  115.     }
  116.  
  117.     @Override
  118.     public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
  119.         if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
  120.             return (T) this.handler;
  121.         return super.getCapability(capability, facing);
  122.     }
  123.  
  124.     @Override
  125.     public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
  126.         if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
  127.             return true;
  128.         return super.hasCapability(capability, facing);
  129.     }
  130.    
  131.     public int getField(int id)
  132.     {
  133.         switch (id)
  134.         {
  135.         case 0:
  136.             return this.combineTime;
  137.         case 1:
  138.             return this.totalCombineTime;
  139.         default:
  140.             return 0;
  141.         }
  142.     }
  143.    
  144.     public void setField(int id, int value)
  145.     {
  146.         switch (id)
  147.         {
  148.             case 0:
  149.                 this.combineTime = value;
  150.                 break;
  151.             case 1:
  152.                 this.totalCombineTime = value;
  153.                 break;
  154.         }
  155.     }
  156.    
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement