Jump to content

[1.7.2][UnSolved]Custom Furnace not outputing items


dude22072

Recommended Posts

I followed a tutorial on making a custom furnace. Everything seems to be fine except the items don't actually smelt. the flames go down and it consumes fuel put the progress bar never moves.

 

Block class (Fermenter):

package dudesmods.fermentation.block;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import dudesmods.fermentation.FermentationMod;
import dudesmods.fermentation.tileentity.TileEntityFermenter;

public class Fermenter extends BlockContainer {

private static boolean isActive;

@SideOnly(Side.CLIENT)
private IIcon iconFront;
@SideOnly(Side.CLIENT)
private IIcon iconTop;

private static boolean keepInventory;
private Random rand = new Random();

public Fermenter(boolean par1) {
	super(Material.iron);
	setCreativeTab(FermentationMod.tabFermentMod);
	setHardness(3.5F);
	this.isActive = par1;
}

@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
	this.blockIcon = iconRegister.registerIcon("fermentmod:fermenterSide");
	this.iconFront = iconRegister.registerIcon("fermentmod:" + (this.isActive ? "fermenterFrontOn" : "fermenterFrontOff"));
	this.iconTop = iconRegister.registerIcon("fermentmod:fermenterTop");
}

@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) {
	return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : (side != metadata ? this.blockIcon : this.iconFront));
}

public Item getItemDropped(int i, Random random, int j) {
	return Item.getItemFromBlock(FermentationMod.blockFermenterIdle);
}

public void onBlockAdded(World world, int x, int y, int z) {
	super.onBlockAdded(world, x, y, z);
	this.setDefaultDirection(world, x, y, z);
}

private void setDefaultDirection(World world, int x, int y, int z) {
	if(!world.isRemote) {
		Block b1 = world.getBlock(x, y, z - 1);
		Block b2 = world.getBlock(x, y, z + 1);
		Block b3 = world.getBlock(x - 1, y, z);
		Block b4 = world.getBlock(x + 1, y, z);

		byte b0 = 3;

		if(b1.func_149730_j() && !b2.func_149730_j()) {
			b0 = 3;
		}
		if(b2.func_149730_j() && !b1.func_149730_j()) {
			b0 = 2;
		}
		if(b3.func_149730_j() && !b4.func_149730_j()) {
			b0 = 5;
		}
		if(b4.func_149730_j() && !b3.func_149730_j()) {
			b0 = 4;
		}

		world.setBlockMetadataWithNotify(x, y, z, b0, 2);
	}
}

public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
	if(!world.isRemote) {
		FMLNetworkHandler.openGui(player, FermentationMod.instance, FermentationMod.guiFermenter, world, x, y, z);
	}
	return true;
}

@Override
public TileEntity createNewTileEntity(World world, int i) {
	return new TileEntityFermenter();
}

@SideOnly(Side.CLIENT)
public void randomDisplayTick(World world, int x, int y, int z, Random random) {
	if(this.isActive) {
		int direction = world.getBlockMetadata(x, y, z);

		float x1 = (float)x + 0.5F;
		float y1 = (float)y + random.nextFloat();
		float z1 = (float)z + 0.5F;

		float f = 0.52F;
		float f1 = random.nextFloat() + 0.6F - 0.3F;

		if(direction == 4) {
			world.spawnParticle("smoke", (double)x1 - f, (double)y1 , (double)z1 + f1, 0D, 0D, 0D);
			world.spawnParticle("flame", (double)x1 - f, (double)y1 , (double)z1 + f1, 0D, 0D, 0D);
		}
		if(direction == 5) {
			world.spawnParticle("smoke", (double)x1 + f, (double)y1 , (double)z1 + f1, 0D, 0D, 0D);
			world.spawnParticle("flame", (double)x1 + f, (double)y1 , (double)z1 + f1, 0D, 0D, 0D);
		}
		if(direction == 2) {
			world.spawnParticle("smoke", (double)x1 + f1, (double)y1 , (double)z1 - f, 0D, 0D, 0D);
			world.spawnParticle("flame", (double)x1 + f1, (double)y1 , (double)z1 - f, 0D, 0D, 0D);
		}
		if(direction == 3) {
			world.spawnParticle("smoke", (double)x1 + f1, (double)y1 , (double)z1 + f, 0D, 0D, 0D);
			world.spawnParticle("flame", (double)x1 + f1, (double)y1 , (double)z1 + f, 0D, 0D, 0D);
		}
	}
}

