I created a crusher block which acts like a furnace but has its own set of recipes that create a random amount of dust. It works mostly as intended but it has this weird visual glitch where a fraction of a second before it finishes it will display a different result.
I have no idea what could cause this as the code is very simple.
Here is the code in the tileEntity that inserts the object and the only code that calls it:
public void update(){
if(canCrush() == false){
isCrushing = false;
progress = 0;
}
else if(isCrushing == false){
isCrushing = true;
progress = 0;
}
else{
progress++;
}
if(progress >= progressNeeded){
CrushItem();
isCrushing = false;
progress = 0;
}
}
public void CrushItem(){
ItemStack input = inventory.getStackInSlot(0);
ItemStack crushedItem = RecipesCrusher.getOutput(input);
ItemStack outputCurrent = inventory.getStackInSlot(1);
if(outputCurrent == null || outputCurrent.getCount() == 0){
inventory.insertItem(1, crushedItem.copy(), false);
input.shrink(1);
}
else if(outputCurrent.isItemEqual(crushedItem)){
outputCurrent.grow(crushedItem.getCount());
input.shrink(1);
}
Any help would be appreciated.