Added some comments
This commit is contained in:
parent
2451b6925f
commit
f581682158
2 changed files with 41 additions and 13 deletions
|
@ -13,4 +13,9 @@ public class SlotWorkbench extends SlotBase {
|
||||||
public boolean isItemValid(ItemStack stack) {
|
public boolean isItemValid(ItemStack stack) {
|
||||||
return stack != null && stack.isStackable() && !stack.getItem().hasContainerItem();
|
return stack != null && stack.isStackable() && !stack.getItem().hasContainerItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canShift() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -184,19 +184,9 @@ public class TileAutoWorkbench extends TileEntity implements ISidedInventory {
|
||||||
if (CoreProxy.proxy.isRenderWorld(worldObj)) {
|
if (CoreProxy.proxy.isRenderWorld(worldObj)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (IInvSlot slot : InventoryIterator.getIterable(invBuffer, ForgeDirection.UP)) {
|
|
||||||
ItemStack stack = slot.getStackInSlot();
|
processHiddenBuffer();
|
||||||
if (stack != null) {
|
|
||||||
if (gridHasItem(stack)) {
|
|
||||||
stack.stackSize -= transactor.add(stack, ForgeDirection.DOWN, true).stackSize;
|
|
||||||
if (stack.stackSize <= 0) {
|
|
||||||
slot.setStackInSlot(null);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
Utils.dropItems(worldObj, stack, xCoord, yCoord + 1, zCoord);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (craftSlot == null) {
|
if (craftSlot == null) {
|
||||||
internalPlayer = new InternalPlayer();
|
internalPlayer = new InternalPlayer();
|
||||||
craftSlot = new SlotCrafting(internalPlayer, craftMatrix, craftResult, 0, 0, 0);
|
craftSlot = new SlotCrafting(internalPlayer, craftMatrix, craftResult, 0, 0, 0);
|
||||||
|
@ -214,6 +204,28 @@ public class TileAutoWorkbench extends TileEntity implements ISidedInventory {
|
||||||
return (progress * i) / CRAFT_TIME;
|
return (progress * i) / CRAFT_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Moves items out of the hidden input buffer into the craft grid.
|
||||||
|
*/
|
||||||
|
private void processHiddenBuffer() {
|
||||||
|
for (IInvSlot slot : InventoryIterator.getIterable(invBuffer, ForgeDirection.UP)) {
|
||||||
|
ItemStack stack = slot.getStackInSlot();
|
||||||
|
if (stack != null) {
|
||||||
|
if (gridHasItem(stack)) {
|
||||||
|
stack.stackSize -= transactor.add(stack, ForgeDirection.DOWN, true).stackSize;
|
||||||
|
if (stack.stackSize <= 0) {
|
||||||
|
slot.setStackInSlot(null);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Utils.dropItems(worldObj, stack, xCoord, yCoord + 1, zCoord);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increment craft job, find recipes, produce output
|
||||||
|
*/
|
||||||
private void updateCrafting() {
|
private void updateCrafting() {
|
||||||
IRecipe recipe = findRecipe();
|
IRecipe recipe = findRecipe();
|
||||||
if (recipe == null) {
|
if (recipe == null) {
|
||||||
|
@ -278,6 +290,12 @@ public class TileAutoWorkbench extends TileEntity implements ISidedInventory {
|
||||||
return slot == SLOT_RESULT && !isLast();
|
return slot == SLOT_RESULT && !isLast();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the item exists in the crafting grid.
|
||||||
|
*
|
||||||
|
* @param input
|
||||||
|
* @return true if in grid
|
||||||
|
*/
|
||||||
private boolean gridHasItem(ItemStack input) {
|
private boolean gridHasItem(ItemStack input) {
|
||||||
for (IInvSlot slot : InventoryIterator.getIterable(craftMatrix, ForgeDirection.UP)) {
|
for (IInvSlot slot : InventoryIterator.getIterable(craftMatrix, ForgeDirection.UP)) {
|
||||||
ItemStack stack = slot.getStackInSlot();
|
ItemStack stack = slot.getStackInSlot();
|
||||||
|
@ -288,6 +306,11 @@ public class TileAutoWorkbench extends TileEntity implements ISidedInventory {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if there are only enough inputs for a single craft job.
|
||||||
|
*
|
||||||
|
* @return true or false
|
||||||
|
*/
|
||||||
public boolean isLast() {
|
public boolean isLast() {
|
||||||
int minStackSize = 64;
|
int minStackSize = 64;
|
||||||
for (IInvSlot slot : InventoryIterator.getIterable(craftMatrix, ForgeDirection.UP)) {
|
for (IInvSlot slot : InventoryIterator.getIterable(craftMatrix, ForgeDirection.UP)) {
|
||||||
|
|
Loading…
Reference in a new issue