diff options
Diffstat (limited to 'src/Java/miscutil')
3 files changed, 34 insertions, 24 deletions
diff --git a/src/Java/miscutil/core/util/Utils.java b/src/Java/miscutil/core/util/Utils.java index d28598affc..02363927a1 100644 --- a/src/Java/miscutil/core/util/Utils.java +++ b/src/Java/miscutil/core/util/Utils.java @@ -22,6 +22,8 @@ import java.util.UUID; import miscutil.MiscUtils; import miscutil.core.lib.CORE; +import miscutil.core.util.fluid.FluidUtils; +import miscutil.core.util.item.UtilsItems; import miscutil.core.util.math.MathUtils; import net.minecraft.block.Block; import net.minecraft.entity.Entity; @@ -36,6 +38,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.util.EnumHelper; +import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; @@ -466,18 +469,30 @@ public class Utils { return false; } + private static short cellID = 15; public static ItemStack createInternalNameAndFluidCell(String s){ + Utils.LOG_WARNING("1"); InternalName yourName = EnumHelper.addEnum(InternalName.class, s, new Class[0], new Object[0]); + Utils.LOG_WARNING("2 "+yourName.name()); ItemCell item = (ItemCell)Ic2Items.cell.getItem(); + Utils.LOG_WARNING("3 "+item.getUnlocalizedName()); try { + Utils.LOG_WARNING("4"); Class<? extends ItemCell> clz = item.getClass(); + Utils.LOG_WARNING("5 "+clz.getSimpleName()); Method methode = clz.getDeclaredMethod("addCell", int.class, InternalName.class, Block[].class); + Utils.LOG_WARNING("6 "+methode.getName()); methode.setAccessible(true); - return (ItemStack) methode.invoke(item, 1000, yourName, new Block[0]); + Utils.LOG_WARNING("7 "+methode.isAccessible()); + ItemStack temp = (ItemStack) methode.invoke(item, cellID++, yourName, new Block[0]); + Utils.LOG_INFO("8 "+temp.getDisplayName()); + FluidContainerRegistry.registerFluidContainer(FluidUtils.getFluidStack(s.toLowerCase(), 0), temp.copy(), Ic2Items.cell.copy()); + UtilsItems.addItemToOreDictionary(temp.copy(), "cell"+s); + return temp; } catch(Exception e){ - + e.printStackTrace(); } return null; } diff --git a/src/Java/miscutil/core/util/item/UtilsItems.java b/src/Java/miscutil/core/util/item/UtilsItems.java index 8b1772305b..bb74234a51 100644 --- a/src/Java/miscutil/core/util/item/UtilsItems.java +++ b/src/Java/miscutil/core/util/item/UtilsItems.java @@ -101,6 +101,14 @@ public class UtilsItems { Utils.LOG_ERROR(itemName+" not found. [NULL]"); } } + + public static void addItemToOreDictionary(ItemStack stack, String oreDictName){ + try { + GT_OreDictUnificator.registerOre(oreDictName, stack); + } catch (NullPointerException e) { + Utils.LOG_ERROR(stack.getDisplayName()+" not registered. [NULL]"); + } + } @SuppressWarnings("unused") public static ItemStack getItemStackWithMeta(boolean MOD, String FQRN, String itemName, int meta, int itemstackSize){ diff --git a/src/Java/miscutil/xmod/gregtech/common/blocks/fluid/GregtechFluidHandler.java b/src/Java/miscutil/xmod/gregtech/common/blocks/fluid/GregtechFluidHandler.java index d71461197f..40912b3247 100644 --- a/src/Java/miscutil/xmod/gregtech/common/blocks/fluid/GregtechFluidHandler.java +++ b/src/Java/miscutil/xmod/gregtech/common/blocks/fluid/GregtechFluidHandler.java @@ -4,7 +4,6 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_OreDictUnificator; -import ic2.api.item.IC2Items; import ic2.core.Ic2Items; import ic2.core.init.InternalName; import ic2.core.item.resources.ItemCell; @@ -25,7 +24,6 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.EnumHelper; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.oredict.OreDictionary; public class GregtechFluidHandler { @@ -98,11 +96,11 @@ public class GregtechFluidHandler { } GT_Values.RA.addChemicalRecipe( - UtilsItems.getItemStackOfAmountFromOreDict("cellEmpty", 1), - UtilsItems.getItemStackOfAmountFromOreDict("dustApatite", 1), - FluidUtils.getFluidStack("sulfuricacid", 1500), + UtilsItems.getItemStackOfAmountFromOreDict("dustApatite", 16), + null, + FluidUtils.getFluidStack("sulfuricacid", 133*32), FluidUtils.getFluidStack("sulfuricapatite", 133*4), - UtilsItems.getItemStackOfAmountFromOreDict("dustTinySulfur", 1), + UtilsItems.getItemStackOfAmountFromOreDict("dustSmallSulfur", 1), 20*20); GT_Values.RA.addMixerRecipe(UtilsItems.getItemStackOfAmountFromOreDict("dustSulfur", 1), null, null, null, FluidUtils.getFluidStack("oxygen", 266), FluidUtils.getFluidStack("sulfurdioxide", 399), null, 600, 60); @@ -119,12 +117,13 @@ public class GregtechFluidHandler { FluidStack[] apatiteOutput = { FluidUtils.getFluidStack("sulfurousacid", 3800), + FluidUtils.getFluidStack("hydrogenchloride", 1000), FluidUtils.getFluidStack("hydrofluoricacid", 400) }; GT_Values.RA.addDistillationTowerRecipe( FluidUtils.getFluidStack("sulfuricapatite", 5200), apatiteOutput, - UtilsItems.getItemStackOfAmountFromOreDict("cellHydrogenChloride", 1), + null, 45*20, 256); @@ -170,19 +169,7 @@ public class GregtechFluidHandler { private static void generateIC2FluidCell(String fluidNameWithCaps){ Utils.LOG_INFO("Adding a Cell for "+fluidNameWithCaps); if (LoadedMods.IndustrialCraft2){ - ItemStack emptyCell = IC2Items.getItem("cell"); - ItemStack filledCell = FluidContainerRegistry.fillFluidContainer(FluidUtils.getFluidStack(fluidNameWithCaps.toLowerCase(), 1000), emptyCell.copy()); - if (filledCell != null){ - OreDictionary.registerOre("cell"+fluidNameWithCaps, filledCell); - FluidContainerRegistry.registerFluidContainer(new FluidContainerRegistry.FluidContainerData(FluidUtils.getFluidStack(fluidNameWithCaps.toLowerCase(), 1000), filledCell, emptyCell.copy())); - } - else { - - Utils.LOG_INFO("Failed to create a cell for "+fluidNameWithCaps+". Trying seconday method."); - Utils.createInternalNameAndFluidCell(fluidNameWithCaps); - //setUpNewFluidCell(cellID++, fluidNameWithCaps); - - } + Utils.createInternalNameAndFluidCell(fluidNameWithCaps); } } @@ -198,8 +185,8 @@ public class GregtechFluidHandler { InternalName fluidName = EnumHelper.addEnum(InternalName.class, name, new Class[0], new Object[0]); //EnumHelper.addEnum(InternalName.class, "InternalName", name); if (fluidName.valueOf(name) != null){ - addRegisterCell(meta, fluidName); - return true; + addRegisterCell(meta, fluidName); + return true; } Utils.LOG_INFO("Secondary Cell Method failed."); return false; |