diff options
author | Yang Xizhi <60341015+GlodBlock@users.noreply.github.com> | 2022-02-12 04:09:18 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-11 21:09:18 +0100 |
commit | 4c762f360ca91d800698824fdc06b77db6ece1bb (patch) | |
tree | 294ef78d01d093b23a677634ed57bc297580b142 /src/main | |
parent | a8af77fcd71449a38e954a1194c7b9648939f409 (diff) | |
download | GT5-Unofficial-4c762f360ca91d800698824fdc06b77db6ece1bb.tar.gz GT5-Unofficial-4c762f360ca91d800698824fdc06b77db6ece1bb.tar.bz2 GT5-Unofficial-4c762f360ca91d800698824fdc06b77db6ece1bb.zip |
fix material disappear (#82)
* stop disable material and add material link
* disble when a gt material exist
* null check
Former-commit-id: b1507b008ed7fa4fa8f1544105d3bce4ec8248fe
Diffstat (limited to 'src/main')
3 files changed, 23 insertions, 4 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/StaticRecipeChangeLoaders.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/StaticRecipeChangeLoaders.java index 94bfb4c584..684149c9f6 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/StaticRecipeChangeLoaders.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/loaders/StaticRecipeChangeLoaders.java @@ -123,6 +123,7 @@ public class StaticRecipeChangeLoaders { public static void unificationRecipeEnforcer() { for (Werkstoff werkstoff : Werkstoff.werkstoffHashSet) { + StaticRecipeChangeLoaders.runMaterialLinker(werkstoff); if (werkstoff.getGenerationFeatures().enforceUnification) { if (werkstoff.contains(NOBLE_GAS)) @@ -262,6 +263,24 @@ public class StaticRecipeChangeLoaders { } } + private static void runMaterialLinker(Werkstoff werkstoff) { + if (werkstoff.getType() == Werkstoff.Types.ELEMENT) { + if (werkstoff.getBridgeMaterial() != null) { + werkstoff.getBridgeMaterial().mElement = Element.get(werkstoff.getToolTip()); + Element.get(werkstoff.getToolTip()).mLinkedMaterials = new ArrayList<>(); + Element.get(werkstoff.getToolTip()).mLinkedMaterials.add(werkstoff.getBridgeMaterial()); + } + } + + for (OrePrefixes prefixes : OrePrefixes.values()) + if (werkstoff.hasItemType(prefixes) && werkstoff.getBridgeMaterial() != null) { + GT_OreDictUnificator.set(prefixes, werkstoff.getBridgeMaterial(), werkstoff.get(prefixes), true, true); + for (ItemStack stack : OreDictionary.getOres(prefixes + werkstoff.getVarName())) { + GT_OreDictUnificator.addAssociation(prefixes, werkstoff.getBridgeMaterial(), stack, false); + } + } + } + private static ArrayListMultimap<SubTag, GT_Recipe> getRecipesToChange(SubTag... GasTags) { ArrayListMultimap<SubTag, GT_Recipe> toAdd = ArrayListMultimap.create(); for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sBlastRecipes.mRecipeList) { @@ -557,4 +576,4 @@ public class StaticRecipeChangeLoaders { ) )); } -}
\ No newline at end of file +} diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java index d5639cbb8b..1f2f53f18f 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java @@ -1631,8 +1631,8 @@ public class WerkstoffLoader { } } for (OrePrefixes p : values()) - if (!werkstoff.getGenerationFeatures().enforceUnification && (werkstoff.getGenerationFeatures().toGenerate & p.mMaterialGenerationBits) != 0 && OreDictHandler.getItemStack(werkstoff.getDefaultName(), p, 1) != null) { - DebugLog.log("Found: " + (p + werkstoff.getVarName()) + " in oreDict, disable and reroute my Items to that, also add a Tooltip."); + if (Materials.get(werkstoff.getDefaultName()) != null && Materials.get(werkstoff.getDefaultName()).mMetaItemSubID != -1 && (werkstoff.getGenerationFeatures().toGenerate & p.mMaterialGenerationBits) != 0 && OreDictHandler.getItemStack(werkstoff.getDefaultName(), p, 1) != null) { + DebugLog.log("Found: " + (p + werkstoff.getVarName()) + " in GT material system, disable and reroute my Items to that, also add a Tooltip."); werkstoff.getGenerationFeatures().setBlacklist(p); } WerkstoffLoader.toGenerateGlobal = (WerkstoffLoader.toGenerateGlobal | werkstoff.getGenerationFeatures().toGenerate); diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/werkstoff_loaders/recipe/ToolLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/werkstoff_loaders/recipe/ToolLoader.java index adac18c27c..520643d1fd 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/werkstoff_loaders/recipe/ToolLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/werkstoff_loaders/recipe/ToolLoader.java @@ -101,7 +101,7 @@ public class ToolLoader implements IWerkstoffRunnable { GT_ModHandler.addCraftingRecipe(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(GT_MetaGenerated_Tool_01.SCREWDRIVER_LV, 1, werkstoff.getBridgeMaterial(), Materials.Steel, new long[]{50000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"PdX", "MGS", "GBP", 'X', stickLong.get(werkstoff.getBridgeMaterial()), 'M', ItemList.Electric_Motor_LV.get(1L), 'S', screw.get(Materials.Steel), 'P', plate.get(Materials.Steel), 'G', gearGtSmall.get(Materials.Steel), 'B', ItemList.Battery_RE_LV_Sodium.get(1L)}); GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(toolHeadHammer, werkstoff.getBridgeMaterial(), 1L), GT_Proxy.tBits, new Object[]{"II ", "IIh", "II ", 'P', plate.get(werkstoff.getBridgeMaterial()), 'I', ingot.get(werkstoff.getBridgeMaterial())}); - if (werkstoff.hasItemType(plateDouble)) { + if (werkstoff.hasItemType(plateDouble) && werkstoff.hasItemType(cellMolten)) { GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(turbineBlade, werkstoff.getBridgeMaterial(), 1L), GT_Proxy.tBits, new Object[]{"fPd", "SPS", " P ", 'P', plateDouble.get(werkstoff.getBridgeMaterial()), 'S', screw.get(werkstoff.getBridgeMaterial())}); GT_Values.RA.addExtruderRecipe(werkstoff.get(ingot, 6), ItemList.Shape_Extruder_Turbine_Blade.get(0), werkstoff.get(turbineBlade, 1), (int) werkstoff.getStats().getMass() / 2 * 20, 120); GT_Values.RA.addFluidSolidifierRecipe(ItemList.Shape_Mold_Turbine_Blade.get(0), werkstoff.getMolten(864), werkstoff.get(turbineBlade, 1), (int) werkstoff.getStats().getMass() * 20, 120); |