public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityplayer, ItemStack itemstack) {
	int l = MathHelper.floor_double((double)(entityplayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;

	if(l == 0) {
		world.setBlockMetadataWithNotify(x, y, z, 2, 2);
	}
	if(l == 1) {
		world.setBlockMetadataWithNotify(x, y, z, 5, 2);
	}
	if(l == 2) {
		world.setBlockMetadataWithNotify(x, y, z, 3, 2);
	}
	if(l == 3) {
		world.setBlockMetadataWithNotify(x, y, z, 4, 2);
	}

	if(itemstack.hasDisplayName()) {
		((TileEntityFermenter)world.getTileEntity(x, y, z)).setGuiDisplayName(itemstack.getDisplayName());
	}

}

public static void updateFermenterBlockState(boolean active, World worldObj, int xCoord, int yCoord, int zCoord) {
	int i = worldObj.getBlockMetadata(xCoord, yCoord, zCoord);

	TileEntity tileentity = worldObj.getTileEntity(xCoord, yCoord, zCoord);
	keepInventory = true;

	if(active) {
		worldObj.setBlock(xCoord, yCoord, zCoord, FermentationMod.blockFermenterActive);
	}else{
		worldObj.setBlock(xCoord, yCoord, zCoord, FermentationMod.blockFermenterIdle);
	}

	keepInventory = false;

	worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, i, 2);

	if(tileentity != null) {
		tileentity.validate();
		worldObj.setTileEntity(xCoord, yCoord, zCoord, tileentity);
	}
}

public void breakBlock(World world, int x, int y, int z, Block oldblock, int oldMetadata) 
{
	if(!keepInventory) 
	{
		TileEntityFermenter tileentity = (TileEntityFermenter) world.getTileEntity(x, y, z);

		if(tileentity != null) 
		{
			for(int i = 0; i < tileentity.getSizeInventory(); i++) 
			{
				ItemStack itemstack = tileentity.getStackInSlot(i);

				if(itemstack != null) 
				{
					float f = this.rand.nextFloat() * 0.8F + 0.1F;
					float f1 = this.rand.nextFloat() * 0.8F + 0.1F;
					float f2 = this.rand.nextFloat() * 0.8F + 0.1F;

					while(itemstack.stackSize > 0) 
					{
						int j = this.rand.nextInt(21) + 10;

						if(j > itemstack.stackSize) 
						{
							j = itemstack.stackSize;
						}

						itemstack.stackSize -= j;

						EntityItem item = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j, itemstack.getItemDamage()));

						if(itemstack.hasTagCompound()) 
						{
							item.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
						}


						world.spawnEntityInWorld(item);						
					}
				}
			}

			world.func_147453_f(x, y, z, oldblock);
		}	
	}
	super.breakBlock(world, x, y, z, oldblock, oldMetadata);
}

public Item getItem(World world, int x, int y, int z) {
	return Item.getItemFromBlock(FermentationMod.blockFermenterIdle);
}
}

Container Class(ContainerFermenter):

package dudesmods.fermentation.container;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
import net.minecraft.inventory.SlotFurnace;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.tileentity.TileEntityFurnace;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import dudesmods.fermentation.tileentity.TileEntityFermenter;

