From 17ec5932acb5fd28145f0153a8a90d32feedff0a Mon Sep 17 00:00:00 2001 From: Magic_Sweepy Date: Mon, 1 Sep 2025 15:22:09 +0800 Subject: [PATCH 1/2] Sortable mte recipe catalyst. - Change a cast usage to modern syntax. --- .../jei/JustEnoughItemsModule.java | 85 +++++++++++++------ 1 file changed, 58 insertions(+), 27 deletions(-) diff --git a/src/main/java/gregtech/integration/jei/JustEnoughItemsModule.java b/src/main/java/gregtech/integration/jei/JustEnoughItemsModule.java index 7772e0ada44..57292026b3b 100644 --- a/src/main/java/gregtech/integration/jei/JustEnoughItemsModule.java +++ b/src/main/java/gregtech/integration/jei/JustEnoughItemsModule.java @@ -201,46 +201,41 @@ public void register(IModRegistry registry) { } } - for (MTERegistry mteRegistry : GregTechAPI.mteManager.getRegistries()) { - for (ResourceLocation metaTileEntityId : mteRegistry.getKeys()) { - MetaTileEntity metaTileEntity = mteRegistry.getObject(metaTileEntityId); - assert metaTileEntity != null; + for (MetaTileEntity metaTileEntity : getAllMetaTileEntities()) { + if (metaTileEntity instanceof ICategoryOverride override && override.shouldOverride()) { + for (RecipeMap recipeMap : override.getJEIRecipeMapCategoryOverrides()) { + registerRecipeMapCatalyst(registry, recipeMap, metaTileEntity); + } + if (override.getJEICategoryOverrides().length != 0) + registry.addRecipeCatalyst(metaTileEntity.getStackForm(), override.getJEICategoryOverrides()); + if (override.shouldReplace()) continue; + } + + if (metaTileEntity.getCapability(GregtechTileCapabilities.CAPABILITY_CONTROLLABLE, null) != null) { + IControllable workableCapability = metaTileEntity + .getCapability(GregtechTileCapabilities.CAPABILITY_CONTROLLABLE, null); - if (metaTileEntity instanceof ICategoryOverride override && override.shouldOverride()) { + if (workableCapability instanceof ICategoryOverride override && override.shouldOverride()) { for (RecipeMap recipeMap : override.getJEIRecipeMapCategoryOverrides()) { registerRecipeMapCatalyst(registry, recipeMap, metaTileEntity); } if (override.getJEICategoryOverrides().length != 0) - registry.addRecipeCatalyst(metaTileEntity.getStackForm(), override.getJEICategoryOverrides()); + registry.addRecipeCatalyst(metaTileEntity.getStackForm(), + override.getJEICategoryOverrides()); if (override.shouldReplace()) continue; } - if (metaTileEntity.getCapability(GregtechTileCapabilities.CAPABILITY_CONTROLLABLE, null) != null) { - IControllable workableCapability = metaTileEntity - .getCapability(GregtechTileCapabilities.CAPABILITY_CONTROLLABLE, null); - - if (workableCapability instanceof ICategoryOverride override && override.shouldOverride()) { - for (RecipeMap recipeMap : override.getJEIRecipeMapCategoryOverrides()) { + if (workableCapability instanceof AbstractRecipeLogic logic) { + if (metaTileEntity instanceof IMultipleRecipeMaps multiMapMetaTileEntity) { + for (RecipeMap recipeMap : multiMapMetaTileEntity.getAvailableRecipeMaps()) { registerRecipeMapCatalyst(registry, recipeMap, metaTileEntity); } - if (override.getJEICategoryOverrides().length != 0) - registry.addRecipeCatalyst(metaTileEntity.getStackForm(), - override.getJEICategoryOverrides()); - if (override.shouldReplace()) continue; - } - - if (workableCapability instanceof AbstractRecipeLogic logic) { - if (metaTileEntity instanceof IMultipleRecipeMaps) { - for (RecipeMap recipeMap : ((IMultipleRecipeMaps) metaTileEntity) - .getAvailableRecipeMaps()) { - registerRecipeMapCatalyst(registry, recipeMap, metaTileEntity); - } - } else if (logic.getRecipeMap() != null) { - registerRecipeMapCatalyst(registry, logic.getRecipeMap(), metaTileEntity); - } + } else if (logic.getRecipeMap() != null) { + registerRecipeMapCatalyst(registry, logic.getRecipeMap(), metaTileEntity); } } } + } List oreByproductList = new ArrayList<>(); @@ -421,4 +416,40 @@ private void registerRecipeMapCatalyst(IModRegistry registry, RecipeMap recip return Integer.MAX_VALUE; }); } + + /** + * Extracted {@link MetaTileEntity} from all {@link MTERegistry} and sorted them. + *

+ * This method arrange {@link MetaTileEntity} from additional mods after the ones from GregTech. + * + * @return the sorted list of all {@link MetaTileEntity}. + */ + @ApiStatus.Internal + public static @NotNull List getAllMetaTileEntities() { + List metaTileEntities = new ArrayList<>(); + for (MTERegistry mteRegistry : GregTechAPI.mteManager.getRegistries()) { + for (ResourceLocation metaTileEntityId : mteRegistry.getKeys()) { + MetaTileEntity metaTileEntity = mteRegistry.getObject(metaTileEntityId); + if (metaTileEntity != null) { + metaTileEntities.add(metaTileEntity); + } + } + } + + metaTileEntities.sort((a, b) -> { + String namespaceA = a.metaTileEntityId.getNamespace(); + String namespaceB = b.metaTileEntityId.getNamespace(); + + boolean isGregTechA = namespaceA.equals(GTValues.MODID); + boolean isGregTechB = namespaceB.equals(GTValues.MODID); + + if (isGregTechA && !isGregTechB) return -1; + if (!isGregTechA && isGregTechB) return 1; + + return namespaceA.compareTo(namespaceB); + }); + + return metaTileEntities; + } + } From 33c5970bef5b758799832bb49488cb3f192d8fa5 Mon Sep 17 00:00:00 2001 From: Magic_Sweepy Date: Tue, 2 Sep 2025 20:26:45 +0800 Subject: [PATCH 2/2] Spotless. --- .../java/gregtech/integration/jei/JustEnoughItemsModule.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/gregtech/integration/jei/JustEnoughItemsModule.java b/src/main/java/gregtech/integration/jei/JustEnoughItemsModule.java index 57292026b3b..ab7b05f2448 100644 --- a/src/main/java/gregtech/integration/jei/JustEnoughItemsModule.java +++ b/src/main/java/gregtech/integration/jei/JustEnoughItemsModule.java @@ -451,5 +451,4 @@ private void registerRecipeMapCatalyst(IModRegistry registry, RecipeMap recip return metaTileEntities; } - }