@Override public void updateEntity() { super.updateEntity(); if (redstonePower) return; if (worldObj.getWorldTime() % 20 == 0) isProcessing = canProcess(); if (isProcessing) { this.lastItemValue = r.getEnergyValue(); this.QEnergyItemBuffer = this.lastItemValue; if (processTime > 0) processTime--; this.QEnergyItemBuffer = (int) (((float) processTime / (float) r.getProcessTime()) * (float) this.lastItemValue); if (this.processTime == 0) process(); if (this.processTime == -1) processTime = r.getProcessTime(); } else { processTime = -1; QEnergyItemBuffer = 0; } if (updateNextTick) { // All nearby players need to be updated if the status of work // changes, or if heat runs out / starts up, in order to change // texture. updateNextTick = false; worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); } }
private void process() { // we need to put in the QEnergyOutput here processTime = -1; if (inventory[1] == null) { inventory[1] = r.getOutputItem().copy(); } else { inventory[1].stackSize++; } this.addEnergy(r.getEnergyValue()); this.decrStackSize(0, 1); }
private boolean canProcess() { r = QuantumRecipeHandler.getQDERecipeFromInput(inventory[0]); boolean flag = true; if (r == null) return false; if (inventory[0] == null) flag = false; if (inventory[0] != null) { if (inventory[1] != null) { if (inventory[1] != r.getOutputItem()) flag = false; } } if (this.getMaxEnergy() - this.getCurrentEnergy() < r.getEnergyValue()) flag = false; return flag; }