public class ContainerFermenter extends Container {

private TileEntityFermenter fermenter;

public int lastBurnTime;
public int lastCurrentItemBurnTime;
public int lastCookTime;

public ContainerFermenter(InventoryPlayer inventory, TileEntityFermenter tileentity) {
	this.fermenter = tileentity;

	this.addSlotToContainer(new Slot(tileentity, 0, 56, 17));
	this.addSlotToContainer(new Slot(tileentity, 1, 56, 53));
	this.addSlotToContainer(new SlotFurnace(inventory.player, tileentity,  2, 116, 35));

	for(int i = 0; i < 3; i++) {
		for(int j = 0; j < 9; j++){
			this.addSlotToContainer(new Slot(inventory, j + i*9 + 9, 8 + j*18, 84 + i * 18));
		}
	}

	for(int i = 0; i < 9; i++) {
		this.addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 142));
	}
}

public void addCrafingToCrafters (ICrafting icrafting) {
	super.addCraftingToCrafters(icrafting);
	icrafting.sendProgressBarUpdate(this, 0, this.fermenter.cookTime);
	icrafting.sendProgressBarUpdate(this, 1, this.fermenter.burnTime);
	icrafting.sendProgressBarUpdate(this, 2, this.fermenter.currentItemBurnTime);
}

public void detectAndSendChanges() {
	super.detectAndSendChanges();
	for(int i = 0; i < this.crafters.size(); i++) {
		ICrafting icrafting = (ICrafting) this.crafters.get(i);

		if(this.lastCookTime != this.fermenter.cookTime) {
			icrafting.sendProgressBarUpdate(this, 0, this.fermenter.cookTime);
		}
		if(this.lastBurnTime != this.fermenter.burnTime) {
			icrafting.sendProgressBarUpdate(this, 1, this.fermenter.burnTime);
		}
		if(this.lastCurrentItemBurnTime != this.fermenter.currentItemBurnTime) {
			icrafting.sendProgressBarUpdate(this, 2, this.fermenter.currentItemBurnTime);
		}
	}

	this.lastCookTime = this.fermenter.cookTime;
	this.lastBurnTime = this.fermenter.burnTime;
	this.lastCurrentItemBurnTime = this.fermenter.currentItemBurnTime;
}

@SideOnly(Side.CLIENT)
public void updateProgressBar(int slot, int newValue) {
	if (slot == 0) {
		this.fermenter.cookTime = newValue;
	}

	if (slot == 1) {
		this.fermenter.burnTime = newValue;
	}

	if (slot == 2) {
		this.fermenter.currentItemBurnTime = newValue;
	}
}

 public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)
    {
        ItemStack itemstack = null;
        Slot slot = (Slot)this.inventorySlots.get(par2);

        if (slot != null && slot.getHasStack())
        {
            ItemStack itemstack1 = slot.getStack();
            itemstack = itemstack1.copy();

            if (par2 == 2)
            {
                if (!this.mergeItemStack(itemstack1, 3, 39, true))
                {
                    return null;
                }

                slot.onSlotChange(itemstack1, itemstack);
            }
            else if (par2 != 1 && par2 != 0)
            {
                if (FurnaceRecipes.smelting().getSmeltingResult(itemstack1) != null)
                {
                    if (!this.mergeItemStack(itemstack1, 0, 1, false))
                    {
                        return null;
                    }
                }
                else if (TileEntityFurnace.isItemFuel(itemstack1))
                {
                    if (!this.mergeItemStack(itemstack1, 1, 2, false))
                    {
                        return null;
                    }
                }
                else if (par2 >= 3 && par2 < 30)
                {
                    if (!this.mergeItemStack(itemstack1, 30, 39, false))
                    {
                        return null;
                    }
                }
                else if (par2 >= 30 && par2 < 39 && !this.mergeItemStack(itemstack1, 3, 30, false))
                {
                    return null;
                }
            }
            else if (!this.mergeItemStack(itemstack1, 3, 39, false))
            {
                return null;
            }

            if (itemstack1.stackSize == 0)
            {
                slot.putStack((ItemStack)null);
            }
            else
            {
                slot.onSlotChanged();
            }

            if (itemstack1.stackSize == itemstack.stackSize)
            {
                return null;
            }

            slot.onPickupFromSlot(par1EntityPlayer, itemstack1);
        }

        return itemstack;
    }

