aboutsummaryrefslogtreecommitdiff
path: root/goodgen/src/main/java/goodgenerator/util/StackUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'goodgen/src/main/java/goodgenerator/util/StackUtils.java')
-rw-r--r--goodgen/src/main/java/goodgenerator/util/StackUtils.java143
1 files changed, 0 insertions, 143 deletions
diff --git a/goodgen/src/main/java/goodgenerator/util/StackUtils.java b/goodgen/src/main/java/goodgenerator/util/StackUtils.java
deleted file mode 100644
index 2784828117..0000000000
--- a/goodgen/src/main/java/goodgenerator/util/StackUtils.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package goodgenerator.util;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidContainerRegistry;
-import net.minecraftforge.fluids.FluidRegistry;
-import net.minecraftforge.fluids.FluidStack;
-
-import appeng.api.AEApi;
-import appeng.api.storage.data.IAEFluidStack;
-import goodgenerator.items.MyMaterial;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.MaterialsUEVplus;
-import gregtech.api.util.GT_Utility;
-
-public class StackUtils {
-
- /**
- * Multiplies one ItemStack by a multiplier, and splits it into as many full stacks as it needs to.
- *
- * @param stack The ItemStack you want to multiply
- * @param multiplier The number the stack is multiplied by
- * @return A List of stacks that, in total, are the same as the input ItemStack after it has been multiplied.
- */
- public static List<ItemStack> multiplyAndSplitIntoStacks(ItemStack stack, int multiplier) {
- int totalItems = stack.stackSize * multiplier;
- ArrayList<ItemStack> stacks = new ArrayList<>();
- if (totalItems >= 64) {
- for (int i = 0; i < totalItems / 64; i++) {
- stacks.add(GT_Utility.copyAmount(64, stack));
- }
- }
- if (totalItems % 64 > 0) {
- stacks.add(GT_Utility.copyAmount(totalItems % 64, stack));
- }
- return stacks;
- }
-
- /**
- * Merges the ItemStacks in the array into full stacks.
- */
- public static ArrayList<ItemStack> mergeStacks(List<ItemStack> stacks) {
- ArrayList<ItemStack> output = new ArrayList<>();
- for (int index = 0; index < stacks.size(); index++) {
- ItemStack i = stacks.get(index);
- int newSize = i.stackSize;
- for (int j = index + 1; j < stacks.size(); j++) {
- ItemStack is2 = stacks.get(j);
- if (GT_Utility.areStacksEqual(i, is2)) {
- newSize += is2.stackSize;
- stacks.remove(j);
- j--;
- }
- }
- output.add(GT_Utility.copyAmountUnsafe(newSize, i));
- }
- return output;
- }
-
- /**
- * Turns the {@code items} List into a {@code HashMap} containing each unique {@code ItemStack} as the key, and a
- * value representing the total amount of the respective {@code ItemStack} in the List.
- */
- public static HashMap<ItemStack, Integer> getTotalItems(List<ItemStack> items) {
- HashMap<ItemStack, Integer> totals = new HashMap<>();
- itemLoop: for (ItemStack item : items) {
- int t = items.stream()
- .filter(i2 -> GT_Utility.areStacksEqual(item, i2))
- .mapToInt(i -> i.stackSize)
- .sum();
- for (ItemStack i2 : totals.keySet()) if (GT_Utility.areStacksEqual(item, i2)) continue itemLoop;
- totals.put(GT_Utility.copyAmount(1, item), t);
- }
- return totals;
- }
-
- /**
- * Turns the {@code items} Array into a {@code HashMap} containing each unique {@code ItemStack} as the key, and a
- * value representing the total amount of the respective {@code ItemStack} in the Array.
- */
- public static HashMap<ItemStack, Integer> getTotalItems(ItemStack[] items) {
- return getTotalItems(Arrays.asList(items));
- }
-
- public static FluidStack getTieredFluid(int aTier, int aAmount) {
- switch (aTier) {
- case 0: // ULV
- return Materials.RedAlloy.getMolten(aAmount);
- case 1: // LV
- return Materials.TinAlloy.getMolten(aAmount);
- case 2: // MV
- return Materials.RoseGold.getMolten(aAmount);
- case 3: // HV
- return MyMaterial.zircaloy4.getMolten(aAmount);
- case 4: // EV
- return MyMaterial.incoloy903.getMolten(aAmount);
- case 5: // IV
- return MyMaterial.titaniumBetaC.getMolten(aAmount);
- case 6: // LuV
- return MyMaterial.artheriumSn.getMolten(aAmount);
- case 7: // ZPM
- return MyMaterial.dalisenite.getMolten(aAmount);
- case 8: // UV
- return MyMaterial.tairitsu.getMolten(aAmount);
- case 9: // UHV
- return MyMaterial.preciousMetalAlloy.getMolten(aAmount);
- case 10: // UEV
- return MyMaterial.enrichedNaquadahAlloy.getMolten(aAmount);
- case 11: // UIV
- return MyMaterial.metastableOganesson.getMolten(aAmount);
- case 12: // UMV
- return MaterialsUEVplus.SpaceTime.getMolten(aAmount);
- default:
- return MyMaterial.shirabon.getMolten(aAmount);
- }
- }
-
- // === Copied from AE2FC to avoid hard dep ===
-
- public static IAEFluidStack createAEFluidStack(Fluid fluid) {
- return createAEFluidStack(new FluidStack(fluid, FluidContainerRegistry.BUCKET_VOLUME));
- }
-
- public static IAEFluidStack createAEFluidStack(Fluid fluid, long amount) {
- return createAEFluidStack(fluid.getID(), amount);
- }
-
- public static IAEFluidStack createAEFluidStack(FluidStack fluid) {
- return AEApi.instance()
- .storage()
- .createFluidStack(fluid);
- }
-
- public static IAEFluidStack createAEFluidStack(int fluidId, long amount) {
- return createAEFluidStack(new FluidStack(FluidRegistry.getFluid(fluidId), 1)).setStackSize(amount);
- }
-
-}