diff options
Diffstat (limited to 'src/Java/gtPlusPlus/core')
24 files changed, 726 insertions, 240 deletions
diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java index 4bc5908f98..db9ad2264c 100644 --- a/src/Java/gtPlusPlus/core/block/ModBlocks.java +++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java @@ -55,7 +55,8 @@ public final class ModBlocks { public static Block blockCasingsMisc; public static Block blockCasings2Misc; public static Block blockCasings3Misc; - public static Block blockCasings4Misc; + public static Block blockCasings4Misc; + public static Block blockCasingsTieredGTPP; public static Block blockMetaTileEntity; public static Block blockHeliumGenerator; @@ -97,7 +98,6 @@ public final class ModBlocks { public static Block blockPooCollector; public static Block blockPestKiller; - public static GregtechMetaTieredCasingBlocks1 BlockTieredCasings1; public static void init() { Logger.INFO("Initializing Blocks."); diff --git a/src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java b/src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java index ed531cef2d..2210e68e8a 100644 --- a/src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java +++ b/src/Java/gtPlusPlus/core/block/general/antigrief/BlockWitherProof.java @@ -12,6 +12,8 @@ import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.boss.EntityDragon; import net.minecraft.entity.boss.EntityWither; import net.minecraft.entity.boss.IBossDisplayData; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -105,6 +107,60 @@ public class BlockWitherProof extends Block{ return false; } + @Override + public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { + super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); + } + + @Override + public float getPlayerRelativeBlockHardness(EntityPlayer aPlayer, World p_149737_2_, int p_149737_3_, int p_149737_4_, int p_149737_5_) { + if (aPlayer != null && aPlayer instanceof EntityPlayerMP) { + return 1f; + } + return -1f; + } + + @Override + public float getExplosionResistance(Entity p_149638_1_) { + return Float.MAX_VALUE; + } + + @Override + public void onBlockClicked(World p_149699_1_, int p_149699_2_, int p_149699_3_, int p_149699_4_, EntityPlayer p_149699_5_) { + super.onBlockClicked(p_149699_1_, p_149699_2_, p_149699_3_, p_149699_4_, p_149699_5_); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + if ((entity == null) || !entity.isEntityAlive()){ + return; + } + if ((entity instanceof EntityWither) || (entity instanceof EntityDragon) || (entity instanceof IBossDisplayData)){ + return; + } + else { + super.onEntityCollidedWithBlock(world, x, y, z, entity); + } + } + + @Override + public void harvestBlock(World p_149636_1_, EntityPlayer p_149636_2_, int p_149636_3_, int p_149636_4_, int p_149636_5_, int p_149636_6_) { + super.harvestBlock( p_149636_1_, p_149636_2_, p_149636_3_, p_149636_4_, p_149636_5_, p_149636_6_); + } + + @Override + public boolean canHarvestBlock(EntityPlayer player, int meta) { + if (player != null && player instanceof EntityPlayerMP) { + return true; + } + return super.canHarvestBlock(player, meta); + } + + @Override + public float getExplosionResistance(Entity par1Entity, World world, int x, int y, int z, double explosionX, double explosionY, double explosionZ) { + return Float.MAX_VALUE; + } + } diff --git a/src/Java/gtPlusPlus/core/commands/CommandEnableDebugWhileRunning.java b/src/Java/gtPlusPlus/core/commands/CommandEnableDebugWhileRunning.java index 5b9c17bacf..06b6f14822 100644 --- a/src/Java/gtPlusPlus/core/commands/CommandEnableDebugWhileRunning.java +++ b/src/Java/gtPlusPlus/core/commands/CommandEnableDebugWhileRunning.java @@ -20,92 +20,92 @@ public class CommandEnableDebugWhileRunning implements ICommand public CommandEnableDebugWhileRunning(){ this.aliases = new ArrayList<>(); + this.aliases.add("gtplusplus"); } @Override public int compareTo(final Object o){ - return 0; - + if (o instanceof Comparable<?>) { + @SuppressWarnings("unchecked") + Comparable<ICommand> a = (Comparable<ICommand>) o; + if (a.equals(this)) { + return 0; + } + else { + return -1; + } + } + return -1; } @Override public String getCommandName(){ - return "debugmodegtpp"; + return "gtpp"; } - - // Use '/debugmodegtpp' along with 'logging' or 'debug' to toggle Debug mode and Logging. + + // Use '/gtpp' along with 'logging' or 'debug' to toggle Debug mode and Logging. // Using nothing after the command toggles both to their opposite states respectively. @Override public String getCommandUsage(final ICommandSender var1){ - return "/debugmodegtpp"; - + return "/gtpp ?"; } @Override public List<String> getCommandAliases(){ return this.aliases; - } @Override public void processCommand(final ICommandSender S, final String[] argString){ - - if (argString == null || argString.length == 0 || argString.length > 1) { - Logger.INFO("Toggling Debug Mode & Logging."); + int aMaxArgumentsAllowed = 1; + + if ((argString == null || argString.length == 0 || argString.length > aMaxArgumentsAllowed) || argString[0].toLowerCase().equals("?")) { + Logger.INFO("Listing commands and their uses."); + final EntityPlayer P = CommandUtils.getPlayer(S); + AsmConfig.disableAllLogging = Utils.invertBoolean(AsmConfig.disableAllLogging); + PlayerUtils.messagePlayer(P, "The following are valid args for the '/gtpp' command:"); + PlayerUtils.messagePlayer(P, "? - This help command."); + PlayerUtils.messagePlayer(P, "logging - Toggles ALL GT++ logging for current session."); + PlayerUtils.messagePlayer(P, "debug - Toggles GT++ Debug Mode. Only use when advised, may break everything. (OP)"); + } + else if (argString[0].toLowerCase().equals("debug")) { + Logger.INFO("Toggling Debug Mode."); final EntityPlayer P = CommandUtils.getPlayer(S); if (PlayerUtils.isPlayerOP(P)) { - CORE.DEBUG = Utils.invertBoolean(CORE.DEBUG); - PlayerUtils.messagePlayer(P, "Toggled GT++ Debug Mode - Enabled: "+CORE.DEBUG); - AsmConfig.disableAllLogging = Utils.invertBoolean(AsmConfig.disableAllLogging); - PlayerUtils.messagePlayer(P, "Toggled GT++ Logging - Enabled: "+(!AsmConfig.disableAllLogging)); - } - } - else { - if (argString[0].toLowerCase().equals("debug")) { - Logger.INFO("Toggling Debug Mode."); - final EntityPlayer P = CommandUtils.getPlayer(S); - if (PlayerUtils.isPlayerOP(P)) { - CORE.DEBUG = Utils.invertBoolean(CORE.DEBUG); - PlayerUtils.messagePlayer(P, "Toggled GT++ Debug Mode - Enabled: "+CORE.DEBUG); - } - } - else if (argString[0].toLowerCase().equals("logging")) { - Logger.INFO("Toggling Logging."); - final EntityPlayer P = CommandUtils.getPlayer(S); - if (PlayerUtils.isPlayerOP(P)) { - AsmConfig.disableAllLogging = Utils.invertBoolean(AsmConfig.disableAllLogging); - PlayerUtils.messagePlayer(P, "Toggled GT++ Logging - Enabled: "+(!AsmConfig.disableAllLogging)); - } - } - else { - final EntityPlayer P = CommandUtils.getPlayer(S); - if (PlayerUtils.isPlayerOP(P)) { - PlayerUtils.messagePlayer(P, "Invalid command, use 'debug' or 'logging'"); - } + CORE.DEBUG = Utils.invertBoolean(CORE.DEBUG); + PlayerUtils.messagePlayer(P, "Toggled GT++ Debug Mode - Enabled: "+CORE.DEBUG); } } - - - + else if (argString[0].toLowerCase().equals("logging")) { + Logger.INFO("Toggling Logging."); + final EntityPlayer P = CommandUtils.getPlayer(S); + AsmConfig.disableAllLogging = Utils.invertBoolean(AsmConfig.disableAllLogging); + PlayerUtils.messagePlayer(P, "Toggled GT++ Logging - Enabled: "+(!AsmConfig.disableAllLogging)); + } + else { + final EntityPlayer P = CommandUtils.getPlayer(S); + PlayerUtils.messagePlayer(P, "Invalid command, use '?' as an argument for help.'"); + } + } @Override public boolean canCommandSenderUseCommand(final ICommandSender var1){ - if (var1 == null) { - return false; - } - final EntityPlayer P = CommandUtils.getPlayer(var1); - if (P != null && PlayerUtils.isPlayerOP(P)) { - return true; + if (var1 == null || CommandUtils.getPlayer(var1) == null) { + return false; } - return false; + return true; } @Override public List<?> addTabCompletionOptions(final ICommandSender var1, final String[] var2){ - return null; + ArrayList<String> aTabCompletes = new ArrayList<String>(); + aTabCompletes.add("?"); + aTabCompletes.add("logging"); + aTabCompletes.add("debug"); + return aTabCompletes; } @Override @@ -115,7 +115,7 @@ public class CommandEnableDebugWhileRunning implements ICommand } public boolean playerUsesCommand(final World W, final EntityPlayer P, final int cost){ - return true; + return true; } }
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/config/ConfigHandler.java b/src/Java/gtPlusPlus/core/config/ConfigHandler.java index ecaf031030..61e7045192 100644 --- a/src/Java/gtPlusPlus/core/config/ConfigHandler.java +++ b/src/Java/gtPlusPlus/core/config/ConfigHandler.java @@ -113,6 +113,9 @@ public class ConfigHandler { "gregtech", true, "Very basic automated cauldron for dust washing."); enableMachine_Pollution = config.getBoolean("enableMachinePollution", "gregtech", true, "Pollution Detector & Scrubbers."); + enableMachine_RF_Convetor = config.getBoolean("enableMachineRFConvetor", "gregtech", + true, "Converts RF to GTEU. Requires COFH-Core to be installed."); + // Multi machines enableMultiblock_AlloyBlastSmelter = config.getBoolean("enableMultiblockAlloyBlastSmelter", diff --git a/src/Java/gtPlusPlus/core/handler/BookHandler.java b/src/Java/gtPlusPlus/core/handler/BookHandler.java index 860946f513..d9d3efe680 100644 --- a/src/Java/gtPlusPlus/core/handler/BookHandler.java +++ b/src/Java/gtPlusPlus/core/handler/BookHandler.java @@ -125,7 +125,7 @@ public class BookHandler { "The Mode can be set by using a Screwdriver on the controller block. Each mode allows the use of Numbered Circuits, to allow a different machine 'type' for each input bus.", "[Metal Work] Mode A - Allows the multiblock to function as a Compressor, a Lathe or an Electro-Magnet. To allow a hatch to run in Compressor mode, insert a No. 20 circuit. For Lathe, use No. 21 and for Electro-Magnet use No. 22.", "[Fluid Work] Mode B - Allows the multiblock to function as a Fermenter, a Fluid Extractor or an Extractor. To allow a hatch to run in Fermenter mode, insert a No. 20 circuit. For Fluid Extractor, use No. 21 and for Extractor use No. 22.", - "[Misc. Work] Mode C - Allows the multiblock to function as a Laser Engraver, a Replicator or an Autoclave. To allow a hatch to run in Laser Engraver mode, insert a No. 20 circuit. For Autoclave, use No. 21 and for Replicator use No. 22. REPLICATOR DISABLED.", + "[Misc. Work] Mode C - Allows the multiblock to function as a Laser Engraver, an Autoclave or a Fluid Solidifier. To allow a hatch to run in Laser Engraver mode, insert a No. 20 circuit. For Autoclave, use No. 21 and for Solidifier use No. 22.", }); book_NuclearManual = writeBookTemplate( diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java index be02e352c7..d7c971e71f 100644 --- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java +++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java @@ -68,6 +68,7 @@ import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialCuttingF import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialElectrolyzer; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialExtruder; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialFishPond; +import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialAlloySmelter; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialFuelRefinery; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialGeneratorArray; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialMacerator; @@ -216,6 +217,7 @@ public class COMPAT_HANDLER { GregtechPowerBreakers.run(); GregtechFluidReactor.run(); GregtechAlgaeContent.run(); + GregtechIndustrialAlloySmelter.run(); //New Horizons Content NewHorizonsAccelerator.run(); diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index 8bfcfe2d70..354107147b 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -4,7 +4,6 @@ import static gtPlusPlus.core.creative.AddToCreativeTab.tabMisc; import static gtPlusPlus.core.lib.CORE.LOAD_ALL_CONTENT; import cpw.mods.fml.common.registry.GameRegistry; -import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.util.GT_OreDictUnificator; import gtPlusPlus.api.objects.Logger; @@ -14,7 +13,6 @@ import gtPlusPlus.core.common.compat.COMPAT_Baubles; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.item.base.BaseEuItem; import gtPlusPlus.core.item.base.BaseItemBackpack; -import gtPlusPlus.core.item.base.BaseItemBurnable; import gtPlusPlus.core.item.base.BaseItemComponent.ComponentTypes; import gtPlusPlus.core.item.base.BaseItemDamageable; import gtPlusPlus.core.item.base.BaseItemTCShard; @@ -55,7 +53,6 @@ import gtPlusPlus.core.item.general.ItemGenericToken; import gtPlusPlus.core.item.general.ItemGiantEgg; import gtPlusPlus.core.item.general.ItemHalfCompleteCasings; import gtPlusPlus.core.item.general.ItemLavaFilter; -import gtPlusPlus.core.item.general.RF2EU_Battery; import gtPlusPlus.core.item.general.books.ItemBaseBook; import gtPlusPlus.core.item.general.capture.ItemEntityCatcher; import gtPlusPlus.core.item.general.chassis.ItemBoilerChassis; @@ -97,6 +94,7 @@ import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.MaterialUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.everglades.GTplusplus_Everglades; +import gtPlusPlus.xmod.cofh.HANDLER_COFH; import gtPlusPlus.xmod.eio.material.MaterialEIO; import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechItems; import net.minecraft.item.EnumRarity; @@ -621,7 +619,7 @@ public final class ModItems { MaterialGenerator.generate(ALLOY.MARAGING350); MaterialGenerator.generate(ALLOY.AQUATIC_STEEL); - MaterialGenerator.generate(ALLOY.NITINOL_60); + MaterialGenerator.generate(ALLOY.NITINOL_60,true,false); //Composite Alloys MaterialGenerator.generate(ALLOY.STELLITE); @@ -1135,10 +1133,6 @@ public final class ModItems { if (LoadedMods.IndustrialCraft2|| LOAD_ALL_CONTENT){ Logger.INFO("IndustrialCraft2 Found - Loading Resources."); - if (LoadedMods.CoFHCore) { - RfEuBattery = new RF2EU_Battery(); - } - //Baubles Mod Test try { final Class<?> baublesTest = ReflectionUtils.getClass("baubles.api.IBauble"); @@ -1167,7 +1161,7 @@ public final class ModItems { //UtilsItems.generateSpawnEgg("ic2", "boatcarbon", Utils.generateSingularRandomHexValue(), Utils.generateSingularRandomHexValue()); - + HANDLER_COFH.initItems(); /* * Misc Items diff --git a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java index 8428328f37..981bfed479 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java @@ -272,6 +272,8 @@ public class CoalTar extends ItemPackage { recipePhthalicAcidToPhthalicAnhydride(); recipeEthylBenzineFuelsIntoHeavyFuel(); + + recipePhthalicAcidConversion(); //Burn the coal gas! GT_Values.RA.addFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellCoalGas", 1), null, 96, 1); @@ -282,6 +284,14 @@ public class CoalTar extends ItemPackage { return true; } + private void recipePhthalicAcidConversion() { + FluidStack aMyAcid = FluidUtils.getFluidStack(Phthalic_Acid, 500); + FluidStack aGtAcid = FluidUtils.getFluidStack("phtalicacid", 500); + if (aMyAcid != null && aGtAcid != null) { + CORE.RA.addDistilleryRecipe(CI.getNumberedBioCircuit(8), aMyAcid, aGtAcid, null, 50, 16, false); + } + } + @Override public void items() { //Phthalic_Acid = FluidUtils.generateFluidNonMolten("PhthalicAcid", "Phthalic Acid", 207, new short[]{210, 220, 210, 100}, null, null); @@ -347,7 +357,7 @@ public class CoalTar extends ItemPackage { Naphthalene = FluidUtils.generateFluidNonMolten("Naphthalene", "Naphthalene", 115, new short[]{210, 185, 135, 100}, null, null); // v - Oxidize with mercury and nitric acid //Create Phthalic Acid - Phthalic_Acid = FluidUtils.generateFluidNonMolten("PhthalicAcid", "Phthalic Acid", 207, new short[]{210, 220, 210, 100}, null, null); + Phthalic_Acid = FluidUtils.generateFluidNonMolten("PhthalicAcid", "Phtalic Acid", 207, new short[]{210, 220, 210, 100}, null, null); // v - Dehydrate at 180C+ //Create Phthalic Anhydride //ItemUtils.generateSpecialUseDusts("PhthalicAnhydride", "Phthalic Anhydride", "C6H4(CO)2O", Utils.rgbtoHexValue(175, 175, 175)); diff --git a/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java b/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java index 6e5b47041f..49d3303688 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java @@ -87,7 +87,7 @@ public class GenericChem extends ItemPackage { // Phenol Byproducts public Item PhenolicResins; //https://en.wikipedia.org/wiki/Phenol_formaldehyde_resin - public ItemGenericChemBase mGenericChemItem1; + public static ItemGenericChemBase mGenericChemItem1; @@ -112,6 +112,7 @@ public class GenericChem extends ItemPackage { public static ItemStack mOrangeCatalyst; public static ItemStack mPurpleCatalyst; public static ItemStack mBrownCatalyst; + public static ItemStack mPinkCatalyst; public void registerItemStacks() { @@ -124,6 +125,7 @@ public class GenericChem extends ItemPackage { mOrangeCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 3, 1); mPurpleCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 4, 1); mBrownCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 5, 1); + mPinkCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 6, 1); } @@ -135,6 +137,7 @@ public class GenericChem extends ItemPackage { ItemUtils.addItemToOreDictionary(mOrangeCatalyst, "catalystVanadiumPalladium"); ItemUtils.addItemToOreDictionary(mPurpleCatalyst, "catalystIridiumRuthenium"); ItemUtils.addItemToOreDictionary(mBrownCatalyst, "catalystNickelAluminium"); + ItemUtils.addItemToOreDictionary(mPinkCatalyst, "catalystPlatinumRhodium"); } @@ -206,6 +209,7 @@ public class GenericChem extends ItemPackage { recipeCatalystOrange(); recipeCatalystPurple(); recipeCatalystBrown(); + recipeCatalystPink(); recipeNitroBenzene(); recipeAniline(); @@ -224,7 +228,7 @@ public class GenericChem extends ItemPackage { private void recipeCyclohexane() { - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierTwoChip(), ItemUtils.getSimpleStack(mBrownCatalyst, 0) @@ -247,7 +251,7 @@ public class GenericChem extends ItemPackage { private void recipeCyclohexanone() { - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierTwoChip(), ItemUtils.getSimpleStack(mBlueCatalyst, 0) @@ -266,7 +270,7 @@ public class GenericChem extends ItemPackage { 120, 2); - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierTwoChip(), }, @@ -293,7 +297,7 @@ public class GenericChem extends ItemPackage { // Assembly Recipe CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { getTierOneChip(), - ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10), + CI.getEmptyCatalyst(10), ELEMENT.getInstance().IRON.getDust(2), ELEMENT.getInstance().COPPER.getDust(2), }, @@ -308,7 +312,7 @@ public class GenericChem extends ItemPackage { // Assembly Recipe CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { getTierThreeChip(), - ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10), + CI.getEmptyCatalyst(10), ELEMENT.getInstance().TUNGSTEN.getDust(4), ELEMENT.getInstance().NICKEL.getDust(4), }, @@ -323,7 +327,7 @@ public class GenericChem extends ItemPackage { // Assembly Recipe CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { getTierTwoChip(), - ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10), + CI.getEmptyCatalyst(10), ELEMENT.getInstance().COBALT.getDust(3), ELEMENT.getInstance().TITANIUM.getDust(3), }, @@ -338,7 +342,7 @@ public class GenericChem extends ItemPackage { // Assembly Recipe CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { getTierTwoChip(), - ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10), + CI.getEmptyCatalyst(10), ELEMENT.getInstance().VANADIUM.getDust(5), ELEMENT.getInstance().PALLADIUM.getDust(5), }, @@ -353,7 +357,7 @@ public class GenericChem extends ItemPackage { // Assembly Recipe CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { getTierFourChip(), - ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10), + CI.getEmptyCatalyst(10), ELEMENT.getInstance().IRIDIUM.getDust(6), ELEMENT.getInstance().RUTHENIUM.getDust(6), }, @@ -368,7 +372,7 @@ public class GenericChem extends ItemPackage { // Assembly Recipe CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { getTierOneChip(), - ItemUtils.getSimpleStack(AgriculturalChem.mCatalystCarrier, 10), + CI.getEmptyCatalyst(10), ELEMENT.getInstance().NICKEL.getDust(4), ELEMENT.getInstance().ALUMINIUM.getDust(4), }, @@ -379,10 +383,25 @@ public class GenericChem extends ItemPackage { } + private void recipeCatalystPink() { + // Assembly Recipe + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + getTierThreeChip(), + CI.getEmptyCatalyst(10), + ELEMENT.getInstance().PLATINUM.getDust(4), + ELEMENT.getInstance().RHODIUM.getDust(4), + }, + GT_Values.NF, + ItemUtils.getSimpleStack(mPinkCatalyst, 10), + 30 * 20, + 2000); + + } + private void recipeCadaverineAndPutrescine() { // Basic Recipe - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierOneChip(), ItemUtils.getSimpleStack(Items.rotten_flesh, 64) @@ -402,7 +421,7 @@ public class GenericChem extends ItemPackage { 1); // Advanced Recipe - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierTwoChip(), ItemUtils.getSimpleStack(Items.rotten_flesh, 128), @@ -426,7 +445,7 @@ public class GenericChem extends ItemPackage { private void recipeAniline() { - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierThreeChip(), ItemUtils.getSimpleStack(mBlueCatalyst, 0) @@ -449,7 +468,7 @@ public class GenericChem extends ItemPackage { private void recipeNitroBenzene() { - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierThreeChip(), }, @@ -474,7 +493,7 @@ public class GenericChem extends ItemPackage { private void recipe2Ethylanthraquinone() { - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { CI.getNumberedCircuit(4), ItemUtils.getItemStackOfAmountFromOreDict("dustPhthalicAnhydride", 4), @@ -504,7 +523,7 @@ public class GenericChem extends ItemPackage { private void recipe2Ethylanthrahydroquinone() { - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { CI.getNumberedCircuit(4), ItemUtils.getSimpleStack(mOrangeCatalyst, 0), @@ -553,7 +572,7 @@ public class GenericChem extends ItemPackage { private void recipeLithiumHydroperoxide() { - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { CI.getNumberedCircuit(4), ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumHydroxide", 7), @@ -587,7 +606,7 @@ public class GenericChem extends ItemPackage { private void recipeHydrogenPeroxide() { - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { CI.getNumberedCircuit(4), }, diff --git a/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java b/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java index 8a003ec7aa..208fecd57c 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java @@ -19,7 +19,7 @@ public class ItemGenericChemBase extends Item { final protected IIcon base[]; - final private int aMetaSize = 6; + final private int aMetaSize = 7; /* * 0 - Red Metal Catalyst //FeCu @@ -28,6 +28,7 @@ public class ItemGenericChemBase extends Item { * 3 - Orange Metal Catalyst //Vanadium Pd * 4 - Purple Metal Catalyst //IrIdium Ruthenium * 5 - Brown Metal Catalyst //NiAl + * 6 - Pink Metal Catalyst //PtRh * */ diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java index 2a267dc16d..34d7475df3 100644 --- a/src/Java/gtPlusPlus/core/lib/CORE.java +++ b/src/Java/gtPlusPlus/core/lib/CORE.java @@ -237,6 +237,7 @@ public class CORE { public static boolean enableMachine_ComponentAssemblers = false; public static boolean enableCustom_Pipes = true; public static boolean enableCustom_Cables = true; + public static boolean enableMachine_RF_Convetor = false; //Multiblocks public static boolean enableMultiblock_AlloyBlastSmelter = true; diff --git a/src/Java/gtPlusPlus/core/lib/LoadedMods.java b/src/Java/gtPlusPlus/core/lib/LoadedMods.java index d96875b811..329cf634b6 100644 --- a/src/Java/gtPlusPlus/core/lib/LoadedMods.java +++ b/src/Java/gtPlusPlus/core/lib/LoadedMods.java @@ -2,6 +2,8 @@ package gtPlusPlus.core.lib; import static gtPlusPlus.core.lib.CORE.*; +import java.util.HashMap; + import cpw.mods.fml.common.Loader; import gtPlusPlus.api.objects.Logger; @@ -50,6 +52,7 @@ public class LoadedMods { public static boolean Mekanism = false; public static boolean RedTech = false; //RedMage's Mod public static boolean TecTech = false; //Technus' Mod + public static boolean KekzTech = false; //KekzDealers' Mod public static boolean TiCon = false; public static boolean StevesCarts = false; public static boolean Witchery = false; @@ -63,7 +66,7 @@ public class LoadedMods { @SuppressWarnings("deprecation") public static void checkLoaded(){ Logger.INFO("Looking for optional mod prereqs."); - if (Loader.isModLoaded("gregtech") ){ + if (isModLoaded("gregtech") ){ Gregtech = true; Logger.INFO("Components enabled for: Gregtech"); if (Gregtech){ @@ -80,140 +83,140 @@ public class LoadedMods { totalMods++; } - if (Loader.isModLoaded("dreamcraft")){ + if (isModLoaded("dreamcraft")){ DreamCraft = true; GTNH = true; Logger.INFO("Components enabled for: DreamCraft"); Logger.INFO("Components enabled for: GT: New Horizons"); totalMods++; } - if (Loader.isModLoaded("beyondrealitycore")){ + if (isModLoaded("beyondrealitycore")){ BeyondRealityCore = true; BRC = true; Logger.INFO("Components enabled for: Beyond Reality"); totalMods++; } - if (Loader.isModLoaded("PlayerAPI")){ + if (isModLoaded("PlayerAPI")){ PlayerAPI = true; Logger.INFO("Components enabled for: PlayerAPI"); totalMods++; } - if (Loader.isModLoaded("berriespp")) { + if (isModLoaded("berriespp")) { CropsPlusPlus = true; Logger.INFO("Components enabled for: Crops++"); totalMods++; } - if (Loader.isModLoaded("xreliquary")) { + if (isModLoaded("xreliquary")) { Reliquary = true; Logger.INFO("Components enabled for: Reliquary"); totalMods++; } - if (Loader.isModLoaded("TConstruct")){ + if (isModLoaded("TConstruct")){ TiCon = true; Logger.INFO("Components enabled for: Tinkers Construct"); totalMods++; } - if (Loader.isModLoaded("BuildCraft")){ + if (isModLoaded("BuildCraft")){ BuildCraft = true; Logger.INFO("Components enabled for: BuildCraft"); totalMods++; } - if ((Loader.isModLoaded("EnderIO")) && !ConfigSwitches.disableEnderIOIntegration){ + if ((isModLoaded("EnderIO")) && !ConfigSwitches.disableEnderIOIntegration){ EnderIO = true; Logger.INFO("Components enabled for: EnderIO"); totalMods++; } - if (Loader.isModLoaded("BigReactors")){ + if (isModLoaded("BigReactors")){ Big_Reactors = true; Logger.INFO("Components enabled for: Big Reactors"); totalMods++; } - if (Loader.isModLoaded("IC2")){ + if (isModLoaded("IC2")){ IndustrialCraft2 = true; Logger.INFO("Components enabled for: IndustrialCraft2"); totalMods++; } - if (Loader.isModLoaded("IC2-Classic-Spmod")){ + if (isModLoaded("IC2-Classic-Spmod")){ IndustrialCraft2Classic = true; Logger.INFO("Components enabled for: IndustrialCraft2-Classic"); totalMods++; } - if (Loader.isModLoaded("simplyjetpacks")){ + if (isModLoaded("simplyjetpacks")){ Simply_Jetpacks = true; Logger.INFO("Components enabled for: Simply Jetpacks"); totalMods++; } - if (Loader.isModLoaded("rftools")){ + if (isModLoaded("rftools")){ RFTools = true; Logger.INFO("Components enabled for: RFTools"); totalMods++; } - if (Loader.isModLoaded("StevesCarts")){ + if (isModLoaded("StevesCarts")){ StevesCarts = true; Logger.INFO("Components enabled for: StevesCarts"); totalMods++; } - if (Loader.isModLoaded("OpenBlocks")){ + if (isModLoaded("OpenBlocks")){ OpenBlocks = true; Logger.INFO("Components enabled for: OpenBlocks"); totalMods++; } - if (Loader.isModLoaded("Thaumcraft")){ + if (isModLoaded("Thaumcraft")){ Thaumcraft = true; Logger.INFO("Components enabled for: Thaumcraft"); totalMods++; } - if (Loader.isModLoaded("BiomesOPlenty")){ + if (isModLoaded("BiomesOPlenty")){ BiomesOPlenty = true; Logger.INFO("Components enabled for: BiomesOPlenty"); totalMods++; } - if (Loader.isModLoaded("ExtraUtilities")){ + if (isModLoaded("ExtraUtilities")){ Extra_Utils = true; Logger.INFO("Components enabled for: Extra_Utils"); totalMods++; } - if (Loader.isModLoaded("harvestcraft")){ + if (isModLoaded("harvestcraft")){ PamsHarvestcraft = true; Logger.INFO("Components enabled for: PamsHarvestcraft"); totalMods++; } - if (Loader.isModLoaded("PneumaticCraft")){ + if (isModLoaded("PneumaticCraft")){ PneumaticCraft = true; Logger.INFO("Components enabled for: PneumaticCraft"); totalMods++; } - if (Loader.isModLoaded("MorePlanet")){ + if (isModLoaded("MorePlanet")){ MorePlanets = true; Logger.INFO("Components enabled for: MorePlanets"); totalMods++; } - if (Loader.isModLoaded("ForbiddenMagic")){ + if (isModLoaded("ForbiddenMagic")){ ForbiddenMagic = true; Logger.INFO("Components enabled for: ForbiddenMagic"); totalMods++; } - if (Loader.isModLoaded("CompactWindmills")){ + if (isModLoaded("CompactWindmills")){ CompactWindmills = true; Logger.INFO("Components enabled for: CompactWindmills"); totalMods++; } - if (Loader.isModLoaded("Railcraft")){ + if (isModLoaded("Railcraft")){ Railcraft = true; Logger.INFO("Components enabled for: Railcraft"); totalMods++; } - if (Loader.isModLoaded("Waila")){ + if (isModLoaded("Waila")){ Waila = true; Logger.INFO("Components enabled for: WAILA"); totalMods++; } - if (Loader.isModLoaded("Mekanism")){ + if (isModLoaded("Mekanism")){ Mekanism = true; Logger.INFO("Components enabled for: Mekanism - This feature is not configurable and balances Mekanism to suit GT."); totalMods++; } - if (Loader.isModLoaded("Growthcraft")){ + if (isModLoaded("Growthcraft")){ Logger.INFO("Growthcraft Version: "+getModVersion("Growthcraft")); if (getModVersion("Growthcraft").equals("1.7.10-2.3.1")){ //Load Growthcraft Compat @@ -226,67 +229,67 @@ public class LoadedMods { Logger.INFO("Growthcraft found, but the version was too new. I will update GC support eventually."); } } - if (Loader.isModLoaded("CoFHCore")){ + if (isModLoaded("CoFHCore")){ CoFHCore = true; Logger.INFO("Components enabled for: CoFHCore"); totalMods++; } - if (Loader.isModLoaded("Forestry")){ + if (isModLoaded("Forestry")){ Forestry = true; Logger.INFO("Components enabled for: Forestry"); totalMods++; } - if (Loader.isModLoaded("MagicBees")){ + if (isModLoaded("MagicBees")){ MagicBees = true; Logger.INFO("Components enabled for: MagicBees"); totalMods++; } - if (Loader.isModLoaded("psychedelicraft")){ + if (isModLoaded("psychedelicraft")){ Psychedelicraft = true; Logger.INFO("Components enabled for: Psychedelicraft"); totalMods++; } - if (Loader.isModLoaded("ImmersiveEngineering")){ + if (isModLoaded("ImmersiveEngineering")){ ImmersiveEngineering = true; Logger.INFO("Components enabled for: ImmersiveEngineering"); totalMods++; } - if (Loader.isModLoaded("ExtraBees")){ + if (isModLoaded("ExtraBees")){ ExtraBees = true; Logger.INFO("Components enabled for: ExtraBees"); totalMods++; } - if (Loader.isModLoaded("ThermalFoundation") == false){ + if (isModLoaded("ThermalFoundation") == false){ ThermalFoundation = false; Logger.INFO("Components enabled for: ThermalFoundation - This feature will disable itself if you add TF."); totalMods++; } - else if (Loader.isModLoaded("ThermalFoundation")){ + else if (isModLoaded("ThermalFoundation")){ ThermalFoundation = true; Logger.INFO("Components disabled for: ThermalFoundation - This feature will enable itself if you remove TF."); //totalMods++; } - if (Loader.isModLoaded("ihl")){ + if (isModLoaded("ihl")){ IHL = true; Logger.INFO("Components enabled for: IHL"); totalMods++; } - if (Loader.isModLoaded("Baubles")){ + if (isModLoaded("Baubles")){ Baubles = true; Logger.INFO("Components enabled for: Baubles"); totalMods++; } - if (Loader.isModLoaded("GalacticraftCore")){ + if (isModLoaded("GalacticraftCore")){ GalacticraftCore = true; Logger.INFO("Components enabled for: Galacticraft Core"); totalMods++; } - if (Loader.isModLoaded("OpenComputers")){ + if (isModLoaded("OpenComputers")){ OpenComputers = true; Logger.INFO("Components enabled for: OpenComputers"); totalMods++; } - if (Loader.isModLoaded("computronics")){ + if (isModLoaded("computronics")){ Computronics = true; Logger.INFO("Components disabled for: Computronics - This feature will enable itself if you remove Computronics."); totalMods++; @@ -294,17 +297,22 @@ public class LoadedMods { else { Logger.INFO("Components enabled for: Computronics - This feature will disable itself if you add Computronics."); } - if (Loader.isModLoaded("GTRedtech")){ + if (isModLoaded("GTRedtech")){ RedTech = true; Logger.INFO("Components enabled for: GTRedtech"); totalMods++; } - if (Loader.isModLoaded("tectech")){ + if (isModLoaded("tectech")){ TecTech = true; Logger.INFO("Components enabled for: TecTech"); totalMods++; + } + if (isModLoaded("kekztech")){ + KekzTech = true; + Logger.INFO("Components enabled for: KekzTech"); + totalMods++; } - if (Loader.isModLoaded("witchery")){ + if (isModLoaded("witchery")){ Witchery = true; Logger.INFO("Components enabled for: Witchery"); totalMods++; @@ -318,5 +326,17 @@ public class LoadedMods { final String ver = cpw.mods.fml.common.FMLCommonHandler.instance().findContainerFor(modName).getVersion(); return ver; } + + private static final HashMap<String, Boolean> mLoadedModCache = new HashMap<String, Boolean>(); + + public static boolean isModLoaded(String aModName) { + Boolean aResult = mLoadedModCache.get(aModName); + if (aResult == null) { + boolean aTemp = Loader.isModLoaded(aModName); + mLoadedModCache.put(aModName, aTemp); + aResult = aTemp; + } + return aResult; + } } diff --git a/src/Java/gtPlusPlus/core/material/ALLOY.java b/src/Java/gtPlusPlus/core/material/ALLOY.java index 95e3631aaf..4e28b4a428 100644 --- a/src/Java/gtPlusPlus/core/material/ALLOY.java +++ b/src/Java/gtPlusPlus/core/material/ALLOY.java @@ -775,7 +775,7 @@ public final class ALLOY { "Pikyonium 64B", //Material Name MaterialState.SOLID, //State new short[]{52, 103, 186, 0}, //Material Colour - 7850, //Melting Point in C + 6850, //Melting Point in C 11765, //Boiling Point in C -1, -1, diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java index cf2242067f..f1676689e7 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -17,6 +17,7 @@ import gregtech.api.util.ThermalFuel; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.item.chemistry.AgriculturalChem; import gtPlusPlus.core.item.chemistry.GenericChem; import gtPlusPlus.core.item.chemistry.IonParticles; import gtPlusPlus.core.item.chemistry.RocketFuels; @@ -39,6 +40,7 @@ import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.MaterialUtils; import gtPlusPlus.core.util.reflect.AddGregtechRecipe; import gtPlusPlus.everglades.dimension.Dimension_Everglades; +import gtPlusPlus.plugin.agrichem.BioRecipes; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -91,6 +93,7 @@ public class RECIPES_GREGTECH { latheRecipes(); vacuumFreezerRecipes(); fluidheaterRecipes(); + chemplantRecipes(); /** @@ -107,6 +110,30 @@ public class RECIPES_GREGTECH { addFuels(); } + private static void chemplantRecipes() { + + // Advanced method for Nitric Acid Production + /* CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(17), + CI.getPinkCatalyst(0), + }, + new FluidStack[] { + FluidUtils.getLava(10000), + FluidUtils.getDistilledWater(5000) + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack("nitricacid", 2000), + }, + 10 * 20, + 480, + 3);*/ + + } + private static void fluidheaterRecipes() { GT_Values.RA.addFluidHeaterRecipe(CI.getNumberedCircuit(20), FluidUtils.getWater(1000), FluidUtils.getHotWater(1000), 30, 30); @@ -511,6 +538,30 @@ public class RECIPES_GREGTECH { private static void laserEngraverRecipes() { + // Laser Sensors and Emitters together + GregtechItemList[] aTransParts = new GregtechItemList[] { + GregtechItemList.TransmissionComponent_ULV, + GregtechItemList.TransmissionComponent_LV, + GregtechItemList.TransmissionComponent_MV, + GregtechItemList.TransmissionComponent_HV, + GregtechItemList.TransmissionComponent_EV, + GregtechItemList.TransmissionComponent_IV, + GregtechItemList.TransmissionComponent_LuV, + GregtechItemList.TransmissionComponent_ZPM, + GregtechItemList.TransmissionComponent_UV, + GregtechItemList.TransmissionComponent_MAX, + }; + for (int i=0;i<10;i++) { + GT_Values.RA.addLaserEngraverRecipe( + CI.getEmitter(i, 2), + CI.getSensor(i, 2), + aTransParts[i].get(1), + 20 * 5, + MaterialUtils.getVoltageForTier(i)); + } + + + GT_Values.RA.addLaserEngraverRecipe( GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Tungsten, 6L), GregtechItemList.Laser_Lens_Special.get(0), @@ -647,6 +698,18 @@ public class RECIPES_GREGTECH { 20 * 120, 30720); + //NITINOL_60 + CORE.RA.addBlastSmelterRecipe( + new ItemStack[] { + ELEMENT.getInstance().TITANIUM.getDust(3), + ELEMENT.getInstance().NICKEL.getDust(2) + }, + ALLOY.NITINOL_60.getFluid(5 * 144), + 0, + 20 * 75, + 7680); + + @@ -835,13 +898,13 @@ public class RECIPES_GREGTECH { //Gelid Cryotheum CORE.RA.addFluidExtractionRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustCryotheum", 1), FluidUtils.getFluidStack("cryotheum", 250), 200, 240); - + //Ender Fluid CORE.RA.addFluidExtractionRecipe(ItemUtils.getSimpleStack(Items.ender_pearl), FluidUtils.getFluidStack("ender", 250), 100, 30); - + //Blazing Pyrotheum CORE.RA.addFluidExtractionRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustPyrotheum", 1), FluidUtils.getFluidStack("pyrotheum", 250), 200, 240); - + } @@ -1556,10 +1619,10 @@ public class RECIPES_GREGTECH { GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Invar, 8L), GT_OreDictUnificator.get(OrePrefixes.ring, Materials.Invar, 4L), GregtechItemList.Fluid_Cell_144L.get(1L, new Object[0]), 75, 32); } } - + if (LoadedMods.Baubles) { - + // Turbine Housing Research Page @@ -1588,8 +1651,8 @@ public class RECIPES_GREGTECH { ItemDummyResearch.getResearchStack(ASSEMBLY_LINE_RESEARCH.RESEARCH_9_CLOAKING, 1), 20 * 60 * 10, (int) GT_Values.V[7]); - - + + // Supreme Pizza Gloves CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { ItemUtils.getGregtechCircuit(19), @@ -1752,27 +1815,7 @@ public class RECIPES_GREGTECH { } - private static void centrifugeRecipes() { - - //Try use all woods found, fix/add methane extraction. - ArrayList<ItemStack> aLogData = OreDictionary.getOres("logWood"); - ArrayList<ItemStack> aRubberLogs = OreDictionary.getOres("logRubber"); - if (!aLogData.isEmpty() && !aRubberLogs.isEmpty()) { - Logger.INFO("Fixing Methane output of centrifuged logs."); - //First Check to see if it's a rubber log - for (ItemStack stack : aLogData) { - if (aRubberLogs.contains(stack)) { - if (GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, stack), null, null, Materials.Methane.getGas(60L), ItemList.IC2_Resin.get(1L, new Object[0]), GT_ModHandler.getIC2Item("plantBall", 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), null, null, new int[] { 5000, 3750, 2500, 2500 }, 200, 20)) { - Logger.INFO("Added rubber plant based methane extraction for "+ItemUtils.getItemName(stack)); - } - } - else { - if (GT_Values.RA.addCentrifugeRecipe(GT_Utility.copyAmount(1L, stack), null, null, Materials.Methane.getGas(60L), GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, GT_Values.NI, null, 200, 20)) { - Logger.INFO("Added methane extraction for "+ItemUtils.getItemName(stack)); - } - } - } - } + private static void centrifugeRecipes() { GT_Values.RA.addCentrifugeRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustThorium", 8), GT_Values.NI, GT_Values.NF, GT_Values.NF, ELEMENT.getInstance().THORIUM232.getDust(2), diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java index 8225a40c29..2165f27ec7 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java @@ -22,6 +22,7 @@ import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.everglades.dimension.Dimension_Everglades; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy; import gtPlusPlus.xmod.gregtech.common.covers.CoverManager; import gtPlusPlus.xmod.gregtech.common.items.MetaCustomCoverItem; import net.minecraft.block.Block; @@ -252,7 +253,7 @@ public class RECIPES_Machines { CI.getTieredComponentOfMaterial(Materials.Steel, OrePrefixes.gearGt, 6), CI.getTieredComponentOfMaterial(Materials.Aluminium, OrePrefixes.plate, 32), CI.getTieredComponentOfMaterial(Materials.CobaltBrass, OrePrefixes.dust, 16), - ALLOY.STAINLESS_STEEL.getFrameBox(4), + CI.getTieredComponent(OrePrefixes.frameGt, 2, 4), }, ALLOY.STEEL.getFluid(2 * (144 * 4)), GregtechItemList.ChemicalPlant_Controller.get(1), @@ -292,7 +293,7 @@ public class RECIPES_Machines { private static void distillus() { - CORE.RA.addFluidReactorRecipe( + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { CI.getNumberedBioCircuit(19), ItemList.Distillation_Tower.get(2), @@ -337,7 +338,7 @@ public class RECIPES_Machines { CI.getElectricPiston(i, 10), CI.getFieldGenerator(i + 1, 6), CI.getPlate(i, 16), - CI.getEmitter(i - 1, 24), + CI.getTransmissionComponent(i - 1, 8), CI.getTieredComponent(OrePrefixes.cableGt08, i, 16) }, ALLOY.EGLIN_STEEL.getFluid(i * (144 * 4)), @@ -393,14 +394,14 @@ public class RECIPES_Machines { for (int i=0;i<10;i++) { CORE.RA.addSixSlotAssemblingRecipe( new ItemStack[] { - CI.getNumberedBioCircuit(22), + CI.getNumberedBioCircuit(20), CI.getTieredMachineCasing(i), CI.getPlate(i, 8), CI.getGear(i, 2), CI.getTieredComponent(OrePrefixes.cableGt02, i, 4), CI.getTieredComponent(OrePrefixes.circuit, i, 2) }, - CI.getTieredFluid(i, 144 * i * 2), + CI.getAlternativeTieredFluid(i, 144 * i * 2), aHulls[i].get(1), 20 * 20, MaterialUtils.getVoltageForTier(i)); @@ -540,13 +541,15 @@ public class RECIPES_Machines { 20 * 30, 30); + ItemStack aFluidRegulator1 = ItemUtils.getItemListObject("FluidRegulator_MV", "Pump_HV", GTNH ? 4 : 2); + ItemStack aFluidRegulator2 = ItemUtils.getItemListObject("FluidRegulator_IV", "Pump_LuV", GTNH ? 4 : 2); + //Poo Collector CORE.RA.addSixSlotAssemblingRecipe( new ItemStack[] { CI.machineHull_MV, - CI.getTieredComponent(OrePrefixes.circuit, 2, GTNH ? 4 : 2), + aFluidRegulator1, CI.getTieredComponent(OrePrefixes.pipeMedium, 2, GTNH ? 4 : 2), - CI.getElectricPump(2, GTNH ? 4 : 2), ALLOY.EGLIN_STEEL.getPlate(GTNH ? 8 : 4), ALLOY.POTIN.getScrew(GTNH ? 12 : 6) }, @@ -560,9 +563,8 @@ public class RECIPES_Machines { new ItemStack[] { CI.getTieredMachineHull(-1), ItemUtils.getSimpleStack(ModBlocks.blockPooCollector), - CI.getTieredComponent(OrePrefixes.circuit, 5, GTNH ? 8 : 4), + aFluidRegulator2, CI.getTieredComponent(OrePrefixes.pipeHuge, 6, GTNH ? 8 : 4), - CI.getElectricPump(5, GTNH ? 12 : 6), CI.getTieredComponent(OrePrefixes.screw, 6, GTNH ? 32 : 16) }, CI.getAlternativeTieredFluid(5, 144 * 9), @@ -603,6 +605,16 @@ public class RECIPES_Machines { plateEnergeticAlloy, pipeLargeCopper, plateEnergeticAlloy, RECIPE_SteamCondenser); } + + + //Steam Condenser + if (LoadedMods.CoFHCore && CORE.ConfigSwitches.enableMachine_RF_Convetor){ + RecipeUtils.addShapedGregtechRecipe( + CI.getPlate(4, 1), CI.getTieredCircuitOreDictName(5), CI.getPlate(4, 1), + CI.getTransmissionComponent(3, 1), CI.getTieredGTPPMachineCasing(4, 1), CI.getTransmissionComponent(3, 1), + CI.getPlate(4, 1), plateEnergeticAlloy, CI.getPlate(4, 1), + GregtechItemList.Energy_Buffer_RF_Convertor.get(1)); + } if (CORE.ConfigSwitches.enableMultiblock_IronBlastFurnace){ @@ -886,6 +898,7 @@ public class RECIPES_Machines { "plateDoubleGrisium", "rotorGrisium", "plateDoubleGrisium", RECIPE_IndustrialMultiTankController); } + //TODO //Semi-Fluid Generators ItemStack mSemiFluidgen = ItemUtils.getItemStackFromFQRN("IC2:blockGenerator:7", 1); @@ -1485,8 +1498,7 @@ public class RECIPES_Machines { GregtechItemList.Casing_Refinery_Structural.get(4), ItemUtils.getSimpleStack(ModItems.itemCircuitLFTR, GTNH ? 2 : 1), CI.getTieredComponent(OrePrefixes.cableGt08, GTNH ? 7 : 6, GTNH ? 32 : 16), - CI.getEmitter(GTNH ? 6 : 5, 2), - CI.getSensor(GTNH ? 6 : 5, 2), + CI.getTransmissionComponent(GTNH ? 6 : 5, 2), GregtechItemList.Gregtech_Computer_Cube.get(1), }, CI.getTieredFluid(7, 144 * (GTNH ? 32 : 8)), GregtechItemList.GT4_Multi_Crafter.get(1), @@ -2175,8 +2187,7 @@ public class RECIPES_Machines { int aTier = (i + 1); ItemStack[] aInputs = new ItemStack[] { CI.getTieredMachineHull(i, 1 * aCostMultiplier), - CI.getEmitter(i, 2 * aCostMultiplier), - CI.getSensor(i, 2 * aCostMultiplier), + CI.getTransmissionComponent(i, 2 * aCostMultiplier), CI.getFieldGenerator(i, 1 * aCostMultiplier), CI.getTieredComponent(OrePrefixes.plate, aTier, 4 * aCostMultiplier), CI.getTieredComponent(OrePrefixes.circuit, aTier, 2 * aCostMultiplier), @@ -2196,9 +2207,8 @@ public class RECIPES_Machines { CORE.RA.addSixSlotAssemblingRecipe( new ItemStack[] { CI.getTieredMachineHull(-1, 1 * aCostMultiplier), - CI.getEmitter(2, 2 * aCostMultiplier), + CI.getTransmissionComponent(2, 2 * aCostMultiplier), CI.getElectricPiston(4, 2 * aCostMultiplier), - CI.getSensor(4, 1 * aCostMultiplier), CI.getTieredComponent(OrePrefixes.plate, 5, 4 * aCostMultiplier), CI.getTieredComponent(OrePrefixes.pipeSmall, 4, 1 * aCostMultiplier), }, diff --git a/src/Java/gtPlusPlus/core/recipe/common/CI.java b/src/Java/gtPlusPlus/core/recipe/common/CI.java index 6b8f992266..1d3d386da3 100644 --- a/src/Java/gtPlusPlus/core/recipe/common/CI.java +++ b/src/Java/gtPlusPlus/core/recipe/common/CI.java @@ -7,6 +7,7 @@ import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.item.chemistry.AgriculturalChem; +import gtPlusPlus.core.item.chemistry.GenericChem; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.material.ALLOY; @@ -564,7 +565,7 @@ public class CI { private static final Material[] aMaterial_Secondary = new Material[] { ALLOY.STEEL, ALLOY.SILICON_CARBIDE, - ALLOY.TUNGSTEN_CARBIDE, + ALLOY.BABBIT_ALLOY, ALLOY.INCONEL_690, ALLOY.STELLITE, ALLOY.ARCANITE, @@ -579,7 +580,7 @@ public class CI { private static final Material[] aMaterial_Tertiary = new Material[] { ELEMENT.getInstance().LEAD, ELEMENT.getInstance().ALUMINIUM, - ALLOY.STAINLESS_STEEL, + ELEMENT.STANDALONE.BLACK_METAL, ELEMENT.getInstance().TUNGSTEN, ALLOY.HASTELLOY_N, ALLOY.ENERGYCRYSTAL, @@ -1264,4 +1265,96 @@ public class CI { return ItemUtils.getOrePrefixStack(aPrefix, aMaterial, aAmount); } + public static ItemStack getTransmissionComponent(int aTier, int aAmount) { + GregtechItemList[] aTransParts = new GregtechItemList[] { + GregtechItemList.TransmissionComponent_ULV, + GregtechItemList.TransmissionComponent_LV, + GregtechItemList.TransmissionComponent_MV, + GregtechItemList.TransmissionComponent_HV, + GregtechItemList.TransmissionComponent_EV, + GregtechItemList.TransmissionComponent_IV, + GregtechItemList.TransmissionComponent_LuV, + GregtechItemList.TransmissionComponent_ZPM, + GregtechItemList.TransmissionComponent_UV, + GregtechItemList.TransmissionComponent_MAX, + }; + return aTransParts[aTier].get(aAmount); + } + + public static ItemStack getEmptyCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(AgriculturalChem.mAgrichemItem1, 13, aAmount); + } + + /** + * Aluminium + Silver Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getGreenCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(AgriculturalChem.mAgrichemItem1, 14, aAmount); + } + + /** + * Iron + Copper Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getRedCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 0, aAmount); + } + + /** + * Tungsten + Nickel Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getYellowCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 1, aAmount); + } + + /** + * Cobalt + Titanium Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getBlueCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 2, aAmount); + } + + /** + * Vanadium + Palladium Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getOrangeCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 3, aAmount); + } + + /** + * Iridium + Ruthenium Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getPurpleCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 4, aAmount); + } + + /** + * Aluminium + Nickel Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getBrownCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 5, aAmount); + } + + /** + * Platinum + Rhodium Catalyst + * @param aAmount - Stacksize + * @return - A Catalyst stack of given size + */ + public static ItemStack getPinkCatalyst(int aAmount) { + return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 6, aAmount); + } + } diff --git a/src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java b/src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java index 6cd13dc209..add55b8d27 100644 --- a/src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java +++ b/src/Java/gtPlusPlus/core/slots/SlotChemicalPlantInput.java @@ -20,9 +20,9 @@ public class SlotChemicalPlantInput extends Slot { } public static boolean isItemValidForChemicalPlantSlot(ItemStack aStack) { - boolean validItem = Gregtech_Recipe_Map.sFluidChemicalReactorRecipes.containsInput(aStack); + boolean validItem = Gregtech_Recipe_Map.sChemicalPlantRecipes.containsInput(aStack); if (!validItem) { - for (Recipe_GT f : Gregtech_Recipe_Map.sFluidChemicalReactorRecipes.mRecipeList) { + for (Recipe_GT f : Gregtech_Recipe_Map.sChemicalPlantRecipes.mRecipeList) { if (f.mFluidInputs.length > 0) { for (FluidStack g : f.mFluidInputs) { if (g != null) { diff --git a/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java b/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java index 3e96220995..6f5bb5b453 100644 --- a/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java +++ b/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java @@ -10,6 +10,7 @@ import java.util.Set; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; public class ArrayUtils { @@ -88,5 +89,14 @@ public class ArrayUtils { return org.apache.commons.lang3.ArrayUtils.toString(aArray); } + public static <T> Object[] getArrayFromArrayList(ArrayList<T> aArrayList) { + Object[] aGenericArray = new Object[aArrayList.size()]; + int aIndex = 0; + for (T object : aArrayList) { + aGenericArray[aIndex++] = object; + } + return aGenericArray; + } + } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/HazmatUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/HazmatUtils.java index d69dd5d66e..be57853dda 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/HazmatUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/HazmatUtils.java @@ -18,6 +18,7 @@ import gtPlusPlus.GTplusplus; import gtPlusPlus.GTplusplus.INIT_PHASE; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.Utils; import ic2.core.item.armor.ItemArmorHazmat; import ic2.core.item.armor.ItemArmorNanoSuit; @@ -35,6 +36,38 @@ public class HazmatUtils { private static boolean mInit = false; private static HazmatUtils mInstance; + + private static final String[] mDefaultHazmat = new String[] { + "IC2:itemArmorNanoHelmet:27", + "IC2:itemArmorNanoChestplate:27", + "IC2:itemArmorNanoLegs:27", + "IC2:itemArmorNanoBoots:27", + + "IC2:itemArmorQuantumHelmet:27", + "IC2:itemArmorQuantumChestplate:27", + "IC2:itemArmorQuantumLegs:27", + "IC2:itemArmorQuantumBoots:27", + }; + + + private static final String[] mGravisuit = new String[] { + "GraviSuite:advNanoChestPlate:27", + "GraviSuite:graviChestPlate:27", + }; + private static final String[] mElectroMagicTools = new String[] { + "EMT:NanosuitGogglesRevealing:27", + "EMT:NanoBootsTraveller:27", + "EMT:NanosuitWing:27", + "EMT:itemArmorQuantumChestplate:27", + "EMT:QuantumGogglesRevealing:27", + "EMT:QuantumBootsTraveller:27", + "EMT:QuantumWing:27", + }; + private static final String[] mAdvancedSolarPanels = new String[] { + "AdvancedSolarPanel:advanced_solar_helmet:27", + "AdvancedSolarPanel:hybrid_solar_helmet:27", + "AdvancedSolarPanel:ultimate_solar_helmet:27", + }; public static void init() { if (mInit) { @@ -49,19 +82,36 @@ public class HazmatUtils { sHazmatList.add(GT_ModHandler.getIC2Item("hazmatBoots", 1L, 32767)); // Make Nano a hazmat suit - addProtection(ItemUtils.getItemStackFromFQRN("IC2:itemArmorNanoHelmet:27", 1)); - addProtection(ItemUtils.getItemStackFromFQRN("IC2:itemArmorNanoChestplate:27", 1)); - addProtection(ItemUtils.getItemStackFromFQRN("IC2:itemArmorNanoLegs:27", 1)); - addProtection(ItemUtils.getItemStackFromFQRN("IC2:itemArmorNanoBoots:27", 1)); - - Logger.INFO("[Hazmat] Registered Nano as hazmat gear."); - - // Make Quantum a hazmat suit - addProtection(ItemUtils.getItemStackFromFQRN("IC2:itemArmorQuantumHelmet:27", 1)); - addProtection(ItemUtils.getItemStackFromFQRN("IC2:itemArmorQuantumChestplate:27", 1)); - addProtection(ItemUtils.getItemStackFromFQRN("IC2:itemArmorQuantumLegs:27", 1)); - addProtection(ItemUtils.getItemStackFromFQRN("IC2:itemArmorQuantumBoots:27", 1)); - Logger.INFO("[Hazmat] Registered Quantum as hazmat gear."); + // Make Quantum a hazmat suit + + + if (LoadedMods.IndustrialCraft2 || LoadedMods.IndustrialCraft2Classic) { + for (String aItemName : mDefaultHazmat) { + addProtection(ItemUtils.getItemStackFromFQRN(aItemName, 1)); + } + Logger.INFO("[Hazmat] Registered IC2 Items as hazmat gear."); + } + + if (LoadedMods.isModLoaded("EMT")) { + for (String aItemName : mElectroMagicTools) { + addProtection(ItemUtils.getItemStackFromFQRN(aItemName, 1)); + } + Logger.INFO("[Hazmat] Registered EMT Items as hazmat gear."); + } + + if (LoadedMods.isModLoaded("GraviSuite")) { + for (String aItemName : mGravisuit) { + addProtection(ItemUtils.getItemStackFromFQRN(aItemName, 1)); + } + Logger.INFO("[Hazmat] Registered Gravisuit Items as hazmat gear."); + } + + if (LoadedMods.isModLoaded("AdvancedSolarPanel")) { + for (String aItemName : mAdvancedSolarPanels) { + addProtection(ItemUtils.getItemStackFromFQRN(aItemName, 1)); + } + Logger.INFO("[Hazmat] Registered Adv. Solar Items as hazmat gear."); + } Utils.registerEvent(mInstance); Logger.INFO("[Hazmat] Registered Tooltip handler for hazmat gear."); diff --git a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java index cb490203df..d7d611a1e4 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java @@ -25,11 +25,14 @@ import gtPlusPlus.core.item.base.dusts.BaseItemDustUnique; import gtPlusPlus.core.item.base.dusts.decimal.BaseItemCentidust; import gtPlusPlus.core.item.base.dusts.decimal.BaseItemDecidust; import gtPlusPlus.core.item.base.plates.BaseItemPlate_OLD; +import gtPlusPlus.core.item.chemistry.AgriculturalChem; +import gtPlusPlus.core.item.chemistry.GenericChem; import gtPlusPlus.core.item.tool.staballoy.MultiPickaxeBase; import gtPlusPlus.core.item.tool.staballoy.MultiSpadeBase; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; @@ -39,6 +42,7 @@ import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration; import net.minecraft.block.Block; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentData; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; @@ -100,6 +104,11 @@ public class ItemUtils { return y; } + public static ItemStack getWildcardStack(final ItemStack x) { + final ItemStack y = ItemUtils.simpleMetaStack(x, WILDCARD_VALUE, 1); + return y; + } + public static ItemStack getIC2Cell(final String S) { final ItemStack moreTemp = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell" + S, 1); @@ -154,13 +163,20 @@ public class ItemUtils { } } - public static void addItemToOreDictionary(final ItemStack stack, final String oreDictName) { + public static void addItemToOreDictionary(ItemStack stack, final String oreDictName, boolean useWildcardMeta) { + if (useWildcardMeta) { + stack = ItemUtils.getWildcardStack(stack); + } try { - GT_OreDictUnificator.registerOre(oreDictName, stack); + OreDictionary.registerOre(oreDictName, stack); } catch (final NullPointerException e) { - Logger.ERROR(stack.getDisplayName() + " not registered. [NULL]"); + Logger.ERROR(ItemUtils.getItemName(stack) + " not registered. [NULL]"); } } + + public static void addItemToOreDictionary(final ItemStack stack, final String oreDictName) { + addItemToOreDictionary(stack, oreDictName, false); + } public static ItemStack getItemStackWithMeta(final boolean MOD, final String FQRN, final String itemName, final int meta, final int itemstackSize) { @@ -896,46 +912,10 @@ public class ItemUtils { return CORE.burnables.add(new Pair<Integer, ItemStack>(burn, aBurnable)); } - /** - * Quick Block Name Lookup that is friendly to servers and locale. - */ - private static volatile Map<String, String> mLocaleCache = new HashMap<String, String>(); - public static String getLocalizedNameOfBlock(BlockPos pos) { Block block = pos.world.getBlock(pos.xPos, pos.yPos, pos.zPos); int metaData = pos.world.getBlockMetadata(pos.xPos, pos.yPos, pos.zPos); - return getLocalizedNameOfBlock(block, metaData); - } - - public synchronized static String getLocalizedNameOfBlock(Block block, int meta) { - if (block == null || meta < 0) { - return "Bad Block"; - } - String mCacheKey = block.getUnlocalizedName() + ":" + meta; - if (mLocaleCache.containsKey(mCacheKey)) { - // Recache the key if it's invalid. - if (mLocaleCache.get(mCacheKey).toLowerCase().contains(".name")) { - mLocaleCache.remove(mCacheKey); - String mNew = ItemUtils.simpleMetaStack(block, meta, 1).getDisplayName(); - //Logger.INFO("Re-caching "+mNew+" into locale cache."); - mLocaleCache.put(mCacheKey, mNew); - } - //Logger.INFO("Returning Cached Value."); - return mLocaleCache.get(mCacheKey); - } else { - Item item = Item.getItemFromBlock(block); - if (item == null) { - return "Bad Item"; - } - String unlocalizedName = item.getUnlocalizedName(new ItemStack(block, 1, meta)); - String blockName = StatCollector.translateToLocal(unlocalizedName + ".name"); - if (blockName.toLowerCase().contains(".name")) { - blockName = ItemUtils.simpleMetaStack(block, meta, 1).getDisplayName(); - } - mLocaleCache.put(mCacheKey, blockName); - //Logger.INFO("Cached New Value."); - return blockName; - } + return LangUtils.getLocalizedNameOfBlock(block, metaData); } public static boolean checkForInvalidItems(ItemStack mInput) { @@ -1255,5 +1235,83 @@ public class ItemUtils { } return getNullStack(); } + + public static ItemStack getItemListObject(String aObjectFromExperimentalName, String aReplacementName, int aAmount) { + ItemList aItemListObject = getItemListObject(aObjectFromExperimentalName, aReplacementName); + if (aItemListObject == ItemList.NULL || aItemListObject == null) { + return null; + } + else { + return aItemListObject.get(aAmount); + } + } + + public static ItemStack getItemListObject(ItemList aItemListObject, int aAmount) { + if (aItemListObject == ItemList.NULL || aItemListObject == null) { + return null; + } + else { + return aItemListObject.get(aAmount); + } + } + + public static ItemList getItemListObject(String aObjectFromExperimentalName, String aReplacementName) { + ItemList aVal = ItemList.valueOf(aObjectFromExperimentalName); + if (aVal != null) { + return aVal; + } + else { + aVal = ItemList.valueOf(aReplacementName); + if (aVal != null) { + return aVal; + } + else { + return ItemList.NULL; + } + } + } + + public static boolean isControlCircuit(ItemStack aStack) { + if (aStack != null) { + Item aItem = aStack.getItem(); + if (aItem == CI.getNumberedBioCircuit(0).getItem() || aItem == CI.getNumberedCircuit(0).getItem()) { + return true; + } + } + return false; + } + + public static boolean isCatalyst(ItemStack aStack) { + + if (GT_Utility.areStacksEqual(aStack, GenericChem.mBlueCatalyst, true)) { + return true; + } + if (GT_Utility.areStacksEqual(aStack, GenericChem.mBrownCatalyst, true)) { + return true; + } + if (GT_Utility.areStacksEqual(aStack, GenericChem.mOrangeCatalyst, true)) { + return true; + } + if (GT_Utility.areStacksEqual(aStack, GenericChem.mPurpleCatalyst, true)) { + return true; + } + if (GT_Utility.areStacksEqual(aStack, GenericChem.mRedCatalyst, true)) { + return true; + } + if (GT_Utility.areStacksEqual(aStack, GenericChem.mYellowCatalyst, true)) { + return true; + } + if (GT_Utility.areStacksEqual(aStack, GenericChem.mPinkCatalyst, true)) { + return true; + } + if (GT_Utility.areStacksEqual(aStack, AgriculturalChem.mGreenCatalyst, true)) { + return true; + } + return false; + } + + public static String getLocalizedNameOfBlock(Block aBlock, int aMeta) { + return LangUtils.getLocalizedNameOfBlock(aBlock, aMeta); + } } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java index 01d0efac54..0b24e962af 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/LangUtils.java @@ -7,7 +7,13 @@ import java.util.Properties; import cpw.mods.fml.common.registry.LanguageRegistry; import gregtech.api.util.GT_LanguageManager; +import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.util.reflect.ReflectionUtils; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.StatCollector; public class LangUtils { @@ -15,7 +21,7 @@ public class LangUtils { public static boolean rewriteEntryForLanguageRegistry(String aKey, String aNewValue){ return rewriteEntryForLanguageRegistry("en_US", aKey, aNewValue); } - + @SuppressWarnings("unchecked") public static boolean rewriteEntryForLanguageRegistry(String aLang, String aKey, String aNewValue){ LanguageRegistry aInstance = LanguageRegistry.instance(); @@ -43,7 +49,7 @@ public class LangUtils { } } catch (IllegalArgumentException | IllegalAccessException e) { - + } } return false; @@ -52,5 +58,93 @@ public class LangUtils { public static String trans(String aNr, String aEnglish) { return GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_GTPP_" + aNr, aEnglish, false); } - + + + + /** + * Quick Block Name Lookup that is friendly to servers and locale. + */ + private static final Map<String, String> mLocaleCache = new HashMap<String, String>(); + + public static String getLocalizedNameOfBlock(Block aBlock, int aMeta) { + if (aBlock != null) { + return getLocalizedNameOfItemStack(ItemUtils.simpleMetaStack(aBlock, aMeta, 1)); + } + return "Bad Block Name"; + } + + public static String getLocalizedNameOfItem(Item aItem, int aMeta) { + if (aItem != null) { + return getLocalizedNameOfItemStack(ItemUtils.simpleMetaStack(aItem, aMeta, 1)); + } + return "Bad Item Name"; + } + + public static String getLocalizedNameOfItemStack(ItemStack aStack) { + String aUnlocalized; + if (aStack != null) { + aUnlocalized = ItemUtils.getUnlocalizedItemName(aStack)+"."+aStack.getItemDamage()+".name"; + if (aUnlocalized == null || aUnlocalized.length() <= 0) { + return "Bad Locale Data"; + } + String mCacheKey = aUnlocalized; + if (mLocaleCache.containsKey(mCacheKey)) { + // Recache the key if it's invalid. + if (mLocaleCache.get(mCacheKey).toLowerCase().contains(".name") || mLocaleCache.get(mCacheKey).toLowerCase().contains("|")) { + mLocaleCache.remove(mCacheKey); + String mNew; + try { + mNew = ("" + StatCollector + .translateToLocal(aStack.getItem().getUnlocalizedNameInefficiently(aStack) + ".name")) + .trim(); + if (aStack.hasTagCompound()) { + if (aStack.stackTagCompound != null && aStack.stackTagCompound.hasKey("display", 10)) { + NBTTagCompound nbttagcompound = aStack.stackTagCompound.getCompoundTag("display"); + + if (nbttagcompound.hasKey("Name", 8)) { + mNew = nbttagcompound.getString("Name"); + } + } + } + } catch (Throwable t) { + mNew = "ERROR - Empty Stack"; + } + Logger.INFO("Re-caching "+mNew+" into locale cache. Key: "+mCacheKey); + mLocaleCache.put(mCacheKey, mNew); + } + Logger.INFO("Returning Cached Value. Key: "+mCacheKey); + return mLocaleCache.get(mCacheKey); + } + else { + String unlocalizedName = aStack.getItem().getUnlocalizedName(aStack); + Logger.INFO("Cached New Value. UnlocalName: "+unlocalizedName); + String blockName = StatCollector.translateToLocal(unlocalizedName + ".name"); + Logger.INFO("Cached New Value. TranslatedName: "+unlocalizedName); + if (blockName.toLowerCase().contains(".name") || blockName.toLowerCase().contains("|")) { + try { + blockName = ("" + StatCollector + .translateToLocal(aStack.getItem().getUnlocalizedNameInefficiently(aStack) + ".name")) + .trim(); + if (aStack.hasTagCompound()) { + if (aStack.stackTagCompound != null && aStack.stackTagCompound.hasKey("display", 10)) { + NBTTagCompound nbttagcompound = aStack.stackTagCompound.getCompoundTag("display"); + if (nbttagcompound.hasKey("Name", 8)) { + blockName = nbttagcompound.getString("Name"); + } + } + } + } catch (Throwable t) { + blockName = "ERROR - Empty Stack"; + } + } + mLocaleCache.put(mCacheKey, blockName); + Logger.INFO("Cached New Value. Key: "+mCacheKey); + return blockName; + } + + } + return "Bad ItemStack Name"; + } + + } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java index 9c623bb9be..2108087542 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java @@ -352,7 +352,8 @@ public class MaterialUtils { } if (g == null) { Logger.INFO("Failed finding material '"+aMaterialName+"' & fallback '"+aFallbackMaterialName+"', returning _NULL."); - g = Materials._NULL; + CORE.crash(); + //g = Materials._NULL; } return g; } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java index 66abbded15..b0623d429d 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java @@ -464,4 +464,15 @@ public class NBTUtils { return ReflectionUtils.setField(aEntity, "customEntityData", aTag); } + public static boolean hasTagCompound(ItemStack aStack) { + return aStack.hasTagCompound(); + } + + public static void createEmptyTagCompound(ItemStack aStack) { + if (!hasTagCompound(aStack)) { + NBTTagCompound aTag = new NBTTagCompound(); + aStack.setTagCompound(aTag); + } + } + } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java index 2fb7344a28..9a8a8e691c 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java @@ -1,10 +1,13 @@ package gtPlusPlus.core.util.minecraft; -import java.util.*; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; - +import gtPlusPlus.core.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -13,8 +16,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.server.MinecraftServer; import net.minecraft.world.World; -import gtPlusPlus.core.util.Utils; - public class PlayerUtils { public static void messagePlayer(final EntityPlayer P, final String S){ @@ -100,18 +101,27 @@ public class PlayerUtils { return null; } - @SideOnly(Side.SERVER) public static ItemStack getItemStackInPlayersHand(final EntityPlayer player){ ItemStack heldItem = null; - try{heldItem = player.getHeldItem(); - }catch(final NullPointerException e){ + try{ + heldItem = player.getHeldItem(); + } + catch(final NullPointerException e){ e.printStackTrace(); return null; } if (heldItem != null){ return heldItem; } - return null; + else { + if (Utils.isClient()) { + heldItem = player.getItemInUse(); + } + else { + heldItem = player.getCurrentEquippedItem(); + } + } + return heldItem; } @SideOnly(Side.CLIENT) |