aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexdoru <57050655+Alexdoru@users.noreply.github.com>2024-10-09 18:11:00 +0200
committerGitHub <noreply@github.com>2024-10-09 18:11:00 +0200
commitd2a9ed7be356fda78de11a5bceedec501a9f1ffc (patch)
tree68e0141f05d6f52b53c2906c2a6deeacfac05d36
parentb27b4c35fb01bdabe29abf780486475e2d758e9c (diff)
downloadGT5-Unofficial-d2a9ed7be356fda78de11a5bceedec501a9f1ffc.tar.gz
GT5-Unofficial-d2a9ed7be356fda78de11a5bceedec501a9f1ffc.tar.bz2
GT5-Unofficial-d2a9ed7be356fda78de11a5bceedec501a9f1ffc.zip
Remove tremendous and useless RAM allocation from GT++ algae pond recipes (#3338)
-rw-r--r--src/main/java/gtPlusPlus/api/objects/data/WeightedCollection.java102
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/HandlerGT.java2
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java156
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoaderAlgaeFarm.java190
4 files changed, 141 insertions, 309 deletions
diff --git a/src/main/java/gtPlusPlus/api/objects/data/WeightedCollection.java b/src/main/java/gtPlusPlus/api/objects/data/WeightedCollection.java
deleted file mode 100644
index 6a14b97e0b..0000000000
--- a/src/main/java/gtPlusPlus/api/objects/data/WeightedCollection.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package gtPlusPlus.api.objects.data;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.NavigableMap;
-import java.util.Random;
-import java.util.Set;
-import java.util.TreeMap;
-
-import gregtech.api.objects.XSTR;
-
-public class WeightedCollection<E> implements Map<Integer, E> {
-
- private final NavigableMap<Integer, E> map = new TreeMap<>();
- private final Random random;
- private int total = 0;
-
- public WeightedCollection() {
- this(new XSTR());
- }
-
- public WeightedCollection(Random random) {
- this.random = random;
- }
-
- public E add(int weight, E object) {
- if (weight <= 0) return null;
- total += weight;
- return map.put(total, object);
- }
-
- private E next() {
- int value = random.nextInt(total) + 1; // Can also use floating-point weights
- return map.ceilingEntry(value)
- .getValue();
- }
-
- @Override
- public int size() {
- return map.size();
- }
-
- @Override
- public boolean isEmpty() {
- return map.isEmpty();
- }
-
- @Override
- public boolean containsKey(Object key) {
- return map.containsKey(key);
- }
-
- @Override
- public boolean containsValue(Object value) {
- return map.containsValue(value);
- }
-
- public E get() {
- return next();
- }
-
- @Override
- public E get(Object key) {
- return next();
- }
-
- @Override
- public void putAll(Map m) {
- map.putAll(m);
- }
-
- @Override
- public void clear() {
- map.clear();
- this.total = 0;
- }
-
- @Override
- public Set keySet() {
- return map.keySet();
- }
-
- @Override
- public Collection values() {
- return map.values();
- }
-
- @Override
- public Set entrySet() {
- return map.entrySet();
- }
-
- @Override
- public E put(Integer key, E value) {
- return add(key, value);
- }
-
- @Override
- public E remove(Object key) {
- return map.remove(key);
- }
-}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/HandlerGT.java b/src/main/java/gtPlusPlus/xmod/gregtech/HandlerGT.java
index 2db9a1e80c..c42061478d 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/HandlerGT.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/HandlerGT.java
@@ -20,7 +20,6 @@ import gtPlusPlus.xmod.gregtech.loaders.GTPPBlocks;
import gtPlusPlus.xmod.gregtech.loaders.ProcessingAngleGrinder;
import gtPlusPlus.xmod.gregtech.loaders.ProcessingElectricSnips;
import gtPlusPlus.xmod.gregtech.loaders.misc.AddCustomMachineToPA;
-import gtPlusPlus.xmod.gregtech.loaders.recipe.RecipeLoaderAlgaeFarm;
import gtPlusPlus.xmod.gregtech.loaders.recipe.RecipeLoaderMolecularTransformer;
import gtPlusPlus.xmod.gregtech.loaders.recipe.RecipeLoaderTreeFarm;
import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechConduits;
@@ -85,7 +84,6 @@ public class HandlerGT {
public static void onLoadComplete(FMLLoadCompleteEvent event) {
CokeAndPyrolyseOven.onLoadComplete();
MetaGTProxy.fixIC2FluidNames();
- RecipeLoaderAlgaeFarm.generateRecipes();
RecipeLoaderTreeFarm.generateRecipes();
RecipeLoaderMolecularTransformer.run();
}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java
index 6b266908ce..01369df1f3 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java
@@ -9,6 +9,7 @@ import static gregtech.api.enums.HatchElement.InputHatch;
import static gregtech.api.enums.HatchElement.OutputBus;
import static gregtech.api.util.GTStructureUtility.buildHatchAdder;
+import java.util.ArrayList;
import java.util.stream.Stream;
import javax.annotation.Nonnull;
@@ -30,6 +31,7 @@ import com.gtnewhorizon.structurelib.structure.StructureDefinition;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.GregTechAPI;
+import gregtech.api.enums.GTValues;
import gregtech.api.enums.SoundResource;
import gregtech.api.enums.TAE;
import gregtech.api.interfaces.IIconContainer;
@@ -51,17 +53,19 @@ import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.config.Configuration;
import gtPlusPlus.core.item.chemistry.AgriculturalChem;
import gtPlusPlus.core.lib.GTPPCore;
+import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
-import gtPlusPlus.xmod.gregtech.loaders.recipe.RecipeLoaderAlgaeFarm;
import ic2.core.init.BlocksItems;
import ic2.core.init.InternalName;
import tectech.thing.casing.TTCasingsContainer;
public class MTEAlgaePondBase extends GTPPMultiBlockBase<MTEAlgaePondBase> implements ISurvivalConstructable {
+ // TODO add a NEI handler for this machine
+
private int mLevel = -1;
private int mCasing;
private static IStructureDefinition<MTEAlgaePondBase> STRUCTURE_DEFINITION = null;
@@ -336,8 +340,7 @@ public class MTEAlgaePondBase extends GTPPMultiBlockBase<MTEAlgaePondBase> imple
@Nonnull
@Override
protected Stream<GTRecipe> findRecipeMatches(@Nullable RecipeMap<?> map) {
- return GTStreamUtil
- .ofNullable(RecipeLoaderAlgaeFarm.getTieredRecipeFromCache(mLevel, isUsingCompost(inputItems)));
+ return GTStreamUtil.ofNullable(getTieredRecipe(mLevel, inputItems));
}
@NotNull
@@ -352,18 +355,6 @@ public class MTEAlgaePondBase extends GTPPMultiBlockBase<MTEAlgaePondBase> imple
.setMaxParallelSupplier(this::getMaxParallelRecipes);
}
- private boolean isUsingCompost(ItemStack[] aItemInputs) {
- ItemStack aCompost = ItemUtils.getSimpleStack(AgriculturalChem.mCompost, 1);
- for (ItemStack i : aItemInputs) {
- if (GTUtility.areStacksEqual(aCompost, i)) {
- if (i.stackSize >= RecipeLoaderAlgaeFarm.compostForTier(mLevel)) {
- return true;
- }
- }
- }
- return false;
- }
-
private int getCasingTier() {
if (this.getBaseMetaTileEntity()
.getWorld() == null) {
@@ -398,4 +389,139 @@ public class MTEAlgaePondBase extends GTPPMultiBlockBase<MTEAlgaePondBase> imple
protected SoundResource getActivitySoundLoop() {
return SoundResource.GT_MACHINES_ALGAE_LOOP;
}
+
+ private static GTRecipe getTieredRecipe(int aTier, ItemStack[] aItemInputs) {
+ return generateBaseRecipe(aTier, isUsingCompost(aItemInputs, aTier));
+ }
+
+ private static boolean isUsingCompost(ItemStack[] aItemInputs, int aTier) {
+ ItemStack aCompost = ItemUtils.getSimpleStack(AgriculturalChem.mCompost, 1);
+ final int compostForTier = compostForTier(aTier);
+ int compostFound = 0;
+ for (ItemStack i : aItemInputs) {
+ if (GTUtility.areStacksEqual(aCompost, i)) {
+ compostFound += i.stackSize;
+ if (compostFound >= compostForTier) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private static int compostForTier(int aTier) {
+ return aTier > 1 ? (int) Math.min(64, Math.pow(2, aTier - 1)) : 1;
+ }
+
+ private static GTRecipe generateBaseRecipe(int aTier, boolean isUsingCompost) {
+
+ if (aTier < 0) return null; // Type Safety
+
+ final ItemStack[] aInputs;
+ if (isUsingCompost) {
+ // Make it use 4 compost per tier if we have some available
+ // Compost consumption maxes out at 1 stack per cycle
+ ItemStack aCompost = ItemUtils.getSimpleStack(AgriculturalChem.mCompost, compostForTier(aTier));
+ aInputs = new ItemStack[] { aCompost };
+ // Boost Tier by one if using compost, so it gets a speed boost
+ aTier++;
+ } else {
+ aInputs = new ItemStack[] {};
+ }
+
+ ItemStack[] aOutputs = getOutputsForTier(aTier);
+ GTRecipe tRecipe = new GTRecipe(
+ false,
+ aInputs,
+ aOutputs,
+ null,
+ new int[] {},
+ new FluidStack[] { GTValues.NF },
+ new FluidStack[] { GTValues.NF },
+ getRecipeDuration(aTier),
+ 0,
+ 0);
+ tRecipe.mSpecialValue = tRecipe.hashCode();
+ return tRecipe;
+ }
+
+ private static final int[] aDurations = new int[] { 2000, 1800, 1600, 1400, 1200, 1000, 512, 256, 128, 64, 32, 16,
+ 8, 4, 2, 1 };
+
+ private static int getRecipeDuration(int aTier) {
+ final float randFloat = GTPPCore.RANDOM.nextFloat();
+ float randMult;
+ if (randFloat < 0.96237624) randMult = 1f;
+ else if (randFloat < 0.9912871) randMult = 2f;
+ else randMult = 3f;
+ return (int) (aDurations[aTier] * randMult / 2);
+ }
+
+ private static ItemStack[] getOutputsForTier(int aTier) {
+ ArrayList<ItemStack> outputList = new ArrayList<>();
+
+ if (aTier >= 0) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 2));
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 4));
+ if (MathUtils.randInt(0, 10) > 9) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 2));
+ }
+ }
+ if (aTier >= 1) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 4));
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 2));
+ if (MathUtils.randInt(0, 10) > 9) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 4));
+ }
+ }
+ if (aTier >= 2) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 2));
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 3));
+ if (MathUtils.randInt(0, 10) > 9) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 8));
+ }
+ }
+ if (aTier >= 3) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 4));
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 1));
+ if (MathUtils.randInt(0, 10) > 9) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 4));
+ }
+ }
+ if (aTier >= 4) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 2));
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 3));
+ if (MathUtils.randInt(0, 10) > 9) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, 4));
+ }
+ }
+ if (aTier >= 5) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 4));
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, 2));
+ if (MathUtils.randInt(0, 10) > 9) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, 4));
+ }
+ }
+ if (aTier >= 6) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, 4));
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, 2));
+ if (MathUtils.randInt(0, 10) > 9) {
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, 8));
+ }
+ // Iterate a special loop at higher tiers to provide more Red/Gold Algae.
+ for (int i = 0; i < 20; i++) {
+ if (aTier >= (6 + i)) {
+ int aMulti = i + 1;
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, aMulti * 4));
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, aMulti * 3));
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, aMulti * 2));
+ outputList.add(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, aMulti));
+ } else {
+ break;
+ }
+ }
+ }
+
+ return outputList.toArray(new ItemStack[0]);
+ }
}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoaderAlgaeFarm.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoaderAlgaeFarm.java
deleted file mode 100644
index 0ec27e6cee..0000000000
--- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoaderAlgaeFarm.java
+++ /dev/null
@@ -1,190 +0,0 @@
-package gtPlusPlus.xmod.gregtech.loaders.recipe;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.fluids.FluidStack;
-
-import gregtech.api.enums.GTValues;
-import gregtech.api.util.GTRecipe;
-import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.api.objects.data.WeightedCollection;
-import gtPlusPlus.core.item.chemistry.AgriculturalChem;
-import gtPlusPlus.core.util.math.MathUtils;
-import gtPlusPlus.core.util.minecraft.ItemUtils;
-
-public class RecipeLoaderAlgaeFarm {
-
- private static final HashMap<Integer, ArrayList<GTRecipe>> mRecipeCache = new HashMap<>();
- private static final HashMap<Integer, ArrayList<GTRecipe>> mRecipeCompostCache = new HashMap<>();
-
- public static void generateRecipes() {
- for (int i = 0; i < 15; i++) {
- getTieredRecipeFromCache(i, false);
- }
- for (int i = 0; i < 15; i++) {
- getTieredRecipeFromCache(i, true);
- }
- }
-
- public static GTRecipe getTieredRecipeFromCache(int aTier, boolean aCompost) {
- HashMap<Integer, ArrayList<GTRecipe>> aMap = aCompost ? mRecipeCompostCache : mRecipeCache;
- String aComp = aCompost ? "(Compost)" : "";
-
- ArrayList<GTRecipe> aTemp = aMap.get(aTier);
- if (aTemp == null || aTemp.isEmpty()) {
- aTemp = new ArrayList<>();
- aMap.put(aTier, aTemp);
- Logger.INFO("Tier " + aTier + aComp + " had no recipes, initialising new map.");
- }
- if (aTemp.size() < 500) {
- Logger
- .INFO("Tier " + aTier + aComp + " has less than 500 recipes, generating " + (500 - aTemp.size()) + ".");
- for (int i = aTemp.size(); i < 500; i++) {
- aTemp.add(generateBaseRecipe(aCompost, aTier));
- }
- }
- int aIndex = MathUtils.randInt(0, (aTemp.isEmpty() ? 1 : aTemp.size()) - 1);
- Logger.INFO("Using recipe with index of " + aIndex + ". " + aComp);
- return aTemp.get(aIndex);
- }
-
- public static int compostForTier(int aTier) {
- return aTier > 1 ? (int) Math.min(64, Math.pow(2, aTier - 1)) : 1;
- }
-
- private static GTRecipe generateBaseRecipe(boolean aUsingCompost, int aTier) {
-
- // Type Safety
- if (aTier < 0) {
- return null;
- }
-
- WeightedCollection<Float> aOutputTimeMulti = new WeightedCollection<>();
- for (int i = 100; i > 0; i--) {
- float aValue = 0;
- if (i < 10) {
- aValue = 3f;
- } else if (i < 20) {
- aValue = 2f;
- } else {
- aValue = 1f;
- }
- aOutputTimeMulti.put(i, aValue);
- }
-
- final int[] aDurations = new int[] { 2000, 1800, 1600, 1400, 1200, 1000, 512, 256, 128, 64, 32, 16, 8, 4, 2,
- 1 };
-
- ItemStack[] aInputs = new ItemStack[] {};
-
- if (aUsingCompost) {
- // Make it use 4 compost per tier if we have some available
- // Compost consumption maxes out at 1 stack per cycle
- ItemStack aCompost = ItemUtils.getSimpleStack(AgriculturalChem.mCompost, compostForTier(aTier));
- aInputs = new ItemStack[] { aCompost };
- // Boost Tier by one if using compost so it gets a speed boost
- aTier++;
- }
-
- // We set these elsewhere
- ItemStack[] aOutputs = getOutputsForTier(aTier);
-
- GTRecipe tRecipe = new GTRecipe(
- false,
- aInputs,
- aOutputs,
- null,
- new int[] {},
- new FluidStack[] { GTValues.NF },
- new FluidStack[] { GTValues.NF },
- (int) (aDurations[aTier] * aOutputTimeMulti.get() / 2), // Time
- 0,
- 0);
-
- tRecipe.mSpecialValue = tRecipe.hashCode();
-
- return tRecipe;
- }
-
- private static ItemStack[] getOutputsForTier(int aTier) {
- ArrayList<ItemStack> aOutputMap = new ArrayList<>();
-
- // Add loot relevant to tier and also add any from lower tiers.
-
- if (aTier >= 0) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 2));
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 4));
- if (MathUtils.randInt(0, 10) > 9) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 2));
- }
- }
-
- if (aTier >= 1) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 4));
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 2));
- if (MathUtils.randInt(0, 10) > 9) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 4));
- }
- }
- if (aTier >= 2) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 2));
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 3));
- if (MathUtils.randInt(0, 10) > 9) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 8));
- }
- }
- if (aTier >= 3) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, 4));
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 1));
- if (MathUtils.randInt(0, 10) > 9) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 4));
- }
- }
- if (aTier >= 4) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 2));
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 3));
- if (MathUtils.randInt(0, 10) > 9) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, 4));
- }
- }
- if (aTier >= 5) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, 4));
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, 2));
- if (MathUtils.randInt(0, 10) > 9) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, 4));
- }
- }
- // Tier 6 is Highest for outputs
- if (aTier >= 6) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, 4));
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, 2));
- if (MathUtils.randInt(0, 10) > 9) {
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, 8));
- }
- }
-
- // Iterate a special loop at higher tiers to provide more Red/Gold Algae.
- for (int i2 = 0; i2 < 20; i2++) {
- if (aTier >= (6 + i2)) {
- int aMulti = i2 + 1;
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGreenAlgaeBiosmass, aMulti * 4));
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mBrownAlgaeBiosmass, aMulti * 3));
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mGoldenBrownAlgaeBiosmass, aMulti * 2));
- aOutputMap.add(ItemUtils.getSimpleStack(AgriculturalChem.mRedAlgaeBiosmass, aMulti));
- } else {
- i2 = 20;
- }
- }
-
- // Map the AutoMap contents to an Itemstack Array.
- ItemStack[] aOutputs = new ItemStack[aOutputMap.size()];
- for (int i = 0; i < aOutputMap.size(); i++) {
- aOutputs[i] = aOutputMap.get(i);
- }
-
- // Return filled ItemStack Array.
- return aOutputs;
- }
-}