aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2021-12-12 12:34:49 +0000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2021-12-12 12:34:49 +0000
commitcdaa19e700a862766e1af69528c42af43cf1a1fc (patch)
treecb065ed7cae780e5b11e35431cf54171e0534c3c
parent5e0647862dae8d3cc847f09ff081e424a537f7f4 (diff)
downloadGT5-Unofficial-cdaa19e700a862766e1af69528c42af43cf1a1fc.tar.gz
GT5-Unofficial-cdaa19e700a862766e1af69528c42af43cf1a1fc.tar.bz2
GT5-Unofficial-cdaa19e700a862766e1af69528c42af43cf1a1fc.zip
Fixed cells being consumed in nuclear reprocessing.
Removed some debug logging. Removed ClassTransformer_CC_GuiContainerManager. Improved handling in GT_NEI_LFTR_Sparging. Added Erbium. Added HeLiCoPtEr.
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java2
-rw-r--r--src/Java/gtPlusPlus/core/material/ALLOY.java18
-rw-r--r--src/Java/gtPlusPlus/core/material/ORES.java3
-rw-r--r--src/Java/gtPlusPlus/nei/GT_NEI_LFTR.java1
-rw-r--r--src/Java/gtPlusPlus/nei/GT_NEI_LFTR_Sparging.java178
-rw-r--r--src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java3
7 files changed, 110 insertions, 99 deletions
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java
index fa09eb03f7..819babb1ba 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -472,6 +472,7 @@ public final class ModItems {
MaterialGenerator.generate(ELEMENT.getInstance().IODINE); //LFTR byproduct
MaterialGenerator.generate(ELEMENT.getInstance().HAFNIUM);
MaterialGenerator.generate(ELEMENT.getInstance().DYSPROSIUM);
+ MaterialGenerator.generate(ELEMENT.getInstance().ERBIUM);
MaterialGenerator.generate(ELEMENT.getInstance().TELLURIUM); //LFTR byproduct
MaterialGenerator.generate(ELEMENT.getInstance().RHODIUM);
MaterialGenerator.generate(ELEMENT.getInstance().RHENIUM);
@@ -641,6 +642,7 @@ public final class ModItems {
MaterialGenerator.generate(ALLOY.TRINIUM_REINFORCED_STEEL);
//Top Tier Alloys
+ MaterialGenerator.generate(ALLOY.HELICOPTER);
MaterialGenerator.generate(ALLOY.LAFIUM);
MaterialGenerator.generate(ALLOY.CINOBITE);
MaterialGenerator.generate(ALLOY.PIKYONIUM);
diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java
index f51dbf920d..fd7547970c 100644
--- a/src/Java/gtPlusPlus/core/material/ALLOY.java
+++ b/src/Java/gtPlusPlus/core/material/ALLOY.java
@@ -745,6 +745,24 @@ public final class ALLOY {
/*
* Top Tier Alloys
*/
+
+ public static final Material HELICOPTER = new Material(
+ "HeLiCoPtEr", //Material Name
+ MaterialState.SOLID, //State
+ null, //Material Colour
+ 5763,
+ 8192,
+ -1,
+ -1,
+ true, //Uses Blast furnace?
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().HELIUM, 20),
+ new MaterialStack(ELEMENT.getInstance().LITHIUM, 20),
+ new MaterialStack(ELEMENT.getInstance().COBALT, 20),
+ new MaterialStack(ELEMENT.getInstance().PLATINUM, 20),
+ new MaterialStack(ELEMENT.getInstance().ERBIUM, 20)
+ });
//0lafe Compound
public static final Material LAFIUM = new Material(
diff --git a/src/Java/gtPlusPlus/core/material/ORES.java b/src/Java/gtPlusPlus/core/material/ORES.java
index 262852eec7..0186c23a07 100644
--- a/src/Java/gtPlusPlus/core/material/ORES.java
+++ b/src/Java/gtPlusPlus/core/material/ORES.java
@@ -245,6 +245,7 @@ public final class ORES {
-1, //Radiation
new MaterialStack[]{
new MaterialStack(ELEMENT.getInstance().CERIUM, 4),
+ new MaterialStack(ELEMENT.getInstance().ERBIUM, 2),
new MaterialStack(ELEMENT.getInstance().LANTHANUM, 2),
new MaterialStack(ELEMENT.getInstance().NEODYMIUM, 2),
new MaterialStack(ELEMENT.getInstance().YTTRIUM, 2),
@@ -267,6 +268,7 @@ public final class ORES {
-1, //Radiation
new MaterialStack[]{
new MaterialStack(ELEMENT.getInstance().CERIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().ERBIUM, 2),
new MaterialStack(ELEMENT.getInstance().LANTHANUM, 2),
new MaterialStack(ELEMENT.getInstance().NEODYMIUM, 2),
new MaterialStack(ELEMENT.getInstance().YTTRIUM, 4),
@@ -661,6 +663,7 @@ public final class ORES {
new MaterialStack[]{
new MaterialStack(ELEMENT.getInstance().YTTRIUM, 2),
new MaterialStack(ELEMENT.getInstance().YTTERBIUM, 2),
+ new MaterialStack(ELEMENT.getInstance().ERBIUM, 2),
new MaterialStack(ELEMENT.getInstance().EUROPIUM, 1),
new MaterialStack(ELEMENT.getInstance().PHOSPHORUS, 2),
new MaterialStack(ELEMENT.getInstance().OXYGEN, 8)
diff --git a/src/Java/gtPlusPlus/nei/GT_NEI_LFTR.java b/src/Java/gtPlusPlus/nei/GT_NEI_LFTR.java
index a88df530ab..9fbc689ac3 100644
--- a/src/Java/gtPlusPlus/nei/GT_NEI_LFTR.java
+++ b/src/Java/gtPlusPlus/nei/GT_NEI_LFTR.java
@@ -101,7 +101,6 @@ public class GT_NEI_LFTR extends GTPP_NEI_DefaultHandler {
if ((mRecipe.mFluidOutputs.length > 8) && (mRecipe.mFluidOutputs[8] != null) && (mRecipe.mFluidOutputs[8].getFluid() != null)) {
this.mOutputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(mRecipe.mFluidOutputs[8], true), 138, 41, mRecipe.getOutputChance(tStartIndex++)));
}
- Logger.INFO("Outputs: "+mRecipe.mFluidOutputs.length);
}
}
diff --git a/src/Java/gtPlusPlus/nei/GT_NEI_LFTR_Sparging.java b/src/Java/gtPlusPlus/nei/GT_NEI_LFTR_Sparging.java
index acaea3fa4b..b293ac7c6f 100644
--- a/src/Java/gtPlusPlus/nei/GT_NEI_LFTR_Sparging.java
+++ b/src/Java/gtPlusPlus/nei/GT_NEI_LFTR_Sparging.java
@@ -1,10 +1,11 @@
package gtPlusPlus.nei;
import java.awt.Rectangle;
+import java.lang.ref.SoftReference;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.Iterator;
import java.util.List;
+import java.util.stream.Collectors;
import org.lwjgl.opengl.GL11;
@@ -19,19 +20,18 @@ import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.GasSpargingRecipe;
import gregtech.api.util.GasSpargingRecipeMap;
-import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.gui.machine.GUI_DecayablesChest;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
-import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidStack;
public class GT_NEI_LFTR_Sparging extends TemplateRecipeHandler {
public static final String mNEIName = GasSpargingRecipeMap.mNEIDisplayName;
+ private SoftReference<List<GasSpargingRecipeNEI>> mCachedRecipes = null;
public String getRecipeName() {
return mNEIName;
@@ -63,97 +63,86 @@ public class GT_NEI_LFTR_Sparging extends TemplateRecipeHandler {
public void loadTransferRects() {
this.transferRects.add(new RecipeTransferRect(new Rectangle(72, 14, 22, 16), getRecipeName(), new Object[0]));
}
-
- public List<GasSpargingRecipe> getSortedRecipes() {
- List<GasSpargingRecipe> result = new ArrayList<GasSpargingRecipe>(GasSpargingRecipeMap.mRecipes);
- Collections.sort(result);
- return result;
- }
-
- @Override
- public void loadCraftingRecipes(final String outputId, final Object... results) {
- if (outputId.equals(getRecipeName())) {
- for (GasSpargingRecipe tRecipe : getSortedRecipes()) {
- this.arecipes.add(new GasSpargingRecipeNEI(tRecipe));
- }
- } else {
- super.loadCraftingRecipes(outputId, results);
- }
- }
-
- @Override
- public void loadCraftingRecipes(final ItemStack aResult) {
- ItemData tPrefixMaterial = GT_OreDictUnificator.getAssociation(aResult);
-
- ArrayList<ItemStack> tResults = new ArrayList<ItemStack>();
- tResults.add(aResult);
- tResults.add(GT_OreDictUnificator.get(true, aResult));
- if ((tPrefixMaterial != null) && (!tPrefixMaterial.mBlackListed) && (!tPrefixMaterial.mPrefix.mFamiliarPrefixes.isEmpty())) {
- for (OrePrefixes tPrefix : tPrefixMaterial.mPrefix.mFamiliarPrefixes) {
- tResults.add(GT_OreDictUnificator.get(tPrefix, tPrefixMaterial.mMaterial.mMaterial, 1L));
- }
- }
- FluidStack tFluid = GT_Utility.getFluidForFilledItem(aResult, true);
- if (tFluid != null) {
- tResults.add(GT_Utility.getFluidDisplayStack(tFluid, false));
- for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) {
- if (tData.fluid.isFluidEqual(tFluid)) {
- tResults.add(GT_Utility.copy(new Object[]{tData.filledContainer}));
- }
- }
- }
- for (GasSpargingRecipe tRecipe : getSortedRecipes()) {
- GasSpargingRecipeNEI tNEIRecipe = new GasSpargingRecipeNEI(tRecipe);
- for (ItemStack tStack : tResults) {
- if (tNEIRecipe.contains(tNEIRecipe.mOutputs, tStack)) {
- this.arecipes.add(tNEIRecipe);
- break;
- }
- }
- }
- //CachedDefaultRecipe tNEIRecipe;
- }
-
- public void loadUsageRecipes(ItemStack aInput) {
- ItemData tPrefixMaterial = GT_OreDictUnificator.getAssociation(aInput);
-
- ArrayList<ItemStack> tInputs = new ArrayList<ItemStack>();
- tInputs.add(aInput);
- tInputs.add(GT_OreDictUnificator.get(false, aInput));
- if ((tPrefixMaterial != null) && (!tPrefixMaterial.mPrefix.mFamiliarPrefixes.isEmpty())) {
- for (OrePrefixes tPrefix : tPrefixMaterial.mPrefix.mFamiliarPrefixes) {
- tInputs.add(GT_OreDictUnificator.get(tPrefix, tPrefixMaterial.mMaterial.mMaterial, 1L));
- }
- }
- FluidStack tFluid = GT_Utility.getFluidForFilledItem(aInput, true);
- if (tFluid != null) {
- tInputs.add(GT_Utility.getFluidDisplayStack(tFluid, false));
- for (FluidContainerRegistry.FluidContainerData tData : FluidContainerRegistry.getRegisteredFluidContainerData()) {
- if (tData.fluid.isFluidEqual(tFluid)) {
- tInputs.add(GT_Utility.copy(new Object[]{tData.filledContainer}));
- }
- }
- }
- for (GasSpargingRecipe tRecipe : getSortedRecipes()) {
- GasSpargingRecipeNEI tNEIRecipe = new GasSpargingRecipeNEI(tRecipe);
- for (ItemStack tStack : tInputs) {
- if (tNEIRecipe.contains(tNEIRecipe.mInputs, tStack)) {
- this.arecipes.add(tNEIRecipe);
- break;
- }
- }
- }
- }
-
- private final void sort() {
- List<GasSpargingRecipeNEI> g = new ArrayList<GasSpargingRecipeNEI>();
- for (CachedRecipe u : arecipes) {
- g.add((GasSpargingRecipeNEI) u);
- }
- if (g != null && !g.isEmpty()) {
- Collections.sort(g);
- }
- }
+
+ public List<GasSpargingRecipeNEI> getCache() {
+ List<GasSpargingRecipeNEI> cache;
+ if (mCachedRecipes == null || (cache = mCachedRecipes.get()) == null) {
+ cache = GasSpargingRecipeMap.mRecipes.stream() // do not use parallel stream. This is already parallelized by NEI
+ .sorted()
+ .map(temp -> {return createCachedRecipe(temp);})
+ .collect(Collectors.toList());
+ // while the NEI parallelize handlers, for each individual handler it still uses sequential execution model
+ // so we do not need any synchronization here
+ mCachedRecipes = new SoftReference<>(cache);
+ }
+ return cache;
+ }
+
+ public GasSpargingRecipeNEI createCachedRecipe(GasSpargingRecipe aRecipe) {
+ return new GasSpargingRecipeNEI(aRecipe);
+ }
+
+ public void loadCraftingRecipes(String outputId, Object... results) {
+ if (outputId.equals(getOverlayIdentifier())) {
+ arecipes.addAll(getCache());
+ } else {
+ super.loadCraftingRecipes(outputId, results);
+ }
+ }
+
+ public void loadCraftingRecipes(ItemStack aResult) {
+ ItemData tPrefixMaterial = GT_OreDictUnificator.getAssociation(aResult);
+
+ ArrayList<ItemStack> tResults = new ArrayList<>();
+ tResults.add(aResult);
+ tResults.add(GT_OreDictUnificator.get(true, aResult));
+ if ((tPrefixMaterial != null) && (!tPrefixMaterial.mBlackListed) && (!tPrefixMaterial.mPrefix.mFamiliarPrefixes.isEmpty())) {
+ for (OrePrefixes tPrefix : tPrefixMaterial.mPrefix.mFamiliarPrefixes) {
+ tResults.add(GT_OreDictUnificator.get(tPrefix, tPrefixMaterial.mMaterial.mMaterial, 1L));
+ }
+ }
+ FluidStack tFluid = GT_Utility.getFluidForFilledItem(aResult, true);
+ FluidStack tFluidStack;
+ if (tFluid != null) {
+ tFluidStack = tFluid;
+ tResults.add(GT_Utility.getFluidDisplayStack(tFluid, false));
+ }
+ else tFluidStack = GT_Utility.getFluidFromDisplayStack(aResult);
+ if (tFluidStack != null) {
+ tResults.addAll(GT_Utility.getContainersFromFluid(tFluidStack));
+ }
+ for (GasSpargingRecipeNEI recipe : getCache()) {
+ if (tResults.stream().anyMatch(stack -> recipe.contains(recipe.mOutputs, stack)))
+ arecipes.add(recipe);
+ }
+ }
+
+ public void loadUsageRecipes(ItemStack aInput) {
+ ItemData tPrefixMaterial = GT_OreDictUnificator.getAssociation(aInput);
+
+ ArrayList<ItemStack> tInputs = new ArrayList<>();
+ tInputs.add(aInput);
+ tInputs.add(GT_OreDictUnificator.get(false, aInput));
+ if ((tPrefixMaterial != null) && (!tPrefixMaterial.mPrefix.mFamiliarPrefixes.isEmpty())) {
+ for (OrePrefixes tPrefix : tPrefixMaterial.mPrefix.mFamiliarPrefixes) {
+ tInputs.add(GT_OreDictUnificator.get(tPrefix, tPrefixMaterial.mMaterial.mMaterial, 1L));
+ }
+ }
+ FluidStack tFluid = GT_Utility.getFluidForFilledItem(aInput, true);
+ FluidStack tFluidStack;
+ if (tFluid != null) {
+ tFluidStack = tFluid;
+ tInputs.add(GT_Utility.getFluidDisplayStack(tFluid, false));
+ }
+ else tFluidStack = GT_Utility.getFluidFromDisplayStack(aInput);
+ if (tFluidStack != null) {
+ tInputs.addAll(GT_Utility.getContainersFromFluid(tFluidStack));
+ }
+ for (GasSpargingRecipeNEI recipe : getCache()) {
+ if (tInputs.stream().anyMatch(stack -> recipe.contains(recipe.mInputs, stack)))
+ arecipes.add(recipe);
+ }
+ }
public void drawExtras(int aRecipeIndex) {
final long tEUt = ((GasSpargingRecipeNEI) this.arecipes.get(aRecipeIndex)).mRecipe.mEUt;
@@ -320,7 +309,6 @@ public class GT_NEI_LFTR_Sparging extends TemplateRecipeHandler {
if ((tRecipe.mFluidOutputs.length > 8) && (tRecipe.mFluidOutputs[8] != null) && (tRecipe.mFluidOutputs[8].getFluid() != null)) {
this.mOutputs.add(new FixedPositionedStack(GT_Utility.getFluidDisplayStack(tRecipe.mFluidOutputs[8], false), 138, 41, tRecipe.getMaxOutput(tStartIndex++)));
}
- Logger.INFO("Outputs: "+tRecipe.mFluidOutputs.length);
}
}
diff --git a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
index 1795d74262..5cb2eef066 100644
--- a/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
+++ b/src/Java/gtPlusPlus/preloader/asm/transformers/Preloader_Transformer_Handler.java
@@ -122,8 +122,8 @@ public class Preloader_Transformer_Handler implements IClassTransformer {
// Log Handling of CodeChicken
if (transformedName.equals("codechicken.nei.guihook.GuiContainerManager")) {
- Preloader_Logger.INFO("CodeChicken GuiContainerManager Patch", "Transforming "+transformedName);
- return new ClassTransformer_CC_GuiContainerManager(basicClass).getWriter().toByteArray();
+ //Preloader_Logger.INFO("CodeChicken GuiContainerManager Patch", "Transforming "+transformedName);
+ //return new ClassTransformer_CC_GuiContainerManager(basicClass).getWriter().toByteArray();
}
// Fix the OreDictionary COFH
if (transformedName.equals(COFH_ORE_DICTIONARY_ARBITER) && (AsmConfig.enableCofhPatch || !obfuscated)) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java
index 646b99d924..8ec192b573 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/recipe/RecipeLoader_NuclearFuelProcessing.java
@@ -97,7 +97,7 @@ public class RecipeLoader_NuclearFuelProcessing {
ELEMENT.getInstance().FLUORINE.getCell(6),
NUCLIDE.LiFBeF2ThF4.getFluidStack(10000),
new ItemStack[] {
- CI.emptyCells(3),
+ CI.emptyCells(4),
FLUORIDES.LITHIUM_FLUORIDE.getCell(1),
FLUORIDES.BERYLLIUM_FLUORIDE.getCell(1),
ItemUtils.getSimpleStack(ModItems.dustProtactinium233),
@@ -210,6 +210,7 @@ public class RecipeLoader_NuclearFuelProcessing {
ELEMENT.getInstance().FLUORINE.getCell(3),
NUCLIDE.Sparged_LiFBeF2UF4FP.getFluidStack(1000),
new ItemStack[] {
+ CI.emptyCells(1),
NUCLIDE.UF6F2FP.getCell(2)
},
new int[] {10000},