@Override
public boolean canInteractWith(EntityPlayer var1) {
	return true;
}

}

Tile Entity Class (TileEntityFermenter):

package dudesmods.fermentation.tileentity;

import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import cpw.mods.fml.common.registry.GameRegistry;
import dudesmods.fermentation.block.Fermenter;

public class TileEntityFermenter extends TileEntity implements ISidedInventory {

private String localizedName;

private static final int[] slots_top = new int[]{0};
private static final int[] slots_bottom = new int[]{2, 1};
private static final int[] slots_side = new int[]{1};

private ItemStack[] slots = new ItemStack [3];

public int furnaceSpeed = 200;
public int burnTime;
public int currentItemBurnTime;
public int cookTime;

public void setGuiDisplayName(String displayName) {
	this.localizedName = displayName;
}

public String getInventoryName() {
	return this.hasCustomInventoryName() ? this.localizedName : "container.fermenter";
}

public boolean hasCustomInventoryName() {
	return this.localizedName != null && this.localizedName.length() > 0;
}

public int getSizeInventory() {
	return this.slots.length;
}

@Override
public ItemStack getStackInSlot(int var1) {
	return this.slots[var1];
}

@Override
public ItemStack decrStackSize(int var1, int var2) {
	if(this.slots[var1] != null) {
		ItemStack itemstack;

		if(this.slots[var1].stackSize <= var2 ){
			itemstack = this.slots[var1];
			this.slots[var1] = null;
			return itemstack;
		}else{
			itemstack = this.slots[var1].splitStack(var2);

			if(this.slots[var1].stackSize == 0){
				this.slots[var1] = null;
			}
		}
	}

	return null;
}

@Override
public ItemStack getStackInSlotOnClosing(int var1) {
	if(this.slots[var1] != null) {
		ItemStack itemstack = this.slots[var1];
		this.slots[var1] = null;
		return itemstack;
	}
	return null;
}

@Override
public void setInventorySlotContents(int var1, ItemStack var2) {
	this.slots[var1] = var2;

	if(var2 != null && var2.stackSize > this.getInventoryStackLimit()) {
		var2.stackSize = this.getInventoryStackLimit();
	}
}

@Override
public int getInventoryStackLimit() {
	return 64;
}

@Override
public boolean isUseableByPlayer(EntityPlayer var1) {
	return this.worldObj.getTileEntity(xCoord, yCoord, zCoord) != this ? false : var1.getDistanceSq((double)xCoord +0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64.0D;
}

@Override
public void openInventory() {

}

@Override
public void closeInventory() {

}

@Override
public boolean isItemValidForSlot(int var1, ItemStack var2) {
	return  var1 == 2 ? false : (var1 == 1 ? isItemFuel(var2) : true);
}

public static boolean isItemFuel(ItemStack var1) {
	return getItemBurnTime(var1) > 0;
}

private static int getItemBurnTime(ItemStack var1) {
	if(var1 == null){
		return 0;
	}else{
		Item item = var1.getItem();

		if(item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) {
			Block block = Block.getBlockFromItem(item);

			if(block == Blocks.sapling) return 100;
			if(block == Blocks.coal_block) return 14400;
		}
		if(item == Items.coal) return 1600;
		if(item == Items.stick) return 100;
		if(item == Items.lava_bucket) return 20000;
		if(item == Items.blaze_rod) return 2400;

	}
	return GameRegistry.getFuelValue(var1);
}

public void updateEntity() {
	boolean flag = this.burnTime > 0;
	boolean flag1 = false;

	if(this.isBurning()) {
		this.burnTime--;
	}
	if(!this.worldObj.isRemote) {
		if(this.burnTime == 0 && this.canSmelt()) {
			this.currentItemBurnTime = this.burnTime = getItemBurnTime(this.slots[1]);

			if(this.isBurning()){
				flag1 = true;

				if(this.slots[1] != null) {
					this.slots[1].stackSize--;

					if(this.slots[1].stackSize == 0) {
						this.slots[1] = this.slots[1].getItem().getContainerItem(this.slots[1]);
					}
				}
			}
		}
	}

	if(this.isBurning() && this.canSmelt()) {
		this.cookTime++;

		if(this.cookTime == this.furnaceSpeed) {
			this.cookTime = 0;
			this.smeltItem();
			flag1 = true;
		}else{
			this.cookTime = 0;
		}
		if(flag != this.isBurning()) {
			flag1 = true;
			Fermenter.updateFermenterBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
		}
	}
	if(flag1) {
		this.markDirty();
	}
}

public boolean canSmelt() {
	if(this.slots[0] == null) {
		return false;
	}else{
		ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]);

		if(itemstack == null) return false;
		if(this.slots[2] == null) return true;
		if(!this.slots[2].isItemEqual(itemstack)) return false;

		int result = this.slots[2].stackSize + itemstack.stackSize;

		return (result <= getInventoryStackLimit() && result <= this.slots[2].getMaxStackSize());
	}
}

