Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tbg.svmod.objects.tileentities;
- import net.minecraft.block.Block;
- import net.minecraft.block.ITileEntityProvider;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.init.Blocks;
- import net.minecraft.item.ItemStack;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.network.NetworkManager;
- import net.minecraft.network.play.server.SPacketUpdateTileEntity;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.ITickable;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.World;
- import net.minecraftforge.common.capabilities.Capability;
- import net.minecraftforge.common.capabilities.ICapabilityProvider;
- import net.minecraftforge.items.CapabilityItemHandler;
- import net.minecraftforge.items.ItemStackHandler;
- import tbg.svmod.init.ItemInit;
- import tbg.svmod.objects.blocks.BlockLavaHelix;
- import tbg.svmod.util.Utils;
- public class TileEntityLavaHelix extends TileEntity
- implements ITickable, ITileEntityProvider, ICapabilityProvider {
- private ItemStackHandler handler;
- private int combineTime;
- private int totalCombineTime;
- private boolean combining;
- public TileEntityLavaHelix() {
- this.combineTime = 0;
- this.totalCombineTime = 500;
- handler = new ItemStackHandler(2);
- }
- @Override
- public void update() {
- if (this.getWorld() != null) {
- if (!this.getWorld().isRemote) {
- ItemStack item1 = handler.getStackInSlot(0);
- ItemStack item2 = handler.getStackInSlot(1);
- if(item1.getItem() == ItemInit.FLAMING_POWDER_SOUL && item2.getItem() == ItemInit.INFUSED_SOUL_DIAMOND)
- {
- this.combining = true;
- this.combineTime++;
- this.combineTime %= totalCombineTime;
- Utils.getLogger().info("Progress: " + this.combineTime + "/" + this.totalCombineTime);
- if (this.combineTime == 0) {
- IBlockState state = this.getWorld().getBlockState(pos);
- EnumFacing facing = (EnumFacing) state.getValue(BlockLavaHelix.FACING);
- }
- } else
- {
- this.combining = false;
- this.combineTime = 0;
- }
- }
- }
- }
- ///////////////////// NBT Packet Stuff / Tile Entity initialization
- @Override
- public TileEntity createNewTileEntity(World worldIn, int meta) {
- return new TileEntityLavaHelix();
- }
- @Override
- public void readFromNBT(NBTTagCompound nbt) {
- this.combineTime = nbt.getInteger("CombineTime");
- this.combining = nbt.getBoolean("Combining");
- this.handler.deserializeNBT(nbt.getCompoundTag("ItemStackHandler"));
- super.readFromNBT(nbt);
- }
- @Override
- public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
- nbt.setInteger("CombineTime", this.combineTime);
- nbt.setBoolean("Combining", this.combining);
- nbt.setTag("ItemStackHandler", this.handler.serializeNBT());
- return super.writeToNBT(nbt);
- }
- @Override
- public SPacketUpdateTileEntity getUpdatePacket() {
- NBTTagCompound nbt = new NBTTagCompound();
- this.writeToNBT(nbt);
- int metadata = getBlockMetadata();
- return new SPacketUpdateTileEntity(this.pos, metadata, nbt);
- }
- @Override
- public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) {
- this.readFromNBT(pkt.getNbtCompound());
- }
- @Override
- public NBTTagCompound getUpdateTag() {
- NBTTagCompound nbt = new NBTTagCompound();
- this.writeToNBT(nbt);
- return nbt;
- }
- @Override
- public void handleUpdateTag(NBTTagCompound tag) {
- this.readFromNBT(tag);
- }
- @Override
- public NBTTagCompound getTileData() {
- NBTTagCompound nbt = new NBTTagCompound();
- this.writeToNBT(nbt);
- return nbt;
- }
- @Override
- public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
- if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
- return (T) this.handler;
- return super.getCapability(capability, facing);
- }
- @Override
- public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
- if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
- return true;
- return super.hasCapability(capability, facing);
- }
- public int getField(int id)
- {
- switch (id)
- {
- case 0:
- return this.combineTime;
- case 1:
- return this.totalCombineTime;
- default:
- return 0;
- }
- }
- public void setField(int id, int value)
- {
- switch (id)
- {
- case 0:
- this.combineTime = value;
- break;
- case 1:
- this.totalCombineTime = value;
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement