Some minor fixes to the auto crafting table

This commit is contained in:
modmuss50 2017-06-21 23:39:40 +01:00
parent ba99f70406
commit bee8d4aab0
No known key found for this signature in database
GPG key ID: 203A5ED4D3E48BEA

View file

@ -121,7 +121,7 @@ public class TileAutoCraftingTable extends TilePowerAcceptor implements IContain
return true; return true;
} }
if (ItemUtils.isItemEqual(stack, output, true, true)) { if (ItemUtils.isItemEqual(stack, output, true, true)) {
if (stack.getMaxStackSize() < stack.getCount() + output.getCount()) { if (stack.getMaxStackSize() > stack.getCount() + output.getCount()) {
return true; return true;
} }
} }
@ -130,15 +130,22 @@ public class TileAutoCraftingTable extends TilePowerAcceptor implements IContain
public boolean make(IRecipe recipe) { public boolean make(IRecipe recipe) {
if (canMake(recipe)) { if (canMake(recipe)) {
for (Ingredient ingredient : recipe.getIngredients()) { for (int i = 0; i < recipe.getIngredients().size(); i++) {
for (int i = 0; i < 9; i++) { Ingredient ingredient = recipe.getIngredients().get(i);
ItemStack stack = inventory.getStackInSlot(i); //Looks for the best slot to take it from
ItemStack bestSlot = inventory.getStackInSlot(i);
if (ingredient.apply(bestSlot)) {
bestSlot.shrink(1);
} else {
for (int j = 0; j < 9; j++) {
ItemStack stack = inventory.getStackInSlot(j);
if (ingredient.apply(stack)) { if (ingredient.apply(stack)) {
stack.shrink(1); //TODO is this right? or do I need to use it as an actull crafting grid stack.shrink(1); //TODO is this right? or do I need to use it as an actull crafting grid
break; break;
} }
} }
} }
}
ItemStack output = inventory.getStackInSlot(9); ItemStack output = inventory.getStackInSlot(9);
if (output.isEmpty()) { if (output.isEmpty()) {
inventory.setInventorySlotContents(9, recipe.getRecipeOutput().copy()); inventory.setInventorySlotContents(9, recipe.getRecipeOutput().copy());
@ -196,7 +203,7 @@ public class TileAutoCraftingTable extends TilePowerAcceptor implements IContain
.slot(0, 28, 25).slot(1, 46, 25).slot(2, 64, 25) .slot(0, 28, 25).slot(1, 46, 25).slot(2, 64, 25)
.slot(3, 28, 43).slot(4, 46, 43).slot(5, 64, 43) .slot(3, 28, 43).slot(4, 46, 43).slot(5, 64, 43)
.slot(6, 28, 61).slot(7, 46, 61).slot(8, 64, 61) .slot(6, 28, 61).slot(7, 46, 61).slot(8, 64, 61)
.outputSlot(9, 145, 42) .outputSlot(9, 145, 42).syncEnergyValue()
.syncIntegerValue(this::getProgress, this::setProgress) .syncIntegerValue(this::getProgress, this::setProgress)
.syncIntegerValue(this::getMaxProgress, this::setMaxProgress) .syncIntegerValue(this::getMaxProgress, this::setMaxProgress)
.addInventory().create(); .addInventory().create();