use of ivorius.reccomplex.item.GeneratingItem in project RecurrentComplex by Ivorforce.
the class InventoryGenerationHandler method generateAllTags.
public static void generateAllTags(WorldServer server, IInventory inventory, MCRegistrySpecial.ItemHidingRegistry registry, Random random) {
List<Triple<ItemStack, GeneratingItem, Integer>> foundGenerators = new ArrayList<>();
boolean didChange = true;
int cycles = 0;
do {
if (didChange) {
for (int i = 0; i < inventory.getSizeInventory(); i++) {
ItemStack stack = inventory.getStackInSlot(i);
if (!stack.isEmpty()) {
Item item = registry.containedItem(stack);
if (item instanceof GeneratingItem) {
foundGenerators.add(Triple.of(stack, (GeneratingItem) item, i));
inventory.setInventorySlotContents(i, ItemStack.EMPTY);
}
}
}
didChange = false;
}
if (foundGenerators.size() > 0) {
Triple<ItemStack, GeneratingItem, Integer> pair = foundGenerators.get(0);
pair.getMiddle().generateInInventory(server, inventory, random, pair.getLeft(), pair.getRight());
foundGenerators.remove(0);
didChange = true;
}
cycles++;
} while ((foundGenerators.size() > 0 || didChange) && cycles < 1000);
}
Aggregations