From cb9a983efa1c2ee193e018eb83a9922d5946eca0 Mon Sep 17 00:00:00 2001 From: TheDarkDnKTv Date: Mon, 17 Aug 2020 17:34:52 +0300 Subject: [PATCH] OreDict now alive But laggy Closes #15, closes #19, closes #20 --- src/main/java/gregtechmod/GT_Mod.java | 11 +- .../java/gregtechmod/api/enums/GT_Items.java | 27 +--- .../gregtechmod/api/enums/OrePrefixes.java | 6 +- .../api/items/GT_Crowbar_Item.java | 3 +- .../gregtechmod/api/items/GT_File_Item.java | 4 +- .../api/items/GT_Generic_Item.java | 8 +- .../api/items/GT_HardHammer_Item.java | 2 +- .../api/items/GT_MetaGenerated_Item.java | 4 +- .../gregtechmod/api/items/GT_Saw_Item.java | 3 +- .../gregtechmod/api/items/GT_Scoop_Item.java | 5 +- .../api/items/GT_Screwdriver_Item.java | 3 +- .../api/items/GT_SoftHammer_Item.java | 3 +- .../api/items/GT_SolderingMetal_Item.java | 3 +- .../api/items/GT_SolderingTool_Item.java | 4 +- .../api/items/GT_Spray_Color_Item.java | 3 +- .../gregtechmod/api/items/GT_Tool_Item.java | 5 - .../gregtechmod/api/items/GT_Wrench_Item.java | 3 +- .../GT_MetaTileEntity_BasicGenerator.java | 1 + .../api/util/GT_OreDictUnificator.java | 56 ++++++- .../java/gregtechmod/api/util/GT_Utility.java | 21 ++- .../gregtechmod/common/GT_OreDictHandler.java | 34 ++-- .../common/items/GT_MetaItem_Abstract.java | 1 - .../common/items/GT_MetaItem_Cell.java | 4 +- .../common/items/GT_MetaItem_Component.java | 2 +- .../common/items/GT_MetaItem_DirtyDust.java | 2 +- .../common/items/GT_MetaItem_Dust.java | 2 +- .../common/items/GT_MetaItem_Material.java | 4 +- .../common/items/GT_MetaItem_Nugget.java | 2 +- .../common/items/GT_MetaItem_SmallDust.java | 2 +- .../common/items/GT_MetaItem_TinyDust.java | 2 +- .../GT_MetaTileEntity_DieselGenerator.java | 144 ++++------------- .../GT_MetaTileEntity_GasTurbine.java | 56 +++---- ...T_MetaTileEntity_MagicEnergyConverter.java | 145 +++--------------- .../GT_MetaTileEntity_PlasmaGenerator.java | 130 +++------------- .../GT_MetaTileEntity_SemifluidGenerator.java | 130 +++------------- .../GT_MetaTileEntity_ThermalGenerator.java | 134 +++------------- .../loaders/oreprocessing/ProcessingCell.java | 2 +- .../oreprocessing/ProcessingStoneVarious.java | 4 +- .../loaders/preload/GT_ItemLoader.java | 18 +-- 39 files changed, 284 insertions(+), 709 deletions(-) diff --git a/src/main/java/gregtechmod/GT_Mod.java b/src/main/java/gregtechmod/GT_Mod.java index 2ff1fa1..5475862 100644 --- a/src/main/java/gregtechmod/GT_Mod.java +++ b/src/main/java/gregtechmod/GT_Mod.java @@ -486,14 +486,15 @@ public class GT_Mod implements IGT_Mod { GT_Log.log.error("GT_Mod: Fatal Error ocurred while initializing TileEntities, crashing Minecraft."); throw new RuntimeException(""); } else { - new GT_OreProcessingLoader().run(); new GT_MetaTileEntityLoader().run(); new GT_ItemLoader().run(); + new GT_OreProcessingLoader().run(); new GT_DictRegistratorPreItem().run(); new GT_DictRegistratorPostItem().run(); new GT_CircuitBehaviorLoader().run(); new GT_CoverBehaviorLoader().run(); new GT_SonictronLoader().run(); + GT_OreDictUnificator.activateUnificator(); gregtechproxy.registerRenderers(); for (FluidContainerData tGregTech : FluidContainerRegistry.getRegisteredFluidContainerData()) { @@ -561,7 +562,13 @@ public class GT_Mod implements IGT_Mod { checkVersions(); GT_Log.log.info("GT_Mod: Beginning Load-Phase."); GregTech_API.sLoadStarted = true; - + + if (sSortToTheEnd) { + new GT_ItemIterator().run(); + GT_OreDictHandler.instance.registerUnificationEntries(); + new GT_LiquidAndFuelLoader().run(); + } + for (FluidContainerData tGregTech : FluidContainerRegistry.getRegisteredFluidContainerData()) { if (tGregTech.filledContainer.getItem() == Items.potionitem) { tGregTech.fluid.amount = 0; diff --git a/src/main/java/gregtechmod/api/enums/GT_Items.java b/src/main/java/gregtechmod/api/enums/GT_Items.java index 975add2..fa2358a 100644 --- a/src/main/java/gregtechmod/api/enums/GT_Items.java +++ b/src/main/java/gregtechmod/api/enums/GT_Items.java @@ -1,10 +1,7 @@ package gregtechmod.api.enums; -import java.util.Objects; - import gregtechmod.api.GregTech_API; import gregtechmod.api.interfaces.IItemContainer; -import gregtechmod.api.util.GT_Log; import gregtechmod.api.util.GT_ModHandler; import gregtechmod.api.util.GT_OreDictUnificator; import gregtechmod.api.util.GT_Utility; @@ -330,28 +327,28 @@ public enum GT_Items implements IItemContainer { @Override public ItemStack get(long aAmount, Object... aReplacements) { if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!"); - if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, this.cast(aReplacements)); + if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, GT_Utility.cast(aReplacements)); return GT_Utility.copyAmount(aAmount, GT_OreDictUnificator.get(mStack)); } @Override public ItemStack getWildcard(long aAmount, Object... aReplacements) { if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!"); - if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, this.cast(aReplacements)); + if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, GT_Utility.cast(aReplacements)); return GT_Utility.copyAmountAndMetaData(aAmount, GregTech_API.ITEM_WILDCARD_DAMAGE, GT_OreDictUnificator.get(mStack)); } @Override public ItemStack getUndamaged(long aAmount, Object... aReplacements) { if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!"); - if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, this.cast(aReplacements)); + if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, GT_Utility.cast(aReplacements)); return GT_Utility.copyAmountAndMetaData(aAmount, 0, GT_OreDictUnificator.get(mStack)); } @Override public ItemStack getAlmostBroken(long aAmount, Object... aReplacements) { if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!"); - if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, this.cast(aReplacements)); + if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, GT_Utility.cast(aReplacements)); return GT_Utility.copyAmountAndMetaData(aAmount, mStack.getMaxDamage()-1, GT_OreDictUnificator.get(mStack)); } @@ -366,7 +363,7 @@ public enum GT_Items implements IItemContainer { @Override public ItemStack getWithDamage(long aAmount, long aMetaValue, Object... aReplacements) { if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + toString() + "' has not been set to an Item at this time!"); - if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, this.cast(aReplacements)); + if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, GT_Utility.cast(aReplacements)); return GT_Utility.copyAmountAndMetaData(aAmount, aMetaValue, GT_OreDictUnificator.get(mStack)); } @@ -383,18 +380,4 @@ public enum GT_Items implements IItemContainer { for (Object tOreName : aOreNames) GT_OreDictUnificator.registerOre(tOreName, getWildcard(1)); return this; } - - private ItemStack[] cast(Object...objects) { - Objects.requireNonNull(objects); - ItemStack[] result = new ItemStack[objects.length]; - try { - for (int i = 0; i < objects.length; i++) - result[i] = (ItemStack) objects[i]; - } catch (ClassCastException e) { - GT_Log.log.throwing(e); - throw new IllegalArgumentException("Array can not contain not ItemStacks!"); - } - - return result; - } } \ No newline at end of file diff --git a/src/main/java/gregtechmod/api/enums/OrePrefixes.java b/src/main/java/gregtechmod/api/enums/OrePrefixes.java index d5f5b43..7d513e9 100644 --- a/src/main/java/gregtechmod/api/enums/OrePrefixes.java +++ b/src/main/java/gregtechmod/api/enums/OrePrefixes.java @@ -291,7 +291,11 @@ public enum OrePrefixes { } public void processOre(Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - if (aMaterial != null && (aMaterial != Materials._NULL || mIsSelfReferencing || !mIsMaterialBased) && GT_Utility.isStackValid(aStack)) for (IOreRecipeRegistrator tRegistrator : mOreProcessing) tRegistrator.registerOre(this, aMaterial, aOreDictName, aModName, GT_Utility.copyAmount(1, aStack)); + if (aMaterial != null && (aMaterial != Materials._NULL || mIsSelfReferencing || !mIsMaterialBased) && GT_Utility.isStackValid(aStack)) { + for (IOreRecipeRegistrator tRegistrator : mOreProcessing) { + tRegistrator.registerOre(this, aMaterial, aOreDictName, aModName, GT_Utility.copyAmount(1, aStack)); + } + } } public final String mLocalizedMaterialPre, mLocalizedMaterialPost; diff --git a/src/main/java/gregtechmod/api/items/GT_Crowbar_Item.java b/src/main/java/gregtechmod/api/items/GT_Crowbar_Item.java index b6c3954..baf182e 100644 --- a/src/main/java/gregtechmod/api/items/GT_Crowbar_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_Crowbar_Item.java @@ -3,7 +3,6 @@ package gregtechmod.api.items; import gregtechmod.api.GregTech_API; import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.util.GT_ModHandler; -import gregtechmod.api.util.GT_OreDictUnificator; import gregtechmod.api.util.GT_Utility; import java.util.List; @@ -19,7 +18,7 @@ public class GT_Crowbar_Item extends GT_Tool_Item { public GT_Crowbar_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) { super(aUnlocalized, "item.GT_Crowbar.tooltip_main", aMaxDamage, aEntityDamage, true, -1, -1, 5, 20.0F); GregTech_API.registerCrowbar(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); - GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolCrowbar, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); + registerAtOreDict(GT_ToolDictNames.craftingToolCrowbar, GregTech_API.ITEM_WILDCARD_DAMAGE); addToBlockList(Blocks.rail); addToBlockList(Blocks.golden_rail); addToBlockList(Blocks.detector_rail); diff --git a/src/main/java/gregtechmod/api/items/GT_File_Item.java b/src/main/java/gregtechmod/api/items/GT_File_Item.java index 87f06c9..5249533 100644 --- a/src/main/java/gregtechmod/api/items/GT_File_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_File_Item.java @@ -2,14 +2,12 @@ package gregtechmod.api.items; import gregtechmod.api.GregTech_API; import gregtechmod.api.enums.GT_ToolDictNames; -import gregtechmod.api.util.GT_OreDictUnificator; -import net.minecraft.item.ItemStack; public class GT_File_Item extends GT_Tool_Item { public GT_File_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) { super(aUnlocalized, "item.GT_File_Item.tooltip_main", aMaxDamage, aEntityDamage, true); //GregTech_API.registerFile(new ItemStack(itemID, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); - GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolFile, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); + registerAtOreDict(GT_ToolDictNames.craftingToolFile, GregTech_API.ITEM_WILDCARD_DAMAGE); setUsageAmounts(1, 3, 2); } } \ No newline at end of file diff --git a/src/main/java/gregtechmod/api/items/GT_Generic_Item.java b/src/main/java/gregtechmod/api/items/GT_Generic_Item.java index 15cc351..1006e4d 100644 --- a/src/main/java/gregtechmod/api/items/GT_Generic_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_Generic_Item.java @@ -30,11 +30,15 @@ public class GT_Generic_Item extends Item { // if (GT_Utility.isStringValid(aEnglishTooltip)) GT_LanguageManager.addStringLocalization(mTooltip = getUnlocalizedName() + ".tooltip_main", aEnglishTooltip, aWriteToolTipIntoLangFile); else mTooltip = null; } - public final GT_Generic_Item registerAtOreDict(String aName, short aDamage) { - GT_OreDictUnificator.registerOre(aName, new ItemStack(this, 1, aDamage)); + public final GT_Generic_Item registerAtOreDict(Object aName, short aDamage) { + GT_OreDictUnificator.registerOreLater(aName, new ItemStack(this, 1, aDamage)); return this; } + public final GT_Generic_Item registerAtOreDictWildcard(Object aName) { + return registerAtOreDict(aName, GregTech_API.ITEM_WILDCARD_DAMAGE); + } + @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister aIconRegister) { diff --git a/src/main/java/gregtechmod/api/items/GT_HardHammer_Item.java b/src/main/java/gregtechmod/api/items/GT_HardHammer_Item.java index 94faa42..c61dda2 100644 --- a/src/main/java/gregtechmod/api/items/GT_HardHammer_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_HardHammer_Item.java @@ -23,7 +23,7 @@ public class GT_HardHammer_Item extends GT_Tool_Item { public GT_HardHammer_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) { super(aUnlocalized, "item.GT_Hammer.tooltip", aMaxDamage, aEntityDamage, true); GregTech_API.registerHardHammer(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); - GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolHardHammer, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); + registerAtOreDict(GT_ToolDictNames.craftingToolHardHammer, GregTech_API.ITEM_WILDCARD_DAMAGE); addToEffectiveList(EntityIronGolem.class.getName()); addToEffectiveList("EntityTFTowerGolem"); addToEffectiveList("EntityGolemBase"); diff --git a/src/main/java/gregtechmod/api/items/GT_MetaGenerated_Item.java b/src/main/java/gregtechmod/api/items/GT_MetaGenerated_Item.java index c01b024..867ea60 100644 --- a/src/main/java/gregtechmod/api/items/GT_MetaGenerated_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_MetaGenerated_Item.java @@ -88,9 +88,9 @@ public abstract class GT_MetaGenerated_Item extends GT_Generic_Item implements I String tOreName = getOreDictString(tPrefix, tMaterial); tPrefix = OrePrefixes.getOrePrefix(tOreName); if (tPrefix != null && tPrefix.mIsUnificatable) { - GT_OreDictUnificator.set(tOreName, new ItemStack(this, 1, i)); + GT_OreDictUnificator.setLater(tOreName, new ItemStack(this, 1, i)); } else { - GT_OreDictUnificator.registerOre(tOreName, new ItemStack(this, 1, i)); + registerAtOreDict(tOreName, (short)i); } } } diff --git a/src/main/java/gregtechmod/api/items/GT_Saw_Item.java b/src/main/java/gregtechmod/api/items/GT_Saw_Item.java index a8f609a..bd26ed5 100644 --- a/src/main/java/gregtechmod/api/items/GT_Saw_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_Saw_Item.java @@ -3,7 +3,6 @@ package gregtechmod.api.items; import gregtechmod.api.GregTech_API; import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.util.GT_ModHandler; -import gregtechmod.api.util.GT_OreDictUnificator; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -12,7 +11,7 @@ public class GT_Saw_Item extends GT_Tool_Item { public GT_Saw_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) { super(aUnlocalized, "item.GT_Saw_Bronze.tooltip_main", aMaxDamage, aEntityDamage, true, -1, aDisChargedGTID, aToolQuality, aToolStrength); //GregTech_API.registerSaw(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); - GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolSaw, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); + registerAtOreDict(GT_ToolDictNames.craftingToolSaw, GregTech_API.ITEM_WILDCARD_DAMAGE); if (GT_ModHandler.isElectricItem(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE))) setSilkyness(1); addToMaterialList(Material.leaves); addToMaterialList(Material.plants); diff --git a/src/main/java/gregtechmod/api/items/GT_Scoop_Item.java b/src/main/java/gregtechmod/api/items/GT_Scoop_Item.java index 4f2d3d3..cb922a6 100644 --- a/src/main/java/gregtechmod/api/items/GT_Scoop_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_Scoop_Item.java @@ -1,14 +1,11 @@ package gregtechmod.api.items; -import gregtechmod.api.GregTech_API; import gregtechmod.api.enums.GT_ToolDictNames; -import gregtechmod.api.util.GT_OreDictUnificator; -import net.minecraft.item.ItemStack; public class GT_Scoop_Item extends GT_Tool_Item { public GT_Scoop_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) { super(aUnlocalized, "item.GT_Scoop_Item.tooltip", aMaxDamage, aEntityDamage, true, -1, aDisChargedGTID, aToolQuality, aToolStrength); - GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolScoop, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); + registerAtOreDictWildcard(GT_ToolDictNames.craftingToolScoop); addToOreDictList("beeHive"); setToolClasses("scoop"); setUsageAmounts(1, 1, 1); diff --git a/src/main/java/gregtechmod/api/items/GT_Screwdriver_Item.java b/src/main/java/gregtechmod/api/items/GT_Screwdriver_Item.java index 8bb4f71..a38fd52 100644 --- a/src/main/java/gregtechmod/api/items/GT_Screwdriver_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_Screwdriver_Item.java @@ -3,7 +3,6 @@ package gregtechmod.api.items; import gregtechmod.api.GregTech_API; import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.util.GT_ModHandler; -import gregtechmod.api.util.GT_OreDictUnificator; import gregtechmod.api.util.GT_Utility; import java.util.List; @@ -21,7 +20,7 @@ public class GT_Screwdriver_Item extends GT_Tool_Item { public GT_Screwdriver_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aDischargedGTID) { super(aUnlocalized, "item.GT_Screwdriver.tooltip_main", aMaxDamage, aEntityDamage, true, -1, aDischargedGTID); GregTech_API.registerScrewdriver(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); - GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolScrewdriver, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); + registerAtOreDictWildcard(GT_ToolDictNames.craftingToolScrewdriver); addToEffectiveList(EntityCaveSpider.class.getName()); addToEffectiveList(EntitySpider.class.getName()); addToEffectiveList("EntityTFHedgeSpider"); diff --git a/src/main/java/gregtechmod/api/items/GT_SoftHammer_Item.java b/src/main/java/gregtechmod/api/items/GT_SoftHammer_Item.java index 7042a1e..6fd3417 100644 --- a/src/main/java/gregtechmod/api/items/GT_SoftHammer_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_SoftHammer_Item.java @@ -3,7 +3,6 @@ package gregtechmod.api.items; import gregtechmod.api.GregTech_API; import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.util.GT_ModHandler; -import gregtechmod.api.util.GT_OreDictUnificator; import gregtechmod.api.util.GT_Utility; import java.util.List; @@ -20,7 +19,7 @@ public class GT_SoftHammer_Item extends GT_Tool_Item { public GT_SoftHammer_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) { super(aUnlocalized, "item.GT_Hammer_Rubber.tooltip_main", aMaxDamage, aEntityDamage, true); GregTech_API.registerSoftHammer(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); - GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolSoftHammer, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); + registerAtOreDictWildcard(GT_ToolDictNames.craftingToolSoftHammer); setCraftingSound(GregTech_API.sSoundList.get(101)); setBreakingSound(GregTech_API.sSoundList.get(101)); setEntityHitSound(GregTech_API.sSoundList.get(101)); diff --git a/src/main/java/gregtechmod/api/items/GT_SolderingMetal_Item.java b/src/main/java/gregtechmod/api/items/GT_SolderingMetal_Item.java index 6c9fef9..3e2b9a6 100644 --- a/src/main/java/gregtechmod/api/items/GT_SolderingMetal_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_SolderingMetal_Item.java @@ -2,14 +2,13 @@ package gregtechmod.api.items; import gregtechmod.api.GregTech_API; import gregtechmod.api.enums.GT_ToolDictNames; -import gregtechmod.api.util.GT_OreDictUnificator; import net.minecraft.item.ItemStack; public class GT_SolderingMetal_Item extends GT_Tool_Item { public GT_SolderingMetal_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage) { super(aUnlocalized, "item.GT_SolderingLead.tooltip_main", aMaxDamage, aEntityDamage, false); - GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolSolderingMetal, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); GregTech_API.registerSolderingMetal(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); + registerAtOreDictWildcard(GT_ToolDictNames.craftingToolSolderingMetal); setUsageAmounts(1, 3, 1); } } \ No newline at end of file diff --git a/src/main/java/gregtechmod/api/items/GT_SolderingTool_Item.java b/src/main/java/gregtechmod/api/items/GT_SolderingTool_Item.java index 1bda5bb..4f5db0b 100644 --- a/src/main/java/gregtechmod/api/items/GT_SolderingTool_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_SolderingTool_Item.java @@ -2,8 +2,6 @@ package gregtechmod.api.items; import gregtechmod.api.GregTech_API; import gregtechmod.api.enums.GT_ToolDictNames; -import gregtechmod.api.util.GT_OreDictUnificator; - import java.util.List; import net.minecraft.client.resources.I18n; @@ -14,7 +12,7 @@ import net.minecraft.world.World; public class GT_SolderingTool_Item extends GT_Tool_Item { public GT_SolderingTool_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aDischargedGTID) { super(aUnlocalized, "item.Soldering_Iron.tooltip", aMaxDamage, aEntityDamage, true, -1, aDischargedGTID); - GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolSolderingIron, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); + registerAtOreDictWildcard(GT_ToolDictNames.craftingToolSolderingIron); GregTech_API.registerSolderingTool(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); setCraftingSound(GregTech_API.sSoundList.get(103)); setBreakingSound(GregTech_API.sSoundList.get(103)); diff --git a/src/main/java/gregtechmod/api/items/GT_Spray_Color_Item.java b/src/main/java/gregtechmod/api/items/GT_Spray_Color_Item.java index bded2c9..7f3e162 100644 --- a/src/main/java/gregtechmod/api/items/GT_Spray_Color_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_Spray_Color_Item.java @@ -4,7 +4,6 @@ import gregtechmod.api.GregTech_API; import gregtechmod.api.enums.Dyes; import gregtechmod.api.enums.GT_Items; import gregtechmod.api.util.GT_ModHandler; -import gregtechmod.api.util.GT_OreDictUnificator; import gregtechmod.api.util.GT_Utility; import java.util.List; @@ -23,7 +22,7 @@ public class GT_Spray_Color_Item extends GT_Tool_Item { public GT_Spray_Color_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, byte aColorMeta) { super(aUnlocalized, "item.GT_Spray_Color_Item.tooltip_1", aMaxDamage, aEntityDamage, true); - GT_OreDictUnificator.registerOre(Dyes.get(mColorMeta = aColorMeta), new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); + registerAtOreDictWildcard(Dyes.get(mColorMeta = aColorMeta)); setCraftingSound(GregTech_API.sSoundList.get(102)); setBreakingSound(GregTech_API.sSoundList.get(102)); setEntityHitSound(GregTech_API.sSoundList.get(102)); diff --git a/src/main/java/gregtechmod/api/items/GT_Tool_Item.java b/src/main/java/gregtechmod/api/items/GT_Tool_Item.java index d8efc1d..f867f17 100644 --- a/src/main/java/gregtechmod/api/items/GT_Tool_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_Tool_Item.java @@ -154,11 +154,6 @@ public class GT_Tool_Item extends GT_Generic_Item { return this; } - public final GT_Tool_Item registerAtOreDict(Object aName) { - GT_OreDictUnificator.registerOre(aName, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); - return this; - } - public void setMode(ItemStack aStack, int aMode) { NBTTagCompound tNBT = aStack.getTagCompound(); if (tNBT == null) { diff --git a/src/main/java/gregtechmod/api/items/GT_Wrench_Item.java b/src/main/java/gregtechmod/api/items/GT_Wrench_Item.java index 85e4857..b12463a 100644 --- a/src/main/java/gregtechmod/api/items/GT_Wrench_Item.java +++ b/src/main/java/gregtechmod/api/items/GT_Wrench_Item.java @@ -3,7 +3,6 @@ package gregtechmod.api.items; import gregtechmod.api.GregTech_API; import gregtechmod.api.enums.GT_ToolDictNames; import gregtechmod.api.util.GT_ModHandler; -import gregtechmod.api.util.GT_OreDictUnificator; import gregtechmod.api.util.GT_Utility; import java.util.Arrays; @@ -25,7 +24,7 @@ public class GT_Wrench_Item extends GT_Tool_Item { public GT_Wrench_Item(String aUnlocalized, int aMaxDamage, int aEntityDamage, int aDischargedGTID) { super(aUnlocalized, "item.GT_Wrech.tooltip", aMaxDamage, aEntityDamage, true, -1, aDischargedGTID); GregTech_API.registerWrench(new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); - GT_OreDictUnificator.registerOre(GT_ToolDictNames.craftingToolWrench, new ItemStack(this, 1, GregTech_API.ITEM_WILDCARD_DAMAGE)); + registerAtOreDictWildcard(GT_ToolDictNames.craftingToolWrench); addToEffectiveList(EntityIronGolem.class.getName()); addToEffectiveList("EntityTFTowerGolem"); addToEffectiveList("EntityGolemBase"); diff --git a/src/main/java/gregtechmod/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java b/src/main/java/gregtechmod/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java index ec9724d..613fc55 100644 --- a/src/main/java/gregtechmod/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java +++ b/src/main/java/gregtechmod/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java @@ -39,6 +39,7 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity @Override public void onPostTick() { if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) { + List kek = getRecipes(); if (mFluid == null) { if (getBaseMetaTileEntity().getUniversalEnergyStored() < getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU()) { mInventory[getStackDisplaySlot()] = null; diff --git a/src/main/java/gregtechmod/api/util/GT_OreDictUnificator.java b/src/main/java/gregtechmod/api/util/GT_OreDictUnificator.java index efd85dd..346ea0b 100644 --- a/src/main/java/gregtechmod/api/util/GT_OreDictUnificator.java +++ b/src/main/java/gregtechmod/api/util/GT_OreDictUnificator.java @@ -6,6 +6,7 @@ import gregtechmod.api.enums.OrePrefixes; import java.util.ArrayList; import java.util.HashMap; +import java.util.Map.Entry; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -24,11 +25,24 @@ public class GT_OreDictUnificator { public static volatile int VERSION = 408; private static final HashMap sName2OreMap = new HashMap(); + private static final HashMap sToRegister = new HashMap(); private static final HashMap sItemhash2NameMap = new HashMap(); private static final ArrayList sBlackList = new ArrayList(); private static int isRegisteringOre = 0, isAddingOre = 0; + public static void activateUnificator() { + GT_Log.log.info("Registering oredictionary tags..."); + for (Entry entry : sToRegister.entrySet()) { + OreDictionary.registerOre(entry.getValue(), entry.getKey()); + if (GregTech_API.DEBUG_MODE) { + GT_Log.log.info("Registering " + entry.getValue() + " ore"); + } + } + + sToRegister.clear(); + } + /** * The Blacklist just prevents the Item from being Unificated into something else. * Useful if you have things like the Industrial Diamond, which is better than regular Diamond, but also placeable in absolutely all Diamond Recipes. @@ -49,6 +63,14 @@ public class GT_OreDictUnificator { set(aName, aStack, false, false); } + public static void addLater(Object aName, ItemStack aStack) { + setLater(aName, aStack); + } + + public static void addLater(OrePrefixes aPrefix, Object aMaterial, ItemStack aStack) { + setLater(aPrefix.get(aMaterial), aStack); + } + public static void set(OrePrefixes aPrefix, Object aMaterial, ItemStack aStack) { set(aPrefix.get(aMaterial), aStack); } @@ -69,6 +91,22 @@ public class GT_OreDictUnificator { isAddingOre--; } + public static void setLater(Object aName, ItemStack aStack) { + setLater(aName, aStack, true, false); + } + + public static void setLater(Object aName, ItemStack aStack, boolean aOverwrite, boolean aAlreadyRegistered) { + if (GT_Utility.isStringInvalid(aName) || GT_Utility.isStackInvalid(aStack) || Items.feather.getDamage(aStack) == GregTech_API.ITEM_WILDCARD_DAMAGE) return; + isAddingOre++; + aStack = GT_Utility.copyAmount(1, aStack); + if (!aAlreadyRegistered) sToRegister.put(aStack, aName.toString()); + addAssociation(aName, aStack); + if (aOverwrite || GT_Utility.isStackInvalid(sName2OreMap.get(aName.toString()))) { + sName2OreMap.put(aName.toString(), aStack); + } + isAddingOre--; + } + public static ItemStack getFirstOre(Object aName, long aAmount) { if (GT_Utility.isStringInvalid(aName)) return null; if (GT_Utility.isStackValid(sName2OreMap.get(aName.toString()))) return GT_Utility.copyAmount(aAmount, sName2OreMap.get(aName.toString())); @@ -180,7 +218,23 @@ public class GT_OreDictUnificator { isRegisteringOre--; return true; } - + + public static boolean registerOreLater(OrePrefixes aPrefix, Object aMaterial, ItemStack aStack) { + return registerOreLater(aPrefix.get(aMaterial), aStack); + } + + public static boolean registerOreLater(Object aName, ItemStack aStack) { + if (GT_Utility.isStringInvalid(aName) || GT_Utility.isStackInvalid(aStack)) return false; + String tName = aName.toString(); + if (tName.equals("")) return false; + ArrayList tList = getOres(tName); + for (int i = 0; i < tList.size(); i++) if (GT_Utility.areStacksEqual(tList.get(i), aStack, true)) return false; + isRegisteringOre++; + sToRegister.put(GT_Utility.copyAmount(1, aStack), tName); + isRegisteringOre--; + return true; + } + public static boolean isRegisteringOres() { return isRegisteringOre > 0; } diff --git a/src/main/java/gregtechmod/api/util/GT_Utility.java b/src/main/java/gregtechmod/api/util/GT_Utility.java index 6a7ecfc..e122645 100644 --- a/src/main/java/gregtechmod/api/util/GT_Utility.java +++ b/src/main/java/gregtechmod/api/util/GT_Utility.java @@ -660,7 +660,7 @@ public class GT_Utility { public static FluidStack getFluidForFilledItem(ItemStack aStack) { if (isStackInvalid(aStack)) return null; - if (aStack.getItem() instanceof IFluidContainerItem) return ((IFluidContainerItem)aStack.getItem()).drain(copyAmount(1, aStack), Integer.MAX_VALUE, true); + if (aStack.getItem() instanceof IFluidContainerItem) return ((IFluidContainerItem) aStack.getItem()).drain(aStack, Integer.MAX_VALUE, false); FluidStack rFluid = FluidContainerRegistry.getFluidForFilledItem(aStack); if (rFluid != null) return rFluid.copy(); return null; @@ -981,13 +981,28 @@ public class GT_Utility { } public static ItemStack copyAmount(long aAmount, Object... aStacks) { - ItemStack rStack = copy((ItemStack[])aStacks); + ItemStack rStack = copy(GT_Utility.cast(aStacks)); + if (isStackInvalid(rStack)) return null; if (aAmount > 64) aAmount = 64; else if (aAmount == -1) aAmount = 111; else if (aAmount < 0) aAmount = 0; rStack.stackSize = (byte)aAmount; return rStack; } + public static ItemStack[] cast(Object...objects) { + Objects.requireNonNull(objects); + ItemStack[] result = new ItemStack[objects.length]; + try { + for (int i = 0; i < objects.length; i++) + result[i] = (ItemStack) objects[i]; + } catch (ClassCastException e) { + GT_Log.log.throwing(e); + throw new IllegalArgumentException("Array can not contain not ItemStacks!"); + } + + return result; + } + public static ItemStack copyMetaData(long aMetaData, ItemStack... aStacks) { ItemStack rStack = copy(aStacks); if (isStackInvalid(rStack)) return null; @@ -1013,7 +1028,7 @@ public class GT_Utility { } public static ItemStack mul(long aMultiplier, Object... aStacks) { - return GT_Utility.mul(aMultiplier, (ItemStack[])aStacks); + return GT_Utility.mul(aMultiplier, GT_Utility.cast(aStacks)); } /** diff --git a/src/main/java/gregtechmod/common/GT_OreDictHandler.java b/src/main/java/gregtechmod/common/GT_OreDictHandler.java index 1119452..c046a28 100644 --- a/src/main/java/gregtechmod/common/GT_OreDictHandler.java +++ b/src/main/java/gregtechmod/common/GT_OreDictHandler.java @@ -18,17 +18,13 @@ import gregtechmod.api.util.GT_Utility; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.Spliterator; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.function.Consumer; - import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.ModContainer; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; @@ -46,7 +42,7 @@ public class GT_OreDictHandler { public final List mRegisteredStacks = new ArrayList<>(); private boolean mActivated = false; - @EventHandler + @SubscribeEvent public void registerOre(OreRegisterEvent aEvent) { if (GT_Mod.mDoNotInit || aEvent == null || aEvent.Ore == null || aEvent.Ore.getItem() == null || aEvent.Name == null || aEvent.Name.equals("") || mIgnoredNames.contains(aEvent.Name)) return; @@ -511,24 +507,20 @@ public class GT_OreDictHandler { /** * Gets called during the PostLoad-Phase */ + public void activateHandler() { mActivated = true; long time = System.currentTimeMillis(); - Spliterator> splt = mEvents.entrySet().spliterator(); - Spliterator> splt1 = splt.trySplit(); - ExecutorService serv = Executors.newFixedThreadPool(2); - Consumer>> toExecute = sp -> { - while (sp.tryAdvance(tEvent -> { - this.registerRecipes(tEvent.getKey(), tEvent.getValue()); - })); - }; - serv.submit(() -> toExecute.accept(splt)); - if (splt1 != null) serv.submit(() -> toExecute.accept(splt1)); - serv.shutdown(); - while (!serv.isTerminated()) try { - Thread.sleep(50); - } catch (InterruptedException ingored) {} + int counter = mEvents.size(); + GT_Log.log.warn("There is " + counter + " events to be registered"); + Iterator> iter = mEvents.entrySet().iterator(); + + while (iter.hasNext()) { + if (GregTech_API.DEBUG_MODE) GT_Log.log.warn("Events left: " + counter--); + Entry temp = iter.next(); + this.registerRecipes(temp.getKey(), temp.getValue()); + } GT_Log.log.warn(String.format("Time spent for oredict iterating: %.3f seconds", (System.currentTimeMillis() - time) / 1000.0D)); } diff --git a/src/main/java/gregtechmod/common/items/GT_MetaItem_Abstract.java b/src/main/java/gregtechmod/common/items/GT_MetaItem_Abstract.java index 377419f..ed1efa0 100644 --- a/src/main/java/gregtechmod/common/items/GT_MetaItem_Abstract.java +++ b/src/main/java/gregtechmod/common/items/GT_MetaItem_Abstract.java @@ -4,7 +4,6 @@ import gregtechmod.api.GregTech_API; import gregtechmod.api.util.GT_Config; import gregtechmod.api.util.GT_OreDictUnificator; import gregtechmod.api.util.GT_Utility; - import java.util.Arrays; import java.util.List; diff --git a/src/main/java/gregtechmod/common/items/GT_MetaItem_Cell.java b/src/main/java/gregtechmod/common/items/GT_MetaItem_Cell.java index 6febeac..84d1e76 100644 --- a/src/main/java/gregtechmod/common/items/GT_MetaItem_Cell.java +++ b/src/main/java/gregtechmod/common/items/GT_MetaItem_Cell.java @@ -28,9 +28,9 @@ public class GT_MetaItem_Cell extends GT_MetaItem_Abstract { GT_ModHandler.addExtractionRecipe(instance.getUnunifiedStack(aMeta, 1), GT_ModHandler.getEmptyCell(1)); if (aPlasma) - GT_OreDictUnificator.add(OrePrefixes.cellPlasma, aMaterial, instance.getUnunifiedStack(aMeta, 1)); + GT_OreDictUnificator.addLater(OrePrefixes.cellPlasma, aMaterial, instance.getUnunifiedStack(aMeta, 1)); else - GT_OreDictUnificator.add(OrePrefixes.cell, aMaterial, instance.getUnunifiedStack(aMeta, 1)); + GT_OreDictUnificator.addLater(OrePrefixes.cell, aMaterial, instance.getUnunifiedStack(aMeta, 1)); return instance.getUnunifiedStack(aMeta, 1); } diff --git a/src/main/java/gregtechmod/common/items/GT_MetaItem_Component.java b/src/main/java/gregtechmod/common/items/GT_MetaItem_Component.java index 96fdd30..e7d4197 100644 --- a/src/main/java/gregtechmod/common/items/GT_MetaItem_Component.java +++ b/src/main/java/gregtechmod/common/items/GT_MetaItem_Component.java @@ -23,7 +23,7 @@ public class GT_MetaItem_Component extends GT_MetaItem_Abstract { instance.mToolTipList[aMeta] = aToolTip; instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); if (aMaterial != null && !aMaterial.equals("")) { - GT_OreDictUnificator.registerOre(aMaterial, instance.getUnunifiedStack(aMeta, 1)); + GT_OreDictUnificator.registerOreLater(aMaterial, instance.getUnunifiedStack(aMeta, 1)); } return instance.getUnunifiedStack(aMeta, 1); diff --git a/src/main/java/gregtechmod/common/items/GT_MetaItem_DirtyDust.java b/src/main/java/gregtechmod/common/items/GT_MetaItem_DirtyDust.java index a765122..5a88663 100644 --- a/src/main/java/gregtechmod/common/items/GT_MetaItem_DirtyDust.java +++ b/src/main/java/gregtechmod/common/items/GT_MetaItem_DirtyDust.java @@ -25,7 +25,7 @@ public class GT_MetaItem_DirtyDust extends GT_MetaItem_Abstract { instance.mGlowList[aMeta] = aGlow; instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); if (aMaterial != null) { - GT_OreDictUnificator.add(OrePrefixes.dustDirty, aMaterial, instance.getUnunifiedStack(aMeta, 1)); + GT_OreDictUnificator.addLater(OrePrefixes.dustDirty, aMaterial, instance.getUnunifiedStack(aMeta, 1)); } return instance.getUnunifiedStack(aMeta, 1); } diff --git a/src/main/java/gregtechmod/common/items/GT_MetaItem_Dust.java b/src/main/java/gregtechmod/common/items/GT_MetaItem_Dust.java index ee67a17..a404294 100644 --- a/src/main/java/gregtechmod/common/items/GT_MetaItem_Dust.java +++ b/src/main/java/gregtechmod/common/items/GT_MetaItem_Dust.java @@ -24,7 +24,7 @@ public class GT_MetaItem_Dust extends GT_MetaItem_Abstract { instance.mGlowList[aMeta] = aGlow; instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); if (aMaterial != null) { - GT_OreDictUnificator.add(OrePrefixes.dust.get(aMaterial), instance.getUnunifiedStack(aMeta, 1)); + GT_OreDictUnificator.addLater(OrePrefixes.dust, aMaterial, instance.getUnunifiedStack(aMeta, 1)); } GT_MetaItem_SmallDust.addItem(aMeta, aName, aMaterial, aGlow); GT_MetaItem_DirtyDust.addItem(aMeta, aName, aMaterial, aGlow); diff --git a/src/main/java/gregtechmod/common/items/GT_MetaItem_Material.java b/src/main/java/gregtechmod/common/items/GT_MetaItem_Material.java index 715118b..2da3cf0 100644 --- a/src/main/java/gregtechmod/common/items/GT_MetaItem_Material.java +++ b/src/main/java/gregtechmod/common/items/GT_MetaItem_Material.java @@ -26,9 +26,9 @@ public class GT_MetaItem_Material extends GT_MetaItem_Abstract { instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); if (aMaterial != null && aPrefix != null) { if (aPrefix.mIsUnificatable) - GT_OreDictUnificator.add(aPrefix.get((aMaterial instanceof MaterialStack)?((MaterialStack)aMaterial).mMaterial:aMaterial), instance.getUnunifiedStack(aMeta, 1)); + GT_OreDictUnificator.addLater(aPrefix, ((aMaterial instanceof MaterialStack)?((MaterialStack)aMaterial).mMaterial:aMaterial), instance.getUnunifiedStack(aMeta, 1)); else - GT_OreDictUnificator.registerOre(aPrefix.get((aMaterial instanceof MaterialStack)?((MaterialStack)aMaterial).mMaterial:aMaterial), instance.getUnunifiedStack(aMeta, 1)); + GT_OreDictUnificator.registerOreLater(aPrefix.get((aMaterial instanceof MaterialStack)?((MaterialStack)aMaterial).mMaterial:aMaterial), instance.getUnunifiedStack(aMeta, 1)); } return instance.getUnunifiedStack(aMeta, 1); } diff --git a/src/main/java/gregtechmod/common/items/GT_MetaItem_Nugget.java b/src/main/java/gregtechmod/common/items/GT_MetaItem_Nugget.java index 808e6a4..b4bf706 100644 --- a/src/main/java/gregtechmod/common/items/GT_MetaItem_Nugget.java +++ b/src/main/java/gregtechmod/common/items/GT_MetaItem_Nugget.java @@ -25,7 +25,7 @@ public class GT_MetaItem_Nugget extends GT_MetaItem_Abstract { instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); if (aMaterial != null) { - GT_OreDictUnificator.add(OrePrefixes.nugget.get(aMaterial), instance.getUnunifiedStack(aMeta, 1)); + GT_OreDictUnificator.addLater(OrePrefixes.nugget, aMaterial, instance.getUnunifiedStack(aMeta, 1)); } return instance.getUnunifiedStack(aMeta, 1); } diff --git a/src/main/java/gregtechmod/common/items/GT_MetaItem_SmallDust.java b/src/main/java/gregtechmod/common/items/GT_MetaItem_SmallDust.java index 55c5ce0..258a84e 100644 --- a/src/main/java/gregtechmod/common/items/GT_MetaItem_SmallDust.java +++ b/src/main/java/gregtechmod/common/items/GT_MetaItem_SmallDust.java @@ -24,7 +24,7 @@ public class GT_MetaItem_SmallDust extends GT_MetaItem_Abstract { instance.mGlowList[aMeta] = aGlow; instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); if (aMaterial != null) { - GT_OreDictUnificator.add(OrePrefixes.dustSmall.get(aMaterial), instance.getUnunifiedStack(aMeta, 1)); + GT_OreDictUnificator.addLater(OrePrefixes.dustSmall, aMaterial, instance.getUnunifiedStack(aMeta, 1)); } GT_MetaItem_TinyDust.addItem(aMeta, aName, aMaterial, aGlow); return instance.getUnunifiedStack(aMeta, 1); diff --git a/src/main/java/gregtechmod/common/items/GT_MetaItem_TinyDust.java b/src/main/java/gregtechmod/common/items/GT_MetaItem_TinyDust.java index d6925fe..f26558f 100644 --- a/src/main/java/gregtechmod/common/items/GT_MetaItem_TinyDust.java +++ b/src/main/java/gregtechmod/common/items/GT_MetaItem_TinyDust.java @@ -24,7 +24,7 @@ public class GT_MetaItem_TinyDust extends GT_MetaItem_Abstract { instance.mGlowList[aMeta] = aGlow; instance.mStackList[aMeta] = new ItemStack(instance, 1, aMeta); if (aMaterial != null) { - GT_OreDictUnificator.add(OrePrefixes.dustTiny.get(aMaterial), instance.getUnunifiedStack(aMeta, 1)); + GT_OreDictUnificator.addLater(OrePrefixes.dustTiny, aMaterial, instance.getUnunifiedStack(aMeta, 1)); } return instance.getUnunifiedStack(aMeta, 1); } diff --git a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_DieselGenerator.java b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_DieselGenerator.java index f39f635..f70e10a 100644 --- a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_DieselGenerator.java +++ b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_DieselGenerator.java @@ -1,142 +1,54 @@ package gregtechmod.common.tileentities.energy.production; +import java.util.List; + +import cpw.mods.fml.common.registry.GameRegistry; +import gregtechmod.api.enums.GT_Items; import gregtechmod.api.interfaces.IGregTechTileEntity; import gregtechmod.api.metatileentity.MetaTileEntity; -import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; +import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtechmod.api.util.GT_ModHandler; import gregtechmod.api.util.GT_Recipe; -import gregtechmod.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; -public class GT_MetaTileEntity_DieselGenerator extends GT_MetaTileEntity_BasicTank { - - public GT_MetaTileEntity_DieselGenerator(int aID, String mName) { - super(aID, mName); +public class GT_MetaTileEntity_DieselGenerator extends GT_MetaTileEntity_BasicGenerator { + + public GT_MetaTileEntity_DieselGenerator(int aID, String aName) { + super(aID, aName); } - - public GT_MetaTileEntity_DieselGenerator() { - - } - - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isValidSlot(int aIndex) {return aIndex < 2;} - @Override public boolean isFacingValid(byte aFacing) {return aFacing > 1;} - @Override public boolean isEnetOutput() {return true;} - @Override public boolean isOutputFacing(byte aSide) {return true;} - @Override public int maxEUOutput() {return getBaseMetaTileEntity().isAllowedToWork()?12:0;} - @Override public int maxEUStore() {return 1000000;} - @Override public void onRightclick(EntityPlayer aPlayer) {getBaseMetaTileEntity().openGUI(aPlayer, 117);} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - + + public GT_MetaTileEntity_DieselGenerator() {} + + @Override public boolean isFacingValid(byte aFacing) {return aFacing > 1;} + @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 12 : 0;} + @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 117);} + @Override public List getRecipes() {return GT_Recipe.sDieselFuels;} + @Override public int getEfficiency() {return 100;} + @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_DieselGenerator(); } - @Override public boolean doesFillContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean doesEmptyContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeFilled() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeEmptied() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean displaysItemStack() {return true;} - @Override public boolean displaysStackSize() {return false;} - @Override public boolean isFluidInputAllowed(FluidStack aFluid) {return isValidFuel(aFluid);} - - @Override - public void onPostTick() { - if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) { - if (mFluid == null) { - if (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) - mInventory[2] = null; - else - if (mInventory[2] == null) - mInventory[2] = new ItemStack(Blocks.fire, 1); - } else { - if (getFuelValue(mFluid) > 0) while (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()) && mFluid.amount > 0) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(getFuelValue(mFluid), true)) mFluid.amount--; - } - } - if (mInventory[0] != null && getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) { - for (int i = 0; i < GT_Recipe.sDieselFuels.size(); i++) { - if (GT_Utility.areStacksEqual(mInventory[0], GT_Recipe.sDieselFuels.get(i).mInputs[0])) { - if (GT_Utility.getFluidForFilledItem(mInventory[0]) == null) { - if (GT_Recipe.sDieselFuels.get(i).getOutput(0) != null) { - if (mInventory[1] == null) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDieselFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - mInventory[1] = GT_Utility.copy(GT_Recipe.sDieselFuels.get(i).getOutput(0)); - } - } else if (GT_Utility.areStacksEqual(mInventory[1], GT_Recipe.sDieselFuels.get(i).getOutput(0)) && mInventory[1].stackSize + GT_Recipe.sDieselFuels.get(i).getOutput(0).stackSize <= mInventory[1].getMaxStackSize()) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDieselFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - mInventory[1].stackSize += GT_Recipe.sDieselFuels.get(i).getOutput(0).stackSize; - } - } - } else { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDieselFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - } - } - } - break; - } - } - int tValue = 0; - if (mInventory[0] != null && (mInventory[1] == null || (GT_Utility.areStacksEqual(mInventory[1], GT_ModHandler.getEmptyFuelCan(1)) && mInventory[1].stackSize < 64)) && (tValue = GT_ModHandler.getFuelCanValue(mInventory[0])) > 0) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits((tValue*5)/4, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - if (mInventory[1] == null) - mInventory[1] = GT_ModHandler.getEmptyFuelCan(1); - else - mInventory[1].stackSize++; - } - } - } - } - - if (getBaseMetaTileEntity().isServerSide()) getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getUniversalEnergyStored() >= getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU()); - } - - public boolean isValidFuel(FluidStack aLiquid) { - return getFuelValue(aLiquid)>0; - } - - /** - * @return EU per MB - */ - public int getFuelValue(FluidStack aLiquid) { - if (aLiquid == null) return 0; - FluidStack tLiquid; - for (int i = 0; i < GT_Recipe.sDieselFuels.size(); i++) { - if ((tLiquid = GT_Utility.getFluidForFilledItem(GT_Recipe.sDieselFuels.get(i).getOutput(0))) != null) if (aLiquid.isFluidEqual(tLiquid)) return GT_Recipe.sDieselFuels.get(i).mStartEU; - } - return 0; - } - @Override public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { - if (aSide == 0) - return 38; - else if (aSide == 1) - return aFacing==2||aFacing==3?aActive?281:80:aActive?303:302; - else - return 36; + return aSide == 0 ? 38 + : (aSide != 1 ? 36 : (aFacing != 2 && aFacing != 3 ? (aActive ? 303 : 302) : (aActive ? 281 : 80))); } @Override public String getDescription() { - return "The second most effective Way of burning Fuel"; + return "The burning Fuel as " + this.getEfficiency() + "% Efficiency"; } @Override - public int getCapacity() { - return 10000; - } - - @Override - public int getTankPressure() { - return -100; + public int getFuelValue(ItemStack aStack) { + int rValue = Math.max(GT_ModHandler.getFuelCanValue(aStack) * 6 / 5, super.getFuelValue(aStack)); + if (GT_Items.Fuel_Can_Plastic_Filled.isStackEqual(aStack, false, true)) { + rValue = Math.max(rValue, GameRegistry.getFuelValue(aStack) * 3); + } + + return rValue; } } diff --git a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_GasTurbine.java b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_GasTurbine.java index 0c83bdc..2d00d49 100644 --- a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_GasTurbine.java +++ b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_GasTurbine.java @@ -9,42 +9,30 @@ import net.minecraft.entity.player.EntityPlayer; public class GT_MetaTileEntity_GasTurbine extends GT_MetaTileEntity_BasicGenerator { - public GT_MetaTileEntity_GasTurbine(int aID, String aName) { - super(aID, aName); - } + public GT_MetaTileEntity_GasTurbine(int aID, String aName) { + super(aID, aName); + } - public GT_MetaTileEntity_GasTurbine() {} + public GT_MetaTileEntity_GasTurbine() {} - public boolean isFacingValid(byte aFacing) { - return true; - } + @Override public boolean isFacingValid(byte aFacing) {return true;} + @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 16 : 0;} + @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 118);} + @Override public List getRecipes() {return GT_Recipe.sTurbineFuels;} + @Override public int getEfficiency() {return 75;} + + @Override + public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { + return new GT_MetaTileEntity_GasTurbine(); + } - public int maxEUOutput() { - return this.getBaseMetaTileEntity().isAllowedToWork()?16:0; - } + @Override + public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { + return aSide == 0 ? 82 : (aSide == 1 ? 81 : 40); + } - public void onRightclick(EntityPlayer aPlayer) { - this.getBaseMetaTileEntity().openGUI(aPlayer, 118); - } - - public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { - return new GT_MetaTileEntity_GasTurbine(); - } - - public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { - return aSide == 0?82:(aSide == 1?81:40); - } - - public String getDescription() { - return "Generate Power from Flatulence, uhh I mean Methane (" + this.getEfficiency() + "%)"; - } - - @Override - public List getRecipes() { - return GT_Recipe.sTurbineFuels; - } - - public int getEfficiency() { - return 75; - } + @Override + public String getDescription() { + return "Generate Power from Flatulence, uhh I mean Methane (" + this.getEfficiency() + "%)"; + } } diff --git a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_MagicEnergyConverter.java b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_MagicEnergyConverter.java index 5b429d1..20ac389 100644 --- a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_MagicEnergyConverter.java +++ b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_MagicEnergyConverter.java @@ -1,98 +1,47 @@ package gregtechmod.common.tileentities.energy.production; +import java.util.List; + import gregtechmod.api.interfaces.IGregTechTileEntity; import gregtechmod.api.metatileentity.MetaTileEntity; -import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; +import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtechmod.api.util.GT_Recipe; -import gregtechmod.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; -import net.minecraftforge.fluids.FluidStack; import thaumcraft.common.blocks.BlockTaintFibres; import thaumcraft.common.lib.utils.Utils; import thaumcraft.common.lib.world.ThaumcraftWorldGenerator; -public class GT_MetaTileEntity_MagicEnergyConverter extends GT_MetaTileEntity_BasicTank { - - public GT_MetaTileEntity_MagicEnergyConverter(int aID, String mName) { - super(aID, mName); +public class GT_MetaTileEntity_MagicEnergyConverter extends GT_MetaTileEntity_BasicGenerator { + + public GT_MetaTileEntity_MagicEnergyConverter(int aID, String aName) { + super(aID, aName); } + + public GT_MetaTileEntity_MagicEnergyConverter() {} + + @Override public boolean isFacingValid(byte aFacing) {return true;} + @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 24 : 0;} + @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 125);} + @Override public List getRecipes() {return GT_Recipe.sMagicFuels;} + @Override public int getEfficiency() {return 100;} - public GT_MetaTileEntity_MagicEnergyConverter() { - - } - - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isValidSlot(int aIndex) {return aIndex < 2;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isEnetOutput() {return true;} - @Override public boolean isOutputFacing(byte aSide) {return true;} - @Override public int maxEUOutput() {return getBaseMetaTileEntity().isAllowedToWork()?24:0;} - @Override public int maxEUStore() {return 1000000000;} - @Override public void onRightclick(EntityPlayer aPlayer) {getBaseMetaTileEntity().openGUI(aPlayer, 125);} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_MagicEnergyConverter(); } - - @Override public boolean doesFillContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean doesEmptyContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeFilled() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeEmptied() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean displaysItemStack() {return true;} - @Override public boolean displaysStackSize() {return false;} - @Override public boolean isFluidInputAllowed(FluidStack aFluid) {return isValidFuel(aFluid);} - - @Override - public void onPostTick() { - if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) { - if (mFluid == null) { - if (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) - mInventory[2] = null; - else - if (mInventory[2] == null) - mInventory[2] = new ItemStack(Blocks.fire, 1); - } else { - if (getFuelValue(mFluid) > 0) while (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()) && mFluid.amount > 0) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(getFuelValue(mFluid), true)) mFluid.amount--; - } - } - if (mInventory[0] != null && getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) { - for (int i = 0; i < GT_Recipe.sMagicFuels.size(); i++) { - if (GT_Utility.areStacksEqual(mInventory[0], GT_Recipe.sMagicFuels.get(i).mInputs[0])) { - if (GT_Utility.getFluidForFilledItem(mInventory[0]) == null) { - if (GT_Recipe.sMagicFuels.get(i).getOutput(0) != null) { - if (mInventory[1] == null) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sMagicFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - mInventory[1] = GT_Utility.copy(GT_Recipe.sMagicFuels.get(i).getOutput(0)); - } - } else if (GT_Utility.areStacksEqual(mInventory[1], GT_Recipe.sMagicFuels.get(i).getOutput(0)) && mInventory[1].stackSize + GT_Recipe.sMagicFuels.get(i).getOutput(0).stackSize <= mInventory[1].getMaxStackSize()) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sMagicFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - mInventory[1].stackSize += GT_Recipe.sMagicFuels.get(i).getOutput(0).stackSize; - } - } - } else { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sMagicFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - } - } - } - break; - } - } - } - } - - if (getBaseMetaTileEntity().isServerSide()) getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().getUniversalEnergyStored() >= getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU()); - } + + @Override + public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { + return aSide == aFacing ? (aActive ? 86 : 83) : 90; + } + + @Override + public String getDescription() { + return "A Generator running off Magic Fuel (" + this.getEfficiency() + "%)"; + } @Override public void onExplosion() { @@ -120,48 +69,4 @@ public class GT_MetaTileEntity_MagicEnergyConverter extends GT_MetaTileEntity_Ba } } catch(Throwable e) {} } - - public boolean isValidFuel(FluidStack aFluid) { - return getFuelValue(aFluid)>0; - } - - /** - * @return EU per MB - */ - public int getFuelValue(FluidStack aFluid) { - if (aFluid == null) return 0; - FluidStack tFluid; - for (int i = 0; i < GT_Recipe.sMagicFuels.size(); i++) { - if ((tFluid = GT_Utility.getFluidForFilledItem(GT_Recipe.sMagicFuels.get(i).mInputs[0])) != null) if (aFluid.isFluidEqual(tFluid)) return GT_Recipe.sMagicFuels.get(i).mStartEU; - } - return 0; - } - - @Override - public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { - if (aSide == aFacing) - return aActive?86:83; - else - return 90; - } - - @Override - public boolean isGivingInformation() { - return true; - } - - @Override - public int getCapacity() { - return 10000; - } - - @Override - public String getDescription() { - return "A Generator running off Magic Fuel"; - } - - @Override - public int getTankPressure() { - return -100; - } } diff --git a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_PlasmaGenerator.java b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_PlasmaGenerator.java index 238a65f..a11d6f8 100644 --- a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_PlasmaGenerator.java +++ b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_PlasmaGenerator.java @@ -1,127 +1,41 @@ package gregtechmod.common.tileentities.energy.production; +import java.util.List; + import gregtechmod.api.interfaces.IGregTechTileEntity; import gregtechmod.api.metatileentity.MetaTileEntity; -import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; +import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtechmod.api.util.GT_Recipe; -import gregtechmod.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; -public class GT_MetaTileEntity_PlasmaGenerator extends GT_MetaTileEntity_BasicTank { - - public GT_MetaTileEntity_PlasmaGenerator(int aID, String mName) { - super(aID, mName); +public class GT_MetaTileEntity_PlasmaGenerator extends GT_MetaTileEntity_BasicGenerator { + + public GT_MetaTileEntity_PlasmaGenerator(int aID, String aName) { + super(aID, aName); } - - public GT_MetaTileEntity_PlasmaGenerator() { - - } - - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isValidSlot(int aIndex) {return aIndex < 2;} - @Override public boolean isFacingValid(byte aFacing) {return true;} - @Override public boolean isEnetOutput() {return true;} - @Override public boolean isOutputFacing(byte aSide) {return aSide == getBaseMetaTileEntity().getFrontFacing();} - @Override public int maxEUOutput() {return getBaseMetaTileEntity().isAllowedToWork()?2048:0;} - @Override public int maxEUStore() {return 1000000000;} - @Override public void onRightclick(EntityPlayer aPlayer) {getBaseMetaTileEntity().openGUI(aPlayer, 121);} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - + + public GT_MetaTileEntity_PlasmaGenerator() {} + + @Override public boolean isFacingValid(byte aFacing) {return true;} + @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 2048 : 0;} + @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 121);} + @Override public List getRecipes() {return GT_Recipe.sPlasmaFuels;} + @Override public int getEfficiency() {return 100;} + @Override public boolean isOutputFacing(byte aSide) {return aSide == this.getBaseMetaTileEntity().getFrontFacing();} + @Override public int maxEUStore() {return 1000000000;} + @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_PlasmaGenerator(); } - - @Override public boolean doesFillContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean doesEmptyContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeFilled() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeEmptied() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean displaysItemStack() {return true;} - @Override public boolean displaysStackSize() {return false;} - @Override public boolean isFluidInputAllowed(FluidStack aFluid) {return isValidFuel(aFluid);} - - @Override - public void onPostTick() { - if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) { - if (mFluid == null) { - if (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) - mInventory[2] = null; - else - if (mInventory[2] == null) - mInventory[2] = new ItemStack(Blocks.fire, 1); - } else { - if (getFuelValue(mFluid) > 0) while (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()) && mFluid.amount > 0) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(getFuelValue(mFluid), true)) mFluid.amount--; - } - } - if (mInventory[0] != null && getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) { - for (int i = 0; i < GT_Recipe.sPlasmaFuels.size(); i++) { - if (GT_Utility.areStacksEqual(mInventory[0], GT_Recipe.sPlasmaFuels.get(i).mInputs[0])) { - if (GT_Utility.getFluidForFilledItem(mInventory[0]) == null) { - if (GT_Recipe.sPlasmaFuels.get(i).getOutput(0) != null) { - if (mInventory[1] == null) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sPlasmaFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - mInventory[1] = GT_Utility.copy(GT_Recipe.sPlasmaFuels.get(i).getOutput(0)); - } - } else if (GT_Utility.areStacksEqual(mInventory[1], GT_Recipe.sPlasmaFuels.get(i).getOutput(0)) && mInventory[1].stackSize + GT_Recipe.sPlasmaFuels.get(i).getOutput(0).stackSize <= mInventory[1].getMaxStackSize()) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sPlasmaFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - mInventory[1].stackSize += GT_Recipe.sPlasmaFuels.get(i).getOutput(0).stackSize; - } - } - } else { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sPlasmaFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - } - } - } - break; - } - } - } - } - - if (getBaseMetaTileEntity().isServerSide()) getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getUniversalEnergyStored() >= getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU()); - } - - public boolean isValidFuel(FluidStack aFluid) { - return getFuelValue(aFluid)>0; - } - - /** - * @return EU per MB - */ - public int getFuelValue(FluidStack aFluid) { - if (aFluid == null) return 0; - FluidStack tFluid; - for (int i = 0; i < GT_Recipe.sPlasmaFuels.size(); i++) { - if ((tFluid = GT_Utility.getFluidForFilledItem(GT_Recipe.sPlasmaFuels.get(i).mInputs[0])) != null) if (aFluid.isFluidEqual(tFluid)) return GT_Recipe.sPlasmaFuels.get(i).mStartEU; - } - return 0; - } - + @Override public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { - if (aSide == aFacing) return 18; - return aActive?20:19; + return aSide == aFacing ? 18 : (aActive ? 20 : 19); } - + @Override public String getDescription() { - return "Harness the immense Power of Plasma"; - } - - @Override - public int getCapacity() { - return 10000; - } - - @Override - public int getTankPressure() { - return -100; + return "Harness " + this.getEfficiency() + "% of the immense Power of Plasma"; // TODO locale } } diff --git a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_SemifluidGenerator.java b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_SemifluidGenerator.java index 1d9b065..89d6693 100644 --- a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_SemifluidGenerator.java +++ b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_SemifluidGenerator.java @@ -1,131 +1,39 @@ package gregtechmod.common.tileentities.energy.production; +import java.util.List; + import gregtechmod.api.interfaces.IGregTechTileEntity; import gregtechmod.api.metatileentity.MetaTileEntity; -import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; +import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtechmod.api.util.GT_Recipe; -import gregtechmod.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; -public class GT_MetaTileEntity_SemifluidGenerator extends GT_MetaTileEntity_BasicTank { - - public GT_MetaTileEntity_SemifluidGenerator(int aID, String mName) { - super(aID, mName); +public class GT_MetaTileEntity_SemifluidGenerator extends GT_MetaTileEntity_BasicGenerator { + + public GT_MetaTileEntity_SemifluidGenerator(int aID, String aName) { + super(aID, aName); } + + public GT_MetaTileEntity_SemifluidGenerator() {} + + @Override public boolean isFacingValid(byte aFacing) {return false;} + @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 8 : 0;} + @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 120);} + @Override public List getRecipes() {return GT_Recipe.sDenseLiquidFuels;} + @Override public int getEfficiency() {return 100;} - public GT_MetaTileEntity_SemifluidGenerator() { - - } - - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isValidSlot(int aIndex) {return aIndex < 2;} - @Override public boolean isFacingValid(byte aFacing) {return false;} - @Override public boolean isEnetOutput() {return true;} - @Override public boolean isOutputFacing(byte aSide) {return true;} - @Override public int maxEUOutput() {return getBaseMetaTileEntity().isAllowedToWork()?8:0;} - @Override public int maxEUStore() {return 1000000;} - @Override public void onRightclick(EntityPlayer aPlayer) {getBaseMetaTileEntity().openGUI(aPlayer, 120);} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_SemifluidGenerator(); } - - @Override public boolean doesFillContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean doesEmptyContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeFilled() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeEmptied() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean displaysItemStack() {return true;} - @Override public boolean displaysStackSize() {return false;} - @Override public boolean isFluidInputAllowed(FluidStack aFluid) {return isValidFuel(aFluid);} - - @Override - public void onPostTick() { - if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) { - if (mFluid == null) { - if (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) - mInventory[2] = null; - else - if (mInventory[2] == null) - mInventory[2] = new ItemStack(Blocks.fire, 1); - } else { - if (getFuelValue(mFluid) > 0) while (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()) && mFluid.amount > 0) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(getFuelValue(mFluid), true)) mFluid.amount--; - } - } - if (mInventory[0] != null && getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) { - for (int i = 0; i < GT_Recipe.sDenseLiquidFuels.size(); i++) { - if (GT_Utility.areStacksEqual(mInventory[0], GT_Recipe.sDenseLiquidFuels.get(i).mInputs[0])) { - if (GT_Utility.getFluidForFilledItem(mInventory[0]) == null) { - if (GT_Recipe.sDenseLiquidFuels.get(i).getOutput(0) != null) { - if (mInventory[1] == null) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDenseLiquidFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - mInventory[1] = GT_Utility.copy(GT_Recipe.sDenseLiquidFuels.get(i).getOutput(0)); - } - } else if (GT_Utility.areStacksEqual(mInventory[1], GT_Recipe.sDenseLiquidFuels.get(i).getOutput(0)) && mInventory[1].stackSize + GT_Recipe.sDenseLiquidFuels.get(i).getOutput(0).stackSize <= mInventory[1].getMaxStackSize()) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDenseLiquidFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - mInventory[1].stackSize += GT_Recipe.sDenseLiquidFuels.get(i).getOutput(0).stackSize; - } - } - } else { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sDenseLiquidFuels.get(i).mStartEU*1000, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - } - } - } - break; - } - } - } - } - - if (getBaseMetaTileEntity().isServerSide()) getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getUniversalEnergyStored() >= getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU()); - } - - public boolean isValidFuel(FluidStack aFluid) { - return getFuelValue(aFluid)>0; - } - - /** - * @return EU per MB - */ - public int getFuelValue(FluidStack aFluid) { - if (aFluid == null) return 0; - FluidStack tFluid; - for (int i = 0; i < GT_Recipe.sDenseLiquidFuels.size(); i++) { - if ((tFluid = GT_Utility.getFluidForFilledItem(GT_Recipe.sDenseLiquidFuels.get(i).mInputs[0])) != null) if (aFluid.isFluidEqual(tFluid)) return GT_Recipe.sDenseLiquidFuels.get(i).mStartEU; - } - return 0; - } - + @Override public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { - if (aSide == 0) - return 38; - else if (aSide == 1) - return 29; - else - return 85; + return aSide == 0 ? 38 : (aSide == 1 ? 29 : 85); } - + @Override public String getDescription() { - return "Makes Energy of more dense Fluids"; - } - - @Override - public int getCapacity() { - return 10000; - } - - @Override - public int getTankPressure() { - return -100; + return "Makes Energy of more dense Fluids (" + this.getEfficiency() + "%)"; // TODO locale } } diff --git a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_ThermalGenerator.java b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_ThermalGenerator.java index dbd31b9..e1d9ca4 100644 --- a/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_ThermalGenerator.java +++ b/src/main/java/gregtechmod/common/tileentities/energy/production/GT_MetaTileEntity_ThermalGenerator.java @@ -1,131 +1,39 @@ package gregtechmod.common.tileentities.energy.production; +import java.util.List; + import gregtechmod.api.interfaces.IGregTechTileEntity; import gregtechmod.api.metatileentity.MetaTileEntity; -import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; +import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicGenerator; import gregtechmod.api.util.GT_Recipe; -import gregtechmod.api.util.GT_Utility; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; -public class GT_MetaTileEntity_ThermalGenerator extends GT_MetaTileEntity_BasicTank { - - public GT_MetaTileEntity_ThermalGenerator(int aID, String mName) { - super(aID, mName); +public class GT_MetaTileEntity_ThermalGenerator extends GT_MetaTileEntity_BasicGenerator { + + public GT_MetaTileEntity_ThermalGenerator(int aID, String aName) { + super(aID, aName); } - - public GT_MetaTileEntity_ThermalGenerator() { - - } - - @Override public boolean isSimpleMachine() {return false;} - @Override public boolean isValidSlot(int aIndex) {return aIndex < 2;} - @Override public boolean isFacingValid(byte aFacing) {return false;} - @Override public boolean isEnetOutput() {return true;} - @Override public boolean isOutputFacing(byte aSide) {return true;} - @Override public int maxEUOutput() {return getBaseMetaTileEntity().isAllowedToWork()?24:0;} - @Override public int maxEUStore() {return 1000000;} - @Override public void onRightclick(EntityPlayer aPlayer) {getBaseMetaTileEntity().openGUI(aPlayer, 119);} - @Override public boolean isAccessAllowed(EntityPlayer aPlayer) {return true;} - + + public GT_MetaTileEntity_ThermalGenerator() {} + + @Override public boolean isFacingValid(byte aFacing) { return false;} + @Override public int maxEUOutput() {return this.getBaseMetaTileEntity().isAllowedToWork() ? 24 : 0;} + @Override public void onRightclick(EntityPlayer aPlayer) {this.getBaseMetaTileEntity().openGUI(aPlayer, 119);} + @Override public List getRecipes() {return GT_Recipe.sHotFuels;} + @Override public int getEfficiency() {return 80;} + @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_ThermalGenerator(); } - - @Override public boolean doesFillContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean doesEmptyContainers() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeFilled() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean canTankBeEmptied() {return getBaseMetaTileEntity().isAllowedToWork();} - @Override public boolean displaysItemStack() {return true;} - @Override public boolean displaysStackSize() {return false;} - @Override public boolean isFluidInputAllowed(FluidStack aFluid) {return isValidFuel(aFluid);} - - @Override - public void onPostTick() { - if (getBaseMetaTileEntity().isServerSide() && getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getTimer()%10==0) { - if (mFluid == null) { - if (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) - mInventory[2] = null; - else - if (mInventory[2] == null) - mInventory[2] = new ItemStack(Blocks.fire, 1); - } else { - if (getFuelValue(mFluid) > 0) while (getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU()) && mFluid.amount > 0) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(getFuelValue(mFluid), true)) mFluid.amount--; - } - } - if (mInventory[0] != null && getBaseMetaTileEntity().getUniversalEnergyStored() < (getBaseMetaTileEntity().getOutputVoltage() * 10 + getMinimumStoredEU())) { - for (int i = 0; i < GT_Recipe.sHotFuels.size(); i++) { - if (GT_Utility.areStacksEqual(mInventory[0], GT_Recipe.sHotFuels.get(i).mInputs[0])) { - if (GT_Utility.getFluidForFilledItem(mInventory[0]) == null) { - if (GT_Recipe.sHotFuels.get(i).getOutput(0) != null) { - if (mInventory[1] == null) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sHotFuels.get(i).mStartEU*800, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - mInventory[1] = GT_Utility.copy(GT_Recipe.sHotFuels.get(i).getOutput(0)); - } - } else if (GT_Utility.areStacksEqual(mInventory[1], GT_Recipe.sHotFuels.get(i).getOutput(0)) && mInventory[1].stackSize + GT_Recipe.sHotFuels.get(i).getOutput(0).stackSize <= mInventory[1].getMaxStackSize()) { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sHotFuels.get(i).mStartEU*800, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - mInventory[1].stackSize += GT_Recipe.sHotFuels.get(i).getOutput(0).stackSize; - } - } - } else { - if (getBaseMetaTileEntity().increaseStoredEnergyUnits(GT_Recipe.sHotFuels.get(i).mStartEU*800, true)) { - getBaseMetaTileEntity().decrStackSize(0, 1); - } - } - } - break; - } - } - } - } - - if (getBaseMetaTileEntity().isServerSide()) getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().getUniversalEnergyStored() >= getBaseMetaTileEntity().getOutputVoltage() + getMinimumStoredEU()); - } - - public boolean isValidFuel(FluidStack aFluid) { - return getFuelValue(aFluid)>0; - } - - /** - * @return EU per MB - */ - public int getFuelValue(FluidStack aFluid) { - if (aFluid == null) return 0; - FluidStack tFluid; - for (int i = 0; i < GT_Recipe.sHotFuels.size(); i++) { - if ((tFluid = GT_Utility.getFluidForFilledItem(GT_Recipe.sHotFuels.get(i).mInputs[0])) != null) if (aFluid.isFluidEqual(tFluid)) return (GT_Recipe.sHotFuels.get(i).mStartEU * 4) / 5; - } - return 0; - } - + @Override public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) { - if (aSide == 0) - return 38; - else if (aSide == 1) - return aActive?84:83; - else - return 36; + return aSide == 0 ? 38 : (aSide == 1 ? (aActive ? 84 : 83) : 36); } - + @Override public String getDescription() { - return "Generates Energy from hot Stuff like Lava"; + return "Generates Energy from Lava at " + this.getEfficiency() + "% Efficiency"; // TODO locale } - - @Override - public int getCapacity() { - return 10000; - } - - @Override - public int getTankPressure() { - return -100; - } -} +} \ No newline at end of file diff --git a/src/main/java/gregtechmod/loaders/oreprocessing/ProcessingCell.java b/src/main/java/gregtechmod/loaders/oreprocessing/ProcessingCell.java index 3d78630..4d716c3 100644 --- a/src/main/java/gregtechmod/loaders/oreprocessing/ProcessingCell.java +++ b/src/main/java/gregtechmod/loaders/oreprocessing/ProcessingCell.java @@ -18,7 +18,7 @@ import net.minecraft.item.ItemStack; public class ProcessingCell implements IOreRecipeRegistrator { public ProcessingCell() { - OrePrefixes.cell.add((IOreRecipeRegistrator)this); + OrePrefixes.cell.add(this); } public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { diff --git a/src/main/java/gregtechmod/loaders/oreprocessing/ProcessingStoneVarious.java b/src/main/java/gregtechmod/loaders/oreprocessing/ProcessingStoneVarious.java index bff4ee9..ed30168 100644 --- a/src/main/java/gregtechmod/loaders/oreprocessing/ProcessingStoneVarious.java +++ b/src/main/java/gregtechmod/loaders/oreprocessing/ProcessingStoneVarious.java @@ -29,8 +29,8 @@ public class ProcessingStoneVarious implements IOreRecipeRegistrator { aStack.getItem().setMaxStackSize(GT_Mod.sBlockStackSize); } - int meta = aStack.getItemDamage() < 0 && aStack.getItemDamage() >= 16?0:aStack.getItemDamage(); - int tHarvestLevel = aBlock.getHarvestTool(meta).equals("pickaxe") ? aBlock.getHarvestLevel(meta) : 0; + int meta = (aStack.getItemDamage() < 0 || aStack.getItemDamage() >= 16) ? 0 : aStack.getItemDamage(); + int tHarvestLevel = "pickaxe".equals(aBlock.getHarvestTool(meta)) ? aBlock.getHarvestLevel(meta) : 0; if(tHarvestLevel <= 3) { GregTech_API.sRecipeAdder.addJackHammerMinableBlock(aBlock, tHarvestLevel >= 3); } diff --git a/src/main/java/gregtechmod/loaders/preload/GT_ItemLoader.java b/src/main/java/gregtechmod/loaders/preload/GT_ItemLoader.java index 801556e..749bc75 100644 --- a/src/main/java/gregtechmod/loaders/preload/GT_ItemLoader.java +++ b/src/main/java/gregtechmod/loaders/preload/GT_ItemLoader.java @@ -120,7 +120,7 @@ public class GT_ItemLoader implements Runnable { GT_MetaItem_Material.addItem( 35, "Chunk of Lazurite" , OrePrefixes.block , Materials.Lazurite , false); GT_MetaItem_Material.addItem( 36, "Silicon Plate" , OrePrefixes.plate , Materials.Silicon , false); GT_MetaItem_Material.addItem( 37, "Olivine" , OrePrefixes.gem , Materials.Olivine , false); - GT_OreDictUnificator.add("gemPeridot", GT_MetaItem_Material.instance.getUnunifiedStack(37, 1)); + GT_OreDictUnificator.addLater("gemPeridot", GT_MetaItem_Material.instance.getUnunifiedStack(37, 1)); GT_MetaItem_Material.addItem( 38, "Thorium Ingot" , OrePrefixes.ingot , Materials.Thorium , true); GT_MetaItem_Material.addItem( 39, "Plutonium Ingot" , OrePrefixes.ingot , Materials.Plutonium , true); GT_MetaItem_Material.addItem( 40, "Magnalium Ingot" , OrePrefixes.ingot , Materials.Magnalium , false); @@ -133,7 +133,7 @@ public class GT_ItemLoader implements Runnable { GT_MetaItem_Material.addItem( 47, "Kanthal Ingot" , OrePrefixes.ingot , Materials.Kanthal , false); GT_MetaItem_Material.addItem( 54, "Red Garnet" , OrePrefixes.gem , Materials.GarnetRed , false); - GT_OreDictUnificator.add("gemGarnet", GT_MetaItem_Material.instance.getUnunifiedStack(54, 1)); + GT_OreDictUnificator.addLater("gemGarnet", GT_MetaItem_Material.instance.getUnunifiedStack(54, 1)); GT_MetaItem_Material.addItem( 55, "Yellow Garnet" , OrePrefixes.gem , Materials.GarnetYellow , false); GT_MetaItem_Material.addItem( 58, "Yellow Garnet Plate" , OrePrefixes.plate , Materials.GarnetYellow , false); @@ -521,19 +521,19 @@ public class GT_ItemLoader implements Runnable { GT_MetaItem_Component.addItem(89, "Muffler Upgrade" , GT_OreDictNames.craftingMuffler , "Silents a Machine."); GT_MetaItem_Component.addItem( 96, "Iron Gear" , "gearGtIron" , "An Iron Gear"); - GT_OreDictUnificator.registerOre("craftingGearTier01" , GT_MetaItem_Component.instance.getUnunifiedStack( 96, 1)); + GT_OreDictUnificator.registerOreLater("craftingGearTier01" , GT_MetaItem_Component.instance.getUnunifiedStack( 96, 1)); GT_MetaItem_Component.addItem( 97, "Bronze Gear" , "gearGtBronze" , "A Bronze Gear"); - GT_OreDictUnificator.registerOre("craftingGearTier01" , GT_MetaItem_Component.instance.getUnunifiedStack( 97, 1)); + GT_OreDictUnificator.registerOreLater("craftingGearTier01" , GT_MetaItem_Component.instance.getUnunifiedStack( 97, 1)); GT_MetaItem_Component.addItem( 98, "Steel Gear" , "gearGtSteel" , "A Steel Gear"); - GT_OreDictUnificator.registerOre("craftingGearTier02" , GT_MetaItem_Component.instance.getUnunifiedStack( 98, 1)); + GT_OreDictUnificator.registerOreLater("craftingGearTier02" , GT_MetaItem_Component.instance.getUnunifiedStack( 98, 1)); GT_MetaItem_Component.addItem( 99, "Titanium Gear" , "gearGtTitanium" , "A Titanium Gear"); - GT_OreDictUnificator.registerOre("craftingGearTier03" , GT_MetaItem_Component.instance.getUnunifiedStack( 99, 1)); + GT_OreDictUnificator.registerOreLater("craftingGearTier03" , GT_MetaItem_Component.instance.getUnunifiedStack( 99, 1)); GT_MetaItem_Component.addItem(100, "Tungstensteel Gear" , "gearGtTungstenSteel" , "A Tungstensteel Gear"); - GT_OreDictUnificator.registerOre("craftingGearTier03" , GT_MetaItem_Component.instance.getUnunifiedStack(100, 1)); + GT_OreDictUnificator.registerOreLater("craftingGearTier03" , GT_MetaItem_Component.instance.getUnunifiedStack(100, 1)); GT_MetaItem_Component.addItem(101, "Iridium Gear" , "gearGtIridium" , "An Iridium Gear"); - GT_OreDictUnificator.registerOre("craftingGearTier04" , GT_MetaItem_Component.instance.getUnunifiedStack(101, 1)); + GT_OreDictUnificator.registerOreLater("craftingGearTier04" , GT_MetaItem_Component.instance.getUnunifiedStack(101, 1)); GT_MetaItem_Component.addItem(102, "Stainless Steel Gear" , "gearGtStainlessSteel" , "A Stainless Steel Gear"); - GT_OreDictUnificator.registerOre("craftingGearTier02" , GT_MetaItem_Component.instance.getUnunifiedStack(102, 1)); + GT_OreDictUnificator.registerOreLater("craftingGearTier02" , GT_MetaItem_Component.instance.getUnunifiedStack(102, 1)); GT_MetaGenerated_Item_01 tMetaGenerated; GregTech_API.sItemList[8] = tMetaGenerated = new GT_MetaGenerated_Item_01();