diff options
Diffstat (limited to 'src/Java/gtPlusPlus/core')
37 files changed, 2338 insertions, 920 deletions
diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java index db9ad2264c..a8536683b5 100644 --- a/src/Java/gtPlusPlus/core/block/ModBlocks.java +++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java @@ -29,7 +29,6 @@ import gtPlusPlus.core.block.machine.Machine_WorkbenchAdvanced; import gtPlusPlus.core.block.machine.bedrock.Mining_Head_Fake; import gtPlusPlus.core.block.machine.bedrock.Mining_Pipe_Fake; import gtPlusPlus.core.fluids.FluidRegistryHandler; -import gtPlusPlus.xmod.gregtech.common.blocks.GregtechMetaTieredCasingBlocks1; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraftforge.fluids.Fluid; @@ -56,7 +55,9 @@ public final class ModBlocks { public static Block blockCasings2Misc; public static Block blockCasings3Misc; public static Block blockCasings4Misc; + public static Block blockCasings5Misc; public static Block blockCasingsTieredGTPP; + public static Block blockSpecialMultiCasings; public static Block blockMetaTileEntity; public static Block blockHeliumGenerator; diff --git a/src/Java/gtPlusPlus/core/commands/CommandEnableDebugWhileRunning.java b/src/Java/gtPlusPlus/core/commands/CommandEnableDebugWhileRunning.java index 06b6f14822..903730f767 100644 --- a/src/Java/gtPlusPlus/core/commands/CommandEnableDebugWhileRunning.java +++ b/src/Java/gtPlusPlus/core/commands/CommandEnableDebugWhileRunning.java @@ -2,15 +2,22 @@ package gtPlusPlus.core.commands; import java.util.ArrayList; import java.util.List; +import java.util.Map; import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.NBTUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; +import gtPlusPlus.core.util.reflect.ReflectionUtils; +import gtPlusPlus.preloader.CORE_Preloader; import gtPlusPlus.preloader.asm.AsmConfig; import net.minecraft.command.ICommand; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -74,8 +81,8 @@ public class CommandEnableDebugWhileRunning implements ICommand 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); + CORE_Preloader.DEBUG_MODE = Utils.invertBoolean(CORE_Preloader.DEBUG_MODE); + PlayerUtils.messagePlayer(P, "Toggled GT++ Debug Mode - Enabled: "+CORE_Preloader.DEBUG_MODE); } } else if (argString[0].toLowerCase().equals("logging")) { @@ -84,6 +91,28 @@ public class CommandEnableDebugWhileRunning implements ICommand AsmConfig.disableAllLogging = Utils.invertBoolean(AsmConfig.disableAllLogging); PlayerUtils.messagePlayer(P, "Toggled GT++ Logging - Enabled: "+(!AsmConfig.disableAllLogging)); } + /* else if (argString[0].toLowerCase().equals("test")) { + ItemStack mSemiFluidgen = ItemUtils.simpleMetaStack("IC2:blockGenerator", 7, 1); + final EntityPlayer P = CommandUtils.getPlayer(S); + if(mSemiFluidgen != null) { + PlayerUtils.messagePlayer(P, ItemUtils.getItemName(mSemiFluidgen)); + } + }*/ + else if (argString[0].toLowerCase().equals("hand")) { + final EntityPlayer P = CommandUtils.getPlayer(S); + if (P != null) { + ItemStack aHeldItem = PlayerUtils.getItemStackInPlayersHand(P); + if (aHeldItem != null) { + String aItemDisplayName = ItemUtils.getItemName(aHeldItem); + String aItemUnlocalName = ItemUtils.getUnlocalizedItemName(aHeldItem); + String aNbtString = tryIterateNBTData(aHeldItem); + PlayerUtils.messagePlayer(P, "["+aItemUnlocalName+"]"+"["+aItemDisplayName+"] "+aNbtString); + } + else { + PlayerUtils.messagePlayer(P, "No item held."); + } + } + } else { final EntityPlayer P = CommandUtils.getPlayer(S); PlayerUtils.messagePlayer(P, "Invalid command, use '?' as an argument for help.'"); @@ -117,5 +146,35 @@ public class CommandEnableDebugWhileRunning implements ICommand public boolean playerUsesCommand(final World W, final EntityPlayer P, final int cost){ return true; } + + public static String tryIterateNBTData(ItemStack aStack) { + try { + AutoMap<String> aItemDataTags = new AutoMap<String>(); + NBTTagCompound aNBT = NBTUtils.getNBT(aStack); + if (aNBT != null) { + if (!aNBT.hasNoTags()) { + Map<?, ?> mInternalMap = ReflectionUtils.getField(aNBT, "tagMap"); + if (mInternalMap != null) { + for (Map.Entry<?, ?> e : mInternalMap.entrySet()) { + aItemDataTags.add(e.getKey().toString()+":"+e.getValue()); + } + int a = 0; + String data = ""; + for (String tag : aItemDataTags) { + data += (tag+","); + } + if (data.endsWith(",")) { + data = data.substring(0, data.length()-2); + } + return data; + } else { + Logger.INFO("Data map reflected from NBTTagCompound was not valid."); + return "Bad NBT"; + } + } + } + } catch (Throwable t) {} + return ""; + } }
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/common/CommonProxy.java b/src/Java/gtPlusPlus/core/common/CommonProxy.java index 71a7b37cfc..0aeff5ae16 100644 --- a/src/Java/gtPlusPlus/core/common/CommonProxy.java +++ b/src/Java/gtPlusPlus/core/common/CommonProxy.java @@ -1,7 +1,5 @@ package gtPlusPlus.core.common; -import static gtPlusPlus.core.lib.CORE.DEBUG; - import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLLoadCompleteEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; @@ -49,8 +47,10 @@ import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.player.PlayerCache; import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.plugin.villagers.block.BlockGenericSpawner; +import gtPlusPlus.preloader.CORE_Preloader; import gtPlusPlus.xmod.eio.handler.HandlerTooltip_EIO; import gtPlusPlus.xmod.galacticraft.handler.HandlerTooltip_GC; +import gtPlusPlus.xmod.gregtech.HANDLER_GT; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import gtPlusPlus.xmod.gregtech.api.util.SpecialBehaviourTooltipHandler; import net.minecraft.enchantment.Enchantment; @@ -80,15 +80,19 @@ public class CommonProxy { LoadedMods.checkLoaded(); Logger.INFO("Making sure we're ready to party!"); - if (!DEBUG) { + if (!CORE_Preloader.DEBUG_MODE) { Logger.WARNING("Development mode not enabled."); - } else if (DEBUG) { + } else if (CORE_Preloader.DEBUG_MODE) { Logger.INFO("Development mode enabled."); } else { Logger.WARNING("Development mode not set."); } AddToCreativeTab.initialiseTabs(); + + if (LoadedMods.Gregtech) { + HANDLER_GT.addNewOrePrefixes(); + } // Moved from Init after Debug Loading. // 29/01/18 - Alkalus @@ -110,7 +114,7 @@ public class CommonProxy { Logger.INFO("[Proxy] Calling Render registrator."); registerRenderThings(); - if (!mFluidsGenerated && ItemList.valueOf("Cell_Empty").hasBeenSet()) { + if (!mFluidsGenerated && ItemList.Cell_Empty.hasBeenSet()) { Material.generateQueuedFluids(); mFluidsGenerated = true; } @@ -119,14 +123,14 @@ public class CommonProxy { public void init(final FMLInitializationEvent e) { // Debug Loading - if (CORE.DEBUG) { + if (CORE_Preloader.DEBUG_MODE) { DEBUG_INIT.registerHandlers(); } registerCustomItemsForMaterials(); ModBlocks.blockCustomMobSpawner = new BlockGenericSpawner(); - if (!mFluidsGenerated && ItemList.valueOf("Cell_Empty").hasBeenSet()) { + if (!mFluidsGenerated && ItemList.Cell_Empty.hasBeenSet()) { Material.generateQueuedFluids(); mFluidsGenerated = true; } else { diff --git a/src/Java/gtPlusPlus/core/config/ConfigHandler.java b/src/Java/gtPlusPlus/core/config/ConfigHandler.java index 61e7045192..0760dfc2cc 100644 --- a/src/Java/gtPlusPlus/core/config/ConfigHandler.java +++ b/src/Java/gtPlusPlus/core/config/ConfigHandler.java @@ -22,8 +22,8 @@ public class ConfigHandler { "Stops mod checking for updates."); // Debug - DEBUG = config.getBoolean("debugMode", "debug", false, - "Enables all sorts of debug logging. (Don't use unless told to, breaks other things.)"); + /* DEBUG = config.getBoolean("debugMode", "debug", false, + "Enables all sorts of debug logging. (Don't use unless told to, breaks other things.)");*/ disableEnderIOIntegration = config.getBoolean("disableEnderIO", "debug", false, "Disables EnderIO Integration."); disableEnderIOIngotTooltips = config.getBoolean("disableEnderIOIngotTooltips", "debug", false, diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java index d7c971e71f..21f3e1d6cd 100644 --- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java +++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java @@ -83,6 +83,7 @@ import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialTreeFarm import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialWashPlant; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIndustrialWiremill; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIronBlastFurnace; +import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechIsaMill; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechLFTR; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechLargeTurbinesAndHeatExchanger; import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechMiniRaFusion; @@ -218,6 +219,7 @@ public class COMPAT_HANDLER { GregtechFluidReactor.run(); GregtechAlgaeContent.run(); GregtechIndustrialAlloySmelter.run(); + GregtechIsaMill.run(); //New Horizons Content NewHorizonsAccelerator.run(); diff --git a/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java b/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java index ee6c15fa67..b3738e6ea2 100644 --- a/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java +++ b/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java @@ -16,17 +16,28 @@ import net.minecraft.util.ChunkCoordinates; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.item.ModItems; import gtPlusPlus.core.lib.LoadedMods; +import gtPlusPlus.core.material.nuclear.FLUORIDES; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.event.entity.living.LivingDropsEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.oredict.OreDictionary; +import thaumcraft.common.lib.FakeThaumcraftPlayer; public class BlockEventHandler { public static ArrayList<ItemStack> oreLimestone; public static ArrayList<ItemStack> blockLimestone; public static ItemStack fluoriteOre; + + public static void init() { + //Set Variables for Fluorite Block handling + Logger.INFO("Setting some Variables for the block break event handler."); + BlockEventHandler.oreLimestone = OreDictionary.getOres("oreLimestone"); + BlockEventHandler.blockLimestone = OreDictionary.getOres("limestone"); + BlockEventHandler.fluoriteOre = FLUORIDES.FLUORITE.getOre(1); + } @SubscribeEvent public void onBlockLeftClicked(final PlayerInteractEvent event) { @@ -90,7 +101,7 @@ public class BlockEventHandler { ChunkCoordinates aChunkLocation = p.getPlayerCoordinates(); // Cache Fake Player - if (p instanceof FakePlayer + if (p instanceof FakePlayer || p instanceof FakeThaumcraftPlayer || (event.harvester.getCommandSenderName() == null || event.harvester.getCommandSenderName().length() <= 0) || (p.isEntityInvulnerable() && !p.canCommandSenderUseCommand(0, "") diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index 354107147b..fd2b98c7be 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -35,11 +35,13 @@ import gtPlusPlus.core.item.chemistry.AgriculturalChem; import gtPlusPlus.core.item.chemistry.CoalTar; import gtPlusPlus.core.item.chemistry.GenericChem; import gtPlusPlus.core.item.chemistry.IonParticles; +import gtPlusPlus.core.item.chemistry.MilledOreProcessing; import gtPlusPlus.core.item.chemistry.NuclearChem; import gtPlusPlus.core.item.chemistry.RocketFuels; import gtPlusPlus.core.item.chemistry.StandardBaseParticles; import gtPlusPlus.core.item.crafting.ItemDummyResearch; import gtPlusPlus.core.item.effects.RarityUncommon; +import gtPlusPlus.core.item.food.BaseItemMetaFood; import gtPlusPlus.core.item.general.BaseItemGrindle; import gtPlusPlus.core.item.general.BufferCore; import gtPlusPlus.core.item.general.ItemAirFilter; @@ -94,6 +96,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.preloader.CORE_Preloader; import gtPlusPlus.xmod.cofh.HANDLER_COFH; import gtPlusPlus.xmod.eio.material.MaterialEIO; import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechItems; @@ -367,6 +370,8 @@ public final class ModItems { public static CoreItem itemExquisiteIndustrialDiamond; + public static BaseItemMetaFood itemMetaFood; + static { Logger.INFO("Items!"); //Default item used when recipes fail, handy for debugging. Let's make sure they exist when this class is called upon. @@ -384,7 +389,7 @@ public final class ModItems { itemDummyResearch = new ItemDummyResearch(); //Debug Loading - if (CORE.DEBUG){ + if (CORE_Preloader.DEBUG_MODE){ DEBUG_INIT.registerItems(); } @@ -996,6 +1001,8 @@ public final class ModItems { //General Chemistry new GenericChem(); + // Milled Ore Processing + new MilledOreProcessing(); //Bombs itemBombCasing = new CoreItem("itemBombCasing", "Bomb Casing", tabMisc); diff --git a/src/Java/gtPlusPlus/core/item/base/ore/BaseItemMilledOre.java b/src/Java/gtPlusPlus/core/item/base/ore/BaseItemMilledOre.java new file mode 100644 index 0000000000..4edf4ae75d --- /dev/null +++ b/src/Java/gtPlusPlus/core/item/base/ore/BaseItemMilledOre.java @@ -0,0 +1,25 @@ +package gtPlusPlus.core.item.base.ore; + +import gregtech.api.enums.Materials; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.material.Material; +import gtPlusPlus.core.util.minecraft.MaterialUtils; +import net.minecraft.item.Item; + +public class BaseItemMilledOre extends BaseOreComponent{ + + public BaseItemMilledOre(final Material material, int aMaterialEU) { + super(material, BaseOreComponent.ComponentTypes.MILLED); + CORE.RA.addMillingRecipe(material, aMaterialEU); + } + + public static Item generate(Materials aMat, int aMaterialEU) { + return generate(MaterialUtils.generateMaterialFromGtENUM(aMat), aMaterialEU); + } + + public static Item generate(Material aMat, int aMaterialEU) { + return new BaseItemMilledOre(aMat, aMaterialEU); + } + + +} diff --git a/src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java b/src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java index c5b7191ddd..356fdac24e 100644 --- a/src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java +++ b/src/Java/gtPlusPlus/core/item/base/ore/BaseOreComponent.java @@ -18,6 +18,7 @@ import gtPlusPlus.core.material.state.MaterialState; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.EntityUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.xmod.gregtech.api.enums.CustomOrePrefix; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -48,7 +49,6 @@ public class BaseOreComponent extends Item{ this.setCreativeTab(AddToCreativeTab.tabMisc); this.setUnlocalizedName(this.unlocalName); this.setMaxStackSize(64); - //this.setTextureName(this.getCorrectTextures()); this.componentColour = material.getRgbAsHex(); GameRegistry.registerItem(this, this.unlocalName); registerComponent(); @@ -59,9 +59,9 @@ public class BaseOreComponent extends Item{ //ThaumcraftUtils.addAspectToItem(ItemUtils.getSimpleStack(this), TC_Aspect_Wrapper.generate(TC_Aspects.RADIO.mAspect), componentMaterial.vRadiationLevel); } } - + } - + public boolean registerComponent() { Logger.MATERIALS("Attempting to register "+this.getUnlocalizedName()+"."); if (this.componentMaterial == null) { @@ -92,7 +92,10 @@ public class BaseOreComponent extends Item{ else if (componentType == ComponentTypes.DUSTPURE) { aKey = OrePrefixes.dustPure.name(); } - + else if (componentType == ComponentTypes.MILLED) { + aKey = CustomOrePrefix.milled.get().name(); + } + ItemStack x = aMap.get(aKey); if (x == null) { aMap.put(aKey, ItemUtils.getSimpleStack(this)); @@ -107,13 +110,6 @@ public class BaseOreComponent extends Item{ } } - public String getCorrectTextures(){ - if (!CORE.ConfigSwitches.useGregtechTextures){ - return CORE.MODID + ":" + "item"+this.componentType.COMPONENT_NAME; - } - return "gregtech" + ":" + "materialicons/METALLIC/" + this.componentType.COMPONENT_NAME; - } - /*@Override public String getItemStackDisplayName(final ItemStack p_77653_1_) { return (this.componentType.getPrefix()+this.componentMaterial.getLocalizedName()+this.componentType.DISPLAY_NAME); @@ -181,7 +177,13 @@ public class BaseOreComponent extends Item{ @Override @SideOnly(Side.CLIENT) public void registerIcons(final IIconRegister par1IconRegister){ - if (CORE.ConfigSwitches.useGregtechTextures){ + if (this.componentType == ComponentTypes.MILLED) { + this.base = par1IconRegister.registerIcon(CORE.MODID + ":" + "processing/MilledOre/"+this.componentType.getComponent()); + if (this.componentType.hasOverlay()){ + this.overlay = par1IconRegister.registerIcon(CORE.MODID + ":" + "processing/MilledOre/"+this.componentType.getComponent()+"_Overlay"); + } + } + else if (CORE.ConfigSwitches.useGregtechTextures){ //Logger.MATERIALS(this.componentType.getPrefix()+this.componentMaterial.getLocalizedName()+this.componentType.DISPLAY_NAME+" is using `"+"gregtech" + ":" + "materialicons/METALLIC/" + this.componentType.COMPONENT_NAME+"' as the layer 0 texture path."); this.base = par1IconRegister.registerIcon("gregtech" + ":" + "materialicons/METALLIC/" + this.componentType.COMPONENT_NAME); if (this.componentType.hasOverlay()){ @@ -199,13 +201,21 @@ public class BaseOreComponent extends Item{ @Override public int getColorFromItemStack(final ItemStack stack, final int renderPass) { - if (renderPass == 0 && !CORE.ConfigSwitches.useGregtechTextures){ + if (this.componentType == ComponentTypes.MILLED) { + if (renderPass == 1){ + return Utils.rgbtoHexValue(230, 230, 230); + } return this.componentColour; } - if (renderPass == 1 && CORE.ConfigSwitches.useGregtechTextures){ - return Utils.rgbtoHexValue(230, 230, 230); - } - return this.componentColour; + else { + if (renderPass == 0 && !CORE.ConfigSwitches.useGregtechTextures){ + return this.componentColour; + } + if (renderPass == 1 && CORE.ConfigSwitches.useGregtechTextures){ + return Utils.rgbtoHexValue(230, 230, 230); + } + return this.componentColour; + } } @@ -226,7 +236,8 @@ public class BaseOreComponent extends Item{ DUSTPURE("dustPure", "Purified ", " Dust", true), CRUSHED("crushed", "Crushed ", " Ore", true), CRUSHEDCENTRIFUGED("crushedCentrifuged", "Centrifuged Crushed "," Ore", true), - CRUSHEDPURIFIED("crushedPurified", "Purified Crushed ", " Ore", true); + CRUSHEDPURIFIED("crushedPurified", "Purified Crushed ", " Ore", true), + MILLED("milled", "Milled ", " Ore", true); private String COMPONENT_NAME; private String PREFIX; @@ -252,7 +263,7 @@ public class BaseOreComponent extends Item{ public boolean hasOverlay(){ return this.HAS_OVERLAY; } - + public String getPrefix(){ return this.PREFIX; } diff --git a/src/Java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java b/src/Java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java index 0e23e9a845..3f02ca898d 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java @@ -12,6 +12,7 @@ import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.minecraft.ItemPackage; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.LoadedMods; +import gtPlusPlus.core.material.ELEMENT; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.FluidUtils; @@ -556,6 +557,22 @@ public class AgriculturalChem extends ItemPackage { CORE.RA.addSemifluidFuel(FluidUtils.getFluidStack(ManureSlurry, 1000), 24); CORE.RA.addSemifluidFuel(FluidUtils.getFluidStack(FertileManureSlurry, 1000), 32); + // Red Slurry / Tailings Processing + GT_Values.RA.addCentrifugeRecipe( + CI.getNumberedBioCircuit(10), + GT_Values.NI, + FluidUtils.getFluidStack(AgriculturalChem.RedMud, 1000), + FluidUtils.getWater(500), + ELEMENT.getInstance().IRON.getSmallDust(1), + ELEMENT.getInstance().COPPER.getSmallDust(1), + ELEMENT.getInstance().TIN.getSmallDust(1), + ELEMENT.getInstance().SULFUR.getSmallDust(1), + ELEMENT.getInstance().NICKEL.getTinyDust(1), + ELEMENT.getInstance().LEAD.getTinyDust(1), + new int[] { 3000, 3000, 2000, 2000, 1000, 1000 }, + 30 * 20, + 30); + } @Override diff --git a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java index 981bfed479..37428b18d6 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java @@ -189,20 +189,20 @@ public class CoalTar extends ItemPackage { GT_Values.RA.addDistilleryRecipe( CI.getNumberedCircuit(5), //Circuit FluidUtils.getFluidStack("fluid.coaltar", 1500), //aInput - FluidUtils.getFluidStack("fluid.kerosene", 400), //aOutput + FluidUtils.getFluidStack("fluid.kerosene", 600), //aOutput 300, //aDuration 64,//aEUt false //Hidden? ); GT_Values.RA.addDistillationTowerRecipe( - FluidUtils.getFluidStack("fluid.coaltar", 1000), + FluidUtils.getFluidStack("fluid.coaltar", 1200), new FluidStack[]{ FluidUtils.getFluidStack("fluid.coaltaroil", 500), //aOutput FluidUtils.getFluidStack("liquid_naphtha", 100), //aOutput FluidUtils.getFluidStack("fluid.ethylbenzene", 150), //aOutput FluidUtils.getFluidStack("fluid.anthracene", 50), //aOutput - FluidUtils.getFluidStack("fluid.kerosene", 200), //aOutput + FluidUtils.getFluidStack("fluid.kerosene", 400), //aOutput }, null, 900, @@ -314,9 +314,6 @@ public class CoalTar extends ItemPackage { @Override public void fluids() { - - //Special Compatibility for Coke - ItemUtils.addItemToOreDictionary(ItemUtils.getSimpleStack(ModItems.itemCoalCoke, 1), "fuelCoke"); //Create Coal Gas Coal_Gas = FluidUtils.generateFluidNonMolten("CoalGas", "Coal Gas", 500, new short[]{48, 48, 48, 100}, null, null); //Ethanol diff --git a/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java b/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java index 49d3303688..ff55326031 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/GenericChem.java @@ -1,12 +1,15 @@ package gtPlusPlus.core.item.chemistry; +import static gtPlusPlus.core.lib.CORE.GTNH; + import gregtech.api.enums.GT_Values; import gregtech.api.enums.TextureSet; -import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.minecraft.ItemPackage; import gtPlusPlus.core.item.chemistry.general.ItemGenericChemBase; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.MISC_MATERIALS; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialGenerator; import gtPlusPlus.core.material.MaterialStack; @@ -16,8 +19,9 @@ import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.plugin.agrichem.item.algae.ItemAgrichemBase; -import net.minecraft.block.Block; +import gtPlusPlus.plugin.agrichem.BioRecipes; +import gtPlusPlus.plugin.agrichem.block.AgrichemFluids; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -28,14 +32,21 @@ import net.minecraftforge.fluids.FluidStack; public class GenericChem extends ItemPackage { /** + * Switches + */ + + private static boolean usingGregtechNitricOxide = false; + private static boolean usingGregtechNitrogenDioxide = false; + + /** * Materials */ - + public static final Material BAKELITE = new Material("Bakelite", MaterialState.SOLID, TextureSet.SET_DULL, new short[]{90, 140, 140}, 120, 240, 23, 24, true, null, 0);//Not a GT Inherited Material public static final Material NYLON = new Material("Nylon", MaterialState.SOLID, TextureSet.SET_SHINY, new short[]{45, 45, 45}, 300, 600, 44, 48, true, null, 0);//Not a GT Inherited Material public static final Material CARBYNE = new Material("Carbyne", MaterialState.SOLID, TextureSet.SET_DULL, new short[]{25, 25, 25}, 2500, 5000, 63, 52, true, null, 0);//Not a GT Inherited Material - - + + //Refined PTFE public static final Material TEFLON = new Material( "Teflon", @@ -52,34 +63,37 @@ public class GenericChem extends ItemPackage { new MaterialStack(NONMATERIAL.PLASTIC, 15), new MaterialStack(ELEMENT.getInstance().CARBON, 5), new MaterialStack(ELEMENT.getInstance().SODIUM, 5) - });// Not a GT - // Inherited - // Material + });// Not a GT + // Inherited + // Material //public static final Material HYPOGEN = new Material("Hypogen", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{220, 120, 75}, 12255, 19377, 240, 251, true, "Hy⚶", 0);//Not a GT Inherited Material //public static final Material HYPOGEN = new Material("Hypogen", MaterialState.SOLID, TextureSets.NUCLEAR.get(), new short[]{220, 120, 75}, 12255, 19377, 240, 251, true, "Hy⚶", 0);//Not a GT Inherited Material //public static final Material Nylon = new Material(); - + /** * Fluids */ - public Fluid Benzene; - public Fluid NitroBenzene; - public Fluid Aniline; - public Fluid Polyurethane; - public Fluid Phenol; //https://en.wikipedia.org/wiki/Phenol#Uses - public Fluid Cyclohexane; //https://en.wikipedia.org/wiki/Cyclohexane - public Fluid Cyclohexanone; //https://en.wikipedia.org/wiki/Cyclohexanone - - public Fluid Cadaverine; //https://en.wikipedia.org/wiki/Cadaverine - public Fluid Putrescine; //https://en.wikipedia.org/wiki/Putrescine - + public static Fluid Benzene; + public static Fluid NitroBenzene; + public static Fluid Aniline; + public static Fluid Polyurethane; + public static Fluid Phenol; //https://en.wikipedia.org/wiki/Phenol#Uses + public static Fluid Cyclohexane; //https://en.wikipedia.org/wiki/Cyclohexane + public static Fluid Cyclohexanone; //https://en.wikipedia.org/wiki/Cyclohexanone + public static Fluid Cadaverine; //https://en.wikipedia.org/wiki/Cadaverine + public static Fluid Putrescine; //https://en.wikipedia.org/wiki/Putrescine + public static Fluid BoricAcid; + public static Fluid HydrochloricAcid; + public static Fluid Ethylanthraquinone2; public static Fluid Ethylanthrahydroquinone2; public static Fluid Hydrogen_Peroxide; public static Fluid Lithium_Peroxide; + public static Fluid Nitric_Oxide; + public static Fluid Nitrogen_Dioxide; /** * Items @@ -89,6 +103,19 @@ public class GenericChem extends ItemPackage { public Item PhenolicResins; //https://en.wikipedia.org/wiki/Phenol_formaldehyde_resin public static ItemGenericChemBase mGenericChemItem1; + private ItemStack mCatalystCarrier; + + public static ItemStack mRedCatalyst; + public static ItemStack mYellowCatalyst; + public static ItemStack mBlueCatalyst; + public static ItemStack mOrangeCatalyst; + public static ItemStack mPurpleCatalyst; + public static ItemStack mBrownCatalyst; + public static ItemStack mPinkCatalyst; + + public static ItemStack mMillingBallAlumina; + public static ItemStack mMillingBallSoapstone; + @Override @@ -99,26 +126,20 @@ public class GenericChem extends ItemPackage { MaterialGenerator.generate(TEFLON, false); mGenericChemItem1 = new ItemGenericChemBase(); - + registerItemStacks(); registerOreDict(); + + GregtechItemList.Milling_Ball_Alumina.set(mMillingBallAlumina); + GregtechItemList.Milling_Ball_Soapstone.set(mMillingBallSoapstone); + } - private ItemStack mCatalystCarrier; - - public static ItemStack mRedCatalyst; - public static ItemStack mYellowCatalyst; - public static ItemStack mBlueCatalyst; - public static ItemStack mOrangeCatalyst; - public static ItemStack mPurpleCatalyst; - public static ItemStack mBrownCatalyst; - public static ItemStack mPinkCatalyst; - - + public void registerItemStacks() { mCatalystCarrier = ItemUtils.simpleMetaStack(AgriculturalChem.mAgrichemItem1, 13, 1); - + mRedCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 0, 1); mYellowCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 1, 1); mBlueCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 2, 1); @@ -126,9 +147,11 @@ public class GenericChem extends ItemPackage { mPurpleCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 4, 1); mBrownCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 5, 1); mPinkCatalyst = ItemUtils.simpleMetaStack(mGenericChemItem1, 6, 1); - + mMillingBallAlumina = ItemUtils.simpleMetaStack(mGenericChemItem1, 7, 1); + mMillingBallSoapstone = ItemUtils.simpleMetaStack(mGenericChemItem1, 8, 1); + } - + public void registerOreDict() { ItemUtils.addItemToOreDictionary(mRedCatalyst, "catalystIronCopper"); @@ -138,7 +161,9 @@ public class GenericChem extends ItemPackage { ItemUtils.addItemToOreDictionary(mPurpleCatalyst, "catalystIridiumRuthenium"); ItemUtils.addItemToOreDictionary(mBrownCatalyst, "catalystNickelAluminium"); ItemUtils.addItemToOreDictionary(mPinkCatalyst, "catalystPlatinumRhodium"); - + ItemUtils.addItemToOreDictionary(mMillingBallAlumina, "millingballAlumina"); + ItemUtils.addItemToOreDictionary(mMillingBallSoapstone, "millingballSoapstone"); + } @Override @@ -146,33 +171,43 @@ public class GenericChem extends ItemPackage { @Override public void fluids() { - + if (!FluidRegistry.isFluidRegistered("benzene")) { Benzene = FluidUtils.generateFluidNoPrefix("benzene", "Benzene", 278, new short[] { 100, 70, 30, 100 }, true); } else { Benzene = FluidRegistry.getFluid("benzene"); } - + NitroBenzene = FluidUtils.generateFluidNoPrefix("nitrobenzene", "NitroBenzene", 278, new short[] { 70, 50, 40, 100 }, true); - + Aniline = FluidUtils.generateFluidNoPrefix("aniline", "Aniline", 266, new short[] { 100, 100, 30, 100 }, true); - + + BoricAcid = FluidUtils.generateFluidNoPrefix("boricacid", "Boric Acid", 278, new short[] { 90, 30, 120, 100 }, true); + Polyurethane = FluidUtils.generateFluidNoPrefix("polyurethane", "Polyurethane", 350, new short[] { 100, 70, 100, 100 }, true); - + if (!FluidRegistry.isFluidRegistered("phenol")) { Phenol = FluidUtils.generateFluidNoPrefix("phenol", "Phenol", 313, new short[] { 100, 70, 30, 100 }, true); } else { Phenol = FluidRegistry.getFluid("phenol"); - } - + } + + // Use GT's if it exists, else make our own. + if (FluidRegistry.isFluidRegistered("hydrochloricacid_gt5u")) { + HydrochloricAcid = FluidRegistry.getFluid("hydrochloricacid_gt5u"); + } + else { + HydrochloricAcid = FluidUtils.generateFluidNoPrefix("hydrochloricacid", "Hydrochloric Acid", 285, new short[] { 183, 200, 196, 100 }, true); + } + Cyclohexane = FluidUtils.generateFluidNoPrefix("cyclohexane", "Cyclohexane", 32 + 175, new short[] { 100, 70, 30, 100 }, true); Cyclohexanone = FluidUtils.generateFluidNoPrefix("cyclohexanone", "Cyclohexanone", 32 + 175, new short[] { 100, 70, 30, 100 }, true); - + Cadaverine = FluidUtils.generateFluidNoPrefix("cadaverine", "Cadaverine", 32 + 175, new short[] { 100, 70, 30, 100 }, true); Putrescine = FluidUtils.generateFluidNoPrefix("putrescine", "Putrescine", 32 + 175, new short[] { 100, 70, 30, 100 }, true); - + //Create 2-Ethylanthraquinone //2-Ethylanthraquinone is prepared from the reaction of phthalic anhydride and ethylbenzene Ethylanthraquinone2 = FluidUtils.generateFluidNonMolten("2Ethylanthraquinone", "2-Ethylanthraquinone", 415, new short[]{227, 255, 159, 100}, null, null); @@ -183,6 +218,21 @@ public class GenericChem extends ItemPackage { //Compressed Air(1500) + Ethylanthrahydroquinone(500) + Anthracene(5) = 450 Ethylanthraquinone && 200 Peroxide Hydrogen_Peroxide = FluidUtils.generateFluidNonMolten("HydrogenPeroxide", "Hydrogen Peroxide", 150, new short[]{210, 255, 255, 100}, null, null); + if (FluidRegistry.isFluidRegistered("nitricoxide")) { + Nitric_Oxide = FluidRegistry.getFluid("nitricoxide"); + usingGregtechNitricOxide = true; + } + else { + Nitric_Oxide = FluidUtils.generateFluidNoPrefix("nitricoxide", "Nitric Oxide", 200, new short[] {125, 200, 240, 100}); + } + if (FluidRegistry.isFluidRegistered("nitrogendioxide")) { + Nitrogen_Dioxide = FluidRegistry.getFluid("nitrogendioxide"); + usingGregtechNitrogenDioxide = true; + } + else { + Nitrogen_Dioxide = FluidUtils.generateFluidNoPrefix("nitrogendioxide", "Nitrogen Dioxide", 200, new short[] {100, 175, 255, 100}); + } + //Lithium Hydroperoxide - LiOH + H2O2 → LiOOH + 2 H2O @@ -191,8 +241,8 @@ public class GenericChem extends ItemPackage { //Lithium Peroxide - 2 LiOOH → Li2O2 + H2O2 + 2 H2O Lithium_Peroxide = FluidUtils.generateFluidNonMolten("LithiumPeroxide", "Lithium Peroxide", 446, new short[]{135, 135, 135, 100}, null, null); - - + + } @Override @@ -202,7 +252,7 @@ public class GenericChem extends ItemPackage { @Override public boolean generateRecipes() { - + recipeCatalystRed(); recipeCatalystYellow(); recipeCatalystBlue(); @@ -210,24 +260,165 @@ public class GenericChem extends ItemPackage { recipeCatalystPurple(); recipeCatalystBrown(); recipeCatalystPink(); - + + recipeGrindingBallAlumina(); + recipeGrindingBallSoapstone(); + recipeNitroBenzene(); recipeAniline(); recipeCadaverineAndPutrescine(); recipeCyclohexane(); recipeCyclohexanone(); - + recipe2Ethylanthraquinone(); recipe2Ethylanthrahydroquinone(); recipeHydrogenPeroxide(); recipeLithiumHydroperoxide(); - recipeLithiumPeroxide(); - + recipeLithiumPeroxide(); + if (!usingGregtechNitricOxide) { + recipeNitricOxide(); + } + if (!usingGregtechNitrogenDioxide) { + recipeNitrogenDioxide(); + } + + // Add recipes if we are not using GT's fluid. + if (!FluidRegistry.isFluidRegistered("hydrochloricacid_gt5u")) { + recipeHydrochloricAcid(); + } + registerFuels(); + return true; + } + + + private static void registerFuels() { + + // Burnables + + // Gas Fuels + GT_Values.RA.addFuel(ItemUtils.getItemStackOfAmountFromOreDict("cellNitroBenzene", 1), null, 1250, 1); + + } + + private void recipeGrindingBallAlumina() { + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + CI.getNumberedCircuit(10), + ItemUtils.getSimpleStack(AgriculturalChem.mAlumina, 64) + }, + FluidUtils.getFluidStack(GenericChem.Aniline, 4000), + ItemUtils.getSimpleStack(mMillingBallAlumina, 8), + 180 * 20, + 480); + } + private void recipeGrindingBallSoapstone() { + CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { + CI.getNumberedCircuit(10), + ItemUtils.getItemStackOfAmountFromOreDict("dustSoapstone", 32) + }, + FluidUtils.getFluidStack(AgrichemFluids.mLiquidResin, 2500), + ItemUtils.getSimpleStack(mMillingBallSoapstone, 8), + 120 * 20, + 480); + } + + private void recipeNitrogenDioxide() { + ItemStack aNitricOxideCell = ItemUtils.getItemStackOfAmountFromOreDict("cellNitricOxide", 1); + ItemStack aNitrogenDioxideCell = ItemUtils.getItemStackOfAmountFromOreDict("cellNitrogenDioxide", 1); + GT_Values.RA.addChemicalRecipe( ItemUtils.getSimpleStack(aNitricOxideCell, 2), GT_Utility.getIntegratedCircuit(1), ELEMENT.getInstance().OXYGEN.getFluid(1000), FluidUtils.getFluidStack(Nitrogen_Dioxide, 3000), CI.emptyCells(2), 160); + GT_Values.RA.addChemicalRecipe( ELEMENT.getInstance().OXYGEN.getCell(1), GT_Utility.getIntegratedCircuit(1), FluidUtils.getFluidStack(Nitric_Oxide, 2000), FluidUtils.getFluidStack(Nitrogen_Dioxide, 3000), CI.emptyCells(1), 160); + GT_Values.RA.addChemicalRecipeForBasicMachineOnly(ItemUtils.getSimpleStack(aNitricOxideCell, 2), CI.emptyCells(1), ELEMENT.getInstance().OXYGEN.getFluid(1000), GT_Values.NF, ItemUtils.getSimpleStack(aNitrogenDioxideCell, 3), GT_Values.NI, 160, 30); + GT_Values.RA.addChemicalRecipeForBasicMachineOnly(ELEMENT.getInstance().OXYGEN.getCell(1), CI.emptyCells(2), FluidUtils.getFluidStack(Nitric_Oxide, 2000), GT_Values.NF, ItemUtils.getSimpleStack(aNitrogenDioxideCell, 3), GT_Values.NI, 160, 30); + GT_Values.RA.addChemicalRecipeForBasicMachineOnly(ItemUtils.getSimpleStack(aNitricOxideCell, 2), ELEMENT.getInstance().OXYGEN.getCell(1), GT_Values.NF, GT_Values.NF, ItemUtils.getSimpleStack(aNitrogenDioxideCell, 3), GT_Values.NI, 160, 30); + } + + + private void recipeNitricOxide() { + ItemStack aWaterCell = ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 1); + ItemStack aNitricOxideCell = ItemUtils.getItemStackOfAmountFromOreDict("cellNitricOxide", 1); + GT_Values.RA.addChemicalRecipeForBasicMachineOnly(MISC_MATERIALS.AMMONIA.getCell(8), CI.emptyCells(1), ELEMENT.getInstance().OXYGEN.getFluid(5000), FluidUtils.getFluidStack(Nitric_Oxide, 4000), ItemUtils.getSimpleStack(aWaterCell, 9), GT_Values.NI, 160, 30); + GT_Values.RA.addChemicalRecipeForBasicMachineOnly(ELEMENT.getInstance().OXYGEN.getCell(5), CI.emptyCells(4), MISC_MATERIALS.AMMONIA.getFluid(8000), FluidUtils.getFluidStack(Nitric_Oxide, 4000), ItemUtils.getSimpleStack(aWaterCell, 9), GT_Values.NI, 160, 30); + GT_Values.RA.addChemicalRecipe( MISC_MATERIALS.AMMONIA.getCell(8), GT_Utility.getIntegratedCircuit(11), ELEMENT.getInstance().OXYGEN.getFluid(5000), FluidUtils.getWater(9000), ItemUtils.getSimpleStack(aNitricOxideCell, 4), CI.emptyCells(4), 160); + GT_Values.RA.addChemicalRecipe( ELEMENT.getInstance().OXYGEN.getCell(5), GT_Utility.getIntegratedCircuit(11), MISC_MATERIALS.AMMONIA.getFluid(8000), FluidUtils.getWater(9000), ItemUtils.getSimpleStack(aNitricOxideCell, 4), CI.emptyCells(1), 160); + GT_Values.RA.addChemicalRecipe( MISC_MATERIALS.AMMONIA.getCell(8), GT_Utility.getIntegratedCircuit(2), ELEMENT.getInstance().OXYGEN.getFluid(5000), FluidUtils.getFluidStack(Nitric_Oxide, 4000), CI.emptyCells(8), 320); + GT_Values.RA.addChemicalRecipe( ELEMENT.getInstance().OXYGEN.getCell(5), GT_Utility.getIntegratedCircuit(2), MISC_MATERIALS.AMMONIA.getFluid(8000), FluidUtils.getFluidStack(Nitric_Oxide, 4000), CI.emptyCells(5), 320); + GT_Values.RA.addChemicalRecipe( MISC_MATERIALS.AMMONIA.getCell(8), GT_Utility.getIntegratedCircuit(12), ELEMENT.getInstance().OXYGEN.getFluid(5000), GT_Values.NF, ItemUtils.getSimpleStack(aNitricOxideCell, 4), CI.emptyCells(4), 160); + GT_Values.RA.addChemicalRecipe( ELEMENT.getInstance().OXYGEN.getCell(5), GT_Utility.getIntegratedCircuit(12), MISC_MATERIALS.AMMONIA.getFluid(8000), GT_Values.NF, ItemUtils.getSimpleStack(aNitricOxideCell, 4), CI.emptyCells(1), 160); + GT_Values.RA.addChemicalRecipeForBasicMachineOnly(MISC_MATERIALS.AMMONIA.getCell(8), ELEMENT.getInstance().OXYGEN.getCell(5), GT_Values.NF, GT_Values.NF, ItemUtils.getSimpleStack(aNitricOxideCell, 4), ItemUtils.getSimpleStack(aWaterCell, 9), 160, 30); + GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{GT_Utility.getIntegratedCircuit(1)}, new FluidStack[]{MISC_MATERIALS.AMMONIA.getFluid(8000), ELEMENT.getInstance().OXYGEN.getFluid(5000)}, new FluidStack[]{FluidUtils.getFluidStack(Nitric_Oxide, 4000), FluidUtils.getWater(9000)}, null, 160, 30); + } + + + private void recipeHydrochloricAcid() { + + ItemStack aAcidCell = ItemUtils.getItemStackOfAmountFromOreDict("cellHydrochloricAcid", 1); + + CORE.RA.addChemicalRecipe( + ELEMENT.getInstance().CHLORINE.getCell(1), + GT_Utility.getIntegratedCircuit(1), + ELEMENT.getInstance().HYDROGEN.getFluid(1000), + FluidUtils.getFluidStack(HydrochloricAcid, 2000), + CI.emptyCells(1), + 60, + 8); + + CORE.RA.addChemicalRecipe( + ELEMENT.getInstance().HYDROGEN.getCell(1), + GT_Utility.getIntegratedCircuit(1), + ELEMENT.getInstance().CHLORINE.getFluid(1000), + FluidUtils.getFluidStack(HydrochloricAcid, 2000), + CI.emptyCells(1), + 60, + 8); + + GT_Values.RA.addElectrolyzerRecipe( + CI.emptyCells(1), + GT_Utility.getIntegratedCircuit(1), + FluidUtils.getFluidStack(HydrochloricAcid, 2000), + ELEMENT.getInstance().CHLORINE.getFluid(1000), + ELEMENT.getInstance().HYDROGEN.getCell(1), + GT_Values.NI, + GT_Values.NI, + GT_Values.NI, + GT_Values.NI, + GT_Values.NI, + null, + 720, + 30); + + GT_Values.RA.addElectrolyzerRecipe( + CI.emptyCells(1), + GT_Utility.getIntegratedCircuit(11), + FluidUtils.getFluidStack(HydrochloricAcid, 2000), + ELEMENT.getInstance().HYDROGEN.getFluid(1000), + ELEMENT.getInstance().CHLORINE.getCell(1), + GT_Values.NI, + GT_Values.NI, + GT_Values.NI, + GT_Values.NI, + GT_Values.NI, + null, + 720, + 30); + + GT_Values.RA.addElectrolyzerRecipe( + ItemUtils.getSimpleStack(aAcidCell, 2), + GT_Values.NI, + GT_Values.NF, + GT_Values.NF, + ELEMENT.getInstance().HYDROGEN.getCell(1), + ELEMENT.getInstance().CHLORINE.getCell(1), + GT_Values.NI, + GT_Values.NI, + GT_Values.NI, + GT_Values.NI, + null, + 720, + 30); } private void recipeCyclohexane() { - + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierTwoChip(), @@ -238,7 +429,7 @@ public class GenericChem extends ItemPackage { FluidUtils.getFluidStack("hydrogen", 10000) }, new ItemStack[] { - + }, new FluidStack[] { FluidUtils.getFluidStack(Cyclohexane, 1000), @@ -246,11 +437,11 @@ public class GenericChem extends ItemPackage { 20 * 120, 120, 2); - + } private void recipeCyclohexanone() { - + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierTwoChip(), @@ -261,7 +452,7 @@ public class GenericChem extends ItemPackage { FluidUtils.getFluidStack("air", 10000) }, new ItemStack[] { - + }, new FluidStack[] { FluidUtils.getFluidStack(Cyclohexanone, 2000), @@ -269,7 +460,7 @@ public class GenericChem extends ItemPackage { 20 * 120, 120, 2); - + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierTwoChip(), @@ -279,7 +470,7 @@ public class GenericChem extends ItemPackage { FluidUtils.getFluidStack("oxygen", 5000) }, new ItemStack[] { - + }, new FluidStack[] { FluidUtils.getFluidStack(Cyclohexanone, 2000), @@ -287,10 +478,10 @@ public class GenericChem extends ItemPackage { 20 * 120, 120, 2); - - - - + + + + } private void recipeCatalystRed() { @@ -305,7 +496,7 @@ public class GenericChem extends ItemPackage { ItemUtils.getSimpleStack(mRedCatalyst, 10), 20 * 20, 30); - + } private void recipeCatalystYellow() { @@ -320,7 +511,7 @@ public class GenericChem extends ItemPackage { ItemUtils.getSimpleStack(mYellowCatalyst, 10), 60 * 20, 2000); - + } private void recipeCatalystBlue() { @@ -335,7 +526,7 @@ public class GenericChem extends ItemPackage { ItemUtils.getSimpleStack(mBlueCatalyst, 10), 40 * 20, 500); - + } private void recipeCatalystOrange() { @@ -350,7 +541,7 @@ public class GenericChem extends ItemPackage { ItemUtils.getSimpleStack(mOrangeCatalyst, 10), 40 * 20, 500); - + } private void recipeCatalystPurple() { @@ -365,7 +556,7 @@ public class GenericChem extends ItemPackage { ItemUtils.getSimpleStack(mPurpleCatalyst, 10), 120 * 20, 8000); - + } private void recipeCatalystBrown() { @@ -380,7 +571,7 @@ public class GenericChem extends ItemPackage { ItemUtils.getSimpleStack(mBrownCatalyst, 10), 15 * 20, 30); - + } private void recipeCatalystPink() { @@ -395,11 +586,11 @@ public class GenericChem extends ItemPackage { ItemUtils.getSimpleStack(mPinkCatalyst, 10), 30 * 20, 2000); - + } private void recipeCadaverineAndPutrescine() { - + // Basic Recipe CORE.RA.addChemicalPlantRecipe( new ItemStack[] { @@ -410,7 +601,7 @@ public class GenericChem extends ItemPackage { FluidUtils.getHotWater(2000) }, new ItemStack[] { - + }, new FluidStack[] { FluidUtils.getFluidStack(Cadaverine, 250), @@ -431,7 +622,7 @@ public class GenericChem extends ItemPackage { FluidUtils.getHotWater(3000) }, new ItemStack[] { - + }, new FluidStack[] { FluidUtils.getFluidStack(Cadaverine, 750), @@ -440,11 +631,11 @@ public class GenericChem extends ItemPackage { 20 * 120, 240, 2); - + } private void recipeAniline() { - + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierThreeChip(), @@ -455,7 +646,7 @@ public class GenericChem extends ItemPackage { FluidUtils.getFluidStack("hydrogen", 10000) }, new ItemStack[] { - + }, new FluidStack[] { FluidUtils.getFluidStack(Aniline, 2000), @@ -463,11 +654,11 @@ public class GenericChem extends ItemPackage { 20 * 30, 500, 3); - + } private void recipeNitroBenzene() { - + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { getTierThreeChip(), @@ -479,7 +670,7 @@ public class GenericChem extends ItemPackage { FluidUtils.getDistilledWater(10000) }, new ItemStack[] { - + }, new FluidStack[] { FluidUtils.getFluidStack("dilutedsulfuricacid", 3000), @@ -488,11 +679,11 @@ public class GenericChem extends ItemPackage { 20 * 30, 500, 3); - + } private void recipe2Ethylanthraquinone() { - + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { CI.getNumberedCircuit(4), @@ -502,7 +693,7 @@ public class GenericChem extends ItemPackage { FluidUtils.getFluidStack(CoalTar.Ethylbenzene, 2000), }, new ItemStack[] { - + }, new FluidStack[] { FluidUtils.getFluidStack(Ethylanthraquinone2, 2000+(144*4)), @@ -510,7 +701,7 @@ public class GenericChem extends ItemPackage { 20 * 15, 120, 1); - + /*GT_Values.RA.addChemicalRecipe( ItemUtils.getItemStackOfAmountFromOreDict("dustPhthalicAnhydride", 4), ItemUtils.getItemStackOfAmountFromOreDict("cellEthylbenzene", 2), @@ -518,11 +709,11 @@ public class GenericChem extends ItemPackage { FluidUtils.getFluidStack("fluid.2ethylanthraquinone", 2000+(144*4)), ItemUtils.getItemStackOfAmountFromOreDict("cellEmpty", 2), 20*16);*/ - + } private void recipe2Ethylanthrahydroquinone() { - + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { CI.getNumberedCircuit(4), @@ -533,7 +724,7 @@ public class GenericChem extends ItemPackage { FluidUtils.getFluidStack("hydrogen", 2000), }, new ItemStack[] { - + }, new FluidStack[] { FluidUtils.getFluidStack(Ethylanthrahydroquinone2, 5000), @@ -541,7 +732,7 @@ public class GenericChem extends ItemPackage { 20 * 40, 120, 1); - + /*GT_Values.RA.addChemicalRecipe( ItemUtils.getItemStackOfAmountFromOreDict("platePalladium", 0), ItemUtils.getItemStackOfAmountFromOreDict("cell2Ethylanthraquinone", 1), @@ -549,7 +740,7 @@ public class GenericChem extends ItemPackage { FluidUtils.getFluidStack("fluid.2ethylanthrahydroquinone", 1200), ItemUtils.getItemStackOfAmountFromOreDict("cellEmpty", 1), 20*40);*/ - + } private void recipeLithiumPeroxide() { @@ -571,7 +762,7 @@ public class GenericChem extends ItemPackage { } private void recipeLithiumHydroperoxide() { - + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { CI.getNumberedCircuit(4), @@ -584,14 +775,14 @@ public class GenericChem extends ItemPackage { ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumHydroperoxide", 14), }, new FluidStack[] { - + }, 20 * 30, 240, 1); - - - + + + /*CORE.RA.addChemicalRecipe( ItemUtils.getItemStackOfAmountFromOreDict("dustLithiumHydroxide", 7), ItemUtils.getItemStackOfAmountFromOreDict("cellHydrogenPeroxide", 1), @@ -605,7 +796,7 @@ public class GenericChem extends ItemPackage { } private void recipeHydrogenPeroxide() { - + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { CI.getNumberedCircuit(4), @@ -624,7 +815,7 @@ public class GenericChem extends ItemPackage { 20 * 30, 240, 1); - + /* CORE.RA.addChemicalRecipe( GT_ModHandler.getAirCell(15), ItemUtils.getItemStackOfAmountFromOreDict("cell2Ethylanthrahydroquinone", 5), @@ -635,38 +826,38 @@ public class GenericChem extends ItemPackage { CI.emptyCells(18), 20*30, 240);*/ - + } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + private static final ItemStack getTierOneChip() { return CI.getNumberedBioCircuit(4); } @@ -679,7 +870,7 @@ public class GenericChem extends ItemPackage { private static final ItemStack getTierFourChip() { return CI.getNumberedBioCircuit(16); } - - - + + + } diff --git a/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java b/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java new file mode 100644 index 0000000000..426f48ecf9 --- /dev/null +++ b/src/Java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java @@ -0,0 +1,113 @@ +package gtPlusPlus.core.item.chemistry; + +import gregtech.api.enums.Materials; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.api.objects.minecraft.ItemPackage; +import gtPlusPlus.core.item.base.ore.BaseItemMilledOre; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.MaterialUtils; +import net.minecraft.item.Item; +import net.minecraftforge.fluids.Fluid; + +public class MilledOreProcessing extends ItemPackage { + + /** + * Fluids + */ + + public static Fluid ZincFlotationFroth; + public static Fluid CopperFlotationFroth; + public static Fluid NickelFlotationFroth; + public static Fluid PlatinumFlotationFroth; + public static Fluid PentlanditeFlotationFroth; + + + /** + * Items + */ + + // Zinc, Iron, Indium, Germanium + public static Item milledSphalerite; + + // Copper, Iron, Cadmium, Indium + public static Item milledChalcopyrite; + + // Nickel, Cobalt, Rhodium, Ruthenium + public static Item milledNickel; + + // Platinum, Rhodium, Selenium, Tellurium + public static Item milledPlatinum; + + // Iron, Nickel, Promethium, Hafnium + public static Item milledPentlandite; + + + @Override + public void items() { + + milledSphalerite = BaseItemMilledOre.generate(Materials.Sphalerite, MaterialUtils.getVoltageForTier(5)); + milledChalcopyrite = BaseItemMilledOre.generate(Materials.Chalcopyrite, MaterialUtils.getVoltageForTier(4)); + milledNickel = BaseItemMilledOre.generate(Materials.Nickel, MaterialUtils.getVoltageForTier(4)); + milledPlatinum = BaseItemMilledOre.generate(Materials.Platinum, MaterialUtils.getVoltageForTier(5)); + milledPentlandite = BaseItemMilledOre.generate(Materials.Pentlandite, MaterialUtils.getVoltageForTier(5)); + + } + + @Override + public void blocks() { + // None yet + } + + @Override + public void fluids() { + + short[] aZincFrothRGB = Materials.Sphalerite.mRGBa; + ZincFlotationFroth = FluidUtils.generateFluidNoPrefix("froth.zincflotation", "Zinc Froth", 32 + 175, new short[] { aZincFrothRGB[0], aZincFrothRGB[1], aZincFrothRGB[2], 100 }, true); + short[] aCopperFrothRGB = Materials.Chalcopyrite.mRGBa; + CopperFlotationFroth = FluidUtils.generateFluidNoPrefix("froth.copperflotation", "Copper Froth", 32 + 175, new short[] { aCopperFrothRGB[0], aCopperFrothRGB[1], aCopperFrothRGB[2], 100 }, true); + short[] aNickelFrothRGB = Materials.Nickel.mRGBa; + NickelFlotationFroth = FluidUtils.generateFluidNoPrefix("froth.nickelflotation", "Nickel Froth", 32 + 175, new short[] { aNickelFrothRGB[0], aNickelFrothRGB[1], aNickelFrothRGB[2], 100 }, true); + short[] aPlatinumFrothRGB = Materials.Platinum.mRGBa; + PlatinumFlotationFroth = FluidUtils.generateFluidNoPrefix("froth.platinumflotation", "Platinum Froth", 32 + 175, new short[] { aPlatinumFrothRGB[0], aPlatinumFrothRGB[1], aPlatinumFrothRGB[2], 100 }, true); + short[] aPentlanditeFrothRGB = Materials.Pentlandite.mRGBa; + PentlanditeFlotationFroth = FluidUtils.generateFluidNoPrefix("froth.pentlanditeflotation", "Pentlandite Froth", 32 + 175, new short[] { aPentlanditeFrothRGB[0], aPentlanditeFrothRGB[1], aPentlanditeFrothRGB[2], 100 }, true); + + } + + + + public MilledOreProcessing() { + super(); + Logger.INFO("Adding Ore Milling content"); + } + + private static void addMiscRecipes() { + + /*GT_Values.RA.addCentrifugeRecipe( + CI.getNumberedBioCircuit(10), + GT_Values.NI, + FluidUtils.getFluidStack(MilledOreProcessing.ZincFlotationFroth, 1000), + FluidUtils.getWater(500), + ELEMENT.getInstance().IRON.getSmallDust(1), + ELEMENT.getInstance().COPPER.getSmallDust(1), + ELEMENT.getInstance().TIN.getSmallDust(1), + ELEMENT.getInstance().SULFUR.getSmallDust(1), + ELEMENT.getInstance().NICKEL.getTinyDust(1), + ELEMENT.getInstance().LEAD.getTinyDust(1), + new int[] { 3000, 3000, 2000, 2000, 1000, 1000 }, + 30 * 20, + 30);*/ + + } + + @Override + public String errorMessage() { + return "Failed to generate recipes for OreMillingProc."; + } + + @Override + public boolean generateRecipes() { + addMiscRecipes(); + return true; + } +} diff --git a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java index e6426dd6df..459acb31b9 100644 --- a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java +++ b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java @@ -6,19 +6,21 @@ import java.util.LinkedHashMap; import cpw.mods.fml.common.event.FMLLoadCompleteEvent; import gregtech.api.enums.GT_Values; -import gregtech.api.enums.Materials; import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; +import gregtech.api.util.GT_Utility; import gregtech.api.util.Recipe_GT; -import gtPlusPlus.api.helpers.MaterialHelper; +import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.minecraft.ItemPackage; import gtPlusPlus.core.item.base.BaseItemComponent; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.MaterialUtils; +import gtPlusPlus.xmod.gregtech.common.StaticFields59; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; @@ -53,36 +55,36 @@ public class RocketFuels extends ItemPackage { public static Item Ammonium_Nitrate_Dust; public static Item Formaldehyde_Catalyst; + public static ItemStack Formaldehyde_Catalyst_Stack; + + public RocketFuels() { + super(true); + } public static void createKerosene(){ - - - FluidStack fuelA = FluidUtils.getFluidStack("diesel", 300); - FluidStack fuelB = FluidUtils.getFluidStack("fuel", 300); - - + FluidStack fuelA = FluidUtils.getFluidStack("diesel", 3000); + FluidStack fuelB = FluidUtils.getFluidStack("fuel", 3000); if (fuelA != null){ //GT_Values.RA.addDistilleryRecipe(23, fuelA, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false); - GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelA, FluidUtils.getFluidStack(Kerosene, 100), 200, 64, false); + GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelA, FluidUtils.getFluidStack(Kerosene, 1800), 200, 64, false); } if (fuelA == null && fuelB != null){ //GT_Values.RA.addDistilleryRecipe(23, fuelB, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false); - GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelB, FluidUtils.getFluidStack(Kerosene, 100), 200, 64, false); + GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelB, FluidUtils.getFluidStack(Kerosene, 1800), 200, 64, false); } } public static void createRP1(){ - FluidStack fuelA = FluidUtils.getFluidStack(Kerosene, 100); + FluidStack fuelA = FluidUtils.getFluidStack(Kerosene, 1000); if (fuelA != null){ - //GT_Values.RA.addDistilleryRecipe(23, fuelA, FluidUtils.getFluidStack(RP1, 25), 400, 120, false); - GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelA, FluidUtils.getFluidStack(RP1, 50), 400, 120, false); + GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelA, FluidUtils.getFluidStack(RP1, 750), 20 * 40, 120, false); } } public static void createNitrogenTetroxide(){ - CORE.RA.addDehydratorRecipe( + /*CORE.RA.addDehydratorRecipe( new ItemStack[]{ ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 4) }, @@ -94,42 +96,78 @@ public class RocketFuels extends ItemPackage { }, new int[]{100, 50}, 20*16, - 500); + 500);*/ + + CORE.RA.addChemicalPlantRecipe( + new ItemStack[]{ + ItemUtils.getItemStackOfAmountFromOreDict("dustCopper", 16), + ItemUtils.getSimpleStack(GenericChem.mOrangeCatalyst, 0), + }, + new FluidStack[] { + FluidUtils.getFluidStack("nitricacid", 4000) + }, + new ItemStack[]{ + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallAsh", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustSmallDarkAsh", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyAsh", 1), + ItemUtils.getItemStackOfAmountFromOreDict("dustTinyDarkAsh", 1) + }, + new FluidStack[] { + FluidUtils.getFluidStack(Nitrogen_Tetroxide, 3000), + }, + new int[]{100, 100, 50, 50}, + 20*30, + MaterialUtils.getVoltageForTier(3), + 2); + + } - public static void createHydrazine(){ - GT_Values.RA.addChemicalRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("cellAmmonia", 2), - CI.getNumberedCircuit(23), - FluidUtils.getFluidStack("fluid.hydrogenperoxide", 2000), - FluidUtils.getFluidStack(Hydrazine, 2000), - ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 2), - 20*32); - - GT_Values.RA.addChemicalRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("cellHydrogenPeroxide", 2), - CI.getNumberedCircuit(23), - FluidUtils.getFluidStack("ammonia", 2000), - FluidUtils.getFluidStack(Hydrazine, 2000), - ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 2), - 20*32); + public static void createHydrazine(){ + + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedCircuit(21) + }, + new FluidStack[] { + FluidUtils.getFluidStack("fluid.hydrogenperoxide", 2000), + FluidUtils.getFluidStack("ammonia", 2000), + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack(Hydrazine, 4000), + + }, + 20 * 30, + MaterialUtils.getVoltageForTier(2), + 1); + } public static void createMonomethylhydrazine(){ - CORE.RA.addDehydratorRecipe( + + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { - ItemUtils.getItemStackOfAmountFromOreDict("cellHydrazine", 2), + CI.getNumberedCircuit(21), ItemUtils.getItemStackOfAmountFromOreDict("dustCarbon", 2) }, - FluidUtils.getFluidStack("hydrogen", 2000), - FluidUtils.getFluidStack(Monomethylhydrazine, 3000), + new FluidStack[] { + FluidUtils.getFluidStack("hydrogen", 2000), + FluidUtils.getFluidStack(Hydrazine, 2000), + }, new ItemStack[] { - CI.emptyCells(2) + + }, + new FluidStack[] { + FluidUtils.getFluidStack(Monomethylhydrazine, 4000), + }, - new int[] {10000}, - 20*48, - 240); + 20 * 48, + 240, + 2); } @@ -143,14 +181,26 @@ public class RocketFuels extends ItemPackage { CORE.RA.addAdvancedFreezerRecipe(new ItemStack[] {}, new FluidStack[] {FluidUtils.getFluidStack("hydrogen", 300)}, new FluidStack[] {FluidUtils.getFluidStack(Liquid_Hydrogen, 300)}, new ItemStack[] {}, new int[] {}, 20*4, 540, 0); } - private static void createHydratedAmmoniumNitrateSlurry() { - GT_Values.RA.addChemicalRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("cellAmmonia", 8), - ItemUtils.getItemStackOfAmountFromOreDict("cellNitricAcid", 8), - null, - FluidUtils.getFluidStack(Hydrated_Ammonium_Nitrate_Slurry, 22*144), - null, - 48*16); + private static void createHydratedAmmoniumNitrateSlurry() { + + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(21), + }, + new FluidStack[] { + FluidUtils.getFluidStack("ammonia", 4000), + FluidUtils.getFluidStack("nitricacid", 4000), + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack(Hydrated_Ammonium_Nitrate_Slurry, 8000), + + }, + 20 * 60, + 120, + 1); } @@ -162,22 +212,32 @@ public class RocketFuels extends ItemPackage { new ItemStack[] {ItemUtils.getSimpleStack(Ammonium_Nitrate_Dust, 8)}, new int[] {10000}, 90*20, - 500); + 480); } - private static void createFormaldehyde() { - CORE.RA.addDehydratorRecipe( + private static void createFormaldehyde() { + + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { - ItemUtils.getSimpleStack(Formaldehyde_Catalyst, 1), - ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 16) + CI.getNumberedBioCircuit(21), + ItemUtils.getSimpleStack(Formaldehyde_Catalyst, 0), }, - FluidUtils.getFluidStack("methanol", 32000), - FluidUtils.getFluidStack(Formaldehyde, 8000), - new ItemStack[] {ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 16)}, - new int[] {10000}, - 90*20, - 120); + new FluidStack[] { + FluidUtils.getFluidStack("oxygen", 16000), + FluidUtils.getFluidStack("methanol", 32000), + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack(Formaldehyde, 8000), + + }, + 20 * 90, + 120, + 1); + } private static void createFormaldehydeCatalyst() { @@ -194,15 +254,29 @@ public class RocketFuels extends ItemPackage { } - private static void createUnsymmetricalDimethylhydrazine() { - CORE.RA.addChemicalRecipe( - ItemUtils.getItemStackOfAmountFromOreDict("cellHydrazine", 2), - ItemUtils.getItemStackOfAmountFromOreDict("cellFormaldehyde", 2), - FluidUtils.getFluidStack("hydrogen", 4000), - FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine, 1000), - ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 2), - ItemUtils.getItemStackOfAmountFromOreDict("cellEmpty", 2), - 20*60); + private static void createUnsymmetricalDimethylhydrazine() { + + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(21), + ItemUtils.getSimpleStack(Formaldehyde_Catalyst, 0), + }, + new FluidStack[] { + FluidUtils.getFluidStack("fluid.hydrazine", 2000), + FluidUtils.getFluidStack(Formaldehyde, 2000), + FluidUtils.getFluidStack("hydrogen", 4000), + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine, 2000), + FluidUtils.getWater(2000) + + }, + 20 * 60, + 120, + 2); } @@ -275,152 +349,93 @@ public class RocketFuels extends ItemPackage { private static void createRocketFuels() { - //Done - GT_Values.RA.addCentrifugeRecipe( - CI.getNumberedCircuit(23), - ItemUtils.getItemStackOfAmountFromOreDict("cellLiquidOxygen", 2), - FluidUtils.getFluidStack(RP1, 500), - FluidUtils.getFluidStack(RP1_Plus_Liquid_Oxygen, 100), - CI.emptyCells(2), - null, - null, - null, - null, - null, - new int[] {10000}, - 20*32, - 480); - - GT_Values.RA.addCentrifugeRecipe( - CI.getNumberedCircuit(23), - ItemUtils.getItemStackOfAmountFromOreDict("cellRP1", 1), - FluidUtils.getFluidStack(Liquid_Oxygen, 4000), - FluidUtils.getFluidStack(RP1_Plus_Liquid_Oxygen, 200), - CI.emptyCells(1), - null, - null, - null, - null, - null, - new int[] {10000}, - 20*64, - 480); - - GT_Values.RA.addCentrifugeRecipe( - CI.getNumberedCircuit(23), - ItemUtils.getItemStackOfAmountFromOreDict("cellNitrogenTetroxide", 2), - FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine, 2000), - FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide, 1750), - CI.emptyCells(2), - null, - null, - null, - null, - null, - new int[] {10000}, - 20*48, - 480); - - ItemStack aCell11dimethylhydrazine = ItemUtils.getItemStackOfAmountFromOreDict("cell1,1Dimethylhydrazine", 2); - if (ItemUtils.checkForInvalidItems(aCell11dimethylhydrazine)) { - GT_Values.RA.addCentrifugeRecipe( - CI.getNumberedCircuit(23), - aCell11dimethylhydrazine, - FluidUtils.getFluidStack(Nitrogen_Tetroxide, 2000), - FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide, 1750), - CI.emptyCells(2), - null, - null, - null, - null, - null, - new int[] {10000}, - 20*48, - 480); - } - else { - GT_Values.RA.addCentrifugeRecipe( - CI.getNumberedCircuit(23), - ItemUtils.getItemStackOfAmountFromOreDict("cellUnsymmetricalDimethylhydrazine", 2), - FluidUtils.getFluidStack(Nitrogen_Tetroxide, 2000), - FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide, 1750), - CI.emptyCells(2), - null, - null, - null, - null, - null, - new int[] {10000}, - 20*48, - 480); - } + // RP1_Plus_Liquid_Oxygen + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedCircuit(1), + }, + new FluidStack[] { + FluidUtils.getFluidStack(Liquid_Oxygen, 2000), + FluidUtils.getFluidStack(RP1, 500), + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack(RP1_Plus_Liquid_Oxygen, 1500), + }, + 20 * 15, + 240, + 3); - GT_Values.RA.addCentrifugeRecipe( - CI.getNumberedCircuit(23), - ItemUtils.getItemStackOfAmountFromOreDict("cellHydrazine", 4), - FluidUtils.getFluidStack("methanol", 6000), - FluidUtils.getFluidStack(Dense_Hydrazine_Mix, 10000), - CI.emptyCells(4), - null, - null, - null, - null, - null, - new int[] {10000}, - 20*100, - 240); - - GT_Values.RA.addCentrifugeRecipe( - CI.getNumberedCircuit(23), - ItemUtils.getItemStackOfAmountFromOreDict("cellMethanol", 6), - FluidUtils.getFluidStack(Hydrazine, 4000), - FluidUtils.getFluidStack(Dense_Hydrazine_Mix, 10000), - CI.emptyCells(6), - null, - null, - null, - null, - null, - new int[] {10000}, - 20*100, - 240); - - GT_Values.RA.addCentrifugeRecipe( - CI.getNumberedCircuit(23), - ItemUtils.getItemStackOfAmountFromOreDict("cellNitricAcid", 1), - FluidUtils.getFluidStack(Monomethylhydrazine, 1000), - FluidUtils.getFluidStack(Monomethylhydrazine_Plus_Nitric_Acid, 2000), - CI.emptyCells(1), - null, - null, - null, - null, - null, - new int[] {10000}, - 20*32, - 240); - - GT_Values.RA.addCentrifugeRecipe( - CI.getNumberedCircuit(23), - ItemUtils.getItemStackOfAmountFromOreDict("cellMonomethylhydrazine", 1), - FluidUtils.getFluidStack("nitricacid", 1000), - FluidUtils.getFluidStack(Monomethylhydrazine_Plus_Nitric_Acid, 2000), - CI.emptyCells(1), - null, - null, - null, - null, - null, - new int[] {10000}, - 20*32, - 240); + + // Dense_Hydrazine_Mix + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedCircuit(2), + }, + new FluidStack[] { + FluidUtils.getFluidStack(Hydrazine, 4000), + FluidUtils.getFluidStack("methanol", 6000), + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack(Dense_Hydrazine_Mix, 10000), + + }, + 20 * 30, + 240, + 3); + + + // Monomethylhydrazine_Plus_Nitric_Acid + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedCircuit(3), + }, + new FluidStack[] { + FluidUtils.getFluidStack(Monomethylhydrazine, 1000), + FluidUtils.getFluidStack("nitricacid", 1000), + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack(Monomethylhydrazine_Plus_Nitric_Acid, 3000), + + }, + 20 * 45, + 480, + 3); + + + // Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedCircuit(4), + }, + new FluidStack[] { + FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine, 2000), + FluidUtils.getFluidStack(Nitrogen_Tetroxide, 2000), + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide, 4000), + + }, + 20 * 60, + 480, + 3); } @Override public String errorMessage() { - // TODO Auto-generated method stub return "Bad Rocket Fuel Science!"; } @@ -451,218 +466,9 @@ public class RocketFuels extends ItemPackage { } @Override - public boolean onLoadComplete(FMLLoadCompleteEvent event) { - - - if (MathUtils.randInt(1, 2) > 0) { - return false; - } - - - Materials aMaterial_Chloramine = MaterialUtils.getMaterial("Chloramine"); - Materials aMaterial_Dimethylamine = MaterialUtils.getMaterial("Dimethylamine"); - Materials aMaterial_DilutedHydrochloricAcid = MaterialUtils.getMaterial("DilutedHydrochloricAcid"); - Materials aMaterial_NitrogenDioxide = MaterialUtils.getMaterial("NitrogenDioxide"); - Materials aMaterial_DinitrogenTetroxide = MaterialUtils.getMaterial("DinitrogenTetroxide"); - Materials aMaterial_Dimethylhydrazine = MaterialUtils.getMaterial("Dimethylhydrazine"); - - Materials aMaterial_Oxygen = Materials.Oxygen; - Materials aMaterial_Water = Materials.Water; - Materials aMaterial_HypochlorousAcid = MaterialUtils.getMaterial("HypochlorousAcid"); - Materials aMaterial_Ammonia = MaterialUtils.getMaterial("Ammonia"); - Materials aMaterial_Methanol = MaterialUtils.getMaterial("Methanol"); - - if (aMaterial_Chloramine == null || aMaterial_Dimethylamine == null || aMaterial_DilutedHydrochloricAcid == null - || aMaterial_Dimethylhydrazine == null || aMaterial_NitrogenDioxide == null || aMaterial_DinitrogenTetroxide == null - || aMaterial_HypochlorousAcid == null || aMaterial_Ammonia == null || aMaterial_Methanol == null) { - return false; - } - - - MaterialHelper.getCells(aMaterial_Water, 1); - - ItemStack aCellEmpty = CI.emptyCells(1); - ItemStack aCellWater = MaterialHelper.getCells(aMaterial_Water, 1); - ItemStack aCellOxygen = MaterialHelper.getCells(aMaterial_Oxygen, 1); - ItemStack aCellChloramine = MaterialHelper.getCells(aMaterial_Chloramine, 1); - ItemStack aCellDimethylamine = MaterialHelper.getCells(aMaterial_Dimethylamine, 1); - ItemStack aCellDilutedHydrochloricAcid = MaterialHelper.getCells(aMaterial_DilutedHydrochloricAcid, 1); - ItemStack aCellNitrogenDioxide = MaterialHelper.getCells(aMaterial_NitrogenDioxide, 1); - ItemStack aCellDinitrogenTetroxide = MaterialHelper.getCells(aMaterial_DinitrogenTetroxide, 1); - ItemStack aCellDimethylhydrazine = MaterialHelper.getCells(aMaterial_Dimethylhydrazine, 1); - - - - - - - GT_Recipe aChemReactor_1 = new Recipe_GT( - true, //Optimise - new ItemStack[] {}, //I - new ItemStack[] {}, //O - null, //Special - new int[] {}, //Chance - new FluidStack[] {}, //I - new FluidStack[] {}, //O - 0, //Dura - 0, //Eu - 0); //Special - - GT_Recipe aChemReactor_2 = new Recipe_GT( - true, //Optimise - new ItemStack[] {}, //I - new ItemStack[] {}, //O - null, //Special - new int[] {}, //Chance - new FluidStack[] {}, //I - new FluidStack[] {}, //O - 0, //Dura - 0, //Eu - 0); //Special - - - - - GT_Recipe aChemReactor_Basic_1 = new Recipe_GT( - true, //Optimise - new ItemStack[] {}, //I - new ItemStack[] {}, //O - null, //Special - new int[] {}, //Chance - new FluidStack[] {}, //I - new FluidStack[] {}, //O - 0, //Dura - 0, //Eu - 0); //Special - - GT_Recipe aChemReactor_Basic_2 = new Recipe_GT( - true, //Optimise - new ItemStack[] {}, //I - new ItemStack[] {}, //O - null, //Special - new int[] {}, //Chance - new FluidStack[] {}, //I - new FluidStack[] {}, //O - 0, //Dura - 0, //Eu - 0); //Special - - GT_Recipe aChemReactor_Basic_3 = new Recipe_GT( - true, //Optimise - new ItemStack[] {}, //I - new ItemStack[] {}, //O - null, //Special - new int[] {}, //Chance - new FluidStack[] {}, //I - new FluidStack[] {}, //O - 0, //Dura - 0, //Eu - 0); //Special - - GT_Recipe aChemReactor_Basic_4 = new Recipe_GT( - true, //Optimise - new ItemStack[] {}, //I - new ItemStack[] {}, //O - null, //Special - new int[] {}, //Chance - new FluidStack[] {}, //I - new FluidStack[] {}, //O - 0, //Dura - 0, //Eu - 0); //Special - - - - - - - - - - - - - - GT_Recipe aChemReactor_Adv_1 = new Recipe_GT( - true, //Optimise - new ItemStack[] {}, //I - new ItemStack[] {}, //O - null, //Special - new int[] {}, //Chance - new FluidStack[] {}, //I - new FluidStack[] {}, //O - 0, //Dura - 0, //Eu - 0); //Special - - GT_Recipe aChemReactor_Adv_2 = new Recipe_GT( - true, //Optimise - new ItemStack[] {}, //I - new ItemStack[] {}, //O - null, //Special - new int[] {}, //Chance - new FluidStack[] {}, //I - new FluidStack[] {}, //O - 0, //Dura - 0, //Eu - 0); //Special - - - - - //RecipeUtils.removeGtRecipe(aChemReactor_Basic_1, GT_Recipe.GT_Recipe_Map.sChemicalRecipes); - //RecipeUtils.removeGtRecipe(aChemReactor_Basic_1, GT_Recipe.GT_Recipe_Map.sChemicalRecipes); - //RecipeUtils.removeGtRecipe(aChemReactor_Basic_1, GT_Recipe.GT_Recipe_Map.sChemicalRecipes); - //RecipeUtils.removeGtRecipe(aChemReactor_Basic_1, GT_Recipe.GT_Recipe_Map.sChemicalRecipes); - - - - - - - /* GT_Values.RA.addChemicalRecipe( Materials.Chloramine.getCells(2), GT_Utility.getIntegratedCircuit(1), Materials.Dimethylamine.getGas(5000), Materials.Dimethylhydrazine.getFluid(6000), Materials.DilutedHydrochloricAcid.getCells(1), Materials.Empty.getCells(1), 960, 480); - GT_Values.RA.addChemicalRecipe( Materials.Dimethylamine.getCells(5), GT_Utility.getIntegratedCircuit(1), Materials.Chloramine.getFluid(2000), Materials.Dimethylhydrazine.getFluid(6000), Materials.DilutedHydrochloricAcid.getCells(1), Materials.Empty.getCells(4), 960, 480); - GT_Values.RA.addChemicalRecipeForBasicMachineOnly(Materials.Chloramine.getCells(2), Materials.Empty.getCells(4), Materials.Dimethylamine.getGas(5000), Materials.DilutedHydrochloricAcid.getFluid(1000), Materials.Dimethylhydrazine.getCells(6), GT_Values.NI, 960, 480); - GT_Values.RA.addChemicalRecipeForBasicMachineOnly(Materials.Dimethylamine.getCells(5), Materials.Empty.getCells(1), Materials.Chloramine.getFluid(2000), Materials.DilutedHydrochloricAcid.getFluid(1000), Materials.Dimethylhydrazine.getCells(6), GT_Values.NI, 960, 480); - GT_Values.RA.addChemicalRecipeForBasicMachineOnly(Materials.Dimethylamine.getCells(5), Materials.Chloramine.getCells(2), Materials.Chloramine.getFluid(2000), Materials.DilutedHydrochloricAcid.getFluid(1000), Materials.Dimethylhydrazine.getCells(6), Materials.DilutedHydrochloricAcid.getCells(1), 960, 480); - GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{GT_Utility.getIntegratedCircuit(24)}, new FluidStack[]{Materials.HypochlorousAcid.getFluid(3000), Materials.Ammonia.getGas(8000), Materials.Methanol.getFluid(12000)}, new FluidStack[]{Materials.Dimethylhydrazine.getFluid(12000), Materials.DilutedHydrochloricAcid.getFluid(2000), Materials.Water.getFluid(9000)}, null, 1040, 480); - - GT_Values.RA.addChemicalRecipe(GT_Utility.getIntegratedCircuit(2), GT_Values.NI, Materials.NitrogenDioxide.getGas(1000), Materials.DinitrogenTetroxide.getGas(1000), GT_Values.NI, 640); - GT_Values.RA.addChemicalRecipe(Materials.NitrogenDioxide.getCells(1), GT_Utility.getIntegratedCircuit(2), GT_Values.NF, Materials.DinitrogenTetroxide.getGas(1000), Materials.Empty.getCells(1), 640); - GT_Values.RA.addChemicalRecipe(Materials.NitrogenDioxide.getCells(1), GT_Utility.getIntegratedCircuit(12), GT_Values.NF, GT_Values.NF, Materials.DinitrogenTetroxide.getCells(1), 640); - GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{GT_Utility.getIntegratedCircuit(23)}, new FluidStack[]{Materials.Ammonia.getGas(8000), Materials.Oxygen.getGas(7000)}, new FluidStack[]{Materials.DinitrogenTetroxide.getGas(6000), Materials.Water.getFluid(9000)}, null, 480, 30); - GT_Values.RA.addMultiblockChemicalRecipe(new ItemStack[]{GT_Utility.getIntegratedCircuit(23)}, new FluidStack[]{Materials.Nitrogen.getGas(2000), Materials.Hydrogen.getGas(6000), Materials.Oxygen.getGas(7000)}, new FluidStack[]{Materials.DinitrogenTetroxide.getGas(6000), Materials.Water.getFluid(9000)}, null, 1100, 480); - - GT_Values.RA.addMixerRecipe(Materials.Dimethylhydrazine.getCells(1), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.DinitrogenTetroxide.getGas(1000), new FluidStack(ItemList.sRocketFuel, 2000), Materials.Empty.getCells(1), 60, 16); - GT_Values.RA.addMixerRecipe(Materials.DinitrogenTetroxide.getCells(1), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.Dimethylhydrazine.getFluid(1000), new FluidStack(ItemList.sRocketFuel, 2000), Materials.Empty.getCells(1), 60, 16); - GT_Values.RA.addMixerRecipe(Materials.Dimethylhydrazine.getCells(2), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.Oxygen.getGas(1000), new FluidStack(ItemList.sRocketFuel, 3000), Materials.Empty.getCells(2), 60, 16); - GT_Values.RA.addMixerRecipe(Materials.Oxygen.getCells(1), GT_Values.NI, GT_Values.NI, GT_Values.NI, Materials.Dimethylhydrazine.getFluid(2000), new FluidStack(ItemList.sRocketFuel, 3000), Materials.Empty.getCells(1), 60, 16); - - - */ - - - - - - - - - - //Get Rocket Fuel - - //Find recipes using default values - - //Remove - - //Rebake map - - return true; - }; - - @Override public void items() { Formaldehyde_Catalyst = ItemUtils.generateSpecialUseDusts("FormaldehydeCatalyst", "Formaldehyde Catalyst", "Fe16V1", Utils.rgbtoHexValue(25, 5, 25))[0]; + Formaldehyde_Catalyst_Stack = ItemUtils.getSimpleStack(Formaldehyde_Catalyst); } @Override @@ -674,7 +480,7 @@ public class RocketFuels extends ItemPackage { //Register default fluids Diesel = MaterialUtils.getMaterial("Fuel", "Diesel").getFluid(1).getFluid(); - + // 5.08 Compat if (!FluidUtils.doesFluidExist("liquid_heavy_oil")){ Oil_Heavy = FluidUtils.generateFluidNoPrefix("liquid_heavy_oil", "Heavy Oil", 200, new short[]{10, 10, 10, 100}); @@ -763,7 +569,7 @@ public class RocketFuels extends ItemPackage { } } - Formaldehyde = FluidUtils.generateFluidNonMolten("Formaldehyde", "Formaldehyde", -92, new short[]{150, 75, 150, 100}, null, null); + Formaldehyde = FluidUtils.generateFluidNonMolten("Formaldehyde", "Formaldehyde", 185, new short[]{150, 75, 150, 100}, null, null); Unsymmetrical_Dimethylhydrazine_Plus_Nitrogen_Tetroxide = FluidUtils.generateFluidNonMolten("RocketFuelMixA", "H8N4C2O4 Rocket Fuel", -185, new short[]{50, 220, 50, 100}, null, null); RP1_Plus_Liquid_Oxygen = FluidUtils.generateFluidNonMolten("RocketFuelMixB", "Rp-1 Rocket Fuel", -250, new short[]{250, 50, 50, 100}, null, null); @@ -773,6 +579,469 @@ public class RocketFuels extends ItemPackage { } + @Override + public boolean onLoadComplete(FMLLoadCompleteEvent event) { + + Logger.INFO("Trying to remove GT recipes for '1,1dimethylhydrazine' && 'rocket_fuel' if they exist."); + /*if (FluidRegistry.isFluidRegistered("1,1dimethylhydrazine")) { + + // Try Remove recipes for GT/EIO Rocket Fuel Cells + if (FluidRegistry.isFluidRegistered("rocket_fuel")) { + + // Old Recipe + if (MaterialUtils.doesMaterialExist("NitrogenDioxide")) { + GT_Recipe aOldRecipe = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellNitrogenDioxide", 1), + ItemUtils.getItemStackOfAmountFromOreDict("cellHydrogen", 3), + }, + new FluidStack[] { + FluidUtils.getFluidStack("air", 500) + }, + 388); + boolean aDidRemove = removeRecipe(aOldRecipe, GT_Recipe_Map.sChemicalRecipes); + Logger.INFO("Removed Old Recipe for Rocket Fuel: "+aDidRemove); + } + + // Simple Recipes + if (MaterialUtils.doesMaterialExist("Ammonia") && MaterialUtils.doesMaterialExist("Methanol")) { + + GT_Recipe aSimpleRecipe1 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellAmmonia", 3), + ItemUtils.getItemStackOfAmountFromOreDict("cellMethanol", 4), + }, + new FluidStack[] { + FluidUtils.getFluidStack("chlorine", 1000) + }, + 480); + GT_Recipe aSimpleRecipe2 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellChlorine", 1), + ItemUtils.getItemStackOfAmountFromOreDict("cellMethanol", 4), + }, + new FluidStack[] { + FluidUtils.getFluidStack("ammonia", 3000) + }, + 480); + GT_Recipe aSimpleRecipe3 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellAmmonia", 3), + ItemUtils.getItemStackOfAmountFromOreDict("cellChlorine", 1), + }, + new FluidStack[] { + FluidUtils.getFluidStack("methanol", 4000) + }, + 480); + + boolean aDidRemove1 = removeRecipe(aSimpleRecipe1, GT_Recipe_Map.sChemicalRecipes); + boolean aDidRemove2 = removeRecipe(aSimpleRecipe2, GT_Recipe_Map.sChemicalRecipes); + boolean aDidRemove3 = removeRecipe(aSimpleRecipe3, GT_Recipe_Map.sChemicalRecipes); + Logger.INFO("Removed Simple Recipe 1 for Rocket Fuel: "+aDidRemove1); + Logger.INFO("Removed Simple Recipe 2 for Rocket Fuel: "+aDidRemove2); + Logger.INFO("Removed Simple Recipe 3 for Rocket Fuel: "+aDidRemove3); + } + + + // Complex Recipes I + if (MaterialUtils.doesMaterialExist("Dimethylhydrazine") && MaterialUtils.doesMaterialExist("DinitrogenTetroxide")) { + + GT_Recipe aAdvRecipe1 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellDimethylhydrazine", 1), + }, + new FluidStack[] { + FluidUtils.getFluidStack("dinitrogentetroxide", 1000) + }, + 16); + GT_Recipe aAdvRecipe2 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellDinitrogenTetroxide", 1), + }, + new FluidStack[] { + FluidUtils.getFluidStack("dimethylhydrazine", 1000) + }, + 16); + + GT_Recipe aAdvRecipe3 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellDimethylhydrazine", 2), + }, + new FluidStack[] { + FluidUtils.getFluidStack("oxygen", 1000) + }, + 16); + GT_Recipe aAdvRecipe4 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 1), + }, + new FluidStack[] { + FluidUtils.getFluidStack("dimethylhydrazine", 2000) + }, + 16); + + boolean aDidRemove1 = removeRecipe(aAdvRecipe1, GT_Recipe_Map.sMixerRecipes); + boolean aDidRemove2 = removeRecipe(aAdvRecipe2, GT_Recipe_Map.sMixerRecipes); + boolean aDidRemove3 = removeRecipe(aAdvRecipe3, GT_Recipe_Map.sMixerRecipes); + boolean aDidRemove4 = removeRecipe(aAdvRecipe4, GT_Recipe_Map.sMixerRecipes); + Logger.INFO("Removed Complex Recipe 1 for Rocket Fuel: "+aDidRemove1); + Logger.INFO("Removed Complex Recipe 2 for Rocket Fuel: "+aDidRemove2); + Logger.INFO("Removed Complex Recipe 3 for Rocket Fuel: "+aDidRemove3); + Logger.INFO("Removed Complex Recipe 4 for Rocket Fuel: "+aDidRemove4); + } + } + + + // Complex Recipes II + if (MaterialUtils.doesMaterialExist("Dimethylhydrazine")) { + + GT_Recipe aAdvRecipe1 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellDimethylhydrazine", 2), + }, + new FluidStack[] { + FluidUtils.getFluidStack("oxygen", 1000) + }, + 16); + GT_Recipe aAdvRecipe2 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 1), + }, + new FluidStack[] { + FluidUtils.getFluidStack("dimethylhydrazine", 2000) + }, + 16); + + boolean aDidRemove1 = removeRecipe(aAdvRecipe1, GT_Recipe_Map.sMixerRecipes); + boolean aDidRemove2 = removeRecipe(aAdvRecipe2, GT_Recipe_Map.sMixerRecipes); + Logger.INFO("Removed Complex Recipe 5 for Rocket Fuel: "+aDidRemove1); + Logger.INFO("Removed Complex Recipe 6 for Rocket Fuel: "+aDidRemove2); + } + + if (MaterialUtils.doesMaterialExist("Chloramine") && MaterialUtils.doesMaterialExist("Dimethylamine")) { + GT_Recipe aSimpleRecipe1 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellChloramine", 2), + GT_Utility.getIntegratedCircuit(1) + }, + new FluidStack[] { + FluidUtils.getFluidStack("dimethylamine", 5000) + }, + 480); + GT_Recipe aSimpleRecipe2 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellDimethylamine", 5), + GT_Utility.getIntegratedCircuit(1) + }, + new FluidStack[] { + FluidUtils.getFluidStack("chloramine", 2000) + }, + 16); + + + + GT_Recipe aAdvRecipe1 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellChloramine", 2), + CI.emptyCells(4) + }, + new FluidStack[] { + FluidUtils.getFluidStack("dimethylamine", 5000) + }, + 480); + GT_Recipe aAdvRecipe2 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellDimethylamine", 5), + CI.emptyCells(1) + }, + new FluidStack[] { + FluidUtils.getFluidStack("chloramine", 2000) + }, + 16); + GT_Recipe aAdvRecipe3 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellChloramine", 2), + ItemUtils.getItemStackOfAmountFromOreDict("cellDimethylamine", 5), + }, + new FluidStack[] { + FluidUtils.getFluidStack("chloramine", 2000) + }, + 480); + + boolean aDidRemove1 = removeRecipe(aSimpleRecipe1, GT_Recipe_Map.sChemicalRecipes); + boolean aDidRemove2 = removeRecipe(aSimpleRecipe2, GT_Recipe_Map.sChemicalRecipes); + boolean aDidRemove3 = removeRecipe(aAdvRecipe1, GT_Recipe_Map.sChemicalRecipes); + boolean aDidRemove4 = removeRecipe(aAdvRecipe2, GT_Recipe_Map.sChemicalRecipes); + boolean aDidRemove5 = removeRecipe(aAdvRecipe3, GT_Recipe_Map.sChemicalRecipes); + Logger.INFO("Removed Complex Recipe 1 for 1,1dimethylhydrazine: "+aDidRemove1); + Logger.INFO("Removed Complex Recipe 2 for 1,1dimethylhydrazine: "+aDidRemove2); + Logger.INFO("Removed Complex Recipe 3 for 1,1dimethylhydrazine: "+aDidRemove3); + Logger.INFO("Removed Complex Recipe 4 for 1,1dimethylhydrazine: "+aDidRemove4); + Logger.INFO("Removed Complex Recipe 5 for 1,1dimethylhydrazine: "+aDidRemove5); + + } + + if (MaterialUtils.doesMaterialExist("Chloramine") && MaterialUtils.doesMaterialExist("Dimethylamine")) { + GT_Recipe aSimpleRecipe1 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellChloramine", 1), + GT_Utility.getIntegratedCircuit(1) + }, + new FluidStack[] { + FluidUtils.getFluidStack("dimethylamine", 1000) + }, + 480); + GT_Recipe aSimpleRecipe2 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellDimethylamine", 1), + GT_Utility.getIntegratedCircuit(1) + }, + new FluidStack[] { + FluidUtils.getFluidStack("chloramine", 1000) + }, + 16); + + + + GT_Recipe aAdvRecipe1 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellChloramine", 1), + GT_Utility.getIntegratedCircuit(11) + }, + new FluidStack[] { + FluidUtils.getFluidStack("dimethylamine", 1000) + }, + 480); + GT_Recipe aAdvRecipe2 = getHalfBakedRecipe( + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("cellDimethylamine", 1), + GT_Utility.getIntegratedCircuit(11) + }, + new FluidStack[] { + FluidUtils.getFluidStack("chloramine", 1000) + }, + 16); + + boolean aDidRemove1 = removeRecipe(aSimpleRecipe1, GT_Recipe_Map.sChemicalRecipes); + boolean aDidRemove2 = removeRecipe(aSimpleRecipe2, GT_Recipe_Map.sChemicalRecipes); + boolean aDidRemove3 = removeRecipe(aAdvRecipe1, GT_Recipe_Map.sChemicalRecipes); + boolean aDidRemove4 = removeRecipe(aAdvRecipe2, GT_Recipe_Map.sChemicalRecipes); + Logger.INFO("Removed Complex Recipe 5 for 1,1dimethylhydrazine: "+aDidRemove1); + Logger.INFO("Removed Complex Recipe 6 for 1,1dimethylhydrazine: "+aDidRemove2); + Logger.INFO("Removed Complex Recipe 7 for 1,1dimethylhydrazine: "+aDidRemove3); + Logger.INFO("Removed Complex Recipe 8 for 1,1dimethylhydrazine: "+aDidRemove4); + + } + + if (MaterialUtils.doesMaterialExist("HypochlorousAcid") && MaterialUtils.doesMaterialExist("Ammonia") && MaterialUtils.doesMaterialExist("Methanol")) { + + GT_Recipe aAdvRecipe1 = getHalfBakedRecipe( + new ItemStack[] { + GT_Utility.getIntegratedCircuit(24), + }, + new FluidStack[] { + FluidUtils.getFluidStack("hypochlorousacid", 3000), + FluidUtils.getFluidStack("ammonia", 8000), + FluidUtils.getFluidStack("methanol", 12000) + }, + 480); + + GT_Recipe aAdvRecipe2 = getHalfBakedRecipe( + new ItemStack[] { + GT_Utility.getIntegratedCircuit(24), + }, + new FluidStack[] { + FluidUtils.getFluidStack("hypochlorousacid", 1000), + FluidUtils.getFluidStack("ammonia", 1000), + FluidUtils.getFluidStack("methanol", 2000) + }, + 480); + + boolean aDidRemove1 = removeRecipe(aAdvRecipe1, StaticFields59.getLargeChemicalReactorRecipeMap()); + boolean aDidRemove2 = removeRecipe(aAdvRecipe2, StaticFields59.getLargeChemicalReactorRecipeMap()); + Logger.INFO("Removed Complex Recipe 9 for 1,1dimethylhydrazine: "+aDidRemove1); + Logger.INFO("Removed Complex Recipe 10 for 1,1dimethylhydrazine: "+aDidRemove2); + + + } + }*/ + + // Try Butcher recipes manually + + //1,1Dimethylhydrazine + if (FluidRegistry.isFluidRegistered("1,1dimethylhydrazine")) { + Logger.INFO("Making sure all Chemical Reactor recipes for 1,1dimethylhydrazine have been removed."); + AutoMap<GT_Recipe> aToRemoveSingle = new AutoMap<GT_Recipe>(); + ItemStack aUnsymCell = ItemUtils.getItemStackOfAmountFromOreDict("cell1,1Dimethylhydrazine", 1); + FluidStack aUnsymFluid = FluidUtils.getFluidStack("1,1dimethylhydrazine", 1); + recipe : for (GT_Recipe aRecipeSingleBlock : GT_Recipe_Map.sChemicalRecipes.mRecipeList) { + if (aRecipeSingleBlock != null && aRecipeSingleBlock.mEnabled) { + if (aRecipeSingleBlock.mOutputs != null && aRecipeSingleBlock.mOutputs.length > 0) { + for (ItemStack aOutputItem : aRecipeSingleBlock.mOutputs) { + ItemStack aTemp = aOutputItem.copy(); + aTemp.stackSize = 1; + if (GT_Utility.areStacksEqual(aTemp, aUnsymCell)) { + aToRemoveSingle.add(aRecipeSingleBlock); + continue recipe; + } + } + } + if (aRecipeSingleBlock.mFluidOutputs != null && aRecipeSingleBlock.mFluidOutputs.length > 0) { + for (FluidStack aOutput : aRecipeSingleBlock.mFluidOutputs) { + if (GT_Utility.areFluidsEqual(aOutput, aUnsymFluid)) { + aToRemoveSingle.add(aRecipeSingleBlock); + continue recipe; + } + } + } + } + } + // Handle Multi Also + AutoMap<GT_Recipe> aToRemoveMulti = new AutoMap<GT_Recipe>(); + recipe : for (GT_Recipe aRecipeSingleBlock : StaticFields59.getLargeChemicalReactorRecipeMap().mRecipeList) { + if (aRecipeSingleBlock != null && aRecipeSingleBlock.mEnabled) { + if (aRecipeSingleBlock.mOutputs != null && aRecipeSingleBlock.mOutputs.length > 0) { + for (ItemStack aOutputItem : aRecipeSingleBlock.mOutputs) { + ItemStack aTemp = aOutputItem.copy(); + aTemp.stackSize = 1; + if (GT_Utility.areStacksEqual(aTemp, aUnsymCell)) { + aToRemoveMulti.add(aRecipeSingleBlock); + continue recipe; + } + } + } + if (aRecipeSingleBlock.mFluidOutputs != null && aRecipeSingleBlock.mFluidOutputs.length > 0) { + for (FluidStack aOutput : aRecipeSingleBlock.mFluidOutputs) { + if (GT_Utility.areFluidsEqual(aOutput, aUnsymFluid)) { + aToRemoveMulti.add(aRecipeSingleBlock); + continue recipe; + } + } + } + } + } + if (!aToRemoveSingle.isEmpty()) { + Logger.INFO("Found "+aToRemoveSingle.size()+" single block recipes, removing by force."); + for (GT_Recipe remove : aToRemoveSingle) { + GT_Recipe_Map.sChemicalRecipes.mRecipeList.remove(remove); + } + } + if (!aToRemoveMulti.isEmpty()) { + Logger.INFO("Found "+aToRemoveSingle.size()+" multiblock recipes, removing by force."); + for (GT_Recipe remove : aToRemoveMulti) { + StaticFields59.getLargeChemicalReactorRecipeMap().mRecipeList.remove(remove); + } + } + } + + + if (FluidRegistry.isFluidRegistered("rocket_fuel")) { + Logger.INFO("Making sure all Mixer recipes for rocket_fuel have been removed."); + AutoMap<GT_Recipe> aToRemoveSingle = new AutoMap<GT_Recipe>(); + FluidStack aRocketFluid = FluidUtils.getFluidStack("rocket_fuel", 1); + recipe : for (GT_Recipe aRecipeSingleBlock : GT_Recipe_Map.sMixerRecipes.mRecipeList) { + if (aRecipeSingleBlock != null && aRecipeSingleBlock.mEnabled) { + if (aRecipeSingleBlock.mFluidOutputs != null && aRecipeSingleBlock.mFluidOutputs.length > 0) { + for (FluidStack aOutput : aRecipeSingleBlock.mFluidOutputs) { + if (GT_Utility.areFluidsEqual(aOutput, aRocketFluid)) { + aToRemoveSingle.add(aRecipeSingleBlock); + continue recipe; + } + } + } + } + } + if (!aToRemoveSingle.isEmpty()) { + Logger.INFO("Found "+aToRemoveSingle.size()+" recipes, removing by force."); + for (GT_Recipe remove : aToRemoveSingle) { + GT_Recipe_Map.sMixerRecipes.mRecipeList.remove(remove); + } + aToRemoveSingle.clear(); + } + + Logger.INFO("Making sure all Chemical Reactor recipes for rocket_fuel have been removed."); + recipe : for (GT_Recipe aRecipeSingleBlock : GT_Recipe_Map.sChemicalRecipes.mRecipeList) { + if (aRecipeSingleBlock != null && aRecipeSingleBlock.mEnabled) { + if (aRecipeSingleBlock.mFluidOutputs != null && aRecipeSingleBlock.mFluidOutputs.length > 0) { + for (FluidStack aOutput : aRecipeSingleBlock.mFluidOutputs) { + if (GT_Utility.areFluidsEqual(aOutput, aRocketFluid)) { + aToRemoveSingle.add(aRecipeSingleBlock); + continue recipe; + } + } + } + } + } + // Handle Multi Also + AutoMap<GT_Recipe> aToRemoveMulti = new AutoMap<GT_Recipe>(); + recipe : for (GT_Recipe aRecipeSingleBlock : StaticFields59.getLargeChemicalReactorRecipeMap().mRecipeList) { + if (aRecipeSingleBlock != null && aRecipeSingleBlock.mEnabled) { + if (aRecipeSingleBlock.mFluidOutputs != null && aRecipeSingleBlock.mFluidOutputs.length > 0) { + for (FluidStack aOutput : aRecipeSingleBlock.mFluidOutputs) { + if (GT_Utility.areFluidsEqual(aOutput, aRocketFluid)) { + aToRemoveMulti.add(aRecipeSingleBlock); + continue recipe; + } + } + } + } + } + if (!aToRemoveSingle.isEmpty()) { + Logger.INFO("Found "+aToRemoveSingle.size()+" single block recipes, removing by force."); + for (GT_Recipe remove : aToRemoveSingle) { + GT_Recipe_Map.sChemicalRecipes.mRecipeList.remove(remove); + } + } + if (!aToRemoveMulti.isEmpty()) { + Logger.INFO("Found "+aToRemoveSingle.size()+" multiblock recipes, removing by force."); + for (GT_Recipe remove : aToRemoveMulti) { + StaticFields59.getLargeChemicalReactorRecipeMap().mRecipeList.remove(remove); + } + } + + } + + + + Logger.INFO("Finished clean-up of GT Rocket Fuel Recipes."); + return true; + } + + private static Recipe_GT getHalfBakedRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, int aEU) { + return new Recipe_GT(false, aInputs, null, null, null, aFluidInputs, null, 0, aEU, 0); + + } + + public static boolean removeRecipe(GT_Recipe aRecipe, GT_Recipe_Map aMap) { + if (aMap != GT_Recipe_Map.sChemicalRecipes) { + GT_Recipe aFoundRecipe = aMap.findRecipe(null, false, true, aRecipe.mEUt, aRecipe.mFluidInputs, aRecipe.mInputs); + boolean aSingle = false; + if (aFoundRecipe != null) { + Logger.INFO("Found Single Block Recipe, removing."); + aSingle = aMap.mRecipeList.remove(aFoundRecipe); + Logger.INFO("Success? "+aSingle); + } + return aSingle; + } + else { + GT_Recipe aFoundRecipe = aMap.findRecipe(null, false, true, aRecipe.mEUt, aRecipe.mFluidInputs, aRecipe.mInputs); + GT_Recipe aFoundRecipe2 = StaticFields59.getLargeChemicalReactorRecipeMap().findRecipe(null, false, true, aRecipe.mEUt, aRecipe.mFluidInputs, aRecipe.mInputs); + boolean aSingle = false; + boolean aMulti = false; + if (aFoundRecipe != null) { + Logger.INFO("Found Single Block Recipe, removing."); + aSingle = GT_Recipe_Map.sChemicalRecipes.mRecipeList.remove(aFoundRecipe); + Logger.INFO("Success? "+aSingle); + } + if (aFoundRecipe2 != null) { + Logger.INFO("Found Multiblock Recipe, removing."); + aMulti = StaticFields59.getLargeChemicalReactorRecipeMap().mRecipeList.remove(aFoundRecipe2); + Logger.INFO("Success? "+aSingle); + } + return aSingle && aMulti; + } + } + } diff --git a/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java b/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java index 208fecd57c..7fb5f207f6 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 = 7; + final private int aMetaSize = 9; /* * 0 - Red Metal Catalyst //FeCu @@ -29,7 +29,8 @@ public class ItemGenericChemBase extends Item { * 4 - Purple Metal Catalyst //IrIdium Ruthenium * 5 - Brown Metal Catalyst //NiAl * 6 - Pink Metal Catalyst //PtRh - * + * 7 - Alumina Grinding Ball + * 8 - Soapstone Grinding Ball */ public ItemGenericChemBase() { diff --git a/src/Java/gtPlusPlus/core/item/food/BaseItemMetaFood.java b/src/Java/gtPlusPlus/core/item/food/BaseItemMetaFood.java new file mode 100644 index 0000000000..94d5a8e80f --- /dev/null +++ b/src/Java/gtPlusPlus/core/item/food/BaseItemMetaFood.java @@ -0,0 +1,431 @@ +package gtPlusPlus.core.item.food; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import cpw.mods.fml.common.registry.GameRegistry; +import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.core.creative.AddToCreativeTab; +import gtPlusPlus.core.item.ModItems; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.math.MathUtils; +import gtPlusPlus.core.util.minecraft.EntityUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BaseItemMetaFood extends ItemFood { + + private static final HashMap<Integer, IIcon> mIconMap = new HashMap<Integer, IIcon>(); + private static int mTotalMetaItems = 0; + + /* + * 0 - Raw Human Meat + * 1 - Cooked Human Meat + * 2 - Raw Horse Meat + * 3 - Cooked Horse Meat + * 4 - Raw Wolf Meat + * 5 - Cooked Wolf Meat + * 6 - Raw Ocelot Meat + * 7 - Cooked Ocelot Meat + * 8 - Blaze Flesh + */ + + //listAllmeatraw + //listAllmeatcooked + + public static void registerMetaFoods() { + registerNewMetaFood(0, "I wouldn't eat this unless I was starving", 2, 0, 64, getPotionEffectPackage(new EffectWeaknessModerate(80), new EffectSlownessModerate(80)), getOreDictNamesAsArrayList("listAllmeatraw")); + registerNewMetaFood(1, "Doesn't look any better cooked", 4, 1, 64, getPotionEffectPackage(new EffectWeaknessBasic(50), new EffectSlownessBasic(50)), getOreDictNamesAsArrayList("listAllmeatcooked")); + registerNewMetaFood(2, "", 2, 0, 64, getPotionEffectPackage(new EffectWeaknessBasic(30), new EffectSlownessBasic(30)), getOreDictNamesAsArrayList("listAllmeatraw")); + registerNewMetaFood(3, "", 4, 1, 64, getOreDictNamesAsArrayList("listAllmeatcooked")); + registerNewMetaFood(4, "", 2, 0, 64, getPotionEffectPackage(new EffectWeaknessBasic(25), new EffectSlownessBasic(30)), getOreDictNamesAsArrayList("listAllmeatraw")); + registerNewMetaFood(5, "", 4, 1, 64, getOreDictNamesAsArrayList("listAllmeatcooked")); + registerNewMetaFood(6, "", 2, 0, 64, getPotionEffectPackage(new EffectWeaknessBasic(30), new EffectSlownessBasic(25)), getOreDictNamesAsArrayList("listAllmeatraw")); + registerNewMetaFood(7, "", 4, 1, 64, getOreDictNamesAsArrayList("listAllmeatcooked")); + registerNewMetaFood(8, "Warm to the touch", EnumRarity.uncommon, 4, 1, 64, new AutoMap<PotionEffectPackage>(), new setOnFire(), getOreDictNamesAsArrayList("listAllmeatcooked")); + } + + private static final HashMap<Integer, Integer> mMaxStackSizeMap = new HashMap<Integer, Integer>(); + private static final HashMap<Integer, String> mTooltipMap = new HashMap<Integer, String>(); + private static final HashMap<Integer, EnumRarity> mRarityMap = new HashMap<Integer, EnumRarity>(); + private static final HashMap<Integer, Integer> mHealAmountMap = new HashMap<Integer, Integer>(); + private static final HashMap<Integer, Float> mSaturationAmountMap = new HashMap<Integer, Float>(); + private static final HashMap<Integer, AutoMap<PotionEffectPackage>> mPotionEffectsMap = new HashMap<Integer, AutoMap<PotionEffectPackage>>(); + private static final HashMap<Integer, Boolean> mHasSpecialBehaviourMap = new HashMap<Integer, Boolean>(); + private static final HashMap<Integer, SpecialFoodBehaviour> mSpecialBehaviourMap = new HashMap<Integer, SpecialFoodBehaviour>(); + private static final HashMap<Integer, ArrayList<String>> mOreDictNames = new HashMap<Integer, ArrayList<String>>(); + + + public static void registerNewMetaFood(final int aMetaID, String aTooltip, final int aHealAmount, final float aSaturationModifier, final int aMaxStacksize) { + registerNewMetaFood(aMetaID, aTooltip, EnumRarity.common, aHealAmount, aSaturationModifier, aMaxStacksize, new AutoMap<PotionEffectPackage>(), null, new ArrayList<String>()); + } + + public static void registerNewMetaFood(final int aMetaID, String aTooltip, final int aHealAmount, final float aSaturationModifier, final int aMaxStacksize, final ArrayList<String> aOreDictNames) { + registerNewMetaFood(aMetaID, aTooltip, EnumRarity.common, aHealAmount, aSaturationModifier, aMaxStacksize, new AutoMap<PotionEffectPackage>(), null, aOreDictNames); + } + + + public static void registerNewMetaFood(final int aMetaID, String aTooltip, final int aHealAmount, final float aSaturationModifier, final int aMaxStacksize, final AutoMap<PotionEffectPackage> aPotionEffects) { + registerNewMetaFood(aMetaID, aTooltip, EnumRarity.common, aHealAmount, aSaturationModifier, aMaxStacksize, new AutoMap<PotionEffectPackage>(), null, new ArrayList<String>()); + } + + public static void registerNewMetaFood(final int aMetaID, String aTooltip, final int aHealAmount, final float aSaturationModifier, final int aMaxStacksize, final AutoMap<PotionEffectPackage> aPotionEffects, final ArrayList<String> aOreDictNames) { + registerNewMetaFood(aMetaID, aTooltip, EnumRarity.common, aHealAmount, aSaturationModifier, aMaxStacksize, aPotionEffects, null, aOreDictNames); + } + + public static void registerNewMetaFood(final int aMetaID, String aTooltip, EnumRarity aRarity, final int aHealAmount, final float aSaturationModifier, final int aMaxStacksize, final AutoMap<PotionEffectPackage> aPotionEffects, final SpecialFoodBehaviour aSpecialBehaviour) { + registerNewMetaFood(aMetaID, aTooltip, EnumRarity.common, aHealAmount, aSaturationModifier, aMaxStacksize, aPotionEffects, null, new ArrayList<String>()); + } + + public static void registerNewMetaFood(final int aMetaID, String aTooltip, EnumRarity aRarity, final int aHealAmount, final float aSaturationModifier, final int aMaxStacksize, final AutoMap<PotionEffectPackage> aPotionEffects, final SpecialFoodBehaviour aSpecialBehaviour, final ArrayList<String> aOreDictNames) { + mTotalMetaItems++; + mMaxStackSizeMap.put(aMetaID, aMaxStacksize); + mTooltipMap.put(aMetaID, aTooltip); + mRarityMap.put(aMetaID, aRarity); + mHealAmountMap.put(aMetaID, aHealAmount); + mSaturationAmountMap.put(aMetaID, aSaturationModifier); + mPotionEffectsMap.put(aMetaID, aPotionEffects); + mHasSpecialBehaviourMap.put(aMetaID, (aSpecialBehaviour != null)); + if (aSpecialBehaviour != null) { + mSpecialBehaviourMap.put(aMetaID, aSpecialBehaviour); + } + mOreDictNames.put(aMetaID, aOreDictNames); + } + + public static void registerFoodsToOreDict() { + for (int aMetaID=0; aMetaID < mTotalMetaItems; aMetaID++) { + ArrayList<String> aOreDictNames = mOreDictNames.get(aMetaID); + if (aOreDictNames != null && !aOreDictNames.isEmpty()) { + ItemStack aFoodStack = ItemUtils.simpleMetaStack(ModItems.itemMetaFood, aMetaID, 1); + for (String aOreName : aOreDictNames) { + ItemUtils.addItemToOreDictionary(aFoodStack, aOreName); + } + } + } + } + + + public BaseItemMetaFood() { + super(0, 0, false); + this.setHasSubtypes(true); + this.setNoRepair(); + this.setMaxStackSize(64); + this.setMaxDamage(0); + this.setUnlocalizedName("BasicMetaFood"); + this.setCreativeTab(AddToCreativeTab.tabMisc); + GameRegistry.registerItem(this, this.getUnlocalizedName()); + BaseItemMetaFood.registerMetaFoods(); + } + + private static final int getMetaKey(ItemStack aStack) { + return aStack.getItemDamage(); + } + + // Heal Amount + public int func_150905_g(ItemStack aStack) { + return mHealAmountMap.get(getMetaKey(aStack)); + } + + // Saturation Amount + public float func_150906_h(ItemStack aStack) { + return mSaturationAmountMap.get(getMetaKey(aStack)); + } + + // Whether wolves like this food, sadly doesn't support meta items + public boolean isWolfsFavoriteMeat() { + return false; + } + + @Override + protected void onFoodEaten(final ItemStack aStack, final World aWorld, final EntityPlayer aPlayer) { + //super.onFoodEaten(stack, world, player); + AutoMap<PotionEffectPackage> aPotionEffects = mPotionEffectsMap.get(getMetaKey(aStack)); + if (!aWorld.isRemote && aPotionEffects != null && aPotionEffects.size() > 0) { + for (PotionEffectPackage aFoodEffect : aPotionEffects) { + if (MathUtils.randInt(0, 100) <= aFoodEffect.getChance() || aFoodEffect.getChance() == 100) { + PotionEffect aEffect = aFoodEffect.getEffect(); + if (aEffect != null && aEffect.getPotionID() > 0) { + aPlayer.addPotionEffect(new PotionEffect(aEffect.getPotionID(), aEffect.getDuration() * 20, aEffect.getAmplifier(), aEffect.getIsAmbient())); + } + } + } + } + + boolean aHasEpcialBehaviour = mHasSpecialBehaviourMap.get(getMetaKey(aStack)); + if (!aWorld.isRemote && aHasEpcialBehaviour) { + SpecialFoodBehaviour aBehaviour = mSpecialBehaviourMap.get(getMetaKey(aStack)); + if (aBehaviour != null) { + aBehaviour.doBehaviour(aPlayer); + } + } + } + + @Override + public ItemStack onEaten(ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + return super.onEaten(aStack, aWorld, aPlayer); + } + + + @Override + public int getItemStackLimit(ItemStack aStack) { + return mMaxStackSizeMap.get(getMetaKey(aStack)); + } + + + @Override + public boolean isDamageable() { + return false; + } + + @Override + public boolean shouldRotateAroundWhenRendering() { + return super.shouldRotateAroundWhenRendering(); + } + + @Override + public void onUpdate(ItemStack p_77663_1_, World p_77663_2_, Entity p_77663_3_, int p_77663_4_, boolean p_77663_5_) { + super.onUpdate(p_77663_1_, p_77663_2_, p_77663_3_, p_77663_4_, p_77663_5_); + } + + @Override + public String getItemStackDisplayName(ItemStack aStack) { + return super.getItemStackDisplayName(aStack); + } + + @Override + public void addInformation(ItemStack aStack, EntityPlayer p_77624_2_, List aList, boolean p_77624_4_) { + try { + String aTooltip = mTooltipMap.get(getMetaKey(aStack)); + if (aTooltip != null && aTooltip.length() > 0) { + aList.add(aTooltip); + } + } + catch (Throwable t) { + t.printStackTrace(); + } + super.addInformation(aStack, p_77624_2_, aList, p_77624_4_); + } + + @Override + public EnumRarity getRarity(ItemStack aStack) { + return mRarityMap.get(getMetaKey(aStack)); + } + + @Override + public boolean requiresMultipleRenderPasses() { + return false; + } + + @Override + public void getSubItems(Item aItem, CreativeTabs p_150895_2_, List aList) { + for (int i=0;i<mIconMap.size();i++) { + aList.add(ItemUtils.simpleMetaStack(aItem, i, 1)); + } + } + + @Override + public boolean getIsRepairable(ItemStack p_82789_1_, ItemStack p_82789_2_) { + return false; + } + + @Override + public boolean isRepairable() { + return false; + } + + @Override + public boolean isBookEnchantable(ItemStack stack, ItemStack book) { + return false; + } + + @Override + public int getDisplayDamage(ItemStack stack) { + return stack.getItemDamage(); + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return false; + } + + @Override + public int getItemEnchantability() { + return 0; + } + + @Override + public int getItemEnchantability(ItemStack stack) { + return 0; + } + + @Override + public void registerIcons(final IIconRegister u) { + for (int i=0;i<mTotalMetaItems;i++) { + String aPath = CORE.MODID + ":" + "food/MetaItem1/"+i; + mIconMap.put(i, u.registerIcon(aPath)); + } + } + + @Override + public IIcon getIconFromDamageForRenderPass(final int damage, final int pass) { + return mIconMap.get(damage); + } + + @Override + public IIcon getIconFromDamage(int damage) { + return mIconMap.get(damage); + } + + @Override + public IIcon getIcon(ItemStack aStack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { + return mIconMap.get(getMetaKey(aStack)); + } + + @Override + public IIcon getIcon(ItemStack aStack, int pass) { + return mIconMap.get(getMetaKey(aStack)); + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return super.getUnlocalizedName() + "." + stack.getItemDamage(); + } + + private static class PotionEffectPackage { + + private final PotionEffect mEffect; + private final int mChance; + + private PotionEffectPackage(PotionEffect aEffect, int aChance) { + mEffect = aEffect; + mChance = aChance; + } + + public PotionEffect getEffect() { + return this.mEffect; + } + + public int getChance() { + return this.mChance; + } + + } + + private static AutoMap<PotionEffectPackage> getPotionEffectPackage(PotionEffectPackage... aEffects){ + AutoMap<PotionEffectPackage> aPackage = new AutoMap<PotionEffectPackage>(); + if (aEffects != null && aEffects.length > 0) { + for (PotionEffectPackage aEffect : aEffects) { + aPackage.put(aEffect); + } + } + return aPackage; + } + + private static ArrayList<String> getOreDictNamesAsArrayList(String... aOreDictNames){ + ArrayList<String> aPackage = new ArrayList<String>(); + if (aOreDictNames != null && aOreDictNames.length > 0) { + for (String aEffect : aOreDictNames) { + aPackage.add(aEffect); + } + } + return aPackage; + } + + private static class EffectWeaknessBasic extends PotionEffectPackage { + + protected EffectWeaknessBasic(int aChance) { + super(new PotionEffect(Potion.weakness.getId(), 1, 20), aChance); + } + + } + + private static class EffectWeaknessModerate extends PotionEffectPackage { + + protected EffectWeaknessModerate(int aChance) { + super(new PotionEffect(Potion.weakness.getId(), 2, 40), aChance); + } + + } + + private static class EffectWeaknessSevere extends PotionEffectPackage { + + protected EffectWeaknessSevere(int aChance) { + super(new PotionEffect(Potion.weakness.getId(), 3, 60), aChance); + } + + } + + private static class EffectSlownessBasic extends PotionEffectPackage { + + protected EffectSlownessBasic(int aChance) { + super(new PotionEffect(Potion.moveSlowdown.getId(), 1, 20), aChance); + } + + } + + private static class EffectSlownessModerate extends PotionEffectPackage { + + protected EffectSlownessModerate(int aChance) { + super(new PotionEffect(Potion.moveSlowdown.getId(), 2, 40), aChance); + } + + } + + private static class EffectSlownessSevere extends PotionEffectPackage { + + protected EffectSlownessSevere(int aChance) { + super(new PotionEffect(Potion.moveSlowdown.getId(), 3, 60), aChance); + } + + } + + + + + private static abstract class SpecialFoodBehaviour { + + protected final int mChance; + + public SpecialFoodBehaviour(int aChance) { + mChance = aChance; + } + + public final void doBehaviour(EntityPlayer aPlayer) { + if (aPlayer != null && !aPlayer.worldObj.isRemote) { + if (MathUtils.randInt(0, 100) < mChance || mChance == 100) { + behaviour(aPlayer); + } + } + } + + protected abstract void behaviour(EntityPlayer aPlayer); + + } + + + private static class setOnFire extends SpecialFoodBehaviour { + + public setOnFire() { + super(100); + } + + @Override + public void behaviour(EntityPlayer aPlayer) { + EntityUtils.setEntityOnFire(aPlayer, 5); + } + + } + +}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/item/general/ItemGiantEgg.java b/src/Java/gtPlusPlus/core/item/general/ItemGiantEgg.java index 4abb84a33c..d98b27d163 100644 --- a/src/Java/gtPlusPlus/core/item/general/ItemGiantEgg.java +++ b/src/Java/gtPlusPlus/core/item/general/ItemGiantEgg.java @@ -4,6 +4,14 @@ import static gtPlusPlus.core.lib.CORE.RANDOM; import java.util.List; +import gregtech.api.enums.ItemList; +import gtPlusPlus.core.entity.item.ItemEntityGiantEgg; +import gtPlusPlus.core.item.base.BaseItemBurnable; +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.math.MathUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.NBTUtils; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityList; @@ -14,16 +22,6 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.StatCollector; import net.minecraft.world.World; -import gregtech.api.enums.ItemList; - -import gtPlusPlus.core.entity.item.ItemEntityGiantEgg; -import gtPlusPlus.core.item.base.BaseItemBurnable; -import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.minecraft.NBTUtils; - public class ItemGiantEgg extends BaseItemBurnable { public ItemGiantEgg(String unlocalizedName, String displayName, CreativeTabs creativeTab, int stackSize, int maxDmg, @@ -138,7 +136,7 @@ public class ItemGiantEgg extends BaseItemBurnable { if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK && Utils.getGregtechSubVersion() > 28) { - ItemList xl = Utils.getValueOfItemList("Circuit_Chip_Stemcell", ItemList.Circuit_Elite); + ItemList xl = ItemUtils.getValueOfItemList("Circuit_Chip_Stemcell", ItemList.Circuit_Elite); if (xl != null && xl.hasBeenSet()) { mCorrectStemCells = xl.get(1); } diff --git a/src/Java/gtPlusPlus/core/item/init/ItemsFoods.java b/src/Java/gtPlusPlus/core/item/init/ItemsFoods.java index 94ebb3ffcb..e5c403c503 100644 --- a/src/Java/gtPlusPlus/core/item/init/ItemsFoods.java +++ b/src/Java/gtPlusPlus/core/item/init/ItemsFoods.java @@ -1,15 +1,22 @@ package gtPlusPlus.core.item.init; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; - import gregtech.api.util.GT_OreDictUnificator; - import gtPlusPlus.core.item.ModItems; import gtPlusPlus.core.item.base.foods.BaseItemFood; import gtPlusPlus.core.item.base.foods.BaseItemHotFood; +import gtPlusPlus.core.item.food.BaseItemMetaFood; import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.minecraft.EntityUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.RecipeUtils; +import net.minecraft.entity.monster.EntityBlaze; +import net.minecraft.entity.passive.EntityHorse; +import net.minecraft.entity.passive.EntityOcelot; +import net.minecraft.entity.passive.EntityVillager; +import net.minecraft.entity.passive.EntityWolf; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; public class ItemsFoods { @@ -40,6 +47,34 @@ public class ItemsFoods { ModItems.itemHotFoodCurriedSausages = new BaseItemHotFood("itemHotFoodCurriedSausages", 1, 0.5f, "Curried Sausages", 240, ModItems.itemFoodCurriedSausages); GT_OreDictUnificator.registerOre("foodHotCurriedSausages", ItemUtils.getItemStackFromFQRN(CORE.MODID+":itemHotFoodCurriedSausages", 1)); + ModItems.itemMetaFood = new BaseItemMetaFood(); + BaseItemMetaFood.registerFoodsToOreDict(); + addCookingRecipes(); + addFoodDropsToMobs(); + + } + + private static ItemStack getMetaFoodStack(int aID) { + return ItemUtils.simpleMetaStack(ModItems.itemMetaFood, aID, 1); + } + + private static void addCookingRecipes() { + + RecipeUtils.addSmeltingRecipe(getMetaFoodStack(0), getMetaFoodStack(1), 0.4F); + RecipeUtils.addSmeltingRecipe(getMetaFoodStack(2), getMetaFoodStack(3), 0.35F); + RecipeUtils.addSmeltingRecipe(getMetaFoodStack(4), getMetaFoodStack(5), 0.35F); + RecipeUtils.addSmeltingRecipe(getMetaFoodStack(6), getMetaFoodStack(7), 0.35F); + + } + + private static void addFoodDropsToMobs() { + + EntityUtils.registerDropsForMob(EntityVillager.class, getMetaFoodStack(0), 2, 1500); + EntityUtils.registerDropsForMob(EntityHorse.class, getMetaFoodStack(2), 4, 4000); + EntityUtils.registerDropsForMob(EntityWolf.class, getMetaFoodStack(4), 2, 4000); + EntityUtils.registerDropsForMob(EntityOcelot.class, getMetaFoodStack(6), 2, 4000); + EntityUtils.registerDropsForMob(EntityBlaze.class, getMetaFoodStack(8), 1, 500); + } } diff --git a/src/Java/gtPlusPlus/core/item/tool/misc/GregtechPump.java b/src/Java/gtPlusPlus/core/item/tool/misc/GregtechPump.java index a48573888e..e43dc8546b 100644 --- a/src/Java/gtPlusPlus/core/item/tool/misc/GregtechPump.java +++ b/src/Java/gtPlusPlus/core/item/tool/misc/GregtechPump.java @@ -19,7 +19,6 @@ import gregtech.api.interfaces.IItemBehaviour; import gregtech.api.interfaces.IItemContainer; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtech.api.objects.ItemData; import gregtech.api.util.GT_LanguageManager; @@ -200,7 +199,7 @@ public class GregtechPump extends Item implements ISpecialElectricItem, IElectri if (aOffsetMeta <= 3) { FluidStack f = getFluid(aStack); - aList.add("Can also drain any other standard fluid container block"); + aList.add("Cannot drain any other standard fluid container block"); aList.add("Cannot be emptied via RMB, use inside a tank with GUI"); aList.add(EnumChatFormatting.DARK_GRAY+"This is technically just a fancy fluid cell"); aList.add(EnumChatFormatting.BLUE + (f != null ? f.getLocalizedName() : "No Fluids Contained")); @@ -973,7 +972,8 @@ public class GregtechPump extends Item implements ISpecialElectricItem, IElectri } //Try support Standard Fluid Tanks too (May disable if dupes appear again) else if ((tTileEntity instanceof IFluidTank || tTileEntity instanceof IFluidHandler)) { - return this.drainIFluidTank(tTileEntity, aStack, aWorld, aPlayer, aX, aY, aZ); + //return this.drainIFluidTank(tTileEntity, aStack, aWorld, aPlayer, aX, aY, aZ); + return false; } } } diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java index 34d7475df3..9e29a381e2 100644 --- a/src/Java/gtPlusPlus/core/lib/CORE.java +++ b/src/Java/gtPlusPlus/core/lib/CORE.java @@ -46,7 +46,6 @@ public class CORE { public static Configuration Config; 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;; @@ -55,7 +54,7 @@ public class CORE { public static final String name = "GT++"; public static final String MODID = "miscutils"; - public static final String VERSION = "1.7.03.45"; + public static final String VERSION = "1.7.05"; public static String MASTER_VERSION = NetworkUtils.getContentFromURL("https://raw.githubusercontent.com/draknyte1/GTplusplus/master/Recommended.txt").toLowerCase(); public static String USER_COUNTRY = GeoUtils.determineUsersCountry(); public static boolean isModUpToDate = Utils.isModUpToDate(); @@ -290,12 +289,18 @@ public class CORE { public static final String VERSION = "0.1"; } + public static final void crash() { + crash("Generic Crash"); + } + + public static final void crash(String aReason) { Logger.INFO("=========================================================="); Logger.INFO("[GT++ CRASH]"); Logger.INFO("=========================================================="); Logger.INFO("Oooops..."); Logger.INFO("This should only happy in a development environment or when something really bad happens."); + Logger.INFO("Reason: "+aReason); Logger.INFO("=========================================================="); Logger.INFO("Called from: "+ReflectionUtils.getMethodName(0)); Logger.INFO(ReflectionUtils.getMethodName(1)); diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java index b5922dde53..7d49a8d635 100644 --- a/src/Java/gtPlusPlus/core/material/Material.java +++ b/src/Java/gtPlusPlus/core/material/Material.java @@ -24,6 +24,7 @@ import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.MaterialUtils; +import gtPlusPlus.xmod.gregtech.api.enums.CustomOrePrefix; import gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect.TC_Aspect_Wrapper; import gtPlusPlus.xmod.tinkers.material.BaseTinkersMaterial; import net.minecraft.block.Block; @@ -890,6 +891,9 @@ public class Material { public final ItemStack getDustImpure(final int stacksize){ return getComponentByPrefix(OrePrefixes.dustImpure, stacksize); } + public final ItemStack getMilled(final int stacksize){ + return getComponentByPrefix(CustomOrePrefix.milled.get(), stacksize); + } public final boolean hasSolidForm() { if (ItemUtils.checkForInvalidItems(new ItemStack[] {getDust(1), getBlock(1), getTinyDust(1), getSmallDust(1)})) { diff --git a/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java b/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java index d2e24b04a1..73751ac49d 100644 --- a/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java +++ b/src/Java/gtPlusPlus/core/material/nuclear/NUCLIDE.java @@ -70,8 +70,60 @@ public final class NUCLIDE { new MaterialStack(ELEMENT.getInstance().URANIUM235, 14) }); + // Secondary material is molten metal + public static final Material NAQ_FUEL_T1 = new Material( + "Naquadah Fuel", + MaterialState.PURE_LIQUID, //State + null, //Material Colour + -1, //Melting Point in C + -1, //Boiling Point in C + -1, //Protons + -1, + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.getInstance().NAQUADAH, 2), + new MaterialStack(ELEMENT.getInstance().TANTALUM, 3) + }); + + // Secondary material is a plasma + public static final Material NAQ_FUEL_T2 = new Material( + "Enriched Naquadah Fuel", + MaterialState.PURE_LIQUID, //State + null, //Material Colour + -1, //Melting Point in C + -1, //Boiling Point in C + -1, //Protons + -1, + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.getInstance().NAQUADAH_ENRICHED, 2), + new MaterialStack(ELEMENT.getInstance().TITANIUM, 3) + }); + + // Secondary material is a plasma + public static final Material NAQ_FUEL_T3 = new Material( + "Naquadria Fuel", + MaterialState.PURE_LIQUID, //State + null, //Material Colour + -1, //Melting Point in C + -1, //Boiling Point in C + -1, //Protons + -1, + false, //Uses Blast furnace? + //Material Stacks with Percentage of required elements. + new MaterialStack[]{ + new MaterialStack(ELEMENT.getInstance().NAQUADRIA, 2), + new MaterialStack(ELEMENT.getInstance().AMERICIUM, 3) + }); + + private static final NUCLIDE INSTANCE = new NUCLIDE(); - public static NUCLIDE getInstance(){return INSTANCE;} + + public static NUCLIDE getInstance(){ + return INSTANCE; + } } diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java index c7bbe7c7cd..1561f4b475 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java @@ -11,7 +11,6 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Utility; import gregtech.api.util.HotFuel; import gregtech.api.util.ThermalFuel; import gtPlusPlus.api.objects.Logger; @@ -40,7 +39,6 @@ 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; @@ -114,26 +112,99 @@ public class RECIPES_GREGTECH { private static void chemplantRecipes() { + //This is subsequently absorbed in water to form nitric acid and nitric oxide. + //3 NO2 (g) + H2O (l) → 2 HNO3 (aq) + NO (g) (ΔH = −117 kJ/mol) + //The nitric oxide is cycled back for reoxidation. Alternatively, if the last step is carried out in air: + //4 NO2 (g) + O2 (g) + 2 H2O (l) → 4 HNO3 (aq) + // 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);*/ + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(17), + CI.getPinkCatalyst(0), + }, + new FluidStack[] { + FluidUtils.getFluidStack(GenericChem.Nitrogen_Dioxide, 3000), + FluidUtils.getAir(7000) + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack("nitricacid", 4000), + FluidUtils.getWater(2000), + }, + 10 * 20, + 480, + 3); + + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedBioCircuit(16), + CI.getPinkCatalyst(0), + }, + new FluidStack[] { + FluidUtils.getFluidStack(GenericChem.Nitrogen_Dioxide, 3000), + FluidUtils.getDistilledWater(5000) + }, + new ItemStack[] { + + }, + new FluidStack[] { + FluidUtils.getFluidStack("nitricacid", 2000), + FluidUtils.getFluidStack(GenericChem.Nitric_Oxide, 1500), + }, + 10 * 20, + 480, + 2); + + // Produce Boric Acid + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedCircuit(21), + ItemUtils.getItemStackOfAmountFromOreDict("dustBorax", 4), + }, + new FluidStack[] { + FluidUtils.getFluidStack(GenericChem.HydrochloricAcid, 2000) + }, + new ItemStack[] { + ItemUtils.getItemStackOfAmountFromOreDict("dustSalt", 5), + }, + new FluidStack[] { + FluidUtils.getFluidStack("boricacid", 2000), + FluidUtils.getWater(5000) + + }, + 20 * 30, + MaterialUtils.getVoltageForTier(3), + 2); + // Produce Th232 + CORE.RA.addChemicalPlantRecipe( + new ItemStack[] { + CI.getNumberedCircuit(22), + ELEMENT.getInstance().THORIUM.getDust(16) + }, + new FluidStack[] { + FluidUtils.getDistilledWater(2000), + FluidUtils.getFluidStack("boricacid", 1500) + }, + new ItemStack[] { + ELEMENT.getInstance().THORIUM.getSmallDust(32), + ELEMENT.getInstance().THORIUM232.getDust(2), + ELEMENT.getInstance().THORIUM232.getSmallDust(2), + ELEMENT.getInstance().URANIUM232.getDust(1), + }, + new FluidStack[] { + + }, + new int[] { + 0, 0, 1000, 250 + }, + 20 * 300, + MaterialUtils.getVoltageForTier(4), + 3); + } private static void fluidheaterRecipes() { @@ -587,6 +658,16 @@ public class RECIPES_GREGTECH { 20 * 60 * 5, MaterialUtils.getVoltageForTier(5)); + // Distillus Upgrade Chip + GT_Values.RA.addLaserEngraverRecipe( + GregtechItemList.Laser_Lens_WoodsGlass.get(0), + ItemUtils.simpleMetaStack(AgriculturalChem.mBioCircuit, 20, 1), + GregtechItemList.Distillus_Upgrade_Chip.get(1), + 20 * 60 * 5, + MaterialUtils.getVoltageForTier(5)); + + + } @@ -1482,10 +1563,10 @@ public class RECIPES_GREGTECH { CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] {ItemUtils.getSimpleStack(Items.nether_star), ItemUtils.getItemStackOfAmountFromOreDict("plateTungstenSteel", 8), ItemUtils.getItemStackOfAmountFromOreDict("stickBlackSteel", 8)}, null, ItemUtils.getSimpleStack(ModBlocks.blockWitherGuard, 32), 30*20, 500); - ItemStack aFluidReg1 = Utils.getValueOfItemList("FluidRegulator_LV", ItemList.Pump_LV).get(1); - ItemStack aFluidReg2 = Utils.getValueOfItemList("FluidRegulator_MV", ItemList.Pump_MV).get(1); - ItemStack aFluidReg3 = Utils.getValueOfItemList("FluidRegulator_HV", ItemList.Pump_HV).get(1); - ItemStack aFluidReg4 = Utils.getValueOfItemList("FluidRegulator_EV", ItemList.Pump_EV).get(1); + ItemStack aFluidReg1 = ItemUtils.getValueOfItemList("FluidRegulator_LV", ItemList.Pump_LV).get(1); + ItemStack aFluidReg2 = ItemUtils.getValueOfItemList("FluidRegulator_MV", ItemList.Pump_MV).get(1); + ItemStack aFluidReg3 = ItemUtils.getValueOfItemList("FluidRegulator_HV", ItemList.Pump_HV).get(1); + ItemStack aFluidReg4 = ItemUtils.getValueOfItemList("FluidRegulator_EV", ItemList.Pump_EV).get(1); CORE.RA.addSixSlotAssemblingRecipe(new ItemStack[] { aFluidReg1, @@ -1807,13 +1888,6 @@ public class RECIPES_GREGTECH { 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), - ItemUtils.getItemStackOfAmountFromOreDict("dustSmallThorium", 20), - ELEMENT.getInstance().URANIUM232.getDust(1), GT_Values.NI, GT_Values.NI, GT_Values.NI, - new int[] { 0, 0, 10 }, 500 * 20, 2000); - - //Process Used Fuel Rods for Krypton //Uranium diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java index 2165f27ec7..ebc2c07a63 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Machines.java @@ -2,9 +2,14 @@ package gtPlusPlus.core.recipe; import static gtPlusPlus.core.lib.CORE.GTNH; +import codechicken.nei.api.API; import cpw.mods.fml.common.Loader; -import gregtech.api.enums.*; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; +import gregtech.common.items.GT_MetaGenerated_Tool_01; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.item.ModItems; @@ -15,16 +20,17 @@ import gtPlusPlus.core.material.ALLOY; import gtPlusPlus.core.material.ELEMENT; 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.minecraft.*; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.MaterialUtils; +import gtPlusPlus.core.util.minecraft.RecipeUtils; 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 gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -241,29 +247,29 @@ public class RECIPES_Machines { distillus(); algaeFarm(); chemPlant(); - + } private static void chemPlant() { - + CORE.RA.addSixSlotAssemblingRecipe( new ItemStack[] { - CI.getNumberedBioCircuit(19), - CI.getTieredGTPPMachineCasing(1, 6), - CI.getTieredComponentOfMaterial(Materials.Steel, OrePrefixes.gearGt, 6), - CI.getTieredComponentOfMaterial(Materials.Aluminium, OrePrefixes.plate, 32), - CI.getTieredComponentOfMaterial(Materials.CobaltBrass, OrePrefixes.dust, 16), - CI.getTieredComponent(OrePrefixes.frameGt, 2, 4), + CI.getNumberedBioCircuit(19), + CI.getTieredGTPPMachineCasing(1, 6), + CI.getTieredComponentOfMaterial(Materials.Steel, OrePrefixes.gearGt, 6), + CI.getTieredComponentOfMaterial(Materials.Aluminium, OrePrefixes.plate, 32), + CI.getTieredComponentOfMaterial(Materials.CobaltBrass, OrePrefixes.dust, 16), + CI.getTieredComponent(OrePrefixes.frameGt, 2, 4), }, ALLOY.STEEL.getFluid(2 * (144 * 4)), GregtechItemList.ChemicalPlant_Controller.get(1), 120 * 20, MaterialUtils.getVoltageForTier(2)); - + } private static void algaeFarm() { - + // Give the shitty algae a use :) CORE.RA.addDistilleryRecipe( ItemUtils.getSimpleStack(AgriculturalChem.mAlgaeBiosmass, 32), @@ -273,26 +279,26 @@ public class RECIPES_Machines { 20 * 15, 16, false); - + CORE.RA.addSixSlotAssemblingRecipe( new ItemStack[] { - CI.getNumberedBioCircuit(21), - CI.getTieredGTPPMachineCasing(0, 4), - CI.getTieredComponentOfMaterial(Materials.Iron, OrePrefixes.rod, 12), - CI.getTieredComponentOfMaterial(Materials.Wood, OrePrefixes.plate, 32), - CI.getTieredComponentOfMaterial(Materials.Bronze, OrePrefixes.bolt, 16), - CI.getTieredComponentOfMaterial(Materials.Redstone, OrePrefixes.dust, 32), + CI.getNumberedBioCircuit(21), + CI.getTieredGTPPMachineCasing(0, 4), + CI.getTieredComponentOfMaterial(Materials.Iron, OrePrefixes.rod, 12), + CI.getTieredComponentOfMaterial(Materials.Wood, OrePrefixes.plate, 32), + CI.getTieredComponentOfMaterial(Materials.Bronze, OrePrefixes.bolt, 16), + CI.getTieredComponentOfMaterial(Materials.Redstone, OrePrefixes.dust, 32), }, ALLOY.POTIN.getFluid(2 * (144 * 4)), GregtechItemList.AlgaeFarm_Controller.get(1), 60 * 20, MaterialUtils.getVoltageForTier(1)); - - + + } private static void distillus() { - + CORE.RA.addChemicalPlantRecipe( new ItemStack[] { CI.getNumberedBioCircuit(19), @@ -310,44 +316,44 @@ public class RECIPES_Machines { GregtechItemList.Machine_Adv_DistillationTower.get(1) }, new FluidStack[] { - + }, 20 * 600, MaterialUtils.getVoltageForTier(6), 3); - + } private static void chunkloaders() { - + ItemStack aOutputs[] = new ItemStack[] { GregtechItemList.GT_Chunkloader_HV.get(1L), GregtechItemList.GT_Chunkloader_IV.get(1L), GregtechItemList.GT_Chunkloader_ZPM.get(1L), }; - + int aIndex = 0; - + for (int i=3;i<8;i++) { if (i == 4 || i == 6) { continue; } CORE.RA.addSixSlotAssemblingRecipe( new ItemStack[] { - CI.getNumberedBioCircuit(21), - CI.getElectricPiston(i, 10), - CI.getFieldGenerator(i + 1, 6), - CI.getPlate(i, 16), - CI.getTransmissionComponent(i - 1, 8), - CI.getTieredComponent(OrePrefixes.cableGt08, i, 16) + CI.getNumberedBioCircuit(21), + CI.getElectricPiston(i, 10), + CI.getFieldGenerator(i + 1, 6), + CI.getPlate(i, 16), + CI.getTransmissionComponent(i - 1, 8), + CI.getTieredComponent(OrePrefixes.cableGt08, i, 16) }, ALLOY.EGLIN_STEEL.getFluid(i * (144 * 4)), aOutputs[aIndex++].copy(), 300 * 20, MaterialUtils.getVoltageForTier(i)); } - - + + } private static void overflowValveCovers() { @@ -359,25 +365,25 @@ public class RECIPES_Machines { GregtechItemList.Cover_Overflow_EV.get(1L), GregtechItemList.Cover_Overflow_IV.get(1L), }; - + for (int i=0;i<6;i++) { CORE.RA.addSixSlotAssemblingRecipe( new ItemStack[] { - CI.getNumberedBioCircuit(19), - CI.getElectricPump(i, 2), - CI.getElectricMotor(i, 2), - CI.getPlate(i, 4) + CI.getNumberedBioCircuit(19), + CI.getElectricPump(i, 2), + CI.getElectricMotor(i, 2), + CI.getPlate(i, 4) }, - FluidUtils.getWater(i * 1500), + FluidUtils.getWater((i+1) * 750), aOutputs[i].copy(), 20 * 20, MaterialUtils.getVoltageForTier(i)); } - + } private static void tieredMachineHulls() { - + GregtechItemList[] aHulls = new GregtechItemList[] { GregtechItemList.GTPP_Casing_ULV, GregtechItemList.GTPP_Casing_LV, @@ -390,7 +396,7 @@ public class RECIPES_Machines { GregtechItemList.GTPP_Casing_UV, GregtechItemList.GTPP_Casing_MAX }; - + for (int i=0;i<10;i++) { CORE.RA.addSixSlotAssemblingRecipe( new ItemStack[] { @@ -401,12 +407,12 @@ public class RECIPES_Machines { CI.getTieredComponent(OrePrefixes.cableGt02, i, 4), CI.getTieredComponent(OrePrefixes.circuit, i, 2) }, - CI.getAlternativeTieredFluid(i, 144 * i * 2), + CI.getAlternativeTieredFluid(i, 144 * (i+1) * 2), aHulls[i].get(1), 20 * 20, MaterialUtils.getVoltageForTier(i)); } - + } private static void initModItems(){ @@ -443,7 +449,7 @@ public class RECIPES_Machines { EV_MACHINE_Wiremill= ItemList.Machine_IV_Wiremill.get(1); HV_MACHINE_Macerator= ItemList.Machine_EV_Macerator.get(1); EV_MACHINE_Macerator= ItemList.Machine_IV_Macerator.get(1); - EV_MACHINE_MassFabricator= CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK ? gtPlusPlus.core.util.Utils.getValueOfItemList("Machine_LuV_Massfab", ItemList.Machine_IV_Massfab).get(1) : ItemList.Machine_IV_Massfab.get(1); + EV_MACHINE_MassFabricator= CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK ? ItemUtils.getValueOfItemList("Machine_LuV_Massfab", ItemList.Machine_IV_Massfab).get(1) : ItemList.Machine_IV_Massfab.get(1); EV_MACHINE_Centrifuge= ItemList.Machine_IV_Centrifuge.get(1); EV_MACHINE_Cutter = ItemList.Machine_IV_Cutter.get(1); EV_MACHINE_Extruder = ItemList.Machine_IV_Extruder.get(1); @@ -541,9 +547,9 @@ 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); - + ItemStack aFluidRegulator1 = ItemUtils.getValueOfItemList("FluidRegulator_MV",GTNH ? 4 : 2, ItemList.Electric_Pump_HV); + ItemStack aFluidRegulator2 = ItemUtils.getValueOfItemList("FluidRegulator_IV", GTNH ? 4 : 2, ItemUtils.getValueOfItemList("Electric_Pump_LuV", GTNH ? 8 : 4, ItemList.Electric_Pump_IV)); + //Poo Collector CORE.RA.addSixSlotAssemblingRecipe( new ItemStack[] { @@ -605,7 +611,7 @@ public class RECIPES_Machines { plateEnergeticAlloy, pipeLargeCopper, plateEnergeticAlloy, RECIPE_SteamCondenser); } - + //Steam Condenser if (LoadedMods.CoFHCore && CORE.ConfigSwitches.enableMachine_RF_Convetor){ @@ -900,25 +906,47 @@ public class RECIPES_Machines { } //TODO - //Semi-Fluid Generators - ItemStack mSemiFluidgen = ItemUtils.getItemStackFromFQRN("IC2:blockGenerator:7", 1); - mSemiFluidgen.setItemDamage(7); + //Semi-Fluid Generators + ItemStack[][] aSemiFluidInputs = new ItemStack[3][6]; + aSemiFluidInputs[0] = new ItemStack[]{ + CI.getNumberedBioCircuit(14), + CI.getTieredMachineHull(1, 1), + CI.getElectricPiston(1, GTNH ? 4 : 2), + CI.getTieredComponent(OrePrefixes.circuit, 1, GTNH ? 4 : 2), + CI.getPlate(1, GTNH ? 8 : 4), + CI.getGear(1, GTNH ? 4 : 2) + }; + aSemiFluidInputs[1] = new ItemStack[]{ + CI.getNumberedBioCircuit(14), + CI.getTieredMachineHull(2, 1), + CI.getElectricPiston(2, GTNH ? 4 : 2), + CI.getTieredComponent(OrePrefixes.circuit, 2, GTNH ? 4 : 2), + CI.getPlate(2, GTNH ? 8 : 4), + CI.getGear(2, GTNH ? 4 : 2) + }; + aSemiFluidInputs[2] = new ItemStack[]{ + CI.getNumberedBioCircuit(14), + CI.getTieredMachineHull(3, 1), + CI.getElectricPiston(3, GTNH ? 4 : 2), + CI.getTieredComponent(OrePrefixes.circuit, 3, GTNH ? 4 : 2), + CI.getPlate(3, GTNH ? 8 : 4), + CI.getGear(3, GTNH ? 4 : 2) + }; + FluidStack[] aSemiFluidFluidInputs = new FluidStack[] { + ALLOY.BRONZE.getFluid(144 * 8), + ALLOY.STEEL.getFluid(144 * 8), + ELEMENT.getInstance().ALUMINIUM.getFluid(144 * 8), + }; + //ItemUtils.simpleMetaStack("IC2:blockGenerator:7", 7, 1); - ItemStack[] aSemifluids = new ItemStack[] {mSemiFluidgen, GregtechItemList.Generator_SemiFluid_LV.get(1), GregtechItemList.Generator_SemiFluid_MV.get(1), GregtechItemList.Generator_SemiFluid_HV.get(1)}; - for (int o=1;o<4;o++) { + ItemStack[] aSemifluids = new ItemStack[] {GregtechItemList.Generator_SemiFluid_LV.get(1), GregtechItemList.Generator_SemiFluid_MV.get(1), GregtechItemList.Generator_SemiFluid_HV.get(1)}; + for (int o=0;o<3;o++) { CORE.RA.addSixSlotAssemblingRecipe( - new ItemStack[] { - aSemifluids[o-1], - CI.getElectricPiston(o, GTNH ? 4 : 2), - CI.getElectricMotor(o, GTNH ? 2 : 1), - CI.getTieredComponent(OrePrefixes.circuit, o, GTNH ? 4 : 2), - CI.getPlate(o, GTNH ? 8 : 4), - CI.getGear(o-1, GTNH ? 4 : 2) - }, - CI.getAlternativeTieredFluid(o, 144 * 4), + aSemiFluidInputs[o], + aSemiFluidFluidInputs[o], aSemifluids[o], 20 * 30, - (int) GT_Values.V[o]); + MaterialUtils.getVoltageForTier(o+1)); } if (CORE.ConfigSwitches.enableMultiblock_AlloyBlastSmelter){ @@ -955,9 +983,9 @@ public class RECIPES_Machines { //Matter Fabricator CPU RecipeUtils.addShapedGregtechRecipe( - "plateDoubleQuantum", CI.circuitTier5, "plateDoubleQuantum", + CI.getDoublePlate(8, 1), CI.circuitTier5, CI.getPlate(8, 1), cableTier8, CI.machineCasing_LuV, cableTier8, - "plateDoubleQuantum", CI.circuitTier5, "plateDoubleQuantum", + CI.getPlate(8, 1), CI.circuitTier5, CI.getPlate(8, 1), RECIPE_IndustrialMatterFabController); //Matter Fabricator Frame Casing RecipeUtils.addShapedGregtechRecipe( @@ -967,9 +995,9 @@ public class RECIPES_Machines { RECIPE_IndustrialMatterFabFrame); //Matter Fabricator Coil RecipeUtils.addShapedGregtechRecipe( - "plateQuantum", "plateQuantum", "plateQuantum", + CI.getPlate(6, 1), CI.getPlate(7, 1), CI.getPlate(6, 1), "frameGtStellite", CI.machineCasing_UV, "frameGtStellite", - "plateQuantum", "plateQuantum", "plateQuantum", + CI.getPlate(6, 1), CI.getPlate(7, 1), CI.getPlate(6, 1), RECIPE_IndustrialMatterFabCoil); } @@ -1120,12 +1148,6 @@ public class RECIPES_Machines { aSimpleWasherTier += 2; aSlot++; } - - - - - - } if (CORE.ConfigSwitches.enableMachine_Pollution && PollutionUtils.isPollutionEnabled()){ @@ -1149,20 +1171,6 @@ public class RECIPES_Machines { CI.getTieredCircuit(1), CI.machineHull_LV, CI.getTieredCircuit(0), GregtechItemList.Pollution_Detector.get(1)); - //Air Intake Hatch - - - - ItemList FluidRegulator_IV = Utils.getValueOfItemList("FluidRegulator_IV", ItemList.Pump_IV); - ItemStack aTieredFluidRegulator = CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK ? FluidRegulator_IV.get(1) : ItemList.Pump_IV.get(1); - - - RecipeUtils.addShapedGregtechRecipe( - CI.component_Plate[6], ItemList.Casing_Grate.get(1), CI.component_Plate[6], - CI.component_Plate[6], aTieredFluidRegulator, CI.component_Plate[6], - CI.getTieredCircuit(4), ItemList.Hatch_Input_IV.get(1), CI.getTieredCircuit(4), - GregtechItemList.Hatch_Air_Intake.get(1)); - //ULV RecipeUtils.addShapedGregtechRecipe( CI.component_Plate[0], ItemUtils.simpleMetaStack(ModItems.itemAirFilter, 0, 1), CI.component_Plate[0], @@ -1267,6 +1275,15 @@ public class RECIPES_Machines { ); } + //Air Intake Hatch + ItemList FluidRegulator_IV = ItemUtils.getValueOfItemList("FluidRegulator_IV", ItemList.Pump_IV); + ItemStack aTieredFluidRegulator = CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK ? FluidRegulator_IV.get(1) : ItemList.Pump_IV.get(1); + RecipeUtils.addShapedGregtechRecipe( + CI.component_Plate[6], ItemList.Casing_Grate.get(1), CI.component_Plate[6], + CI.component_Plate[6], aTieredFluidRegulator, CI.component_Plate[6], + CI.getTieredCircuit(4), ItemList.Hatch_Input_IV.get(1), CI.getTieredCircuit(4), + GregtechItemList.Hatch_Air_Intake.get(1)); + if (CORE.ConfigSwitches.enableMultiblock_LiquidFluorideThoriumReactor){ //Thorium Reactor @@ -1342,15 +1359,6 @@ public class RECIPES_Machines { CI.craftingToolHammer_Hard, "frameGtHastelloyC276", CI.craftingToolWrench, CI.component_Plate[5], CI.getTieredMachineCasing(4), "ringInconel792", GregtechItemList.Casing_Refinery_Structural.get(Casing_Amount)); - - - - - - - - - } //Shelves @@ -1419,15 +1427,25 @@ public class RECIPES_Machines { RECIPE_CyclotronController, 60 * 20 * 5, MaterialUtils.getVoltageForTier(5)); + } + // Mazut + GT_ModHandler.addCraftingRecipe( + GregtechItemList.Controller_LargeSemifluidGenerator.get(1L), + CI.bitsd, + new Object[]{ + "PCP", + "EME", + "GWG", + 'M', ItemList.Hull_EV, + 'P', ItemList.Electric_Piston_EV, + 'E', ItemList.Electric_Pump_EV, + 'C', OrePrefixes.circuit.get(Materials.Data), + 'W', OrePrefixes.cableGt08.get(Materials.Electrum), + 'G', ALLOY.INCONEL_792.getGear(1) + }); - - - - - } - if (CORE.ConfigSwitches.enableMultiblock_PowerSubstation){ RecipeUtils.recipeBuilder( "screwTitanium", "plateIncoloy020", "screwTitanium", @@ -1475,8 +1493,7 @@ public class RECIPES_Machines { if (CORE.ConfigSwitches.enableMultiblock_LargeAutoCrafter) { ItemStack aCoreBlock = CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK - ? ItemList.valueOf("Block_IridiumTungstensteel").get(1, - ItemUtils.getItemStackOfAmountFromOreDict("blockOsmiridium", 1)) + ? ItemUtils.getValueOfItemList("Block_IridiumTungstensteel", 1, ItemUtils.getItemStackOfAmountFromOreDict("blockOsmiridium", 1)) : ItemUtils.getItemStackOfAmountFromOreDict("blockOsmiridium", 1); aCoreBlock.stackSize = GTNH ? 2 : 1; @@ -1622,7 +1639,7 @@ public class RECIPES_Machines { cell1 = CI.conveyorModule_EV; cell2 = CI.electricMotor_IV; ItemStack casingAmazon = GregtechItemList.Casing_AmazonWarehouse.get(1); - ItemStack aTieredUnboxinator = CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK ? ItemList.valueOf("Machine_LuV_Unboxinator").get(1, ItemList.Machine_IV_Unboxinator.get(1)) : ItemList.Machine_IV_Unboxinator.get(1); + ItemStack aTieredUnboxinator = CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK ? ItemUtils.getValueOfItemList("Machine_LuV_Unboxinator", 1, ItemList.Machine_IV_Unboxinator.get(1)) : ItemList.Machine_IV_Unboxinator.get(1); RecipeUtils.recipeBuilder( @@ -1768,7 +1785,7 @@ public class RECIPES_Machines { - ItemStack aDrillController = Utils.getValueOfItemList("OreDrill4", ItemList.Hull_UV).get(1); + ItemStack aDrillController = ItemUtils.getValueOfItemList("OreDrill4", ItemList.Hull_UV).get(1); //Drilling Platform CORE.RA.addSixSlotAssemblingRecipe( diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_Old_Circuits.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_Old_Circuits.java index 98ea687747..3ed2f5f168 100644 --- a/src/Java/gtPlusPlus/core/recipe/RECIPES_Old_Circuits.java +++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_Old_Circuits.java @@ -1,24 +1,24 @@ package gtPlusPlus.core.recipe; import cpw.mods.fml.common.Loader; - -import net.minecraft.item.ItemStack; - -import gregtech.api.enums.*; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OreDictNames; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; import gregtech.api.interfaces.IOreRecipeRegistrator; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; - -import codechicken.nei.api.API; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.RecipeUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; +import net.minecraft.item.ItemStack; public class RECIPES_Old_Circuits implements IOreRecipeRegistrator { public RECIPES_Old_Circuits() { @@ -445,7 +445,7 @@ public class RECIPES_Old_Circuits implements IOreRecipeRegistrator { for (String component : CircuitToHide){ try { - API.hideItem(Utils.getValueOfItemList(component, null).get(1L, new Object[0])); + ItemUtils.hideItemFromNEI(ItemUtils.getValueOfItemList(component, null).get(1L, new Object[0])); } catch (IllegalArgumentException I){ Logger.INFO("Could not find "+component+" in the Gregtech item list."); Logger.INFO("This is NOT an error, simply a notification."); diff --git a/src/Java/gtPlusPlus/core/recipe/common/CI.java b/src/Java/gtPlusPlus/core/recipe/common/CI.java index 1d3d386da3..d67a372572 100644 --- a/src/Java/gtPlusPlus/core/recipe/common/CI.java +++ b/src/Java/gtPlusPlus/core/recipe/common/CI.java @@ -9,7 +9,6 @@ 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; import gtPlusPlus.core.material.ELEMENT; import gtPlusPlus.core.material.Material; @@ -17,7 +16,6 @@ import gtPlusPlus.core.recipe.LOADER_Machine_Components; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.xmod.eio.material.MaterialEIO; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import gtPlusPlus.xmod.gregtech.common.StaticFields59; import ic2.core.Ic2Items; @@ -184,7 +182,7 @@ public class CI { public static ItemStack explosiveITNT; public static void preInit(){ - + //Tiered Components component_Plate = new String[]{ getTieredComponent(OrePrefixes.plate, 0), @@ -402,7 +400,7 @@ public class CI { return ItemList.Tool_DataOrb.get(1); } } - + public static ItemStack getDataStick(){ if (CORE.ConfigSwitches.enableOldGTcircuits && CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK && !CORE.GTNH){ return GregtechItemList.Old_Tool_DataStick.get(1); @@ -489,17 +487,7 @@ public class CI { public static void init() { //Set Explosives - try { - ItemList PowerderBarrel = Utils.getValueOfItemList("Block_Powderbarrel", null); - if (PowerderBarrel != null){ - explosivePowderKeg = PowerderBarrel.get(1).copy(); - } - else { - explosivePowderKeg = ItemUtils.getSimpleStack(Items.gunpowder).copy(); - } - } catch (java.lang.IllegalArgumentException Y) { - explosivePowderKeg = ItemUtils.getSimpleStack(Items.gunpowder).copy(); - } + explosivePowderKeg = ItemUtils.getValueOfItemList("Block_Powderbarrel", 1, ItemUtils.getSimpleStack(Items.gunpowder, 16)); explosiveTNT = ItemUtils.getSimpleStack(Blocks.tnt).copy(); explosiveITNT = Ic2Items.industrialTnt.copy(); @@ -540,13 +528,13 @@ public class CI { public static ItemStack emptyCells(int i) { return ItemUtils.getEmptyCell(i); } - - - + + + /* * */ - + private static final Material[] aMaterial_Main = new Material[] { ALLOY.POTIN, ALLOY.TUMBAGA, @@ -561,7 +549,7 @@ public class CI { ALLOY.QUANTUM, ELEMENT.STANDALONE.HYPOGEN }; - + private static final Material[] aMaterial_Secondary = new Material[] { ALLOY.STEEL, ALLOY.SILICON_CARBIDE, @@ -576,7 +564,7 @@ public class CI { ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN, ELEMENT.STANDALONE.HYPOGEN }; - + private static final Material[] aMaterial_Tertiary = new Material[] { ELEMENT.getInstance().LEAD, ELEMENT.getInstance().ALUMINIUM, @@ -591,21 +579,21 @@ public class CI { ELEMENT.STANDALONE.CELESTIAL_TUNGSTEN, ELEMENT.STANDALONE.HYPOGEN }; - + private static final Materials[] aMaterial_Cables = new Materials[] { !CORE.GTNH ? Materials.Lead : Materials.Tin, - Materials.Cobalt, - Materials.AnnealedCopper, - Materials.Gold, - Materials.Titanium, - Materials.Nichrome, - Materials.Platinum, - Materials.YttriumBariumCuprate, - Materials.Naquadah, - Materials.Duranium, - Materials.Superconductor, + Materials.Cobalt, + Materials.AnnealedCopper, + Materials.Gold, + Materials.Titanium, + Materials.Nichrome, + Materials.Platinum, + Materials.YttriumBariumCuprate, + Materials.Naquadah, + Materials.Duranium, + Materials.Superconductor, }; - + private static final Materials[] aMaterial_Circuits = new Materials[] { Materials.Primitive, Materials.Basic, @@ -619,18 +607,18 @@ public class CI { Materials.Superconductor, Materials.Infinite, }; - + private static final Material[][] aMaster = new Material[][] {aMaterial_Main, aMaterial_Secondary, aMaterial_Tertiary}; - - + + public static FluidStack getTieredFluid(int aTier, int aAmount) { return getTieredFluid(aTier, aAmount, 0); } - + public static FluidStack getAlternativeTieredFluid(int aTier, int aAmount) { return getTieredFluid(aTier, aAmount, 1); } - + public static FluidStack getTertiaryTieredFluid(int aTier, int aAmount) { return getTieredFluid(aTier, aAmount, 2); } @@ -642,7 +630,7 @@ public class CI { if (a == null) { a = aMaster[aType][aTier].getFluid(aAmount); }*/ - + // Modern Handling FluidStack a = aMaster[aType][aTier].getFluid(aAmount); if (a == null) { @@ -654,7 +642,7 @@ public class CI { } return a; } - + public static ItemStack getEnergyCore(int aTier, int aAmount) { ItemStack[] aOutput = new ItemStack[] { ItemUtils.getItemStackFromFQRN("miscutils:item.itemBufferCore"+"1", 1), @@ -670,39 +658,43 @@ public class CI { }; return ItemUtils.getSimpleStack(aOutput[MathUtils.balance(aTier, 0, 9)], aAmount); } - + public static ItemStack getPlate(int aTier, int aAmount) { return getTieredComponent(OrePrefixes.plate, aTier, aAmount); } - + + public static ItemStack getDoublePlate(int aTier, int aAmount) { + return getTieredComponent(OrePrefixes.plateDouble, aTier, aAmount); + } + public static ItemStack getGear(int aTier, int aAmount) { return getTieredComponent(OrePrefixes.gearGt, aTier, aAmount); } - + public static ItemStack getIngot(int aTier, int aAmount) { return getTieredComponent(OrePrefixes.ingot, aTier, aAmount); } - + public static ItemStack getBolt(int aTier, int aAmount) { return getTieredComponent(OrePrefixes.bolt, aTier, aAmount); } - + public static ItemStack getTieredComponent(OrePrefixes aPrefix, int aTier, int aAmount) { aTier = Math.max(0, aTier); - + Material m = null; - - - - - - + + + + + + if (aPrefix == OrePrefixes.liquid) { int aMatID = (aTier == 0 || aTier == 2 || aTier == 5 || aTier == 8 ? 0 : (aTier == 1 || aTier == 3 || aTier == 6 || aTier == 9 ? 1 : 2)); ItemStack aCell = aMaster[aMatID][aTier].getCell(aAmount); return aCell; } - + if (aPrefix == OrePrefixes.circuit) { if (aTier == 4) { return ItemUtils.getSimpleStack(CI.getDataStick(), aAmount); @@ -736,19 +728,19 @@ public class CI { else { return ItemUtils.getOrePrefixStack(aPrefix, aMaterial_Cables[aTier], aAmount); } - - + + } if (aPrefix == OrePrefixes.wireGt01 || aPrefix == OrePrefixes.wireGt02 || aPrefix == OrePrefixes.wireGt04 || aPrefix == OrePrefixes.wireGt08 || aPrefix == OrePrefixes.wireGt12 || aPrefix == OrePrefixes.wireGt16) { return ItemUtils.getOrePrefixStack(aPrefix, aMaterial_Cables[aTier], aAmount); } if (aPrefix == OrePrefixes.pipeTiny || aPrefix == OrePrefixes.pipeSmall || aPrefix == OrePrefixes.pipe || aPrefix == OrePrefixes.pipeMedium || aPrefix == OrePrefixes.pipeLarge || aPrefix == OrePrefixes.pipeHuge) { - + if (aPrefix == OrePrefixes.pipe) { aPrefix = OrePrefixes.pipeMedium; } - + if (aTier == 0) { return ItemUtils.getOrePrefixStack(aPrefix, Materials.Lead, aAmount); } @@ -787,12 +779,10 @@ public class CI { } } - ItemStack aTempStack = null; - if (aPrefix == OrePrefixes.rod) { aPrefix = OrePrefixes.stick; } - + if (aPrefix == OrePrefixes.gear || aPrefix == OrePrefixes.gearGt) { m = aMaster[0][aTier]; } @@ -832,24 +822,24 @@ public class CI { else { m = aMaterial_Main[aTier]; } - + ItemStack aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); - + //If Invalid, Try First Material if (!ItemUtils.checkForInvalidItems(aReturn)) { m = aMaster[0][aTier]; aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); - + //If Invalid, Try Second Material if (!ItemUtils.checkForInvalidItems(aReturn)) { m = aMaster[1][aTier]; aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); - + //If Invalid, Try Third Material if (!ItemUtils.checkForInvalidItems(aReturn)) { m = aMaster[2][aTier]; aReturn = ItemUtils.getOrePrefixStack(aPrefix, m, aAmount); - + //All Invalid? Ok, shit. //Let's add a special error ingot. if (!ItemUtils.checkForInvalidItems(aReturn)) { @@ -858,12 +848,12 @@ public class CI { } } } - + return aReturn; - + } - + public static ItemStack getElectricMotor(int aTier, int aSize) { ItemStack aType; int aLazyTier = 0; @@ -902,7 +892,7 @@ public class CI { } return ItemUtils.getSimpleStack(aType, aSize); } - + public static ItemStack getElectricPiston(int aTier, int aSize) { ItemStack aType; int aLazyTier = 0; @@ -941,7 +931,7 @@ public class CI { } return ItemUtils.getSimpleStack(aType, aSize); } - + public static ItemStack getElectricPump(int aTier, int aSize) { ItemStack aType; int aLazyTier = 0; @@ -980,7 +970,7 @@ public class CI { } return ItemUtils.getSimpleStack(aType, aSize); } - + public static ItemStack getRobotArm(int aTier, int aSize) { ItemStack aType; int aLazyTier = 0; @@ -1019,7 +1009,7 @@ public class CI { } return ItemUtils.getSimpleStack(aType, aSize); } - + public static ItemStack getConveyor(int aTier, int aSize) { ItemStack aType; int aLazyTier = 0; @@ -1058,7 +1048,7 @@ public class CI { } return ItemUtils.getSimpleStack(aType, aSize); } - + public static ItemStack getEmitter(int aTier, int aSize) { ItemStack aType; int aLazyTier = 0; @@ -1097,7 +1087,7 @@ public class CI { } return ItemUtils.getSimpleStack(aType, aSize); } - + public static ItemStack getSensor(int aTier, int aSize) { ItemStack aType; int aLazyTier = 0; @@ -1136,7 +1126,7 @@ public class CI { } return ItemUtils.getSimpleStack(aType, aSize); } - + public static ItemStack getFieldGenerator(int aTier, int aSize) { ItemStack aType; int aLazyTier = 0; @@ -1175,9 +1165,9 @@ public class CI { } return ItemUtils.getSimpleStack(aType, aSize); } - - + + public static ItemStack getTieredMachineHull(int aTier, int aSize) { ItemStack aType; int aLazyTier = 0; @@ -1293,7 +1283,7 @@ public class CI { public static ItemStack getGreenCatalyst(int aAmount) { return ItemUtils.simpleMetaStack(AgriculturalChem.mAgrichemItem1, 14, aAmount); } - + /** * Iron + Copper Catalyst * @param aAmount - Stacksize @@ -1302,7 +1292,7 @@ public class CI { public static ItemStack getRedCatalyst(int aAmount) { return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 0, aAmount); } - + /** * Tungsten + Nickel Catalyst * @param aAmount - Stacksize @@ -1311,7 +1301,7 @@ public class CI { public static ItemStack getYellowCatalyst(int aAmount) { return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 1, aAmount); } - + /** * Cobalt + Titanium Catalyst * @param aAmount - Stacksize @@ -1320,7 +1310,7 @@ public class CI { public static ItemStack getBlueCatalyst(int aAmount) { return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 2, aAmount); } - + /** * Vanadium + Palladium Catalyst * @param aAmount - Stacksize @@ -1329,7 +1319,7 @@ public class CI { public static ItemStack getOrangeCatalyst(int aAmount) { return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 3, aAmount); } - + /** * Iridium + Ruthenium Catalyst * @param aAmount - Stacksize @@ -1338,7 +1328,7 @@ public class CI { public static ItemStack getPurpleCatalyst(int aAmount) { return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 4, aAmount); } - + /** * Aluminium + Nickel Catalyst * @param aAmount - Stacksize @@ -1347,7 +1337,7 @@ public class CI { public static ItemStack getBrownCatalyst(int aAmount) { return ItemUtils.simpleMetaStack(GenericChem.mGenericChemItem1, 5, aAmount); } - + /** * Platinum + Rhodium Catalyst * @param aAmount - Stacksize diff --git a/src/Java/gtPlusPlus/core/util/Utils.java b/src/Java/gtPlusPlus/core/util/Utils.java index 234b54d2d2..72b13b3067 100644 --- a/src/Java/gtPlusPlus/core/util/Utils.java +++ b/src/Java/gtPlusPlus/core/util/Utils.java @@ -935,22 +935,6 @@ public class Utils { return false; } - public static ItemList getValueOfItemList(String string, ItemList aOther) { - ItemList[] aListValues = ItemList.class.getEnumConstants(); - for (ItemList aItem : aListValues) { - if (aItem != null) { - if (aItem.name().equals(string) || aItem.name().toLowerCase().equals(string.toLowerCase())) { - return aItem; - } - } - } - Logger.INFO("Tried to obtain '"+string+"' from the GT ItemList, however it does not exist."); - if (aOther != null) { - Logger.INFO("Using fallback option instead - "+aOther.name()); - } - return aOther; - } - public static long getMillisSince(long aStartTime, long aCurrentTime) { return (aCurrentTime - aStartTime); } diff --git a/src/Java/gtPlusPlus/core/util/debug/DEBUG_INIT.java b/src/Java/gtPlusPlus/core/util/debug/DEBUG_INIT.java index b1cd1697f5..f8fc15c778 100644 --- a/src/Java/gtPlusPlus/core/util/debug/DEBUG_INIT.java +++ b/src/Java/gtPlusPlus/core/util/debug/DEBUG_INIT.java @@ -1,12 +1,12 @@ package gtPlusPlus.core.util.debug; -import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.preloader.CORE_Preloader; public class DEBUG_INIT { public static void registerBlocks(){ //Debug Loading - if (CORE.DEBUG){ + if (CORE_Preloader.DEBUG_MODE){ } } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java index 49aa3a1306..66f9e2453d 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java @@ -29,8 +29,23 @@ import net.minecraft.world.biome.BiomeGenBase; public class EntityUtils { - public static void setEntityOnFire(final Entity entity, final int length){ - entity.setFire(length); + public static void setEntityOnFire(final Entity aEntity, final int length){ + if (!isEntityImmuneToFire(aEntity)) { + aEntity.setFire(length); + } + } + + public static boolean isEntityOnFire(final Entity aEntity) { + Field aIsOnFire = ReflectionUtils.getField(Entity.class, "fire"); + if (aIsOnFire != null) { + int aFireTime = (int) ReflectionUtils.getFieldValue(aIsOnFire, aEntity); + return aFireTime > 0; + } + return false; + } + + public static boolean isEntityImmuneToFire(Entity aEntity) { + return aEntity.isImmuneToFire(); } public static int getFacingDirection(final Entity entity){ @@ -59,6 +74,13 @@ public class EntityUtils { final int blockZ = MathHelper.floor_double(parEntity.posZ); return new BlockPos(blockX, blockY, blockZ, parEntity.worldObj); } + + public static BlockPos findBlockPosOfEntity(final Entity parEntity){ + final int blockX = MathHelper.floor_double(parEntity.posX); + final int blockY = MathHelper.floor_double(parEntity.boundingBox.minY); + final int blockZ = MathHelper.floor_double(parEntity.posZ); + return new BlockPos(blockX, blockY, blockZ, parEntity.worldObj); + } //TODO public static void registerEntityToBiomeSpawns(final Class<EntityLiving> classy, final EnumCreatureType EntityType, final BiomeGenBase baseBiomeGen){ diff --git a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java index d7b6bc0a30..758ec8bab0 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java @@ -1,14 +1,9 @@ package gtPlusPlus.core.util.minecraft; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - import gregtech.api.enums.Dyes; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.util.GT_LanguageManager; - import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.minecraft.FluidGT6; import gtPlusPlus.core.item.base.BaseItemComponent; @@ -19,7 +14,14 @@ import gtPlusPlus.core.material.MaterialStack; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.Utils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; -import net.minecraftforge.fluids.*; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidContainerItem; public class FluidUtils { @@ -611,5 +613,9 @@ public class FluidUtils { } } + public static FluidStack getAir(int aAmount) { + return FluidUtils.getFluidStack("air", aAmount); + } + } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java index d7d611a1e4..725799a43d 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java @@ -27,6 +27,7 @@ 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.chemistry.RocketFuels; import gtPlusPlus.core.item.tool.staballoy.MultiPickaxeBase; import gtPlusPlus.core.item.tool.staballoy.MultiSpadeBase; import gtPlusPlus.core.lib.CORE; @@ -36,13 +37,13 @@ import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; +import gtPlusPlus.preloader.CORE_Preloader; import gtPlusPlus.xmod.gregtech.api.items.Gregtech_MetaTool; import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools; 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; @@ -354,7 +355,7 @@ public class ItemUtils { } public static ItemStack getItemStackOfAmountFromOreDictNoBroken(String oredictName, final int amount) { - if (CORE.DEBUG) { + if (CORE_Preloader.DEBUG_MODE) { Logger.WARNING("Looking up: " + oredictName + " - from method: " + ReflectionUtils.getMethodName(1)); Logger.WARNING("Looking up: " + oredictName + " - from method: " + ReflectionUtils.getMethodName(2)); Logger.WARNING("Looking up: " + oredictName + " - from method: " + ReflectionUtils.getMethodName(3)); @@ -1220,7 +1221,6 @@ public class ItemUtils { return GT_Values.NI; } - public static ItemStack depleteStack(ItemStack aStack) { return depleteStack(aStack, 1); } @@ -1235,41 +1235,6 @@ 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) { @@ -1282,7 +1247,9 @@ public class ItemUtils { } public static boolean isCatalyst(ItemStack aStack) { - + if (GT_Utility.areStacksEqual(aStack, RocketFuels.Formaldehyde_Catalyst_Stack, true)) { + return true; + } if (GT_Utility.areStacksEqual(aStack, GenericChem.mBlueCatalyst, true)) { return true; } @@ -1309,9 +1276,69 @@ public class ItemUtils { } return false; } + + public static boolean isMillingBall(ItemStack aStack) { + if (GT_Utility.areStacksEqual(aStack, GenericChem.mMillingBallAlumina, true)) { + return true; + } + if (GT_Utility.areStacksEqual(aStack, GenericChem.mMillingBallSoapstone, true)) { + return true; + } + return false; + } public static String getLocalizedNameOfBlock(Block aBlock, int aMeta) { return LangUtils.getLocalizedNameOfBlock(aBlock, aMeta); } + + + + public static boolean doesItemListEntryExist(String string) { + ItemList[] aListValues = ItemList.class.getEnumConstants(); + for (ItemList aItem : aListValues) { + if (aItem != null) { + if (aItem.name().equals(string) || aItem.name().toLowerCase().equals(string.toLowerCase())) { + return true; + } + } + } + return false; + } + + public static ItemList getValueOfItemList(String string, ItemList aOther) { + ItemList[] aListValues = ItemList.class.getEnumConstants(); + for (ItemList aItem : aListValues) { + if (aItem != null) { + if (aItem.name().equals(string) || aItem.name().toLowerCase().equals(string.toLowerCase())) { + return aItem; + } + } + } + Logger.INFO("Tried to obtain '"+string+"' from the GT ItemList, however it does not exist."); + if (aOther != null) { + Logger.INFO("Using fallback option instead - "+aOther.name()); + } + return aOther; + } + + public static ItemStack getValueOfItemList(String string, int aAmount, ItemList aOther) { + return getValueOfItemList(string, aOther).get(aAmount); + } + + public static ItemStack getValueOfItemList(String string, int aAmount, ItemStack aOther) { + ItemList[] aListValues = ItemList.class.getEnumConstants(); + for (ItemList aItem : aListValues) { + if (aItem != null) { + if (aItem.name().equals(string) || aItem.name().toLowerCase().equals(string.toLowerCase())) { + return aItem.get(aAmount); + } + } + } + Logger.INFO("Tried to obtain '"+string+"' from the GT ItemList, however it does not exist."); + if (aOther != null) { + Logger.INFO("Using fallback option instead - "+ItemUtils.getItemName(aOther)); + } + return aOther; + } } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java index 2108087542..64a6c9e820 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java @@ -501,5 +501,14 @@ public class MaterialUtils { } + public static boolean doesMaterialExist(String aMatName) { + for (Materials m : Materials.values()) { + if (m.name().toLowerCase().equals(aMatName.toLowerCase())) { + return true; + } + } + return false; + } + }
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java index 9a8a8e691c..e64414b493 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java @@ -188,4 +188,12 @@ public class PlayerUtils { Utils.sendServerMessage(string); } + public static boolean isCreative(EntityPlayer aPlayer) { + return aPlayer.capabilities.isCreativeMode; + } + + public static boolean canTakeDamage(EntityPlayer aPlayer) { + return !aPlayer.capabilities.disableDamage; + } + } diff --git a/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java index 13bc0c9382..56772f0dc7 100644 --- a/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java @@ -20,6 +20,7 @@ import gtPlusPlus.api.objects.minecraft.ShapedRecipe; import gtPlusPlus.core.handler.COMPAT_HANDLER; import gtPlusPlus.core.handler.Recipes.LateRegistrationHandler; import gtPlusPlus.core.handler.Recipes.RegistrationHandler; +import gtPlusPlus.core.item.ModItems; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.reflect.ReflectionUtils; import net.minecraft.item.Item; @@ -632,5 +633,16 @@ public static int mInvalidID = 1; } + public static void addSmeltingRecipe(ItemStack aStackInput, ItemStack aStackOutput) { + addSmeltingRecipe(aStackInput, aStackOutput, 0f); + } + + public static void addSmeltingRecipe(ItemStack aStackInput, ItemStack aStackOutput, float aXpGained) { + + GameRegistry.addSmelting(aStackInput, aStackOutput, aXpGained); + + } + + } diff --git a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java index 4d8a02d800..e45d27b926 100644 --- a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java +++ b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java @@ -365,7 +365,13 @@ public class ReflectionUtils { public static boolean setField(final Object object, final String fieldName, final Object fieldValue) { - Class<?> clazz = object.getClass(); + Class<?> clazz; + if (object instanceof Class) { + clazz = (Class<?>) object; + } + else { + clazz = object.getClass(); + } while (clazz != null) { try { final Field field = getField(clazz, fieldName); @@ -387,7 +393,13 @@ public class ReflectionUtils { } public static boolean setField(final Object object, final Field field, final Object fieldValue) { - Class<?> clazz = object.getClass(); + Class<?> clazz; + if (object instanceof Class) { + clazz = (Class<?>) object; + } + else { + clazz = object.getClass(); + } while (clazz != null) { try { final Field field2 = getField(clazz, field.getName()); @@ -522,6 +534,25 @@ public class ReflectionUtils { return false; } + + public static Object invokeNonBool(Object objectInstance, Method method, Object[] values){ + if (objectInstance == null || method == null || values == null){ + return false; + } + String methodName = method.getName(); + Class<?> mLocalClass = (objectInstance instanceof Class ? (Class<?>) objectInstance : objectInstance.getClass()); + Logger.REFLECTION("Trying to invoke "+methodName+" on an instance of "+mLocalClass.getCanonicalName()+"."); + try { + return method.invoke(objectInstance, values); + } + catch (SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { + Logger.REFLECTION("Failed to Dynamically invoke "+methodName+" on an object of type: "+mLocalClass.getName()); + } + + Logger.REFLECTION("Invoke failed or did something wrong."); + return null; + } + public static Object invokeNonBool(Object objectInstance, String methodName, Class[] parameters, Object[] values){ if (objectInstance == null || methodName == null || parameters == null || values == null){ return false; @@ -973,9 +1004,9 @@ public class ReflectionUtils { */ private static void makeModifiable(Field nameField) throws Exception { nameField.setAccessible(true); - Field modifiers = getField(Field.class, "modifiers"); - modifiers.setAccessible(true); - modifiers.setInt(nameField, nameField.getModifiers() & ~Modifier.FINAL); + Field modifiers = getField(Field.class, "modifiers"); + modifiers.setAccessible(true); + modifiers.setInt(nameField, nameField.getModifiers() & ~Modifier.FINAL); } diff --git a/src/Java/gtPlusPlus/core/util/sys/GeoUtils.java b/src/Java/gtPlusPlus/core/util/sys/GeoUtils.java index 6ec6662a44..0e5a33b948 100644 --- a/src/Java/gtPlusPlus/core/util/sys/GeoUtils.java +++ b/src/Java/gtPlusPlus/core/util/sys/GeoUtils.java @@ -3,17 +3,22 @@ package gtPlusPlus.core.util.sys; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.net.*; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.net.URLConnection; import org.apache.http.client.utils.URIBuilder; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.preloader.CORE_Preloader; public class GeoUtils { public static String determineUsersCountry(){ - if (!CORE.DEBUG && !CORE.DEVENV) { + if (!CORE_Preloader.DEBUG_MODE && !CORE.DEVENV) { try { if (NetworkUtils.checkNetworkIsAvailableWithValidInterface()){ return getUsersCountry(); diff --git a/src/Java/gtPlusPlus/core/util/sys/NetworkUtils.java b/src/Java/gtPlusPlus/core/util/sys/NetworkUtils.java index f1417e8a2d..b883391a86 100644 --- a/src/Java/gtPlusPlus/core/util/sys/NetworkUtils.java +++ b/src/Java/gtPlusPlus/core/util/sys/NetworkUtils.java @@ -121,7 +121,7 @@ public class NetworkUtils { private static boolean checkAddressWithTimeout(String URL, int timeout) { try { - InetAddress.getByName(URL).isReachable(3000); //Replace with your name + InetAddress.getByName(URL).isReachable(timeout); //Replace with your name return true; } catch (Exception e) { return false; |