aboutsummaryrefslogtreecommitdiff
path: root/src/Java/miscutil/core/xmod/gregtech
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/miscutil/core/xmod/gregtech')
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/HANDLER_Gregtech.java41
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/energy/IC2ElectricItem.java55
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/energy/IC2ElectricItemManager.java95
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechItemList.java203
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechOreDictNames.java39
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechOrePrefixes.java776
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextureSet.java144
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechTextures.java200
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/gui/CONTAINER_IronBlastFurnace.java31
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/gui/CONTAINER_MultiMachine.java35
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/gui/CONTAINER_SafeBlock.java120
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/gui/CONTAINER_SteamCondenser.java97
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/gui/GUI_IronBlastFurnace.java30
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/gui/GUI_MultiMachine.java63
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/gui/GUI_SafeBlock.java49
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/gui/GUI_SteamCondenser.java55
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/interfaces/GregtechItemContainer.java24
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java24
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_ItemBehaviour.java41
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_OreRecipeRegistrator.java16
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_OreRecipeRegistrator_GT.java16
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/interfaces/internal/Interface_ToolStats.java155
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/items/Gregtech_Generic_Item.java176
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/items/Gregtech_MetaItem.java323
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/items/Gregtech_MetaItem_Base.java549
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/items/Gregtech_MetaItem_X32.java194
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/items/Gregtech_MetaTool.java605
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/metatileentity/implementations/GregtechMetaCondensor.java164
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/metatileentity/implementations/GregtechMetaEnergyBuffer.java402
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java235
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/metatileentity/implementations/GregtechMetaSafeBlock.java76
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaBoilerBase.java328
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaSafeBlockBase.java343
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java67
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java805
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/metatileentity/implementations/base/GregtechRocketFuelGeneratorBase.java263
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/metatileentity/implementations/base/GregtechSteelBoiler.java290
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/metatileentity/implementations/creative/GregtechMetaCreativeEnergyBuffer.java268
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/objects/GregtechFluid.java27
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/objects/GregtechItemData.java130
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/objects/GregtechMaterialStack.java42
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/objects/GregtechRenderedTexture.java162
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/util/GregtechOreDictUnificator.java366
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/util/GregtechRecipe.java677
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/api/util/GregtechRecipeRegistrator.java339
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/GregtechRecipeAdder.java119
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/Meta_GT_Proxy.java386
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/blocks/GregtechMetaCasingBlocks.java457
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/blocks/GregtechMetaCasingBlocksAbstract.java140
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/blocks/GregtechMetaCasingItems.java11
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/blocks/GregtechMetaItemCasings1.java33
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/blocks/GregtechMetaItemCasingsAbstract.java45
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/blocks/fluid/GregtechFluidHandler.java36
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/items/MetaGeneratedGregtechItems.java155
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java24
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityRocketFuelGenerator.java119
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityElectricBlastFurnace.java236
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityIndustrialCentrifuge.java452
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityIndustrialCokeOven.java267
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityIndustrialPlatePress.java249
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityIronBlastFurnace.java369
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tools/TOOL_Gregtech_Base.java168
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tools/TOOL_Gregtech_BaseMultiblockItem.java49
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/common/tools/TOOL_Gregtech_MaxEfficiencyMultiBlockItem.java27
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/loaders/Processing_Block.java107
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/loaders/Processing_Ingot1.java68
-rw-r--r--src/Java/miscutil/core/xmod/gregtech/loaders/Processing_Plate1.java56
67 files changed, 12713 insertions, 0 deletions
diff --git a/src/Java/miscutil/core/xmod/gregtech/HANDLER_Gregtech.java b/src/Java/miscutil/core/xmod/gregtech/HANDLER_Gregtech.java
new file mode 100644
index 0000000000..3f07b08f9b
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/gregtech/HANDLER_Gregtech.java
@@ -0,0 +1,41 @@
+package miscutil.core.xmod.gregtech;
+
+import gregtech.api.util.GT_Config;
+import miscutil.core.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials;
+import miscutil.core.xmod.gregtech.common.blocks.fluid.GregtechFluidHandler;
+
+public class HANDLER_Gregtech {
+
+ public static GT_Config mMaterialProperties = null;
+
+ public static void preInit(){
+ if (mMaterialProperties != null){
+ GT_Materials.init(mMaterialProperties);
+ GregtechFluidHandler.run();
+ //new Processing_Ingot1();
+ //new Processing_Plate1();
+ //new Processing_Block();
+ }
+
+ }
+
+ public static void init(){
+ /*if (Meta_GT_Proxy.mSortToTheEnd) {
+ new GT_ItemIterator().run();
+ Meta_GT_Proxy.registerUnificationEntries();
+ new GT_FuelLoader().run();
+ }*/
+ }
+
+ public static void postInit(){
+ /*Meta_GT_Proxy.activateOreDictHandler();
+ if (Meta_GT_Proxy.mSortToTheEnd) {
+ Meta_GT_Proxy.registerUnificationEntries();
+ } else {
+ new GT_ItemIterator().run();
+ Meta_GT_Proxy.registerUnificationEntries();
+ new GT_FuelLoader().run();
+ }*/
+ }
+
+}
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/energy/IC2ElectricItem.java b/src/Java/miscutil/core/xmod/gregtech/api/energy/IC2ElectricItem.java
new file mode 100644
index 0000000000..24b5fa32c8
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/gregtech/api/energy/IC2ElectricItem.java
@@ -0,0 +1,55 @@
+package miscutil.core.xmod.gregtech.api.energy;
+
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+
+/**
+ * Provides the ability to store energy on the implementing item.
+ *
+ * The item should have a maximum damage of 13.
+ */
+public interface IC2ElectricItem {
+ /**
+ * Determine if the item can be used in a machine or as an armor part to supply energy.
+ *
+ * @return Whether the item can supply energy
+ */
+ boolean canProvideEnergy(ItemStack itemStack);
+
+ /**
+ * Get the item ID to use for a charge energy greater than 0.
+ *
+ * @return Item ID to use
+ */
+ Item getChargedItem(ItemStack itemStack);
+
+ /**
+ * Get the item ID to use for a charge energy of 0.
+ *
+ * @return Item ID to use
+ */
+ Item getEmptyItem(ItemStack itemStack);
+
+ /**
+ * Get the item's maximum charge energy in EU.
+ *
+ * @return Maximum charge energy
+ */
+ double getMaxCharge(ItemStack itemStack);
+
+ /**
+ * Get the item's tier, lower tiers can't send energy to higher ones.
+ * Batteries are Tier 1, Energy Crystals are Tier 2, Lapotron Crystals are Tier 3.
+ *
+ * @return Item's tier
+ */
+ int getTier(ItemStack itemStack);
+
+ /**
+ * Get the item's transfer limit in EU per transfer operation.
+ *
+ * @return Transfer limit
+ */
+ double getTransferLimit(ItemStack itemStack);
+}
+
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/energy/IC2ElectricItemManager.java b/src/Java/miscutil/core/xmod/gregtech/api/energy/IC2ElectricItemManager.java
new file mode 100644
index 0000000000..71f31cff46
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/gregtech/api/energy/IC2ElectricItemManager.java
@@ -0,0 +1,95 @@
+package miscutil.core.xmod.gregtech.api.energy;
+
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.item.ItemStack;
+
+/**
+ * This interface specifies a manager to handle the various tasks for electric items.
+ *
+ * The default implementation does the following:
+ * - store and retrieve the charge
+ * - handle charging, taking amount, tier, transfer limit, canProvideEnergy and simulate into account
+ * - replace item IDs if appropriate (getChargedItemId() and getEmptyItemId())
+ * - update and manage the damage value for the visual charge indicator
+ *
+ * @note If you're implementing your own variant (ISpecialElectricItem), you can delegate to the
+ * default implementations through ElectricItem.rawManager. The default implementation is designed
+ * to minimize its dependency on its own constraints/structure and delegates most work back to the
+ * more atomic features in the gateway manager.
+ */
+public interface IC2ElectricItemManager {
+ /**
+ * Charge an item with a specified amount of energy.
+ *
+ * @param itemStack electric item's stack
+ * @param amount amount of energy to charge in EU
+ * @param tier tier of the charging device, has to be at least as high as the item to charge
+ * @param ignoreTransferLimit ignore the transfer limit specified by getTransferLimit()
+ * @param simulate don't actually change the item, just determine the return value
+ * @return Energy transferred into the electric item
+ */
+ double charge(ItemStack stack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate);
+
+ /**
+ * Discharge an item by a specified amount of energy
+ *
+ * @param itemStack electric item's stack
+ * @param amount amount of energy to discharge in EU
+ * @param tier tier of the discharging device, has to be at least as high as the item to discharge
+ * @param ignoreTransferLimit ignore the transfer limit specified by getTransferLimit()
+ * @param externally use the supplied item externally, i.e. to power something else as if it was a battery
+ * @param simulate don't actually discharge the item, just determine the return value
+ * @return Energy retrieved from the electric item
+ */
+ double discharge(ItemStack stack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate);
+
+ /**
+ * Determine the charge level for the specified item.
+ *
+ * @param itemStack ItemStack containing the electric item
+ * @return charge level in EU
+ */
+ double getCharge(ItemStack stack);
+
+ /**
+ * Determine if the specified electric item has at least a specific amount of EU.
+ * This is supposed to be used in the item code during operation, for example if you want to implement your own electric item.
+ * BatPacks are not taken into account.
+ *
+ * @param itemStack electric item's stack
+ * @param amount minimum amount of energy required
+ * @return true if there's enough energy
+ */
+ boolean canUse(ItemStack stack, double amount);
+
+ /**
+ * Try to retrieve a specific amount of energy from an Item, and if applicable, a BatPack.
+ * This is supposed to be used in the item code during operation, for example if you want to implement your own electric item.
+ *
+ * @param itemStack electric item's stack
+ * @param amount amount of energy to discharge in EU
+ * @param entity entity holding the item
+ * @return true if the operation succeeded
+ */
+ boolean use(ItemStack stack, double amount, EntityLivingBase entity);
+
+ /**
+ * Charge an item from the BatPack a player is wearing.
+ * This is supposed to be used in the item code during operation, for example if you want to implement your own electric item.
+ * use() already contains this functionality.
+ *
+ * @param itemStack electric item's stack
+ * @param entity entity holding the item
+ */
+ void chargeFromArmor(ItemStack stack, EntityLivingBase entity);
+
+ /**
+ * Get the tool tip to display for electric items.
+ *
+ * @param itemStack ItemStack to determine the tooltip for
+ * @return tool tip string or null for none
+ */
+ String getToolTip(ItemStack stack);
+
+ // TODO: add tier getter
+}
diff --git a/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechItemList.java b/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechItemList.java
new file mode 100644
index 0000000000..43b8f53cdb
--- /dev/null
+++ b/src/Java/miscutil/core/xmod/gregtech/api/enums/GregtechItemList.java
@@ -0,0 +1,203 @@
+package miscutil.core.xmod.gregtech.api.enums;
+
+import static gregtech.api.enums.GT_Values.W;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Utility;
+import miscutil.core.xmod.gregtech.api.interfaces.GregtechItemContainer;
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+
+/**
+ * Class containing all non-OreDict Items of GregTech.
+ */
+public enum GregtechItemList implements GregtechItemContainer {
+
+ Credit_Copper,
+ Credit_Iron,
+ Credit_Silver,
+ Credit_Gold,
+ Credit_Platinum,
+ Credit_Osmium,
+ Credit_Greg_Copper,
+ Credit_Greg_Cupronickel,
+ Credit_Greg_Silver,
+ Credit_Greg_Gold,
+ Credit_Greg_Platinum,
+ Credit_Greg_Osmium,
+ Credit_Greg_Naquadah,
+ Energy_Buffer_CREATIVE,
+
+ //Energy Buffers
+ Energy_Buffer_1by1_ULV, Energy_Buffer_1by1_LV, Energy_Buffer_1by1_MV, Energy_Buffer_1by1_HV, Energy_Buffer_1by1_EV, Energy_Buffer_1by1_IV, Energy_Buffer_1by1_LuV, Energy_Buffer_1by1_ZPM, Energy_Buffer_1by1_UV, Energy_Buffer_1by1_MAX,
+
+ //Cobble Generators
+ Cobble_Generator_ULV, Cobble_Generator_LV, Cobble_Generator_MV, Cobble_Generator_HV, Cobble_Generator_EV, Cobble_Generator_IV, Cobble_Generator_LuV, Cobble_Generator_ZPM, Cobble_Generator_UV, Cobble_Generator_MAX,
+
+ //The max Steam condenser
+ Condensor_MAX,
+
+ //Player owned Safes
+ GT_Safe_ULV, GT_Safe_LV, GT_Safe_MV, GT_Safe_HV, GT_Safe_EV, GT_Safe_IV, GT_Safe_LuV, GT_Safe_ZPM, GT_Safe_UV, GT_Safe_MAX,
+
+ //Rocket Engines
+ Rocket_Engine_EV, Rocket_Engine_IV, Rocket_Engine_LuV,
+
+ //IronBlastFurnace Machine_Bronze_BlastFurnace
+ Machine_Iron_BlastFurnace, Casing_IronPlatedBricks,
+
+ //Machine Casings
+ Casing_Shielding,
+
+ //Large Centrifuge
+ Industrial_Centrifuge, Casing_Centrifuge1,
+
+ //Coke Oven
+ Industrial_CokeOven, Casing_CokeOven, Casing_CokeOven_Coil1, Casing_CokeOven_Coil2,
+
+ //Bending Maching // Plate Press // Press
+ Industrial_PlatePress,
+
+ //Gregtech Machine Parts
+ Electric_Motor_LuV, Electric_Motor_ZPM, Electric_Motor_UV, Electric_Motor_MAX,
+ Electric_Pump_LuV, Electric_Pump_ZPM, Electric_Pump_UV, Electric_Pump_MAX,
+ Conveyor_Module_LuV, Conveyor_Module_ZPM, Conveyor_Module_UV, Conveyor_Module_MAX,
+ Electric_Piston_LuV, Electric_Piston_ZPM, Electric_Piston_UV, Electric_Piston_MAX,
+ Robot_Arm_LuV, Robot_Arm_ZPM, Robot_Arm_UV, Robot_Arm_MAX,
+ Field_Generator_LuV, Field_Generator_ZPM, Field_Generator_UV, Field_Generator_MAX,
+ Emitter_LuV, Emitter_ZPM, Emitter_UV, Emitter_MAX,
+ Sensor_LuV, Sensor_ZPM, Sensor_UV, Sensor_MAX,
+
+ //Circuits
+ Circuit_Primitive, Circuit_Basic, Circuit_Good, Circuit_Advanced,
+ Circuit_Data, Circuit_Elite, Circuit_Master, Tool_DataOrb, Circuit_Ultimate, Tool_DataStick,
+ Circuit_IV, Circuit_LuV, Circuit_ZPM,
+ //Circuit Parts
+ Circuit_Board_IV, Circuit_Board_LuV, Circuit_Board_ZPM,
+ Circuit_Parts_Crystal_Chip_IV, Circuit_Parts_Crystal_Chip_LuV, Circuit_Parts_Crystal_Chip_ZPM,
+ Circuit_Parts_IV, Circuit_Parts_LuV, Circuit_Parts_ZPM,
+ Circuit_Parts_Wiring_IV, Circuit_Parts_Wiring_LuV, Circuit_Parts_Wiring_ZPM,
+
+ //Blast Furnace Test
+ Machine_Electric_BlastFurnace;
+
+ public static final GregtechItemList[]
+ DYE_ONLY_ITEMS = {
+ Energy_Buffer_1by1_EV, Energy_Buffer_1by1_EV };
+ private ItemStack mStack;
+ private boolean mHasNotBeenSet = true;
+
+ public static Fluid sOilExtraHeavy, sOilHeavy, sOilMedium, sOilLight, sNaturalGas;
+
+ @Override
+ public GregtechItemList set(Item aItem) {
+ mHasNotBeenSet = false;
+ if (aItem == null) return this;
+ ItemStack aStack = new ItemStack(aItem, 1, 0);
+ mStack = GT_Utility.copyAmount(1, aStack);
+ return this;
+ }
+
+ @Override
+ public GregtechItemList set(ItemStack aStack) {
+ mHasNotBeenSet = false;
+ mStack = GT_Utility.copyAmount(1, aStack);
+ return this;
+ }
+
+ @Override
+ public Item getItem() {
+ if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!");
+ if (GT_Utility.isStackInvalid(mStack)) return null;
+ return mStack.getItem();
+ }
+
+ @Override
+ public Block getBlock() {
+ if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!");
+ return GT_Utility.getBlockFromStack(getItem());
+ }
+
+ @Override
+ public final boolean hasBeenSet() {
+ return !mHasNotBeenSet;
+ }
+
+ @Override
+ public boolean isStackEqual(Object aStack) {
+ return isStackEqual(aStack, false, false);
+ }
+
+ @Override
+ public boolean isStackEqual(Object aStack, boolean aWildcard, boolean aIgnoreNBT) {
+ if (GT_Utility.isStackInvalid(aStack)) return false;
+ return GT_Utility.areUnificationsEqual((ItemStack)aStack, aWildcard?getWildcard(1):get(1), aIgnoreNBT);
+ }
+
+ @Override
+ public ItemStack get(long aAmount, Object... aReplacements) {
+ if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!");
+ if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, 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 '" + name() + "' has not been set to an Item at this time!");
+ if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements);
+ return GT_Utility.copyAmountAndMetaData(aAmount, W, GT_OreDictUnificator.get(mStack));
+ }
+
+ @Override
+ public ItemStack getUndamaged(long aAmount, Object... aReplacements) {
+ if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!");
+ if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, 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 '" + name() + "' has not been set to an Item at this time!");
+ if (GT_Utility.isStackInvalid(mStack)) return GT_Utility.copyAmount(aAmount, aReplacements);
+ return GT_Utility.copyAmountAndMetaData(aAmount, mStack.getMaxDamage()-1, GT_OreDictUnificator.get(mStack));
+ }
+
+ @Override
+ public ItemStack getWithName(long aAmount, String aDisplayName, Object... aReplacements) {
+ ItemStack rStack = get(1, aReplacements);
+ if (GT_Utility.isStackInvalid(rStack)) return null;
+ rStack.setStackDisplayName(aDisplayName);
+ return GT_Utility.copyAmount(aAmount, rStack);
+ }
+
+ @Override
+ public ItemStack