diff options
author | Jordan Byrne <draknyte1@hotmail.com> | 2017-12-12 13:25:26 +1000 |
---|---|---|
committer | Jordan Byrne <draknyte1@hotmail.com> | 2017-12-12 13:25:26 +1000 |
commit | 1d410c5bd3add53f22fc802923cd5ec29c8a38f3 (patch) | |
tree | 60524cf652c87e9f7fb59081d8b470a8fe618393 /src | |
parent | 055adc23c39eb9b04f47ac0a3c71b5f7dbe7337a (diff) | |
download | GT5-Unofficial-1d410c5bd3add53f22fc802923cd5ec29c8a38f3.tar.gz GT5-Unofficial-1d410c5bd3add53f22fc802923cd5ec29c8a38f3.tar.bz2 GT5-Unofficial-1d410c5bd3add53f22fc802923cd5ec29c8a38f3.zip |
$ 5.08.33 Compatibility Fixes.
Diffstat (limited to 'src')
4 files changed, 95 insertions, 35 deletions
diff --git a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java index 71b37ebf48..c212afda2f 100644 --- a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java +++ b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java @@ -3,6 +3,8 @@ package gtPlusPlus.core.util.item; import java.util.ArrayList; import java.util.List; +import org.apache.commons.lang3.reflect.FieldUtils; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; import gregtech.api.enums.Materials; @@ -86,11 +88,11 @@ public class ItemUtils { final ItemStack temp = GT_ModHandler.getModItem("IC2", "itemCellEmpty", 1L, meta); return temp != null ? temp : null; } - + public static ItemStack getEmptyCell(){ return getEmptyCell(1); } - + public static ItemStack getEmptyCell(int i){ final ItemStack temp = GT_ModHandler.getModItem("IC2", "itemCellEmpty", i, 0); return temp != null ? temp : null; @@ -258,9 +260,9 @@ public class ItemUtils { } public static ItemStack getItemStackOfAmountFromOreDict(final String oredictName, final int amount){ - + String mTemp = oredictName; - + //Banned Materials and replacements for GT5.8 compat. if (oredictName.toLowerCase().contains("rutile")){ mTemp.replace("Rutile", "Titanium"); @@ -268,7 +270,7 @@ public class ItemUtils { if (oredictName.toLowerCase().contains("vanadiumsteel")){ mTemp.replace("VanadiumSteel", "StainlessSteel"); } - + final ArrayList<ItemStack> oreDictList = OreDictionary.getOres(mTemp); if (!oreDictList.isEmpty()){ final ItemStack returnValue = oreDictList.get(0).copy(); @@ -339,7 +341,7 @@ public class ItemUtils { public static Item[] generateSpecialUseDusts(final String unlocalizedName, final String materialName, final int Colour){ return generateSpecialUseDusts(unlocalizedName, materialName, "NullFormula", Colour); } - + public static Item[] generateSpecialUseDusts(final String unlocalizedName, final String materialName, String mChemForm, final int Colour){ final Item[] output = { new BaseItemDustUnique("itemDust"+unlocalizedName, materialName, mChemForm, Colour, "Dust"), @@ -351,15 +353,15 @@ public class ItemUtils { public static Item generateSpecialUsePlate(final String internalName, final String displayName, final short[] rgb, final int radioactivity){ return generateSpecialUsePlate(internalName, displayName, Utils.rgbtoHexValue(rgb[0], rgb[1], rgb[2]), radioactivity); } - + public static Item generateSpecialUsePlate(final String internalName, final String displayName, final String mFormula, final short[] rgb, final int radioactivity){ return generateSpecialUsePlate(internalName, displayName, mFormula, Utils.rgbtoHexValue(rgb[0], rgb[1], rgb[2]), radioactivity); } - + public static Item generateSpecialUsePlate(final String internalName, final String displayName, final int rgb, final int radioactivity){ return new BaseItemPlate_OLD(internalName, displayName, rgb, radioactivity); } - + public static Item generateSpecialUsePlate(final String internalName, final String displayName, final String mFormula, final int rgb, final int radioactivity){ return new BaseItemPlate_OLD(internalName, displayName, mFormula, rgb, radioactivity); } @@ -674,17 +676,20 @@ public class ItemUtils { return getItemStackOfAmountFromOreDictNoBroken(oredictName, amount); } public static ItemStack getGregtechOreStack(OrePrefixes mPrefix, Materials mMat, int mAmount) { - String mItemName = mPrefix.name()+mMat.mName; - Utils.LOG_INFO("[Component Maker] Trying to get "+mItemName+"."); + + String mName = MaterialUtils.getMaterialName(mMat); + + String mItemName = mPrefix.name()+mName; + //Utils.LOG_INFO("[Component Maker] Trying to get "+mItemName+"."); ItemStack gregstack = ItemUtils.getItemStackOfAmountFromOreDict(mItemName, mAmount); if (gregstack == null){ - Utils.LOG_INFO("[Component Maker] Failed to get "+mItemName+"."); + //Utils.LOG_INFO("[Component Maker] Failed to get "+mItemName+"."); return null; } - Utils.LOG_INFO("[Component Maker] Found "+mItemName+"."); + //Utils.LOG_INFO("[Component Maker] Found "+mItemName+"."); return (gregstack); } - + public static ItemStack[] getStackOfAllOreDictGroup(String oredictname){ final ArrayList<ItemStack> oreDictList = OreDictionary.getOres(oredictname); if (!oreDictList.isEmpty()){ diff --git a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java index 010f7b0bf0..4a6f7c660e 100644 --- a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java +++ b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java @@ -2,6 +2,8 @@ package gtPlusPlus.core.util.materials; import java.util.List; +import org.apache.commons.lang3.reflect.FieldUtils; + import gregtech.api.enums.*; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.state.MaterialState; @@ -16,11 +18,11 @@ public class MaterialUtils { @SuppressWarnings({ "rawtypes", "unused" }) private static Class[][] commonTypes = - {{Materials.class, int.class, TextureSet.class, float.class, int.class, - int.class, int.class, int.class, int.class, int.class, int.class, - String.class, int.class, int.class, int.class, int.class, boolean.class, - boolean.class, int.class, int.class, int.class, Dyes.class, int.class, - List.class , List.class}}; +{{Materials.class, int.class, TextureSet.class, float.class, int.class, + int.class, int.class, int.class, int.class, int.class, int.class, + String.class, int.class, int.class, int.class, int.class, boolean.class, + boolean.class, int.class, int.class, int.class, Dyes.class, int.class, + List.class , List.class}}; public static List<?> oreDictValuesForEntry(final String oredictName){ List<?> oredictItemNames; @@ -209,4 +211,19 @@ public class MaterialUtils { return null; }*/ + + public static String getMaterialName(Materials mat){ + String mName; + try { + mName = (String) FieldUtils.getDeclaredField(Materials.class, "mName", true).get(mat); + } + catch (IllegalArgumentException | IllegalAccessException e) { + mName = mat.name(); + } + if (mName == null || mName.equals("") || mName == ""){ + mName = mat.name(); + } + return mName; + } + } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechComponentAssembler.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechComponentAssembler.java index 45a24657c6..86ce88311e 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechComponentAssembler.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechComponentAssembler.java @@ -10,6 +10,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachin import gregtech.api.util.Recipe_GT; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.recipe.common.CI; +import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import net.minecraft.init.Items; @@ -19,6 +20,12 @@ import net.minecraftforge.oredict.OreDictionary; public class GregtechComponentAssembler { public static void run() { + + if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK){ + Utils.LOG_INFO("Component Assemblers cannot be created in 5.08.33 during the pre-release. Please wait for 1.7.0 release."); + return; + } + GregtechItemList.Machine_LV_Component_Maker.set(new GT_MetaTileEntity_BasicMachine_GT_Recipe(985, "basicmachine.componentmaker.tier.01", "Basic Component Maker", 1, "Components, Unite!", Recipe_GT.Gregtech_Recipe_Map.sComponentAssemblerRecipes, 6, 1, 16000, 0, 1, "Assembler.png", "", false, @@ -341,17 +348,20 @@ public class GregtechComponentAssembler { mWT = "16"; else mWT = "01"; + + ItemStack eyeQuantum = ItemList.valueOf("QuantumEye").get(1); + ItemStack starQuantum = ItemList.valueOf("QuantumStar").get(1); if (tier == 1) gem = ItemUtils.getSimpleStack(Items.ender_pearl); else if (tier == 2) gem = ItemUtils.getSimpleStack(Items.ender_eye); else if (tier == 3) - gem = ItemList.QuantumEye.get(1); + gem = eyeQuantum; else if (tier == 4) gem = ItemUtils.getSimpleStack(Items.nether_star); else if (tier == 5) - gem = ItemList.QuantumStar.get(1); + gem = starQuantum; else gem = ItemUtils.getSimpleStack(Items.ender_pearl); diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechNitroDieselFix.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechNitroDieselFix.java index c502ffabd0..320d9980c4 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechNitroDieselFix.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechNitroDieselFix.java @@ -7,6 +7,8 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; +import org.apache.commons.lang3.reflect.FieldUtils; + import gregtech.GT_Mod; import gregtech.api.enums.Dyes; import gregtech.api.enums.GT_Values; @@ -17,8 +19,11 @@ import gregtech.api.enums.TextureSet; import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.item.ItemUtils; +import gtPlusPlus.core.util.materials.MaterialUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; @@ -66,12 +71,22 @@ public class GregtechNitroDieselFix { /** + * Reflectively get all the values to maintain 5.08.xx compat + */ + + + GT_Recipe_Map recipeMapMultiblockChemReactor; + recipeMapMultiblockChemReactor = (GT_Recipe_Map) FieldUtils.getDeclaredField(GT_Recipe_Map.class, "sMultiblockChemicalRecipes", true).get(null); + + + + /** * Do Recipe Stuff */ //Set up some Variables final Collection<GT_Recipe> xSingle = GT_Recipe.GT_Recipe_Map.sChemicalRecipes.mRecipeList; - final Collection<GT_Recipe> xMulti = GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList; + final Collection<GT_Recipe> xMulti = recipeMapMultiblockChemReactor.mRecipeList; final FluidStack mNitroStack = Materials.NitroFuel.getFluid(1000); GT_Recipe toRemoveSingle[] = new GT_Recipe[99]; GT_Recipe toRemoveMulti[] = new GT_Recipe[99]; @@ -107,37 +122,40 @@ public class GregtechNitroDieselFix { } } Utils.LOG_INFO("[Nitro] Removed "+mRemovedSingle+" single block Chemical Reactor recipes."); - + //Remove Multi Block recipes found. for (GT_Recipe multi : toRemoveMulti){ - if (GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList.remove(multi)){ + if (recipeMapMultiblockChemReactor.mRecipeList.remove(multi)){ mRemovedMulti++; } } Utils.LOG_INFO("[Nitro] Removed "+mRemovedMulti+" multi block Chemical Reactor recipes."); + + Materials mGlycerol = Materials.valueOf("Glycerol"); + Materials mLightFuel = Materials.valueOf("LightFuel"); //Build a New Recipe set - Materials mFuels[] = {Materials.LightFuel, Materials.Fuel, Materials.Diesel}; + Materials mFuels[] = {mLightFuel, Materials.Fuel}; for (Materials fuel : mFuels){ boolean didAdd[] = new boolean[3]; Utils.LOG_INFO("[Nitro] Getting ready to add back in the old nitro-diesel recipe to the mixer, using "+fuel.mDefaultLocalName+" as the fuel input."); - didAdd[0] = GT_Values.RA.addMixerRecipe(fuel.getCells(4), Materials.Glycerol.getCells(1), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, mNitroFix.getCells(5), 20, 30); - didAdd[1] = GT_Values.RA.addMixerRecipe(fuel.getCells(4), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.Glycerol.getFluid(1000L),mNitroFix.getFluid(5000L), ItemList.Cell_Empty.get(4L), 20, 30); - didAdd[2] = GT_Values.RA.addMixerRecipe(Materials.Glycerol.getCells(1), GT_Values.NI,GT_Values.NI,GT_Values.NI, fuel.getFluid(4000L),mNitroFix.getFluid(5000L), ItemList.Cell_Empty.get(1L), 20, 30); + didAdd[0] = GT_Values.RA.addMixerRecipe(getCells(fuel, 4), getCells(mGlycerol, 1), GT_Values.NI, GT_Values.NI, GT_Values.NF, GT_Values.NF, getCells(mNitroFix, 5), 20, 30); + didAdd[1] = GT_Values.RA.addMixerRecipe(getCells(fuel, 4), GT_Values.NI, GT_Values.NI, GT_Values.NI, mGlycerol.getFluid(1000L),mNitroFix.getFluid(5000L), ItemList.Cell_Empty.get(4L), 20, 30); + didAdd[2] = GT_Values.RA.addMixerRecipe(getCells(mGlycerol, 1), GT_Values.NI,GT_Values.NI,GT_Values.NI, fuel.getFluid(4000L),mNitroFix.getFluid(5000L), ItemList.Cell_Empty.get(1L), 20, 30); Utils.LOG_INFO("[Nitro] Did the recipes add? 1: "+didAdd[0]+" | 2: "+didAdd[1]+" | 3: "+didAdd[2]); } for (Materials fuel : mFuels){ boolean didAdd[] = new boolean[3]; Utils.LOG_INFO("[Nitro] Getting ready to add back in the old nitro-diesel recipe to the chemical reactors, using "+fuel.mDefaultLocalName+" as the fuel input."); - didAdd[0] = GT_Values.RA.addChemicalRecipe(fuel.getCells(4), Materials.Glycerol.getCells(1), GT_Values.NF, GT_Values.NF, mNitroFix.getCells(5), 20, 30); - didAdd[1] = GT_Values.RA.addChemicalRecipe(fuel.getCells(4), GT_Values.NI, Materials.Glycerol.getFluid(1000L),mNitroFix.getFluid(5000L), ItemList.Cell_Empty.get(4L), 20, 30); - didAdd[2] = GT_Values.RA.addChemicalRecipe(Materials.Glycerol.getCells(1), GT_Values.NI, fuel.getFluid(4000L),mNitroFix.getFluid(5000L), ItemList.Cell_Empty.get(1L), 20, 30); + didAdd[0] = GT_Values.RA.addChemicalRecipe(getCells(fuel, 4), getCells(mGlycerol, 1), GT_Values.NF, GT_Values.NF, getCells(mNitroFix, 5), 20); + didAdd[1] = GT_Values.RA.addChemicalRecipe(getCells(fuel, 4), GT_Values.NI, mGlycerol.getFluid(1000L),mNitroFix.getFluid(5000L), ItemList.Cell_Empty.get(4L), 20); + didAdd[2] = GT_Values.RA.addChemicalRecipe(getCells(mGlycerol, 1), GT_Values.NI, fuel.getFluid(4000L),mNitroFix.getFluid(5000L), ItemList.Cell_Empty.get(1L), 20); Utils.LOG_INFO("[Nitro] Did the recipes add? 1: "+didAdd[0]+" | 2: "+didAdd[1]+" | 3: "+didAdd[2]); } Utils.LOG_INFO("[Nitro] Getting ready to add back in the old glycerol recipe!"); - GT_Values.RA.addChemicalRecipe(Materials.Nitrogen.getCells(1), Materials.Carbon.getDust(1), Materials.Water.getFluid(2000L), Materials.Glycerol.getFluid(3000L), ItemList.Cell_Empty.get(1), 3000, 30); + GT_Values.RA.addChemicalRecipe(getCells(Materials.Nitrogen, 1), getDust(Materials.Carbon, 1), Materials.Water.getFluid(2000L), mGlycerol.getFluid(3000L), ItemList.Cell_Empty.get(1), 3000); Utils.LOG_INFO("[Nitro] Added recipes."); } @@ -151,7 +169,17 @@ public class GregtechNitroDieselFix { } } } - - - + + + public static ItemStack getCells(Materials mat, int amount){ + String mName = MaterialUtils.getMaterialName(mat); + return ItemUtils.getItemStackOfAmountFromOreDict("cell"+mName, amount); + } + + public static ItemStack getDust(Materials mat, int amount){ + String mName = MaterialUtils.getMaterialName(mat); + return ItemUtils.getItemStackOfAmountFromOreDict("dust"+mName, amount); + } + + } |