diff options
Diffstat (limited to 'src/Java/gtPlusPlus/core')
-rw-r--r-- | src/Java/gtPlusPlus/core/common/compat/COMPAT_Witchery.java | 26 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java | 3 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/item/ModItems.java | 19 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java | 165 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java | 26 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java | 9 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/item/general/ItemControlCore.java | 22 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/lib/CORE.java | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/lib/LoadedMods.java | 6 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/ALLOY.java | 113 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/ELEMENT.java | 4 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/Material.java | 198 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/math/MathUtils.java | 107 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java | 38 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java | 41 |
15 files changed, 504 insertions, 275 deletions
diff --git a/src/Java/gtPlusPlus/core/common/compat/COMPAT_Witchery.java b/src/Java/gtPlusPlus/core/common/compat/COMPAT_Witchery.java new file mode 100644 index 0000000000..cde6e3ae98 --- /dev/null +++ b/src/Java/gtPlusPlus/core/common/compat/COMPAT_Witchery.java @@ -0,0 +1,26 @@ +package gtPlusPlus.core.common.compat; + +import static gtPlusPlus.core.lib.LoadedMods.Witchery; + +import gregtech.api.util.GT_OreDictUnificator; + +import gtPlusPlus.core.util.minecraft.ItemUtils; +import net.minecraft.item.ItemStack; + +public class COMPAT_Witchery { + + public static void OreDict(){ + run(); + } + + private static final void run(){ + //Koboldite + ItemStack aKobolditeDust = ItemUtils.getItemStackWithMeta(Witchery, "witchery:ingredient", "Koboldite Dust", 148, 1); + ItemStack aKobolditeNugget = ItemUtils.getItemStackWithMeta(Witchery, "witchery:ingredient", "Koboldite Nugget", 149, 1); + ItemStack aKobolditeIngot = ItemUtils.getItemStackWithMeta(Witchery, "witchery:ingredient", "Koboldite Ingot", 150, 1); + if (aKobolditeDust != null) GT_OreDictUnificator.registerOre("dust"+"Koboldite", aKobolditeDust); + if (aKobolditeNugget != null) GT_OreDictUnificator.registerOre("nugget"+"Koboldite", aKobolditeNugget); + if (aKobolditeIngot != null) GT_OreDictUnificator.registerOre("ingot"+"Koboldite", aKobolditeIngot); + } + +} diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java index c43fa3c9c0..c37369b00f 100644 --- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java +++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java @@ -163,6 +163,9 @@ public class COMPAT_HANDLER { if (LoadedMods.PamsHarvestcraft){ COMPAT_HarvestCraft.OreDict(); } + if (LoadedMods.Witchery) { + COMPAT_Witchery.OreDict(); + } } public static void RemoveRecipesFromOtherMods(){ diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index eda11d2a38..5b8e8ab2a1 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -2,6 +2,8 @@ package gtPlusPlus.core.item; import static gtPlusPlus.core.creative.AddToCreativeTab.*; import static gtPlusPlus.core.lib.CORE.LOAD_ALL_CONTENT; +import com.ibm.icu.util.RangeValueIterator.Element; + import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.item.*; @@ -368,9 +370,9 @@ public final class ModItems { if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustLanthanum", 1) == null){ ItemUtils.generateSpecialUseDusts("Lanthanum", "Lanthanum", Materials.Lanthanum.mElement.name(), Utils.rgbtoHexValue(106, 127, 163)); } - /*if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustGadolinium", 1) == null){ - ItemUtils.generateSpecialUseDusts("Gadolinium", "Gadolinium", "", Utils.rgbtoHexValue(Materials.Gadolinium.mRGBa[0], Materials.Gadolinium.mRGBa[1], Materials.Gadolinium.mRGBa[2])); - }*/ + if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dustGermanium", 1) == null){ + ItemUtils.generateSpecialUseDusts("Germanium", "Germanium", "Ge", ELEMENT.getInstance().GERMANIUM.getRgbAsHex()); + } //Elements generate first so they can be used in compounds. @@ -527,13 +529,20 @@ public final class ModItems { } MaterialGenerator.generate(ALLOY.TRINIUM_TITANIUM); MaterialGenerator.generate(ALLOY.TRINIUM_NAQUADAH, false); - MaterialGenerator.generate(ALLOY.TRINIUM_NAQUADAH_CARBON); - + MaterialGenerator.generate(ALLOY.TRINIUM_NAQUADAH_CARBON); + + //Top Tier Alloys + MaterialGenerator.generate(ALLOY.LAFIUM); + MaterialGenerator.generate(ALLOY.CINOBITE); + MaterialGenerator.generate(ALLOY.PIKYONIUM); + MaterialGenerator.generate(ALLOY.ABYSSAL); + //Must be the final Alloy to Generate MaterialGenerator.generate(ALLOY.QUANTUM); //Ores MaterialGenerator.generateOreMaterial(FLUORIDES.FLUORITE); + MaterialGenerator.generateOreMaterial(ALLOY.KOBOLDITE); GTplusplus_Everglades.GenerateOreMaterials(); diff --git a/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java b/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java index 6b4e3d8f4e..2be7b76f6c 100644 --- a/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java +++ b/src/Java/gtPlusPlus/core/item/base/dusts/BaseItemDust.java @@ -123,22 +123,21 @@ public class BaseItemDust extends Item{ protected final int sRadiation; @Override public void onUpdate(final ItemStack iStack, final World world, final Entity entityHolding, final int p_77663_4_, final boolean p_77663_5_) { - EntityUtils.applyRadiationDamageToEntity(iStack.stackSize, this.sRadiation, world, entityHolding); + + if (this.dustInfo != null){ + if (entityHolding instanceof EntityPlayer){ + if (!((EntityPlayer) entityHolding).capabilities.isCreativeMode){ + EntityUtils.applyRadiationDamageToEntity(iStack.stackSize, this.dustInfo.vRadiationLevel, world, entityHolding); + } + } + } + } @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void addInformation(final ItemStack stack, final EntityPlayer aPlayer, final List list, final boolean bool) { - //if (pileType != null && materialName != null && pileType != "" && materialName != "" && !pileType.equals("") && !materialName.equals("")){ - /*if (getUnlocalizedName().contains("DustTiny")){ - list.add(EnumChatFormatting.GRAY+"A tiny pile of " + materialName + " dust."); - } - else if (getUnlocalizedName().contains("DustSmall")){ - list.add(EnumChatFormatting.GRAY+"A small pile of " + materialName + " dust."); - } - else { - list.add(EnumChatFormatting.GRAY+"A pile of " + materialName + " dust."); - }*/ + if (stack.getDisplayName().equalsIgnoreCase("fluorite")){ list.add("Mined from Sandstone and Limestone."); } @@ -167,143 +166,61 @@ public class BaseItemDust extends Item{ } - private void addMacerationRecipe(){ - Logger.WARNING("Adding recipe for "+this.materialName+" Dusts"); - - String tempIngot = this.getUnlocalizedName().replace("item.itemDust", "ingot"); - final String tempDust = this.getUnlocalizedName().replace("item.itemDust", "dust"); - ItemStack tempInputStack; - ItemStack tempOutputStack; + private void addMacerationRecipe(){ - if (this.getUnlocalizedName().contains("DustSmall") || this.getUnlocalizedName().contains("DustTiny")){ - return; - } + Logger.MATERIALS("Adding Maceration recipe for "+this.materialName+" Ingot -> Dusts"); + final int chance = (this.mTier*10)/MathUtils.randInt(10, 20); + GT_ModHandler.addPulverisationRecipe(dustInfo.getIngot(1), dustInfo.getDust(1), null, chance); + + } - Logger.WARNING("Unlocalized name for OreDict nameGen: "+this.getUnlocalizedName()); - if (this.getUnlocalizedName().contains("item.")){ - tempIngot = this.getUnlocalizedName().replace("item.", ""); - Logger.WARNING("Generating OreDict Name: "+tempIngot); - } - else { - tempIngot = this.getUnlocalizedName(); - } + private void addFurnaceRecipe(){ - tempIngot = tempIngot.replace("itemDust", "ingot"); - Logger.WARNING("Generating OreDict Name: "+tempIngot); - final ItemStack[] outputStacks = {this.dustInfo.getDust(1)}; - if ((tempIngot != null) && !tempIngot.equals("")){ - tempInputStack = ItemUtils.getItemStackOfAmountFromOreDict(tempIngot, 1); - tempOutputStack = ItemUtils.getItemStackOfAmountFromOreDict(tempDust, 1); - ItemStack tempStackOutput2 = null; - final int chance = (this.mTier*10)/MathUtils.randInt(10, 20); - if (outputStacks.length != 0){ - if (outputStacks.length == 1){ - tempStackOutput2 = null; - } - else { - if (!outputStacks[1].getUnlocalizedName().toLowerCase().contains("aaa_broken")){ - tempStackOutput2 = outputStacks[1]; - tempOutputStack = outputStacks[0]; - } - else { - tempStackOutput2 = null; - } - } + ItemStack aDust = dustInfo.getDust(1); + ItemStack aOutput; + + if (this.dustInfo.requiresBlastFurnace()) { + aOutput = dustInfo.getHotIngot(1); + if (addBlastFurnaceRecipe(aDust, null, aOutput, null, dustInfo.getMeltingPointK())){ + Logger.MATERIALS("Successfully added a blast furnace recipe for "+this.materialName); } else { - tempStackOutput2 = null; - } - if ((null != tempOutputStack) && (null != tempInputStack)){ - if (ItemUtils.checkForInvalidItems(tempOutputStack) && ItemUtils.checkForInvalidItems(tempStackOutput2) && ItemUtils.checkForInvalidItems(tempInputStack)) { - GT_ModHandler.addPulverisationRecipe(tempInputStack, tempOutputStack.splitStack(1), tempStackOutput2, chance); - } + Logger.MATERIALS("Failed to add a blast furnace recipe for "+this.materialName); } } - } - - private void addFurnaceRecipe(){ - - String temp = ""; - if (this.getUnlocalizedName().contains("item.")){ - temp = this.getUnlocalizedName().replace("item.", ""); - } else { - temp = this.getUnlocalizedName(); - } - if (temp.contains("DustTiny") || temp.contains("DustSmall")){ - return; - } - temp = temp.replace("itemDust", "ingot"); - if ((temp != null) && !temp.equals("")){ - ItemStack mThisStack = ItemUtils.getSimpleStack(this); - if (this.dustInfo.requiresBlastFurnace()){ - Logger.WARNING("Adding recipe for Hot "+this.materialName+" Ingots in a Blast furnace."); - final String tempIngot = temp.replace("ingot", "ingotHot"); - final ItemStack tempOutputStack = ItemUtils.getItemStackOfAmountFromOreDict(tempIngot, 1); - if (null != tempOutputStack && tempOutputStack != ItemUtils.getSimpleStack(ModItems.AAA_Broken)){ - Logger.WARNING("This will produce "+tempOutputStack.getDisplayName() + " Debug: "+tempIngot); - if (ItemUtils.checkForInvalidItems(tempOutputStack) && ItemUtils.checkForInvalidItems(mThisStack)) { - this.addBlastFurnaceRecipe(mThisStack, null, tempOutputStack, null, 350*this.mTier); - } - } - return; + aOutput = dustInfo.getIngot(1); + if (CORE.GT_Recipe.addSmeltingAndAlloySmeltingRecipe(aDust, aOutput)){ + Logger.MATERIALS("Successfully added a furnace recipe for "+this.materialName); } - Logger.WARNING("Adding recipe for "+this.materialName+" Ingots in a furnace."); - final ItemStack tempOutputStack = ItemUtils.getItemStackOfAmountFromOreDict(temp, 1); - //Utils.LOG_WARNING("This will produce an ingot of "+tempOutputStack.getDisplayName() + " Debug: "+temp); - if (null != tempOutputStack && tempOutputStack != ItemUtils.getSimpleStack(ModItems.AAA_Broken)){ - if ((this.mTier < 5) || !this.dustInfo.requiresBlastFurnace()){ - if (ItemUtils.checkForInvalidItems(tempOutputStack) && ItemUtils.checkForInvalidItems(mThisStack)) { - if (CORE.GT_Recipe.addSmeltingAndAlloySmeltingRecipe(ItemUtils.getSimpleStack(this), tempOutputStack)){ - Logger.WARNING("Successfully added a furnace recipe for "+this.materialName); - } - else { - Logger.WARNING("Failed to add a furnace recipe for "+this.materialName); - } - } - } - else if ((this.mTier >= 5) || this.dustInfo.requiresBlastFurnace()){ - Logger.WARNING("Adding recipe for "+this.materialName+" Ingots in a Blast furnace."); - Logger.WARNING("This will produce "+tempOutputStack.getDisplayName()); - if (null != tempOutputStack && tempOutputStack != ItemUtils.getSimpleStack(ModItems.AAA_Broken)){ - if (ItemUtils.checkForInvalidItems(tempOutputStack) && ItemUtils.checkForInvalidItems(mThisStack)) { - this.addBlastFurnaceRecipe(ItemUtils.getSimpleStack(this), null, tempOutputStack, null, 350*this.mTier); - } - } - return; - } + else { + Logger.MATERIALS("Failed to add a furnace recipe for "+this.materialName); } - } + } - private void addBlastFurnaceRecipe(final ItemStack input1, final ItemStack input2, final ItemStack output1, final ItemStack output2, final int tempRequired){ - //Special Cases - /*if (input1.getUnlocalizedName().toLowerCase().contains("tantalloy61")){ - Utils.LOG_INFO("Adding Special handler for Staballoy-61 in the Blast Furnace"); - input2 = UtilsItems.getItemStackOfAmountFromOreDict("dustTantalloy60", 2); - if (input2 == null){ - Utils.LOG_INFO("invalid itemstack."); - } - else { - Utils.LOG_INFO("Found "+input2.getDisplayName()); - } - }*/ + private boolean addBlastFurnaceRecipe(final ItemStack input1, final ItemStack input2, final ItemStack output1, final ItemStack output2, final int tempRequired){ - int timeTaken = 250*this.mTier*20; + int timeTaken = 125*this.mTier*20; if (this.mTier <= 4){ - timeTaken = 50*this.mTier*20; + timeTaken = 25*this.mTier*20; + } + int aSlot = mTier - 2; + if (aSlot < 2) { + aSlot = 2; } + long aVoltage = GT_Values.V[aSlot >= 2 ? aSlot : 2]; - GT_Values.RA.addBlastRecipe( + return GT_Values.RA.addBlastRecipe( input1, input2, GT_Values.NF, GT_Values.NF, output1, output2, timeTaken, - this.mTier*60, + (int) aVoltage, tempRequired); diff --git a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java index 3da3c18836..eea1aed49f 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java @@ -47,23 +47,37 @@ public class CoalTar { Coal_Gas = FluidUtils.generateFluidNonMolten("CoalGas", "Coal Gas", 500, new short[]{48, 48, 48, 100}, null, null); //Ethanol // v - Dehydrate cells to remove water + + //Create Ethylene - Ethylene = FluidUtils.generateFluidNonMolten("Ethylene", "Ethylene", -103, new short[]{255, 255, 255, 100}, null, null); + if (!FluidUtils.doesFluidExist("Ethylene")){ + Ethylene = FluidUtils.generateFluidNonMolten("Ethylene", "Ethylene", -103, new short[]{255, 255, 255, 100}, null, null); + } + else { + Ethylene = FluidUtils.getWildcardFluidStack("Ethylene", 1).getFluid(); + } + //Create Benzene - (Toluene + Hydrogen | 95% Benzene / 5% methane) - Benzene = FluidUtils.generateFluidNonMolten("Benzene", "Benzene", 81, new short[]{150, 75, 0, 100}, null, null); + if (!FluidUtils.doesFluidExist("NitrousOxide")){ + Benzene = FluidUtils.generateFluidNonMolten("Benzene", "Benzene", 81, new short[]{150, 75, 0, 100}, null, null); + } + else { + Benzene = FluidUtils.getWildcardFluidStack("Benzene", 1).getFluid(); + } + //Create Ethylbenzene - Ethylbenzene is produced in on a large scale by combining benzene and ethylene in an acid-catalyzed chemical reaction //Use Chemical Reactor Ethylbenzene = FluidUtils.generateFluidNonMolten("Ethylbenzene", "Ethylbenzene", 136, new short[]{255, 255, 255, 100}, null, null); //Create Anthracene Anthracene = FluidUtils.generateFluidNonMolten("Anthracene", "Anthracene", 340, new short[]{255, 255, 255, 100}, null, null); - //Toluene - if (FluidUtils.getFluidStack("liquid_toluene", 1) == null){ + //Toluene + if (!FluidUtils.doesFluidExist("Toluene")){ Toluene = FluidUtils.generateFluidNonMolten("Toluene", "Toluene", -95, new short[]{140, 70, 20, 100}, null, null); } else { - Toluene = FluidUtils.getFluidStack("liquid_toluene", 1000).getFluid(); + Toluene = FluidUtils.getWildcardFluidStack("Toluene", 1).getFluid(); Item itemCellToluene = new BaseItemComponent("Toluene", "Toluene", new short[]{140, 70, 20, 100}); - MaterialGenerator.addFluidCannerRecipe(ItemUtils.getEmptyCell(), ItemUtils.getSimpleStack(itemCellToluene), FluidUtils.getFluidStack("liquid_toluene", 1000), null); + MaterialGenerator.addFluidCannerRecipe(ItemUtils.getEmptyCell(), ItemUtils.getSimpleStack(itemCellToluene), FluidUtils.getFluidStack(Toluene, 1000), null); } //Create Coal Tar diff --git a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java index 7b5a90a64e..9bd8a521ab 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java @@ -67,16 +67,11 @@ public class RocketFuels { Nitrous_Oxide = FluidUtils.generateFluidNonMolten("NitrousOxide", "Nitrous Oxide", -91, new short[]{255, 255, 255, 100}, null, null); //Nos - if (FluidUtils.getFluidStack("NitrousOxide", 1) == null && FluidUtils.getFluidStack("nitrousoxide", 1) == null){ + if (!FluidUtils.doesFluidExist("NitrousOxide")){ Nitrous_Oxide = FluidUtils.generateFluidNoPrefix("NitrousOxide", "Nitrous Oxide", -91, new short[]{255, 255, 255, 100}); } else { - if (FluidUtils.getFluidStack("NitrousOxide", 1) != null ) { - Nitrous_Oxide = FluidUtils.getFluidStack("NitrousOxide", 1).getFluid(); - } - else { - Nitrous_Oxide = FluidUtils.getFluidStack("nitrousoxide", 1).getFluid(); - } + Nitrous_Oxide = FluidUtils.getWildcardFluidStack("NitrousOxide", 1).getFluid(); if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cellNitrousOxide", 1) == null){ new BaseItemComponent("NitrousOxide", "Nitrous Oxide", new short[] {10, 10, 175}); } diff --git a/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java b/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java index d8ec8944e9..8ad87c0ea8 100644 --- a/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java +++ b/src/Java/gtPlusPlus/core/item/general/ItemControlCore.java @@ -10,7 +10,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; -import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.lib.CORE; public class ItemControlCore extends Item { @@ -29,16 +28,16 @@ public class ItemControlCore extends Item { @Override public void registerIcons(IIconRegister reg) { - this.icons[0] = reg.registerIcon(CORE.MODID + ":" + "controlcore/core_0"); - this.icons[1] = reg.registerIcon(CORE.MODID + ":" + "controlcore/core_1"); - this.icons[2] = reg.registerIcon(CORE.MODID + ":" + "controlcore/core_2"); - this.icons[3] = reg.registerIcon(CORE.MODID + ":" + "controlcore/core_3"); - this.icons[4] = reg.registerIcon(CORE.MODID + ":" + "controlcore/core_4"); - this.icons[5] = reg.registerIcon(CORE.MODID + ":" + "controlcore/core_5"); - this.icons[6] = reg.registerIcon(CORE.MODID + ":" + "controlcore/core_6"); - this.icons[7] = reg.registerIcon(CORE.MODID + ":" + "controlcore/core_7"); - this.icons[8] = reg.registerIcon(CORE.MODID + ":" + "controlcore/core_8"); - this.icons[9] = reg.registerIcon(CORE.MODID + ":" + "controlcore/core_9"); + this.icons[0] = reg.registerIcon(CORE.MODID + ":" + "controlcore/Core_0"); + this.icons[1] = reg.registerIcon(CORE.MODID + ":" + "controlcore/Core_1"); + this.icons[2] = reg.registerIcon(CORE.MODID + ":" + "controlcore/Core_2"); + this.icons[3] = reg.registerIcon(CORE.MODID + ":" + "controlcore/Core_3"); + this.icons[4] = reg.registerIcon(CORE.MODID + ":" + "controlcore/Core_4"); + this.icons[5] = reg.registerIcon(CORE.MODID + ":" + "controlcore/Core_5"); + this.icons[6] = reg.registerIcon(CORE.MODID + ":" + "controlcore/Core_6"); + this.icons[7] = reg.registerIcon(CORE.MODID + ":" + "controlcore/Core_7"); + this.icons[8] = reg.registerIcon(CORE.MODID + ":" + "controlcore/Core_8"); + this.icons[9] = reg.registerIcon(CORE.MODID + ":" + "controlcore/Core_9"); } @Override @@ -46,6 +45,7 @@ public class ItemControlCore extends Item { return this.icons[meta]; } + @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void getSubItems(Item item, CreativeTabs tab, List list) { for (int i = 0; i < 10; i ++) { diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java index 99092aed71..a6ffd96bbf 100644 --- a/src/Java/gtPlusPlus/core/lib/CORE.java +++ b/src/Java/gtPlusPlus/core/lib/CORE.java @@ -44,6 +44,7 @@ public class CORE { public static boolean DEVENV = false; public static boolean DEBUG = false; + public static boolean NBT_PERSISTENCY_PATCH_APPLIED = false; //Only can be set in Dev, no config or setting elsewhere. public static final boolean LOAD_ALL_CONTENT = false;; @@ -114,6 +115,7 @@ public class CORE { public static IGregtech_RecipeAdder sRecipeAdder; public static IGregtech_RecipeAdder RA; public static GregtechRecipe GT_Recipe = new GregtechRecipe(); + public static final GT_Materials[] sMU_GeneratedMaterials = new GT_Materials[1000]; /** diff --git a/src/Java/gtPlusPlus/core/lib/LoadedMods.java b/src/Java/gtPlusPlus/core/lib/LoadedMods.java index 5426bb1a6a..2a7ef9bc39 100644 --- a/src/Java/gtPlusPlus/core/lib/LoadedMods.java +++ b/src/Java/gtPlusPlus/core/lib/LoadedMods.java @@ -52,6 +52,7 @@ public class LoadedMods { public static boolean TecTech = false; //Technus' Mod public static boolean TiCon = false; public static boolean StevesCarts = false; + public static boolean Witchery = false; @@ -279,6 +280,11 @@ public class LoadedMods { TecTech = true; Logger.INFO("Components enabled for: TecTech"); totalMods++; + } + if (Loader.isModLoaded("witchery")){ + Witchery = true; + Logger.INFO("Components enabled for: Witchery"); + totalMods++; } Logger.INFO("Content found for "+totalMods+" mods"); diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java index e42a3e5501..23cb359ec9 100644 --- a/src/Java/gtPlusPlus/core/material/ALLOY.java +++ b/src/Java/gtPlusPlus/core/material/ALLOY.java @@ -13,6 +13,9 @@ public final class ALLOY { public static final Material INVAR = MaterialUtils.generateMaterialFromGtENUM(Materials.Invar); public static final Material KANTHAL = MaterialUtils.generateMaterialFromGtENUM(Materials.Kanthal); public static final Material NICHROME = MaterialUtils.generateMaterialFromGtENUM(Materials.Nichrome); + public static final Material TUNGSTENSTEEL = MaterialUtils.generateMaterialFromGtENUM(Materials.TungstenSteel); + public static final Material STAINLESSSTEEL = MaterialUtils.generateMaterialFromGtENUM(Materials.StainlessSteel); + public static final Material OSMIRIDIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Osmiridium); public static final Material ENERGYCRYSTAL = new Material( "Energy Crystal", //Material Name @@ -614,14 +617,120 @@ public final class ALLOY { }); + public static final Material KOBOLDITE = new Material( + "Koboldite", //Material Name + MaterialState.SOLID, //State + new short[]{80, 210, 255, 0}, //Material Colour + -1, //Melting Point in C + -1, + -1, + -1, + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.getInstance().NICKEL, 35), + new MaterialStack(ELEMENT.getInstance().THAUMIUM, 30), + new MaterialStack(ELEMENT.getInstance().IRON, 35) + }); + + /* + * Top Tier Alloys + */ + + //0lafe Compound + public static final Material LAFIUM = new Material( + "Lafium Compound", //Material Name + MaterialState.SOLID, //State + new short[]{75,180,255, 0}, //Material Colour + 6750, //Melting Point in C + 9865, //Boiling Point in C + -1, + -1, + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ALLOY.HASTELLOY_N, 8), + new MaterialStack(ELEMENT.getInstance().NAQUADAH, 4), + new MaterialStack(ELEMENT.getInstance().SAMARIUM, 2), + new MaterialStack(ELEMENT.getInstance().TUNGSTEN, 4), + new MaterialStack(ELEMENT.getInstance().ARGON, 2), + new MaterialStack(ELEMENT.getInstance().ALUMINIUM, 6), + new MaterialStack(ELEMENT.getInstance().NICKEL, 8), + new MaterialStack(ELEMENT.getInstance().CARBON, 2) + }); - + //Cinobi Alloy + public static final Material CINOBITE = new Material( + "Cinobite A243", //Material Name + MaterialState.SOLID, //State + new short[]{255,75,45, 0}, //Material Colour + 7350, //Melting Point in C + 12565, //Boiling Point in C + -1, + -1, + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ALLOY.ZERON_100, 16), + new MaterialStack(ELEMENT.getInstance().NAQUADRIA, 7), + new MaterialStack(ELEMENT.getInstance().GADOLINIUM, 5), + new MaterialStack(ELEMENT.getInstance().ALUMINIUM, 3), + new MaterialStack(ELEMENT.getInstance().MERCURY, 2), + new MaterialStack(ELEMENT.getInstance().TIN, 2), + new MaterialStack(ELEMENT.getInstance().TITANIUM, 12), + new MaterialStack(ALLOY.OSMIRIDIUM, 6) + }); + + //Piky Alloy + public static final Material PIKYONIUM = new Material( + "Pikyonium 64B", //Material Name + MaterialState.SOLID, //State + new short[]{110,255,20, 0}, //Material Colour + 7850, //Melting Point in C + 11765, //Boiling Point in C + -1, + -1, + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ALLOY.INCONEL_792, 16), + new MaterialStack(ALLOY.EGLIN_STEEL, 10), + new MaterialStack(ELEMENT.getInstance().NAQUADAH_ENRICHED, 8), + new MaterialStack(ELEMENT.getInstance().CERIUM, 6), + new MaterialStack(ELEMENT.getInstance().ANTIMONY, 4), + new MaterialStack(ELEMENT.getInstance().PLATINUM, 4), + new MaterialStack(ELEMENT.getInstance().YTTERBIUM, 2), + new MaterialStack(ALLOY.TUNGSTENSTEEL, 8) + }); + + //Piky Alloy + public static final Material ABYSSAL = new Material( + "Abyssal Alloy", //Material Name + MaterialState.SOLID, //State + new short[]{85,0,85, 0}, //Material Colour + 9650, //Melting Point in C + 13765, //Boiling Point in C + -1, + -1, + true, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ALLOY.STAINLESSSTEEL, 10), + new MaterialStack(ALLOY.TUNGSTEN_CARBIDE, 10), + new MaterialStack(ALLOY.NICHROME, 10), + new MaterialStack(ALLOY.BRONZE, 10), + new MaterialStack(ALLOY.INCOLOY_MA956, 10), + new MaterialStack(ELEMENT.getInstance().IODINE, 2), + new MaterialStack(ELEMENT.getInstance().RADON, 2), + new MaterialStack(ELEMENT.getInstance().GERMANIUM, 2), + }); + //Quantum public static final Material QUANTUM = new Material( "Quantum", //Material Name MaterialState.SOLID, //State new short[]{128, 128, 255, 50}, //Material Colour - 9999, //Melting Point in C + 9500, //Melting Point in C 25000, //Boiling Point in C 150, //Protons 200, //Neutrons diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java index fd8df711e9..9f37164aa0 100644 --- a/src/Java/gtPlusPlus/core/material/ELEMENT.java +++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java @@ -125,6 +125,8 @@ public final class ELEMENT { //Fictional public final Material YELLORIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Yellorium, new short[] {255, 242, 10}); public final Material NAQUADAH = MaterialUtils.generateMaterialFromGtENUM(Materials.Naquadah); + public final Material NAQUADAH_ENRICHED = MaterialUtils.generateMaterialFromGtENUM(Materials.NaquadahEnriched); + public final Material NAQUADRIA = MaterialUtils.generateMaterialFromGtENUM(Materials.Naquadria); public final Material TRINIUM; public final Material TRINIUM_REFINED; //https://github.com/Blood-Asp/GT5-Unofficial/issues/609 @@ -142,6 +144,8 @@ public final class ELEMENT { public final Material POLONIUM210 = new Material("Polonium-210", MaterialState.SOLID, Materials.Plutonium241.mIconSet, POLONIUM.vDurability, POLONIUM.getRGBA(), POLONIUM.getMeltingPointK(), POLONIUM.getBoilingPointK(), 84, 126, false, StringUtils.superscript("210Po"), 2, false);//Not a GT Inherited Material public final Material AMERICIUM241 = new Material("Americium-241", MaterialState.SOLID, Materials.Americium.mIconSet, Materials.Americium.mDurability, Materials.Americium.mRGBa, Materials.Americium.mMeltingPoint, Materials.Americium.mBlastFurnaceTemp, 95, 146, false, StringUtils.superscript("241Am"), 2, false);//Not a GT Inherited Material + public final Material MAGIC = MaterialUtils.generateMaterialFromGtENUM(Materials.Magic, new short[] {10, 185, 140}); + public final Material THAUMIUM = MaterialUtils.generateMaterialFromGtENUM(Materials.Thaumium); static { diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index 01999ecbd4..4dd88030bd 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -255,17 +255,39 @@ public class Material { this.isRadioactive = true; this.vRadiationLevel = (byte) radiationLevel; } - else { - Logger.MATERIALS(this.getLocalizedName()+" is not radioactive."); - this.isRadioactive = false; - this.vRadiationLevel = 0; + else { + if (vMaterialInput.size() > 0) { + AutoMap<Byte> aDataSet = new AutoMap<Byte>(); + for (MaterialStack m : this.vMaterialInput) { + aDataSet.put(m.getStackMaterial().vRadiationLevel); + } + byte aAverage = MathUtils.getByteAverage(aDataSet); + if (aAverage > Byte.MAX_VALUE || aAverage < Byte.MIN_VALUE) { + aAverage = 0; + } + if (aAverage > 0) { + Logger.MATERIALS(this.getLocalizedName()+" is radioactive due to trace elements. Level: "+aAverage+"."); + this.isRadioactive = true; + this.vRadiationLevel = (byte) aAverage; + } + else { + Logger.MATERIALS(this.getLocalizedName()+" is not radioactive."); + this.isRadioactive = false; + this.vRadiationLevel = 0; + } + } + else { + Logger.MATERIALS(this.getLocalizedName()+" is not radioactive."); + this.isRadioactive = false; + this.vRadiationLevel = 0; + } } //Sets the materials 'tier'. Will probably replace this logic. this.vTier = MaterialUtils.getTierOfMaterial((int) MathUtils.celsiusToKelvin(meltingPoint)); this.usesBlastFurnace = blastFurnace; - this.vVoltageMultiplier = this.getMeltingPointK() >= 2800 ? 60 : 15; + this.vVoltageMultiplier = MaterialUtils.getVoltageForTier(vTier); this.vComponentCount = this.getComponentCount(inputs); this.vSmallestRatio = this.getSmallestRatio(this.vMaterialInput); @@ -288,11 +310,11 @@ public class Material { this.vChemicalFormula = this.getToolTip(chemicalSymbol, OrePrefixes.dust.mMaterialAmount / M, true); } else if (!this.vChemicalSymbol.equals("")){ - Logger.WARNING("materialInput is null, using a valid chemical symbol."); + Logger.MATERIALS("materialInput is null, using a valid chemical symbol."); this.vChemicalFormula = this.vChemicalSymbol; } else{ - Logger.WARNING("MaterialInput == null && chemicalSymbol probably equals nothing"); + Logger.MATERIALS("MaterialInput == null && chemicalSymbol probably equals nothing"); this.vChemicalFormula = "??"; } @@ -335,13 +357,13 @@ public class Material { } } - Logger.WARNING("Creating a Material instance for "+materialName); - Logger.WARNING("Formula: "+this.vChemicalFormula + " Smallest Stack: "+this.smallestStackSizeWhenProcessing+" Smallest Ratio:"+ratio); - Logger.WARNING("Protons: "+this.vProtons); - Logger.WARNING("Neutrons: "+this.vNeutrons); - Logger.WARNING("Mass: "+this.vMass+"/units"); - Logger.WARNING("Melting Point: "+this.meltingPointC+"C."); - Logger.WARNING("Boiling Point: "+this.boilingPointC+"C."); + Logger.MATERIALS("Creating a Material instance for "+materialName); + Logger.MATERIALS("Formula: "+this.vChemicalFormula + " Smallest Stack: "+this.smallestStackSizeWhenProcessing+" Smallest Ratio:"+ratio); + Logger.MATERIALS("Protons: "+this.vProtons); + Logger.MATERIALS("Neutrons: "+this.vNeutrons); + Logger.MATERIALS("Mass: "+this.vMass+"/units"); + Logger.MATERIALS("Melting Point: "+this.meltingPointC+"C."); + Logger.MATERIALS("Boiling Point: "+this.boilingPointC+"C."); } catch (Throwable t){ t.printStackTrace(); @@ -487,6 +509,10 @@ public class Material { return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("ingot"+this.unlocalizedName, stacksize); } + public final ItemStack getHotIngot(final int stacksize){ + return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("ingotHot"+this.unlocalizedName, stacksize); + } + public final ItemStack getPlate(final int stacksize){ return ItemUtils.getItemStackOfAmountFromOreDictNoBroken("plate"+this.unlocalizedName, stacksize); } @@ -595,21 +621,21 @@ public class Material { if (this.vMaterialInput != null && !this.vMaterialInput.isEmpty()){ final ItemStack[] temp = new ItemStack[this.vMaterialInput.size()]; for (int i=0;i<this.vMaterialInput.size();i++){ - //Utils.LOG_WARNING("i:"+i); + //Utils.LOG_MATERIALS("i:"+i); ItemStack testNull = null; try { testNull = this.vMaterialInput.get(i).getValidStack(); } catch (final Throwable r){ - Logger.WARNING("Failed gathering material stack for "+this.localizedName+"."); - Logger.WARNING("What Failed: Length:"+this.vMaterialInput.size()+" current:"+i); + Logger.MATERIALS("Failed gathering material stack for "+this.localizedName+"."); + Logger.MATERIALS("What Failed: Length:"+this.vMaterialInput.size()+" current:"+i); } try { if (testNull != null){ - //Utils.LOG_WARNING("not null"); + //Utils.LOG_MATERIALS("not null"); temp[i] = this.vMaterialInput.get(i).getValidStack(); } } catch (final Throwable r){ - Logger.WARNING("Failed setting slot "+i+", using "+this.localizedName); + Logger.MATERIALS("Failed setting slot "+i+", using "+this.localizedName); } } return temp; @@ -659,9 +685,9 @@ public class Material { public final long[] getSmallestRatio(final ArrayList<MaterialStack> tempInput){ if (tempInput != null){ if (!tempInput.isEmpty()){ - Logger.WARNING("length: "+tempInput.size()); - Logger.WARNING("(inputs != null): "+(tempInput != null)); - //Utils.LOG_WARNING("length: "+inputs.length); + Logger.MATERIALS("length: "+tempInput.size()); + Logger.MATERIALS("(inputs != null): "+(tempInput != null)); + //Utils.LOG_MATERIALS("length: "+inputs.length); final long[] tempRatio = new long[tempInput.size()]; for (int x=0;x<tempInput.size();x++){ //tempPercentage = tempPercentage+inputs[x].percentageToUse; @@ -678,7 +704,7 @@ public class Material { for (int r=0;r<tempRatio.length;r++){ tempRatioStringThing1 = tempRatioStringThing1 + tempRatio[r] +" : "; } - Logger.WARNING("Default Ratio: "+tempRatioStringThing1); + Logger.MATERIALS("Default Ratio: "+tempRatioStringThing1); String tempRatioStringThing = ""; int tempSmallestCraftingUseSize = 0; @@ -687,7 +713,7 @@ public class Material { tempSmallestCraftingUseSize = (int) (tempSmallestCraftingUseSize + smallestRatio[r]); } //this.smallestStackSizeWhenProcessing = tempSmallestCraftingUseSize; - Logger.WARNING("Smallest Ratio: "+tempRatioStringThing); + Logger.MATERIALS("Smallest Ratio: "+tempRatioStringThing); return smallestRatio; } } @@ -699,7 +725,7 @@ public class Material { if (!aShowQuestionMarks && (this.vChemicalFormula.equals("?")||this.vChemicalFormula.equals("??"))) { return ""; } - Logger.WARNING("===============| Calculating Atomic Formula for "+this.localizedName+" |==============="); + Logger.MATERIALS("===============| Calculating Atomic Formula for "+this.localizedName+" |==============="); if (!chemSymbol.equals("")) { return chemSymbol; } @@ -742,13 +768,13 @@ public class Material { return StringUtils.subscript(dummyFormula); //return dummyFormula; } - Logger.WARNING("dummyFormulaArray <= 0"); + Logger.MATERIALS("dummyFormulaArray <= 0"); } - Logger.WARNING("dummyFormulaArray == null"); + Logger.MATERIALS("dummyFormulaArray == null"); } - Logger.WARNING("tempInput.length <= 0"); + Logger.MATERIALS("tempInput.length <= 0"); } - Logger.WARNING("tempInput == null"); + Logger.MATERIALS("tempInput == null"); return "??"; } @@ -778,33 +804,33 @@ public class Material { if (isValid != Materials._NULL){ for (Materials m : invalidMaterials.values()){ if (isValid == m){ - Logger.WARNING("Trying to generate a fluid for blacklisted material: "+m.mDefaultLocalName); + Logger.MATERIALS("Trying to generate a fluid for blacklisted material: "+m.mDefaultLocalName); FluidStack a1 = m.getFluid(1); FluidStack a2 = m.getGas(1); FluidStack a3 = m.getMolten(1); FluidStack a4 = m.getSolid(1); FluidStack a5 = m.getPlasma(1); if (a1 != null){ - Logger.WARNING("Using a pre-defined Fluid from GT. Fluid."); + Logger.MATERIALS("Using a pre-defined Fluid from GT. Fluid."); return a1.getFluid(); } if (a2 != null){ - Logger.WARNING("Using a pre-defined Fluid from GT. Gas."); + Logger.MATERIALS("Using a pre-defined Fluid from GT. Gas."); return a2.getFluid(); } if (a3 != null){ - Logger.WARNING("Using a pre-defined Fluid from GT. Molten."); + Logger.MATERIALS("Using a pre-defined Fluid from GT. Molten."); return a3.getFluid(); } if (a4 != null){ - Logger.WARNING("Using a pre-defined Fluid from GT. Solid."); + Logger.MATERIALS("Using a pre-defined Fluid from GT. Solid."); return a4.getFluid(); } if (a5 != null){ - Logger.WARNING("Using a pre-defined Fluid from GT. Plasma."); + Logger.MATERIALS("Using a pre-defined Fluid from GT. Plasma."); return a5.getFluid(); } - Logger.WARNING("Using null."); + Logger.MATERIALS("Using null."); return null; } } @@ -812,31 +838,31 @@ public class Material { if (this.materialState == MaterialState.SOLID){ if (isValid.mFluid != null){ - Logger.WARNING("Using a pre-defined Fluid from GT. mFluid."); + Logger.MATERIALS("Using a pre-defined Fluid from GT. mFluid."); return isValid.mFluid; } else if (isValid.mStandardMoltenFluid != null){ - Logger.WARNING("Using a pre-defined Fluid from GT. mStandardMoltenFluid."); + Logger.MATERIALS("Using a pre-defined Fluid from GT. mStandardMoltenFluid."); return isValid.mStandardMoltenFluid; } } else if (this.materialState == MaterialState.GAS){ if (isValid.mGas != null){ - Logger.WARNING("Using a pre-defined Fluid from GT. mGas."); + Logger.MATERIALS("Using a pre-defined Fluid from GT. mGas."); return isValid.mGas; } } else if (this.materialState == MaterialState.LIQUID || this.materialState == MaterialState.PURE_LIQUID){ if (isValid.mFluid != null){ - Logger.WARNING("Using a pre-defined Fluid from GT. mFluid."); + Logger.MATERIALS("Using a pre-defined Fluid from GT. mFluid."); return isValid.mFluid; } else if (isValid.mGas != null){ - Logger.WARNING("Using a pre-defined Fluid from GT. mGas."); + Logger.MATERIALS("Using a pre-defined Fluid from GT. mGas."); return isValid.mGas; } else if (isValid.mStandardMoltenFluid != null){ - Logger.WARNING("Using a pre-defined Fluid from GT. mStandardMoltenFluid."); + Logger.MATERIALS("Using a pre-defined Fluid from GT. mStandardMoltenFluid."); return isValid.mStandardMoltenFluid; } } @@ -846,28 +872,28 @@ public class Material { FluidStack aTest3 = FluidUtils.getFluidStack(Utils.sanitizeString(this.getLocalizedName()), 1); if (aTest1 != null) { - Logger.WARNING("Found FluidRegistry entry for "+"molten."+Utils.sanitizeString(this.getLocalizedName())); + Logger.MATERIALS("Found FluidRegistry entry for "+"molten."+Utils.sanitizeString(this.getLocalizedName())); return aTest1.getFluid(); } if (aTest2 != null) { - Logger.WARNING("Found FluidRegistry entry for "+"fluid."+Utils.sanitizeString(this.getLocalizedName())); + Logger.MATERIALS("Found FluidRegistry entry for "+"fluid."+Utils.sanitizeString(this.getLocalizedName())); return aTest2.getFluid(); } if (aTest3 != null) { - Logger.WARNING("Found FluidRegistry entry for "+Utils.sanitizeString(this.getLocalizedName())); + Logger.MATERIALS("Found FluidRegistry entry for "+Utils.sanitizeString(this.getLocalizedName())); return aTest3.getFluid(); } - Logger.WARNING("Generating our own fluid."); + Logger.MATERIALS("Generating our own fluid."); //Generate a Cell if we need to if (ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+this.getUnlocalizedName(), 1) == null){ if (this.vGenerateCells){ new BaseItemCell(this); - Logger.WARNING("Generated a cell for "+this.getUnlocalizedName()); + Logger.MATERIALS("Generated a cell for "+this.getUnlocalizedName()); } else { - Logger.WARNING("Did not generate a cell for "+this.getUnlocalizedName()); + Logger.MATERIALS("Did not generate a cell for "+this.getUnlocalizedName()); } } @@ -924,11 +950,11 @@ public class Material { } } if (isValid.mPlasma != null){ - Logger.WARNING("Using a pre-defined Plasma from GT."); + Logger.MATERIALS("Using a pre-defined Plasma from GT."); return isValid.mPlasma; } - Logger.WARNING("Generating our own Plasma."); + Logger.MATERIALS("Generating our own Plasma."); return FluidUtils.addGTPlasma(this); } @@ -950,27 +976,8 @@ public class Material { for (MaterialStack m : this.vMaterialInput) { aDataSet.put(m.getStackMaterial().getMeltingPointC()); } - long aAverage = MathUtils.getAverage(aDataSet); + long aAverage = MathUtils.getLongAverage(aDataSet); return MathUtils.safeInt(aAverage); - - - - - /*int meltingPoint = 0; - for (MaterialStack part : this.vMaterialInput){ - if (part != null){ - int incrementor = part.getStackMaterial().getMeltingPointC(); - meltingPoint += incrementor; - Logger.WARNING("Melting Point for "+this.getLocalizedName()+" increased by "+ incrementor); - } - else { - Logger.MATERIALS(this.getLocalizedName()+" has a really invalid composition."); - } - } - int divisor = (this.vMaterialInput.size()>0 ? this.vMaterialInput.size() : 1); - Logger.WARNING("Dividing "+meltingPoint+" / "+divisor+" to get average melting point."); - meltingPoint = (meltingPoint/divisor); - return meltingPoint;*/ } catch (Throwable r){ return 500; @@ -984,23 +991,8 @@ public class Material { for (MaterialStack m : this.vMaterialInput) { aDataSet.put(m.getStackMaterial().getBoilingPointC()); } - long aAverage = MathUtils.getAverage(aDataSet); + long aAverage = MathUtils.getLongAverage(aDataSet); return MathUtils.safeInt(aAverage); - - - /*int boilingPoint = 0; - for (MaterialStack part : this.vMaterialInput){ - if (part != null){ - boilingPoint += part.getStackMaterial().getBoilingPointC(); - Logger.WARNING("Boiling Point for "+this.getLocalizedName()+" increased by "+ part.getStackMaterial().getBoilingPointC()); - } - else { - Logger.MATERIALS(this.getLocalizedName()+" has a really invalid composition."); - } - } - int divisor = (this.vMaterialInput.size()>0 ? this.vMaterialInput.size() : 1); - boilingPoint = (boilingPoint/divisor); - return boilingPoint;*/ } catch (Throwable r){ return 2500; @@ -1014,21 +1006,8 @@ public class Material { for (MaterialStack m : this.vMaterialInput) { aDataSet.put(m.getStackMaterial().getProtons()); } - long aAverage = MathUtils.getAverage(aDataSet); - return aAverage; - - /*long protonCount = 0; - for (MaterialStack part : this.vMaterialInput){ - if (part != null){ - protonCount += (part.getStackMaterial().getProtons()); - } - else { - Logger.MATERIALS(this.getLocalizedName()+" has a really invalid composition."); - } - } - int divisor = (this.vMaterialInput.size()>0 ? this.vMaterialInput.size() : 1); - protonCount = (protonCount/divisor); - return protonCount;*/ + long aAverage = MathUtils.getLongAverage(aDataSet); + return MathUtils.safeInt(aAverage); } catch (Throwable r){ return 50; @@ -1042,21 +1021,8 @@ public class Material { for (MaterialStack m : this.vMaterialInput) { aDataSet.put(m.getStackMaterial().getNeutrons()); } - long aAverage = MathUtils.getAverage(aDataSet); - return aAverage; - - /*long neutronCount = 0; - for (MaterialStack part : this.vMaterialInput){ - if (part != null){ - neutronCount += (part.getStackMaterial().getNeutrons()); - } - else { - Logger.MATERIALS(this.getLocalizedName()+" has a really invalid composition."); - } - } - int divisor = (this.vMaterialInput.size()>0 ? this.vMaterialInput.size() : 1); - neutronCount = (neutronCount/divisor); - return neutronCount;*/ + long aAverage = MathUtils.getLongAverage(aDataSet); + return MathUtils.safeInt(aAverage); } catch (Throwable r){ return 75; diff --git a/src/Java/gtPlusPlus/core/util/math/MathUtils.java b/src/Java/gtPlusPlus/core/util/math/MathUtils.java index 7ec898ce3a..03146d20d3 100644 --- a/src/Java/gtPlusPlus/core/util/math/MathUtils.java +++ b/src/Java/gtPlusPlus/core/util/math/MathUtils.java @@ -357,6 +357,14 @@ public class MathUtils { } } + public static byte safeByte(long number){ + return number>Byte.MAX_VALUE ? Byte.MAX_VALUE :(byte)number; + } + + public static short safeShort(long number){ + return number>Short.MAX_VALUE ? Short.MAX_VALUE :(short)number; + } + public static int safeInt(long number, int margin){ return number>Integer.MAX_VALUE-margin ? Integer.MAX_VALUE-margin :(int)number; } @@ -376,15 +384,99 @@ public class MathUtils { } - public static long getAverage(AutoMap aDataSet) { + + /* + * Averages + */ + + public static byte getByteAverage(AutoMap<?> aDataSet) { + byte[] aNewSet = new byte[aDataSet.size()]; + for (int u=0;u<aDataSet.size();u++) { + aNewSet[u] = (byte) aDataSet.get(u); + } + return getByteAverage(aNewSet); + } + + public static short getShortAverage(AutoMap<?> aDataSet) { + short[] aNewSet = new short[aDataSet.size()]; + for (int u=0;u<aDataSet.size();u++) { + aNewSet[u] = (short) aDataSet.get(u); + } + return getShortAverage(aNewSet); + } + + public static int getIntAverage(AutoMap<?> aDataSet) { + int[] aNewSet = new int[aDataSet.size()]; + for (int u=0;u<aDataSet.size();u++) { + aNewSet[u] = (int) aDataSet.get(u); + } + return getIntAverage(aNewSet); + } + + public static float getFloatAverage(AutoMap<?> aDataSet) { + float[] aNewSet = new float[aDataSet.size()]; + for (int u=0;u<aDataSet.size();u++) { + aNewSet[u] = (float) aDataSet.get(u); + } + return getFloatAverage(aNewSet); + } + + public static long getLongAverage(AutoMap<?> aDataSet) { long[] aNewSet = new long[aDataSet.size()]; for (int u=0;u<aDataSet.size();u++) { aNewSet[u] = (long) aDataSet.get(u); } - return getAverage(aNewSet); + return getLongAverage(aNewSet); } - public static long getAverage(long[] aDataSet) { + public static double getDoubleAverage(AutoMap<?> aDataSet) { + double[] aNewSet = new double[aDataSet.size()]; + for (int u=0;u<aDataSet.size();u++) { + aNewSet[u] = (double) aDataSet.get(u); + } + return getDoubleAverage(aNewSet); + } + + + + public static byte getByteAverage(byte[] aDataSet) { + int divisor = aDataSet.length; + byte total = 0; + for (byte i : aDataSet) { + total += i; + } + byte result = safeByte(total/divisor); + return result; + } + + public static short getShortAverage(short[] aDataSet) { + int divisor = aDataSet.length; + short total = 0; + for (short i : aDataSet) { + total += i; + } + short result = safeShort(total/divisor); + return result; + } + public static int getIntAverage(int[] aDataSet) { + int divisor = aDataSet.length; + int total = 0; + for (int i : aDataSet) { + total += i; + } + int result = safeInt(total/divisor); + return result; + } + public static float getFloatAverage(float[] aDataSet) { + int divisor = aDataSet.length; + float total = 0; + for (float i : aDataSet) { + total += i; + } + float result = (total/divisor); + return result; + } + public static long getLongAverage(long[] aDataSet) { int divisor = aDataSet.length; long total = 0; for (long i : aDataSet) { @@ -393,5 +485,14 @@ public class MathUtils { long result = (total/divisor); return result; } + public static double getDoubleAverage(double[] aDataSet) { + int divisor = aDataSet.length; + double total = 0; + for (double i : aDataSet) { + total += i; + } + double result = (total/divisor); + return result; + } } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java index e4f2008aac..5bdd42b02d 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java @@ -543,6 +543,44 @@ public class FluidUtils { public static FluidStack getLiquidXP(final int amount){ return EnchantingUtils.getLiquidXP(amount); } + + public static boolean doesFluidExist(String aFluidName) { + FluidStack aFStack1 = (FluidUtils.getFluidStack("molten"+"."+aFluidName.toLowerCase(), 1)); + FluidStack aFStack2 = (FluidUtils.getFluidStack("fluid"+"."+aFluidName.toLowerCase(), 1)); + FluidStack aFStack3 = (FluidUtils.getFluidStack(aFluidName.toLowerCase(), 1)); + FluidStack aFStack4 = (FluidUtils.getFluidStack(aFluidName, 1)); + FluidStack aFStack5 = (FluidUtils.getFluidStack("liquid_"+aFluidName.toLowerCase(), 1)); + FluidStack aFStack6 = (FluidUtils.getFluidStack("liquid"+"."+aFluidName.toLowerCase(), 1)); + return aFStack1 == null && aFStack2 == null && aFStack3 == null && aFStack4 == null && aFStack5 == null && aFStack6 == null; + } + + public static FluidStack getWildcardFluidStack(String aFluidName, int amount) { + FluidStack aFStack1 = (FluidUtils.getFluidStack("molten"+"."+aFluidName.toLowerCase(), 1)); + FluidStack aFStack2 = (FluidUtils.getFluidStack("fluid"+"."+aFluidName.toLowerCase(), 1)); + FluidStack aFStack3 = (FluidUtils.getFluidStack(aFluidName.toLowerCase(), 1)); + FluidStack aFStack4 = (FluidUtils.getFluidStack(aFluidName, 1)); + FluidStack aFStack5 = (FluidUtils.getFluidStack("liquid_"+aFluidName.toLowerCase(), 1)); + FluidStack aFStack6 = (FluidUtils.getFluidStack("liquid"+"."+aFluidName.toLowerCase(), 1)); + if (aFStack1 != null) { + return aFStack1; + } + if (aFStack2 != null) { + return aFStack2; + } + if (aFStack3 != null) { + return aFStack3; + } + if (aFStack4 != null) { + return aFStack4; + } + if (aFStack5 != null) { + return aFStack5; + } + if (aFStack6 != null) { + return aFStack6; + } + return null; + } } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java index ae43abe3c5..553f3f7efa 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java @@ -182,6 +182,42 @@ public class MaterialUtils { return 0; } } + + public static int getVoltageForTier(final int aTier) { + if (aTier == 0) { + return 16; + } + if (aTier == 1) { + return 30; + } + if (aTier == 2) { + return 120; + } + if (aTier == 3) { + return 480; + } + if (aTier == 4) { + return 1600; + } + if (aTier == 5) { + return 6400; + } + if (aTier == 6) { + return 25000; + } + if (aTier == 7) { + return 100000; + } + if (aTier == 8) { + return 400000; + } + if (aTier == 9) { + return 1600000; + } + + + return 120; + } private static Materials getMaterialByName(String materialName) { @@ -202,7 +238,10 @@ public class MaterialUtils { public static String getMaterialName(Materials mat){ String mName; try { - mName = (String) FieldUtils.getDeclaredField(Materials.class, "mName", true).get(mat); + mName = (String) FieldUtils.getDeclaredField(Materials.class, "mDefaultLocalName", true).get(mat); + if (mName == null) { + mName = (String) FieldUtils.getDeclaredField(Materials.class, "mName", true).get(mat); + } } catch (IllegalArgumentException | IllegalAccessException e) { mName = mat.name(); |