diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2021-12-07 16:46:26 +0000 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2021-12-07 16:46:26 +0000 |
commit | fa37b0aa6eea11f788fe35a8e4b1d12a7d5b0118 (patch) | |
tree | f2dcbec84756cc8ae7b285ebd2f5285383cae823 /src/Java | |
parent | 43e67b5f97543c2a1ea51b89ed745d0773f94751 (diff) | |
download | GT5-Unofficial-fa37b0aa6eea11f788fe35a8e4b1d12a7d5b0118.tar.gz GT5-Unofficial-fa37b0aa6eea11f788fe35a8e4b1d12a7d5b0118.tar.bz2 GT5-Unofficial-fa37b0aa6eea11f788fe35a8e4b1d12a7d5b0118.zip |
Stopped fluids from having their generation queued.
Possibly improved GT++ Fluid generation where GT counterparts exist.
Adding remapping event for when existing items are removed with a suitable replacement added.
Did some locale work.
Diffstat (limited to 'src/Java')
-rw-r--r-- | src/Java/gtPlusPlus/GTplusplus.java | 36 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/common/CommonProxy.java | 17 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/ELEMENT.java | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/Material.java | 103 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/MaterialGenerator.java | 5 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java | 10 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java | 7 |
7 files changed, 138 insertions, 42 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java index 7432c1905d..9bb20de232 100644 --- a/src/Java/gtPlusPlus/GTplusplus.java +++ b/src/Java/gtPlusPlus/GTplusplus.java @@ -6,11 +6,13 @@ import static gtPlusPlus.core.lib.CORE.ConfigSwitches.enableCustomCapes; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Collection; +import java.util.HashMap; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.*; +import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -52,6 +54,7 @@ import gtPlusPlus.xmod.gregtech.loaders.GT_Material_Loader; import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_BlastSmelterGT_GTNH; import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_MultisUsingFluidInsteadOfCells; import gtPlusPlus.xmod.thaumcraft.commands.CommandDumpAspects; +import net.minecraft.item.Item; import net.minecraft.launchwrapper.Launch; import net.minecraft.util.IIcon; @@ -496,5 +499,38 @@ public class GTplusplus implements ActionListener { // Force - Alloying mGregMatLoader.enableMaterial(Materials.Force); } + + private static final HashMap<String, Item> sMissingMappings = new HashMap<String, Item>(); + + private static void processMissingMappings() { + sMissingMappings.put("miscutils:Ammonium", GameRegistry.findItem(CORE.MODID, "itemCellAmmonium")); + sMissingMappings.put("miscutils:Hydroxide", GameRegistry.findItem(CORE.MODID, "itemCellHydroxide")); + sMissingMappings.put("miscutils:BerylliumHydroxide", GameRegistry.findItem(CORE.MODID, "itemCellmiscutils:BerylliumHydroxide")); + sMissingMappings.put("miscutils:Bromine", GameRegistry.findItem(CORE.MODID, "itemCellBromine")); + sMissingMappings.put("miscutils:Krypton", GameRegistry.findItem(CORE.MODID, "itemCellKrypton")); + sMissingMappings.put("miscutils:itemCellZirconiumTetrafluoride", GameRegistry.findItem(CORE.MODID, "ZirconiumTetrafluoride")); + sMissingMappings.put("miscutils:Li2BeF4", GameRegistry.findItem(CORE.MODID, "itemCellLithiumTetrafluoroberyllate")); + } + + @Mod.EventHandler + public void missingMapping(FMLMissingMappingsEvent event) { + processMissingMappings(); + for (FMLMissingMappingsEvent.MissingMapping mapping : event.get()) { + if (mapping.type == GameRegistry.Type.ITEM) { + Item aReplacement = sMissingMappings.get(mapping.name); + if (aReplacement != null) { + remap(aReplacement, mapping); + } + else { + //Logger.INFO("Unable to remap: "+mapping.name+", item has no replacement mapping."); + } + } + } + } + + private void remap(Item item, FMLMissingMappingsEvent.MissingMapping mapping) { + mapping.remap(item); + Logger.INFO("Remapping item " + mapping.name + " to " + CORE.MODID + ":" + item.getUnlocalizedName()); + } } diff --git a/src/Java/gtPlusPlus/core/common/CommonProxy.java b/src/Java/gtPlusPlus/core/common/CommonProxy.java index 9565d242c4..f77938f713 100644 --- a/src/Java/gtPlusPlus/core/common/CommonProxy.java +++ b/src/Java/gtPlusPlus/core/common/CommonProxy.java @@ -3,7 +3,6 @@ package gtPlusPlus.core.common; import cpw.mods.fml.common.event.*; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import cpw.mods.fml.common.registry.GameRegistry; -import gregtech.api.enums.ItemList; import gregtech.api.enums.OrePrefixes; import gtPlusPlus.GTplusplus; import gtPlusPlus.api.objects.Logger; @@ -51,8 +50,6 @@ import net.minecraftforge.client.IItemRenderer; public class CommonProxy { - private boolean mFluidsGenerated = false; - public CommonProxy() { // Should Register Gregtech Materials I've Made Utils.registerEvent(this); @@ -99,11 +96,6 @@ public class CommonProxy { Logger.INFO("[Proxy] Calling Render registrator."); registerRenderThings(); - if (!mFluidsGenerated && ItemList.Cell_Empty.hasBeenSet()) { - Material.generateQueuedFluids(); - mFluidsGenerated = true; - } - } public void init(final FMLInitializationEvent e) { @@ -114,15 +106,6 @@ public class CommonProxy { registerCustomItemsForMaterials(); ModBlocks.blockCustomMobSpawner = new BlockGenericSpawner(); - - if (!mFluidsGenerated && ItemList.Cell_Empty.hasBeenSet()) { - Material.generateQueuedFluids(); - mFluidsGenerated = true; - } else { - Logger.INFO("[ERROR] Did not generate fluids at all."); - Logger.WARNING("[ERROR] Did not generate fluids at all."); - Logger.ERROR("[ERROR] Did not generate fluids at all."); - } CI.init(); FluidFactory.init(); diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java index 0ad231aac8..54af01ef6e 100644 --- a/src/Java/gtPlusPlus/core/material/ELEMENT.java +++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java @@ -143,7 +143,7 @@ public final class ELEMENT { public final Material LITHIUM7 = new Material("Lithium 7", MaterialState.SOLID, TextureSet.SET_SHINY, Materials.Lithium.mRGBa, Materials.Lithium.mMeltingPoint, Materials.Lithium.mBlastFurnaceTemp, Materials.Lithium.getProtons(), Materials.Lithium.getNeutrons(), Materials.Lithium.mBlastFurnaceRequired, StringUtils.superscript("7Li"), 0, false);//Not a GT Inherited Material public final Material URANIUM232 = new Material("Uranium 232", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{88, 220, 103, 0}, 1132, 4131, 92, 140, false, StringUtils.superscript("232U"), 4);//Not a GT Inherited Material public final Material URANIUM233 = new Material("Uranium 233", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{73, 220, 83, 0}, 1132, 4131, 92, 141, false, StringUtils.superscript("233U"), 2);//Not a GT Inherited Material - public final Material THORIUM232 = new Material("Thorium 232", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{15, 60, 15, 0}, Materials.Thorium.mMeltingPoint, Materials.Thorium.mBlastFurnaceTemp, 90, 142, false, StringUtils.superscript("232Th"), 1, false);//Not a GT Inherited Material + public final Material THORIUM232 = new Material("Thorium 232", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{15, 60, 15, 0}, Materials.Thorium.mMeltingPoint, Materials.Thorium.mBlastFurnaceTemp, 90, 142, false, StringUtils.superscript("232Th"), 1, true);//Not a GT Inherited Material public final Material PLUTONIUM239 = new Material("Plutonium-239", MaterialState.SOLID, TextureSets.NUCLEAR.get(), Materials.Plutonium.mDurability, Materials.Plutonium.mRGBa, Materials.Plutonium.mMeltingPoint, Materials.Plutonium.mBlastFurnaceTemp, 94, 145, false, StringUtils.superscript("239Pu"), 4, true);//Not a GT Inherited Material //RTG Fuels public final Material PLUTONIUM238 = new Material("Plutonium-238", MaterialState.SOLID, TextureSets.NUCLEAR.get(), Materials.Plutonium241.mDurability, Materials.Plutonium241.mRGBa, Materials.Plutonium241.mMeltingPoint, Materials.Plutonium241.mBlastFurnaceTemp, 94, 144, false, StringUtils.superscript("238Pu"), 2, false);//Not a GT Inherited Material diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index cc7e21656b..0e9eb9b376 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -475,24 +475,23 @@ public class Material { } if (generateFluid){ - final Materials isValid = Materials.get(this.getLocalizedName()); + final Materials aGregtechMaterial = tryFindGregtechMaterialEquivalent(); FluidStack aTest = FluidUtils.getWildcardFluidStack(localizedName, 1); if (aTest != null){ this.mFluid = aTest.getFluid(); + checkForCellAndGenerate(this); } else { - if (isValid == null || isValid == Materials._NULL){ - queueFluidGeneration(); + if (aGregtechMaterial != null && !MaterialUtils.isNullGregtechMaterial(aGregtechMaterial)){ + aTest = FluidUtils.getWildcardFluidStack(aGregtechMaterial, 1); } - else { - FluidStack aTest2 = FluidUtils.getWildcardFluidStack(localizedName, 1); - if (aTest2 != null){ - this.mFluid = aTest2.getFluid(); - } - else { - queueFluidGeneration(); - } + if (aTest != null){ + this.mFluid = aTest.getFluid(); + checkForCellAndGenerate(this); } + else { + mFluid = generateFluid(); + } } this.vPlasma = this.generatePlasma(); } @@ -535,6 +534,36 @@ public class Material { } } + private static void checkForCellAndGenerate(Material material) { + if (!material.vGenerateCells) { + return; + } + String aName = Utils.sanitizeString(material.unlocalizedName); + String aName2 = Utils.sanitizeString(material.unlocalizedName.toLowerCase()); + String aName3 = (material.localizedName == null) ? aName : material.localizedName; + ItemStack aTestCell1 = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+aName, 1); + ItemStack aTestCell2 = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+aName2, 1); + ItemStack aTestCell3 = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+aName3, 1); + if (aTestCell1 == null && aTestCell2 == null && aTestCell3 == null) { + Logger.INFO("Generating cell for "+ material.localizedName); + new BaseItemCell(material); + } + else { + if (aTestCell1 != null) { + Logger.INFO("Registering existing cell for "+ material.localizedName+", "+aName); + material.registerComponentForMaterial(OrePrefixes.cell, aTestCell1); + } + else if (aTestCell2 != null) { + Logger.INFO("Registering existing cell for "+ material.localizedName+", "+aName2); + material.registerComponentForMaterial(OrePrefixes.cell, aTestCell2); + } + else if (aTestCell3 != null) { + Logger.INFO("Registering existing cell for "+ material.localizedName+", "+aName3); + material.registerComponentForMaterial(OrePrefixes.cell, aTestCell3); + } + } + } + public final TextureSet getTextureSet() { synchronized(this) { return textureSet; @@ -745,7 +774,7 @@ public class Material { else { // Try get a GT Material Materials Erf = MaterialUtils.getMaterial(this.unlocalizedName); - if (Erf != null && Erf != Materials._NULL) { + if (Erf != null && !MaterialUtils.isNullGregtechMaterial(Erf)) { ItemStack Erg = ItemUtils.getOrePrefixStack(aPrefix, Erf, stacksize); if (Erg != null && ItemUtils.checkForInvalidItems(Erg)) { Logger.MATERIALS("Found \"" + aKey + this.unlocalizedName + "\" using backup GT Materials option."); @@ -1104,7 +1133,6 @@ public class Material { public final static void generateQueuedFluids() { for (Material m : mMaterialMap) { if (m.isFluidQueued) { - m.mFluid = m.generateFluid(); } } } @@ -1229,21 +1257,22 @@ public class Material { if (this.materialState == MaterialState.ORE){ return null; } - final Materials isValid = Materials.get(this.getLocalizedName()); + final Materials isValid = tryFindGregtechMaterialEquivalent(); if (!this.vGenerateCells){ return null; } - for (Materials m : invalidMaterials.values()){ - if (isValid == m){ - return (m.mPlasma != null ? m.mPlasma : null); + if (isValid != null) { + for (Materials m : invalidMaterials.values()){ + if (isValid == m){ + return null; + } + } + if (isValid.mPlasma != null){ + Logger.MATERIALS("Using a pre-defined Plasma from GT."); + return isValid.mPlasma; } } - if (isValid.mPlasma != null){ - Logger.MATERIALS("Using a pre-defined Plasma from GT."); - return isValid.mPlasma; - } - Logger.MATERIALS("Generating our own Plasma."); return FluidUtils.addGTPlasma(this); } @@ -1398,5 +1427,35 @@ public class Material { return false; } } + + public Materials tryFindGregtechMaterialEquivalent() { + return tryFindGregtechMaterialEquivalent(this); + } + + + public static Materials tryFindGregtechMaterialEquivalent(Material aMaterial) { + String aMaterialName = aMaterial.getLocalizedName(); + Materials aGregtechMaterial = Materials.get(aMaterialName); + if (aGregtechMaterial == null || MaterialUtils.isNullGregtechMaterial(aGregtechMaterial)) { + aMaterialName = aMaterialName.replace(" ", "_"); + aGregtechMaterial = Materials.get(aMaterialName); + if (aGregtechMaterial == null || MaterialUtils.isNullGregtechMaterial(aGregtechMaterial)) { + aMaterialName = aMaterialName.replace(" ", ""); + aGregtechMaterial = Materials.get(aMaterialName); + if (aGregtechMaterial == null || MaterialUtils.isNullGregtechMaterial(aGregtechMaterial)) { + return null; + } + else { + return aGregtechMaterial; + } + } + else { + return aGregtechMaterial; + } + } + else { + return aGregtechMaterial; + } + } }
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java index 4a3af94f6d..d3d901ed6e 100644 --- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java +++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java @@ -275,7 +275,7 @@ public class MaterialGenerator { if (generateDehydratorRecipe && matInfo.getFluid() != null && matInfo.getDust(0) != null) { CORE.RA.addDehydratorRecipe( new ItemStack[] { - + CI.getNumberedAdvancedCircuit(20) }, matInfo.getFluidStack(144), null, @@ -286,6 +286,9 @@ public class MaterialGenerator { 10*(matInfo.vVoltageMultiplier/5), // Time in ticks matInfo.vVoltageMultiplier); // EU } + else { + Logger.INFO("Nuclear Dehydrator: Did not generate recipe for "+matInfo.getLocalizedName()+" | Null Fluid? "+(matInfo.getFluid() == null)+" | Null Dust? "+(matInfo.getDust(0) == null)); + } } public static void generateNuclearMaterial(final Material matInfo, final boolean generatePlates){ diff --git a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java index 6b07667b28..3988cdb0c4 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java @@ -287,6 +287,7 @@ public class FluidUtils { } + String aNameNonMolten = aLocalName.contains("Molten") ? aLocalName.replace("Molten", "") : aLocalName; if (aFullContainer == null) { ItemStack oreStack = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+aLocalName, 1); @@ -294,7 +295,14 @@ public class FluidUtils { if (aFullContainer == null) { oreStack = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+aNameOriginal, 1); aFullContainer = oreStack; - if (aFullContainer != null) { + if (aFullContainer == null) { + oreStack = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+aNameNonMolten, 1); + aFullContainer = oreStack; + if (aFullContainer != null) { + Logger.INFO("Found cell for "+aNameNonMolten); + } + } + else { Logger.INFO("Found cell for "+aNameOriginal); } } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java index 7e9e34ae47..0323bf0161 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java @@ -512,5 +512,12 @@ public class MaterialUtils { return false; } + public static boolean isNullGregtechMaterial(Materials aGregtechMaterial) { + if (aGregtechMaterial == Materials._NULL || aGregtechMaterial.equals(Materials._NULL) || aGregtechMaterial.name().equals(Materials._NULL.name())) { + return true; + } + return false; + } + }
\ No newline at end of file |