diff options
author | boubou19 <miisterunknown@gmail.com> | 2024-09-12 22:30:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-12 20:30:04 +0000 |
commit | dbc10704fdbff100d1ae592aa0ddf1dc8b1aeca0 (patch) | |
tree | 0f31ac23d82fedee110d63dd36133b3922eb5095 /src/main/java/gregtech/api/recipe | |
parent | 4603dfdeb2ec5c0c4fc322d3e5dd7a692d69508d (diff) | |
download | GT5-Unofficial-dbc10704fdbff100d1ae592aa0ddf1dc8b1aeca0.tar.gz GT5-Unofficial-dbc10704fdbff100d1ae592aa0ddf1dc8b1aeca0.tar.bz2 GT5-Unofficial-dbc10704fdbff100d1ae592aa0ddf1dc8b1aeca0.zip |
Merge config categories (#3152)
Co-authored-by: miozune <miozune@gmail.com>
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gregtech/api/recipe')
4 files changed, 32 insertions, 44 deletions
diff --git a/src/main/java/gregtech/api/recipe/RecipeCategories.java b/src/main/java/gregtech/api/recipe/RecipeCategories.java index 61eed8a8d7..3112fce705 100644 --- a/src/main/java/gregtech/api/recipe/RecipeCategories.java +++ b/src/main/java/gregtech/api/recipe/RecipeCategories.java @@ -3,69 +3,80 @@ package gregtech.api.recipe; import static gregtech.api.enums.Mods.GregTech; import static gregtech.api.recipe.RecipeCategory.createIcon; +import gregtech.api.enums.Mods; +import gregtech.common.config.Client; +import gtPlusPlus.api.recipe.GTPPRecipeMaps; + @SuppressWarnings("unused") public final class RecipeCategories { - @RecipeCategoryHolder public static final RecipeCategory arcFurnaceRecycling = new RecipeCategory( "gt.recipe.category.arc_furnace_recycling", RecipeMaps.arcFurnaceRecipes, + () -> Client.nei.recipeCategories.arcFurnaceRecycling, builder -> builder.setDisplayImage( createIcon(GregTech.getResourcePath("textures", "gui", "picture", "arc_furnace_recycling.png")))); - @RecipeCategoryHolder public static final RecipeCategory plasmaArcFurnaceRecycling = new RecipeCategory( "gt.recipe.category.plasma_arc_furnace_recycling", RecipeMaps.plasmaArcFurnaceRecipes, + () -> Client.nei.recipeCategories.plasmaArcFurnaceRecycling, builder -> builder.setDisplayImage( createIcon(GregTech.getResourcePath("textures", "gui", "picture", "plasma_arc_furnace_recycling.png")))); - @RecipeCategoryHolder public static final RecipeCategory maceratorRecycling = new RecipeCategory( "gt.recipe.category.macerator_recycling", RecipeMaps.maceratorRecipes, + () -> Client.nei.recipeCategories.maceratorRecycling, builder -> builder.setDisplayImage( createIcon(GregTech.getResourcePath("textures", "gui", "picture", "macerator_recycling.png")))); - @RecipeCategoryHolder public static final RecipeCategory fluidExtractorRecycling = new RecipeCategory( "gt.recipe.category.fluid_extractor_recycling", RecipeMaps.fluidExtractionRecipes, + () -> Client.nei.recipeCategories.fluidExtractorRecycling, builder -> builder.setDisplayImage( createIcon(GregTech.getResourcePath("textures", "gui", "picture", "fluid_extractor_recycling.png")))); - @RecipeCategoryHolder public static final RecipeCategory alloySmelterRecycling = new RecipeCategory( "gt.recipe.category.alloy_smelter_recycling", RecipeMaps.alloySmelterRecipes, + () -> Client.nei.recipeCategories.alloySmelterRecycling, builder -> builder.setDisplayImage( createIcon(GregTech.getResourcePath("textures", "gui", "picture", "alloy_smelter_recycling.png")))); - @RecipeCategoryHolder public static final RecipeCategory alloySmelterMolding = new RecipeCategory( "gt.recipe.category.alloy_smelter_molding", RecipeMaps.alloySmelterRecipes, + () -> Client.nei.recipeCategories.alloySmelterMolding, builder -> builder.setDisplayImage( createIcon(GregTech.getResourcePath("textures", "gui", "picture", "alloy_smelter_molding.png")))); - @RecipeCategoryHolder public static final RecipeCategory forgeHammerRecycling = new RecipeCategory( "gt.recipe.category.forge_hammer_recycling", RecipeMaps.hammerRecipes, + () -> Client.nei.recipeCategories.forgeHammerRecycling, builder -> builder.setDisplayImage( createIcon(GregTech.getResourcePath("textures", "gui", "picture", "forge_hammer_recycling.png")))); - @RecipeCategoryHolder public static final RecipeCategory ticPartExtruding = new RecipeCategory( "gt.recipe.category.tic_part_extruding", RecipeMaps.extruderRecipes, + () -> Client.nei.recipeCategories.ticPartExtruding, builder -> builder.setDisplayImage( createIcon(GregTech.getResourcePath("textures", "gui", "picture", "tic_part_extruding.png")))); - @RecipeCategoryHolder public static final RecipeCategory ticBoltMolding = new RecipeCategory( "gt.recipe.category.tic_bolt_molding", RecipeMaps.fluidSolidifierRecipes, + () -> Client.nei.recipeCategories.ticBoltMolding, builder -> builder.setDisplayImage( createIcon(GregTech.getResourcePath("textures", "gui", "picture", "tic_bolt_molding.png")))); + + public static final RecipeCategory absNonAlloyRecipes = new RecipeCategory( + "gtpp.recipe.category.abs_non_alloy_recipes", + GTPPRecipeMaps.alloyBlastSmelterRecipes, + () -> Client.nei.recipeCategories.absNonAlloyRecipes, + builder -> builder.setDisplayImage( + createIcon(Mods.GTPlusPlus.getResourcePath("textures", "gui", "picture", "abs_non_alloy_recipes.png")))); } diff --git a/src/main/java/gregtech/api/recipe/RecipeCategory.java b/src/main/java/gregtech/api/recipe/RecipeCategory.java index 9f8674e939..a597400f17 100644 --- a/src/main/java/gregtech/api/recipe/RecipeCategory.java +++ b/src/main/java/gregtech/api/recipe/RecipeCategory.java @@ -2,6 +2,7 @@ package gregtech.api.recipe; import java.util.HashMap; import java.util.Map; +import java.util.function.Supplier; import java.util.function.UnaryOperator; import javax.annotation.Nullable; @@ -18,7 +19,8 @@ import gregtech.api.util.MethodsReturnNonnullByDefault; /** * Allows certain recipes to be displayed on different tabs on NEI. * <p> - * Also apply {@link RecipeCategoryHolder} annotation to each instance to be picked up by GT config. + * Each entry must be declared under {@link gregtech.api.recipe.RecipeCategories}, and config entry must be added to + * {@link gregtech.common.config.Client.NEI.RecipeCategories}. */ @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault @@ -30,20 +32,24 @@ public final class RecipeCategory { public final String unlocalizedName; public final RecipeMap<?> recipeMap; public final ModContainer ownerMod; + public final Supplier<RecipeCategorySetting> settingSupplier; @Nullable public final UnaryOperator<HandlerInfo.Builder> handlerInfoCreator; /** * @param unlocalizedName Unlocalized name of this category. Must be unique. * @param recipeMap RecipeMap this category belongs to. + * @param settingSupplier Supplier for the setting whether to enable this category. * @param handlerInfoCreator Supplier of handler info for the NEI handler this category belongs to. */ public RecipeCategory(String unlocalizedName, RecipeMap<?> recipeMap, + Supplier<RecipeCategorySetting> settingSupplier, @Nullable UnaryOperator<HandlerInfo.Builder> handlerInfoCreator) { this.unlocalizedName = unlocalizedName; this.recipeMap = recipeMap; this.ownerMod = Loader.instance() .activeModContainer(); + this.settingSupplier = settingSupplier; this.handlerInfoCreator = handlerInfoCreator; if (ALL_RECIPE_CATEGORIES.containsKey(unlocalizedName)) { throw new IllegalArgumentException( @@ -53,7 +59,11 @@ public final class RecipeCategory { } RecipeCategory(RecipeMap<?> recipeMap) { - this(recipeMap.unlocalizedName, recipeMap, recipeMap.getFrontend().neiProperties.handlerInfoCreator); + this( + recipeMap.unlocalizedName, + recipeMap, + RecipeCategorySetting::getDefault, + recipeMap.getFrontend().neiProperties.handlerInfoCreator); } @Override diff --git a/src/main/java/gregtech/api/recipe/RecipeCategoryHolder.java b/src/main/java/gregtech/api/recipe/RecipeCategoryHolder.java deleted file mode 100644 index 0ad87e3f6f..0000000000 --- a/src/main/java/gregtech/api/recipe/RecipeCategoryHolder.java +++ /dev/null @@ -1,13 +0,0 @@ -package gregtech.api.recipe; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Apply this annotation to each recipe category so that GT config will pick it up. - */ -@Target(ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) -public @interface RecipeCategoryHolder {} diff --git a/src/main/java/gregtech/api/recipe/RecipeCategorySetting.java b/src/main/java/gregtech/api/recipe/RecipeCategorySetting.java index 4920d64212..0f1c5b3814 100644 --- a/src/main/java/gregtech/api/recipe/RecipeCategorySetting.java +++ b/src/main/java/gregtech/api/recipe/RecipeCategorySetting.java @@ -1,8 +1,5 @@ package gregtech.api.recipe; -import java.util.Locale; -import java.util.stream.Stream; - import javax.annotation.ParametersAreNonnullByDefault; import gregtech.api.util.MethodsReturnNonnullByDefault; @@ -28,25 +25,8 @@ public enum RecipeCategorySetting { HIDE; public static final RecipeCategorySetting[] VALUES = values(); - public static final String[] NAMES = Stream.of(VALUES) - .map(RecipeCategorySetting::toName) - .toArray(String[]::new); public static RecipeCategorySetting getDefault() { return ENABLE; } - - public String toName() { - return toString().toLowerCase(Locale.ENGLISH); - } - - public static RecipeCategorySetting find(String name) { - for (RecipeCategorySetting setting : VALUES) { - if (setting.toName() - .equals(name)) { - return setting; - } - } - return getDefault(); - } } |