From 3b834d6cebae287cd9bbeddd4f157338da6e1ea5 Mon Sep 17 00:00:00 2001 From: Maxim Date: Thu, 16 Feb 2023 10:14:49 +0100 Subject: 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 * 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 --- .../java/gregtech/nei/GT_NEI_DefaultHandler.java | 33 +++++++++++++++++----- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java') 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 getTieredRecipes(Power power) { + List 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())); -- cgit