aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
diff options
context:
space:
mode:
authorMaxim <maxim235@gmx.de>2023-02-16 10:14:49 +0100
committerGitHub <noreply@github.com>2023-02-16 10:14:49 +0100
commit3b834d6cebae287cd9bbeddd4f157338da6e1ea5 (patch)
tree84b429a27e1adf0674569160e40e4c916a1d93c3 /src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
parente1ba22d7de9388dffb0ea7d99add79b95f94aa6a (diff)
downloadGT5-Unofficial-3b834d6cebae287cd9bbeddd4f157338da6e1ea5.tar.gz
GT5-Unofficial-3b834d6cebae287cd9bbeddd4f157338da6e1ea5.tar.bz2
GT5-Unofficial-3b834d6cebae287cd9bbeddd4f157338da6e1ea5.zip
Fusion NEI support (#1742)
* Added optional special value to Power and getter for power into IMTE * Added FusionPower to properly display available fusion recipes and OC * spotlessApply (#1743) Co-authored-by: GitHub GTNH Actions <> * Moved compare flag to recipe map * Missed a new constructor * Added user request * Addressed reviews * Typo * Update src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java Co-authored-by: miozune <miozune@gmail.com> * Removed wrong bracket from git online commit --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: miozune <miozune@gmail.com>
Diffstat (limited to 'src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java')
-rw-r--r--src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java33
1 files changed, 26 insertions, 7 deletions
diff --git a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
index 4bcaeddc0d..ba64ba2e54 100644
--- a/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
+++ b/src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
@@ -58,7 +58,6 @@ import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.SteamVariant;
import gregtech.api.gui.GT_GUIContainer;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
import gregtech.api.objects.ItemData;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Log;
@@ -165,7 +164,11 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler {
if (outputId.equals(getOverlayIdentifier())) {
if (results.length > 0 && results[0] instanceof Power) {
mPower = (Power) results[0];
- loadTieredCraftingRecipesUpTo(mPower.getTier());
+ if (mRecipeMap.useComparatorForNEI) {
+ loadTieredCraftingRecipesWithPower(mPower);
+ } else {
+ loadTieredCraftingRecipesUpTo(mPower.getTier());
+ }
} else {
arecipes.addAll(getCache());
}
@@ -205,6 +208,21 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler {
}
}
+ private void loadTieredCraftingRecipesWithPower(Power power) {
+ arecipes.addAll(getTieredRecipes(power));
+ }
+
+ private List<CachedDefaultRecipe> getTieredRecipes(Power power) {
+ List<CachedDefaultRecipe> recipes = getCache();
+ if (recipes.size() > 0) {
+ recipes = recipes.stream().filter(
+ recipe -> power.compareTo(GT_Utility.getTier(recipe.mRecipe.mEUt), recipe.mRecipe.mSpecialValue)
+ >= 0)
+ .collect(Collectors.toList());
+ }
+ return recipes;
+ }
+
private void loadTieredCraftingRecipesUpTo(byte upperTier) {
arecipes.addAll(getTieredRecipes(upperTier));
}
@@ -242,12 +260,13 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler {
GT_NEI_DefaultHandler handler = (GT_NEI_DefaultHandler) newInstance();
if (RecipeCatalysts.containsCatalyst(handler, candidate)) {
IMetaTileEntity gtTileEntity = GT_Item_Machines.getMetaTileEntity(candidate);
- if (gtTileEntity instanceof GT_MetaTileEntity_BasicMachine) {
- Power power = ((GT_MetaTileEntity_BasicMachine) gtTileEntity).getPower();
- handler.loadCraftingRecipes(getOverlayIdentifier(), power);
+ Power power;
+ if (gtTileEntity != null) {
+ power = gtTileEntity.getPower();
} else {
- handler.loadCraftingRecipes(getOverlayIdentifier(), (Object) null);
+ power = null;
}
+ handler.loadCraftingRecipes(getOverlayIdentifier(), power);
return handler;
}
}
@@ -386,7 +405,7 @@ public class GT_NEI_DefaultHandler extends RecipeMapHandler {
if (mPower == null) {
mPower = mRecipeMap.getPowerFromRecipeMap();
}
- mPower.computePowerUsageAndDuration(recipe.mEUt, recipe.mDuration);
+ mPower.computePowerUsageAndDuration(recipe.mEUt, recipe.mDuration, recipe.mSpecialValue);
mRecipeMap.drawNEIDescription(
new NEIRecipeInfo(recipe, mRecipeMap, cachedRecipe, mPower, getDescriptionYOffset()));