Apply speed to running of tasks
This commit is contained in:
@@ -20,6 +20,8 @@ public class CraftingMonitorElementToTake implements ICraftingMonitorElement {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(GuiBase gui, int x, int y) {
|
public void draw(GuiBase gui, int x, int y) {
|
||||||
|
x += 3;
|
||||||
|
|
||||||
gui.drawItem(x + 2, y + 1, toTake);
|
gui.drawItem(x + 2, y + 1, toTake);
|
||||||
|
|
||||||
float scale = 0.5f;
|
float scale = 0.5f;
|
||||||
|
@@ -15,6 +15,7 @@ import refinedstorage.api.network.NetworkUtils;
|
|||||||
import refinedstorage.api.storage.CompareUtils;
|
import refinedstorage.api.storage.CompareUtils;
|
||||||
import refinedstorage.api.storage.item.IGroupedItemStorage;
|
import refinedstorage.api.storage.item.IGroupedItemStorage;
|
||||||
import refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementRoot;
|
import refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementRoot;
|
||||||
|
import refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementToTake;
|
||||||
|
|
||||||
import java.util.ArrayDeque;
|
import java.util.ArrayDeque;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -153,6 +154,18 @@ public class CraftingTaskNormal implements ICraftingTask {
|
|||||||
quantity
|
quantity
|
||||||
));
|
));
|
||||||
|
|
||||||
|
if (!toTake.isEmpty()) {
|
||||||
|
Multimap<Item, ItemStack> toTake = ArrayListMultimap.create();
|
||||||
|
|
||||||
|
for (ItemStack stack : new ArrayList<>(this.toTake)) {
|
||||||
|
add(toTake, stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ItemStack stack : toTake.values()) {
|
||||||
|
elements.add(new CraftingMonitorElementToTake(stack, stack.stackSize));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return elements;
|
return elements;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -182,7 +195,15 @@ public class CraftingTaskNormal implements ICraftingTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addMissing(ItemStack stack) {
|
private void addMissing(ItemStack stack) {
|
||||||
for (ItemStack m : missing.get(stack.getItem())) {
|
add(missing, stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addToCraft(ItemStack stack) {
|
||||||
|
add(toCraft, stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void add(Multimap<Item, ItemStack> map, ItemStack stack) {
|
||||||
|
for (ItemStack m : map.get(stack.getItem())) {
|
||||||
if (CompareUtils.compareStackNoQuantity(m, stack)) {
|
if (CompareUtils.compareStackNoQuantity(m, stack)) {
|
||||||
m.stackSize += stack.stackSize;
|
m.stackSize += stack.stackSize;
|
||||||
|
|
||||||
@@ -190,7 +211,7 @@ public class CraftingTaskNormal implements ICraftingTask {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
missing.put(stack.getItem(), stack.copy());
|
map.put(stack.getItem(), stack.copy());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addExtras(ICraftingPattern pattern) {
|
private void addExtras(ICraftingPattern pattern) {
|
||||||
@@ -226,16 +247,4 @@ public class CraftingTaskNormal implements ICraftingTask {
|
|||||||
this.extras.remove(extras.getItem(), extras);
|
this.extras.remove(extras.getItem(), extras);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addToCraft(ItemStack stack) {
|
|
||||||
for (ItemStack m : toCraft.get(stack.getItem())) {
|
|
||||||
if (CompareUtils.compareStackNoQuantity(m, stack)) {
|
|
||||||
m.stackSize += stack.stackSize;
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
toCraft.put(stack.getItem(), stack.copy());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -275,7 +275,9 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
|||||||
while (craftingTaskIterator.hasNext()) {
|
while (craftingTaskIterator.hasNext()) {
|
||||||
ICraftingTask task = craftingTaskIterator.next();
|
ICraftingTask task = craftingTaskIterator.next();
|
||||||
|
|
||||||
if (task.update()) {
|
ICraftingPatternContainer container = task.getPattern().getContainer();
|
||||||
|
|
||||||
|
if (container != null && ticks % container.getSpeed() == 0 && task.update()) {
|
||||||
craftingTaskIterator.remove();
|
craftingTaskIterator.remove();
|
||||||
|
|
||||||
craftingTasksChanged = true;
|
craftingTasksChanged = true;
|
||||||
|
Reference in New Issue
Block a user