public void smeltItem() {
	if (this.canSmelt()) {
		ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]);
		if(this.slots[2] == null) {
			this.slots[2] = itemstack.copy();
		}else if(this.slots[2].getItem() == itemstack.getItem()) {
			this.slots[2].stackSize += itemstack.stackSize;
		}

		this.slots[0].stackSize--;

		if (this.slots[0].stackSize <= 0) {
			this.slots[0] = null;
		}
	}
}

public boolean isBurning() {
	return this.burnTime > 0;
}

@Override
public int[] getAccessibleSlotsFromSide(int var1) {
	return var1 == 0 ? slots_bottom : (var1 == 1 ? slots_top : slots_side);
}

@Override
public boolean canInsertItem(int var1, ItemStack var2, int var3) {
	return this.isItemValidForSlot(var1, var2);
}

@Override
public boolean canExtractItem(int var1, ItemStack var2, int var3) {
	return var3 != 0 || var1 != 1 || var2.getItem() == Items.bucket;
}

public int getBurnTimeRemainingScaled(int i) {
	if(this.currentItemBurnTime == 0) {
		this.currentItemBurnTime = this.furnaceSpeed;
	}
	return this.burnTime * i / this.currentItemBurnTime;
}

public int getCookProgressScaled(int i) {
	return this.cookTime * i / this.furnaceSpeed;
}

public void readFromNBT(NBTTagCompound nbt) {
	super.readFromNBT(nbt);

	NBTTagList list = nbt.getTagList("Items", 10);
	this.slots = new ItemStack[this.getSizeInventory()];

	for(int i = 0; i < list.tagCount(); i++) {
		NBTTagCompound compound = (NBTTagCompound) list.getCompoundTagAt(i);
		byte b = compound.getByte("Slot");

		if(b >= 0 && b < this.slots.length) {
			this.slots[b] = ItemStack.loadItemStackFromNBT(compound);
		}
	}

	this.burnTime = (int)nbt.getShort("BurnTime");
	this.cookTime = (int)nbt.getShort("CookTime");
	this.currentItemBurnTime = (int)nbt.getShort("CurrentBurnTime");

	if(nbt.hasKey("CustomName")) {
		this.localizedName = nbt.getString("CustomName");
	}
}

