Apply speed upgrades to crafting process
This commit is contained in:
@@ -154,20 +154,20 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
|||||||
|
|
||||||
syncItems();
|
syncItems();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
craftingTasks.addAll(craftingTasksToAdd);
|
craftingTasks.addAll(craftingTasksToAdd);
|
||||||
craftingTasksToAdd.clear();
|
craftingTasksToAdd.clear();
|
||||||
|
|
||||||
Iterator<CraftingTask> it = craftingTasks.iterator();
|
Iterator<CraftingTask> crIt = craftingTasks.iterator();
|
||||||
|
|
||||||
while (it.hasNext()) {
|
while (crIt.hasNext()) {
|
||||||
CraftingTask task = it.next();
|
CraftingTask task = crIt.next();
|
||||||
|
|
||||||
if (task.attemptCraft(this)) {
|
if (ticks % task.getPattern().getSpeed() == 0 && task.update(this)) {
|
||||||
it.remove();
|
crIt.remove();
|
||||||
|
|
||||||
push(task.getPattern().getResult());
|
push(task.getPattern().getResult());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,10 +185,10 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
|||||||
wirelessGridConsumers.removeAll(wirelessGridConsumersMarkedForRemoval);
|
wirelessGridConsumers.removeAll(wirelessGridConsumersMarkedForRemoval);
|
||||||
wirelessGridConsumersMarkedForRemoval.clear();
|
wirelessGridConsumersMarkedForRemoval.clear();
|
||||||
|
|
||||||
Iterator<WirelessGridConsumer> it = wirelessGridConsumers.iterator();
|
Iterator<WirelessGridConsumer> wgIt = wirelessGridConsumers.iterator();
|
||||||
|
|
||||||
while (it.hasNext()) {
|
while (wgIt.hasNext()) {
|
||||||
WirelessGridConsumer consumer = it.next();
|
WirelessGridConsumer consumer = wgIt.next();
|
||||||
|
|
||||||
if (!InventoryUtils.compareStack(consumer.getWirelessGrid(), consumer.getPlayer().getHeldItem(consumer.getHand()))) {
|
if (!InventoryUtils.compareStack(consumer.getWirelessGrid(), consumer.getPlayer().getHeldItem(consumer.getHand()))) {
|
||||||
consumer.getPlayer().closeScreen(); // This will call onContainerClosed on the Container and remove it from the list
|
consumer.getPlayer().closeScreen(); // This will call onContainerClosed on the Container and remove it from the list
|
||||||
@@ -258,7 +258,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor
|
|||||||
if (crafter.getStackInSlot(i) != null) {
|
if (crafter.getStackInSlot(i) != null) {
|
||||||
ItemStack pattern = crafter.getStackInSlot(i);
|
ItemStack pattern = crafter.getStackInSlot(i);
|
||||||
|
|
||||||
patterns.add(new CraftingPattern(ItemPattern.getResult(pattern), ItemPattern.getIngredients(pattern), 20));
|
patterns.add(new CraftingPattern(ItemPattern.getResult(pattern), ItemPattern.getIngredients(pattern), 20 - (crafter.getUpgrades() * 4)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -43,6 +43,18 @@ public class TileCrafter extends TileMachine implements IInventory {
|
|||||||
InventoryUtils.saveInventory(inventory, 0, nbt);
|
InventoryUtils.saveInventory(inventory, 0, nbt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getUpgrades() {
|
||||||
|
int upgrades = 0;
|
||||||
|
|
||||||
|
for (int i = PATTERN_SLOTS; i < PATTERN_SLOTS + 4; ++i) {
|
||||||
|
if (inventory.getStackInSlot(i) != null) {
|
||||||
|
upgrades++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return upgrades;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getSizeInventory() {
|
public int getSizeInventory() {
|
||||||
return inventory.getSizeInventory();
|
return inventory.getSizeInventory();
|
||||||
|
@@ -22,7 +22,7 @@ public class CraftingTask {
|
|||||||
return pattern;
|
return pattern;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean attemptCraft(TileController controller) {
|
public boolean update(TileController controller) {
|
||||||
boolean done = true;
|
boolean done = true;
|
||||||
|
|
||||||
for (int i = 0; i < pattern.getIngredients().length; ++i) {
|
for (int i = 0; i < pattern.getIngredients().length; ++i) {
|
||||||
|
Reference in New Issue
Block a user