public void writeToNBT(NBTTagCompound nbt) {
	super.writeToNBT(nbt);

	nbt.setShort("BurnTime", (short)this.burnTime);
	nbt.setShort("CookTime", (short)this.cookTime);
	nbt.setShort("CurrentBurnTime", (short)this.currentItemBurnTime);

	NBTTagList list = new NBTTagList();

	for(int i = 0; i< this.slots.length; i++) {
		if(this.slots[i] != null) {
			NBTTagCompound compound = new NBTTagCompound();
			compound.setByte("Slot", (byte)i);
			this.slots[i].writeToNBT(compound);
			list.appendTag(compound);
		}
	}

	nbt.setTag("Items", list);

	if(this.hasCustomInventoryName()) {
		nbt.setString("CustomName", this.localizedName);
	}
}
}

 

Gui class (GuiFermenter)

package dudesmods.fermentation.gui;

import org.lwjgl.opengl.GL11;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
import dudesmods.fermentation.container.ContainerFermenter;
import dudesmods.fermentation.tileentity.TileEntityFermenter;

public class GuiFermenter extends GuiContainer {

public static final ResourceLocation bground = new ResourceLocation("fermentmod", "textures/gui/GuiFermenter.png");

public TileEntityFermenter fermenter;

public GuiFermenter(InventoryPlayer inventoryPlayer, TileEntityFermenter entity) {
	super(new ContainerFermenter(inventoryPlayer, entity));

	this.fermenter = entity;

	this.xSize = 176;
	this.ySize = 166;
}

public void drawGuiContainerForegroundLayer(int par1, int par2) {
	String name = this.fermenter.hasCustomInventoryName() ? this.fermenter.getInventoryName() : I18n.format(this.fermenter.getInventoryName(), new Object[0]);

	this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
	this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 4210752);


}

@Override
protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3) {
	guiDraw(bground);

	if(this.fermenter.isBurning()) {
		int k = this.fermenter.getBurnTimeRemainingScaled(12);
		int j = 40 - k;

        this.drawTexturedModalRect(guiLeft + 56, guiTop + 36 + 12 - k, 176, 12 - k, 14, k + 2);
	}

	int k = this.fermenter.getCookProgressScaled(24);
	this.drawTexturedModalRect(guiLeft + 79, guiTop + 34, 176, 14, k + 1, 16);
}

protected void guiDraw(ResourceLocation var1) {
	GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
	Minecraft.getMinecraft().getTextureManager().bindTexture(var1);
	this.drawTexturedModalRect(guiLeft, guiTop, 0, 0, this.xSize, this.ySize);
}

}

 

Legend of Zelda Mod[updated September 20th to 3.1.1]

Extra Achievements(Minecraft 1.8!)[updated April 3rd to 2.3.0]

Fancy Cheeses[updated May 8th to 0.5.0]

Link to comment
Share on other sites

Anyone?

Do your items get consumed? And are smelted Items outputed? Or is only The progreesbar Not working?

 

Maybe i am Wrong, but it looks like you never sync client/server. Can't Rallye See it on my Smartphone display.

Here could be your advertisement!

Link to comment
Share on other sites

Anyone?

Do your items get consumed? And are smelted Items outputed? Or is only The progreesbar Not working?

 

Maybe i am Wrong, but it looks like you never sync client/server. Can't Rallye See it on my Smartphone display.

 

Fuel is consumed and nothing else

Legend of Zelda Mod[updated September 20th to 3.1.1]

Extra Achievements(Minecraft 1.8!)[updated April 3rd to 2.3.0]

Fancy Cheeses[updated May 8th to 0.5.0]

Link to comment
Share on other sites

It looks like your problem is this:

if(this.cookTime == this.furnaceSpeed) {
this.cookTime = 0;
this.smeltItem();
flag1 = true;
} else { // RIGHT HERE
this.cookTime = 0;
}

Basically, your code says, "if it's not completely cooked, set the cook time to zero"... rather than letting it increment all the way up to the furnace speed, you set the cook time to zero every single tick.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.