aboutsummaryrefslogtreecommitdiff
path: root/src/Java/miscutil/gregtech/api
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-04-22 17:59:17 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-04-22 17:59:17 +1000
commitb33cfd02d8a367af0ba9a6689a0507440f44d07c (patch)
treee3832c9427e2f89f0ebc13bcb9c20de8c2328587 /src/Java/miscutil/gregtech/api
parent1b722c6d3941371c6b1ef90b60775539ffaff06c (diff)
downloadGT5-Unofficial-b33cfd02d8a367af0ba9a6689a0507440f44d07c.tar.gz
GT5-Unofficial-b33cfd02d8a367af0ba9a6689a0507440f44d07c.tar.bz2
GT5-Unofficial-b33cfd02d8a367af0ba9a6689a0507440f44d07c.zip
Refactoring like a champion.
Diffstat (limited to 'src/Java/miscutil/gregtech/api')
-rw-r--r--src/Java/miscutil/gregtech/api/energy/IC2ElectricItem.java55
-rw-r--r--src/Java/miscutil/gregtech/api/energy/IC2ElectricItemManager.java95
-rw-r--r--src/Java/miscutil/gregtech/api/enums/AddExtraOreDict.java13
-rw-r--r--src/Java/miscutil/gregtech/api/enums/ExtraOreDictNames.java18
-rw-r--r--src/Java/miscutil/gregtech/api/enums/GregtechItemList.java171
-rw-r--r--src/Java/miscutil/gregtech/api/enums/GregtechTextures.java127
-rw-r--r--src/Java/miscutil/gregtech/api/gui/CONTAINER_IronBlastFurnace.java31
-rw-r--r--src/Java/miscutil/gregtech/api/gui/CONTAINER_SafeBlock.java120
-rw-r--r--src/Java/miscutil/gregtech/api/gui/CONTAINER_SteamCondenser.java97
-rw-r--r--src/Java/miscutil/gregtech/api/gui/GUI_IronBlastFurnace.java30
-rw-r--r--src/Java/miscutil/gregtech/api/gui/GUI_SafeBlock.java49
-rw-r--r--src/Java/miscutil/gregtech/api/gui/GUI_SteamCondenser.java55
-rw-r--r--src/Java/miscutil/gregtech/api/init/InitGregtech.java31
-rw-r--r--src/Java/miscutil/gregtech/api/init/machines/GregtechCobbleGenerator.java51
-rw-r--r--src/Java/miscutil/gregtech/api/init/machines/GregtechConduits.java103
-rw-r--r--src/Java/miscutil/gregtech/api/init/machines/GregtechEnergyBuffer.java83
-rw-r--r--src/Java/miscutil/gregtech/api/init/machines/GregtechIndustrialCentrifuge.java27
-rw-r--r--src/Java/miscutil/gregtech/api/init/machines/GregtechSafeBlock.java53
-rw-r--r--src/Java/miscutil/gregtech/api/init/machines/GregtechSteamCondenser.java36
-rw-r--r--src/Java/miscutil/gregtech/api/interfaces/GregtechItemContainer.java24
-rw-r--r--src/Java/miscutil/gregtech/api/metatileentity/implementations/GregtechMetaCasingBlocks.java88
-rw-r--r--src/Java/miscutil/gregtech/api/metatileentity/implementations/GregtechMetaCondensor.java164
-rw-r--r--src/Java/miscutil/gregtech/api/metatileentity/implementations/GregtechMetaCreativeEnergyBuffer.java261
-rw-r--r--src/Java/miscutil/gregtech/api/metatileentity/implementations/GregtechMetaEnergyBuffer.java446
-rw-r--r--src/Java/miscutil/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java235
-rw-r--r--src/Java/miscutil/gregtech/api/metatileentity/implementations/GregtechMetaSafeBlock.java76
-rw-r--r--src/Java/miscutil/gregtech/api/metatileentity/implementations/GregtechMetaTileEntityIronBlastFurnace.java369
-rw-r--r--src/Java/miscutil/gregtech/api/metatileentity/implementations/base/GregtechMetaBoilerBase.java328
-rw-r--r--src/Java/miscutil/gregtech/api/metatileentity/implementations/base/GregtechMetaSafeBlockBase.java343
-rw-r--r--src/Java/miscutil/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java67
-rw-r--r--src/Java/miscutil/gregtech/api/metatileentity/implementations/base/GregtechSteelBoiler.java290
-rw-r--r--src/Java/miscutil/gregtech/api/util/IMessage.java21
-rw-r--r--src/Java/miscutil/gregtech/api/util/VanillaChatCommandSender.java35
33 files changed, 3992 insertions, 0 deletions
diff --git a/src/Java/miscutil/gregtech/api/energy/IC2ElectricItem.java b/src/Java/miscutil/gregtech/api/energy/IC2ElectricItem.java
new file mode 100644
index 0000000000..eae47b9910
--- /dev/null
+++ b/src/Java/miscutil/gregtech/api/energy/IC2ElectricItem.java
@@ -0,0 +1,55 @@
+package miscutil.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/gregtech/api/energy/IC2ElectricItemManager.java b/src/Java/miscutil/gregtech/api/energy/IC2ElectricItemManager.java
new file mode 100644
index 0000000000..4b2fcb2fec
--- /dev/null
+++ b/src/Java/miscutil/gregtech/api/energy/IC2ElectricItemManager.java
@@ -0,0 +1,95 @@
+package miscutil.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/gregtech/api/enums/AddExtraOreDict.java b/src/Java/miscutil/gregtech/api/enums/AddExtraOreDict.java
new file mode 100644
index 0000000000..dff0483470
--- /dev/null
+++ b/src/Java/miscutil/gregtech/api/enums/AddExtraOreDict.java
@@ -0,0 +1,13 @@
+package miscutil.gregtech.api.enums;
+
+import gregtech.loaders.preload.GT_Loader_OreDictionary;
+
+public class AddExtraOreDict extends GT_Loader_OreDictionary {
+
+ @Override
+ public void run()
+ {
+ //GT_OreDictUnificator.registerOre(ExtraOreDictNames.buffer_core, new ItemStack(GregtechEnergyBuffer.itemBufferCore));
+ }
+
+}
diff --git a/src/Java/miscutil/gregtech/api/enums/ExtraOreDictNames.java b/src/Java/miscutil/gregtech/api/enums/ExtraOreDictNames.java
new file mode 100644
index 0000000000..8ca492c9dd
--- /dev/null
+++ b/src/Java/miscutil/gregtech/api/enums/ExtraOreDictNames.java
@@ -0,0 +1,18 @@
+package miscutil.gregtech.api.enums;
+
+/**
+ *
+ *
+ * @author Jordan
+ *Adds in extra names for items (No idea yet why anyone does this in such a fashion..)
+ */
+public enum ExtraOreDictNames {
+ buffer_core, itemGregConduit;
+
+public String unlocalisedName;
+
+private void ModObject() {
+ unlocalisedName = name();
+}
+
+} \ No newline at end of file
diff --git a/src/Java/miscutil/gregtech/api/enums/GregtechItemList.java b/src/Java/miscutil/gregtech/api/enums/GregtechItemList.java
new file mode 100644
index 0000000000..1a95d49441
--- /dev/null
+++ b/src/Java/miscutil/gregtech/api/enums/GregtechItemList.java
@@ -0,0 +1,171 @@
+package miscutil.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.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,
+
+ //IronBlastFurnace Machine_Bronze_BlastFurnace
+ Machine_Iron_BlastFurnace, Casing_IronPlatedBricks,
+
+ //Machine Casings
+ Casing_Shielding, Casing_Centrifuge1, Casing_Centrifuge2,
+
+ //Large Centrifuge
+ Industrial_Centrifuge;
+
+ 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 getWithCharge(long aAmount, int aEnergy, Object... aReplacements) {
+ ItemStack rStack = get(1, aReplacements);
+ if (GT_Utility.isStackInvalid(rStack)) return null;
+ GT_ModHandler.chargeElectricItem(rStack, aEnergy, Integer.MAX_VALUE, true, false);
+ return GT_Utility.copyAmount(aAmount, rStack);
+ }
+
+ @Override
+ public ItemStack getWithDamage(long aAmount, long aMetaValue, 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, aMetaValue, GT_OreDictUnificator.get(mStack));
+ }
+
+ @Override
+ public GregtechItemList registerOre(Object... aOreNames) {
+ if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!");
+ for (Object tOreName : aOreNames) GT_OreDictUnificator.registerOre(tOreName, get(1));
+ return this;
+ }
+
+ @Override
+ public GregtechItemList registerWildcardAsOre(Object... aOreNames) {
+ if (mHasNotBeenSet) throw new IllegalAccessError("The Enum '" + name() + "' has not been set to an Item at this time!");
+ for (Object tOreName : aOreNames) GT_OreDictUnificator.registerOre(tOreName, getWildcard(1));
+ return this;
+ }
+} \ No newline at end of file
diff --git a/src/Java/miscutil/gregtech/api/enums/GregtechTextures.java b/src/Java/miscutil/gregtech/api/enums/GregtechTextures.java
new file mode 100644
index 0000000000..40c3cb7f4e
--- /dev/null
+++ b/src/Java/miscutil/gregtech/api/enums/GregtechTextures.java
@@ -0,0 +1,127 @@
+package miscutil.gregtech.api.enums;
+
+import static gregtech.api.enums.GT_Values.RES_PATH_BLOCK;
+import gregtech.api.GregTech_API;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.interfaces.ITexture;
+import net.minecraft.client.renderer.texture.TextureMap;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.ResourceLocation;
+
+public class GregtechTextures {
+ public enum BlockIcons implements IIconContainer, Runnable {
+
+
+ LARGECENTRIFUGE_TI1, LARGECENTRIFUGE_TI2, LARGECENTRIFUGE_TI3, LARGECENTRIFUGE_TI4, LARGECENTRIFUGE_TI5,
+ LARGECENTRIFUGE_TI6, LARGECENTRIFUGE_TI7, LARGECENTRIFUGE_TI8, LARGECENTRIFUGE_TI9,
+ LARGECENTRIFUGE_TI_ACTIVE1, LARGECENTRIFUGE_TI_ACTIVE2, LARGECENTRIFUGE_TI_ACTIVE3, LARGECENTRIFUGE_TI_ACTIVE4,
+ LARGECENTRIFUGE_TI_ACTIVE5, LARGECENTRIFUGE_TI_ACTIVE6, LARGECENTRIFUGE_TI_ACTIVE7, LARGECENTRIFUGE_TI_ACTIVE8, LARGECENTRIFUGE_TI_ACTIVE9,
+
+ LARGECENTRIFUGE_TU1, LARGECENTRIFUGE_TU2, LARGECENTRIFUGE_TU3, LARGECENTRIFUGE_TU4, LARGECENTRIFUGE_TU5,
+ LARGECENTRIFUGE_TU6, LARGECENTRIFUGE_TU7, LARGECENTRIFUGE_TU8, LARGECENTRIFUGE_TU9,
+ LARGECENTRIFUGE_TU_ACTIVE1, LARGECENTRIFUGE_TU_ACTIVE2, LARGECENTRIFUGE_TU_ACTIVE3, LARGECENTRIFUGE_TU_ACTIVE4, LARGECENTRIFUGE_TU_ACTIVE5,
+ LARGECENTRIFUGE_TU_ACTIVE6, LARGECENTRIFUGE_TU_ACTIVE7, LARGECENTRIFUGE_TU_ACTIVE8, LARGECENTRIFUGE_TU_ACTIVE9;
+
+ public static final IIconContainer[]
+
+ CENTRIFUGE1 = new IIconContainer[]{
+ LARGECENTRIFUGE_TI1,
+ LARGECENTRIFUGE_TI2,
+ LARGECENTRIFUGE_TI3,
+ LARGECENTRIFUGE_TI4,
+ LARGECENTRIFUGE_TI5,
+ LARGECENTRIFUGE_TI6,
+ LARGECENTRIFUGE_TI7,
+ LARGECENTRIFUGE_TI8,
+ LARGECENTRIFUGE_TI9
+ },
+ CENTRIFUGE_ACTIVE1 = new IIconContainer[]{
+ LARGECENTRIFUGE_TI_ACTIVE1,
+ LARGECENTRIFUGE_TI_ACTIVE2,
+ LARGECENTRIFUGE_TI_ACTIVE3,
+ LARGECENTRIFUGE_TI_ACTIVE4,
+ LARGECENTRIFUGE_TI_ACTIVE5,
+ LARGECENTRIFUGE_TI_ACTIVE6,
+ LARGECENTRIFUGE_TI_ACTIVE7,
+ LARGECENTRIFUGE_TI_ACTIVE8,
+ LARGECENTRIFUGE_TI_ACTIVE9
+ },
+ CENTRIFUGE2 = new IIconContainer[]{
+ LARGECENTRIFUGE_TU1,
+ LARGECENTRIFUGE_TU2,
+ LARGECENTRIFUGE_TU3,
+ LARGECENTRIFUGE_TU4,
+ LARGECENTRIFUGE_TU5,
+ LARGECENTRIFUGE_TU6,
+ LARGECENTRIFUGE_TU7,
+ LARGECENTRIFUGE_TU8,
+ LARGECENTRIFUGE_TU9
+ },
+ CENTRIFUGE_ACTIVE2 = new IIconContainer[]{
+ LARGECENTRIFUGE_TU_ACTIVE1,
+ LARGECENTRIFUGE_TU_ACTIVE2,
+ LARGECENTRIFUGE_TU_ACTIVE3,
+ LARGECENTRIFUGE_TU_ACTIVE4,
+ LARGECENTRIFUGE_TU_ACTIVE5,
+ LARGECENTRIFUGE_TU_ACTIVE6,
+ LARGECENTRIFUGE_TU_ACTIVE7,
+ LARGECENTRIFUGE_TU_ACTIVE8,
+ LARGECENTRIFUGE_TU_ACTIVE9
+ };
+
+ public static ITexture[]
+ GT_CASING_BLOCKS = new ITexture[64];
+
+ protected IIcon mIcon;
+
+ @Override
+ public IIcon getIcon() {
+ return mIcon;
+ }
+
+ @Override
+ public IIcon getOverlayIcon() {
+ return null;
+ }
+
+ @Override
+ public void run() {
+ mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + "iconsets/" + this);
+ }
+
+ @Override
+ public ResourceLocation getTextureFile() {
+ return TextureMap.locationBlocksTexture;
+ }
+
+ public static class CustomIcon implements IIconContainer, Runnable {
+ protected IIcon mIcon;
+ protected String mIconName;
+
+ public CustomIcon(String aIconName) {
+ mIconName = aIconName;
+ GregTech_API.sGTBlockIconload.add(this);
+ }
+
+ @Override
+ public IIcon getIcon() {
+ return mIcon;
+ }
+
+ @Override
+ public IIcon getOverlayIcon() {
+ return null;
+ }
+
+ @Override
+ public void run() {
+ mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + mIconName);
+ }
+
+ @Override
+ public ResourceLocation getTextureFile() {
+ return TextureMap.locationBlocksTexture;
+ }
+ }
+}}
+
diff --git a/src/Java/miscutil/gregtech/api/gui/CONTAINER_IronBlastFurnace.java b/src/Java/miscutil/gregtech/api/gui/CONTAINER_IronBlastFurnace.java
new file mode 100644
index 0000000000..3015e43f2a
--- /dev/null
+++ b/src/Java/miscutil/gregtech/api/gui/CONTAINER_IronBlastFurnace.java
@@ -0,0 +1,31 @@
+package miscutil.gregtech.api.gui;
+
+import gregtech.api.gui.GT_ContainerMetaTile_Machine;
+import gregtech.api.gui.GT_Slot_Output;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.inventory.Slot;
+
+public class CONTAINER_IronBlastFurnace extends GT_ContainerMetaTile_Machine {
+ public CONTAINER_IronBlastFurnace(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) {
+ super(aInventoryPlayer, aTileEntity);
+ }
+
+ @Override
+ public void addSlots(InventoryPlayer aInventoryPlayer) {
+ addSlotToContainer(new Slot(this.mTileEntity, 0, 34, 16));
+ addSlotToContainer(new Slot(this.mTileEntity, 1, 34, 34));
+ addSlotToContainer(new GT_Slot_Output(this.mTileEntity, 2, 86, 25));
+ addSlotToContainer(new GT_Slot_Output(this.mTileEntity, 3, 104, 25));
+ }
+
+ @Override
+ public int getSlotCount() {
+ return 4;
+ }
+
+ @Override
+ public int getShiftClickSlotCount() {
+ return 2;
+ }
+}
diff --git a/src/Java/miscutil/gregtech/api/gui/CONTAINER_SafeBlock.java b/src/Java/miscutil/gregtech/api/gui/CONTAINER_SafeBlock.java
new file mode 100644
index 0000000000..a805585a49
--- /dev/null
+++ b/src/Java/miscutil/gregtech/api/gui/CONTAINER_SafeBlock.java
@@ -0,0 +1,120 @@
+package miscutil.gregtech.api.gui;
+
+import gregtech.api.gui.GT_ContainerMetaTile_Machine;
+import gregtech.api.gui.GT_Slot_Holo;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import miscutil.core.util.PlayerCache;
+import miscutil.gregtech.api.metatileentity.implementations.GregtechMetaSafeBlock;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.inventory.Slot;
+import net.minecraft.item.ItemStack;
+
+public class CONTAINER_SafeBlock
+extends GT_ContainerMetaTile_Machine {
+ public CONTAINER_SafeBlock(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) {
+ super(aInventoryPlayer, aTileEntity);
+ }
+
+ //public String UUID = ((BaseMetaTileEntity)mTileEntity).getMetaTileEntity().getBaseMetaTileEntity().getOwnerName();
+ public String ownerUUID = ((GregtechMetaSafeBlock)this.mTileEntity.getMetaTileEntity()).ownerUUID;
+ public String tempPlayer = PlayerCache.lookupPlayerByUUID(ownerUUID);
+ public boolean blockStatus = ((GregtechMetaSafeBlock)this.mTileEntity.getMetaTileEntity()).bUnbreakable;
+
+ @Override
+ public void addSlots(InventoryPlayer aInventoryPlayer) {
+ for (int y = 0; y < 3; y++) {
+ for (int x = 0; x < 9; x++) {
+ addSlotToContainer(new Slot(this.mTileEntity, x + y * 9, 8 + x * 18, 5 + y * 18));
+ }
+ }
+ addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 27, 8, 63, false, true, 1));
+ addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 27, 26, 63, false, true, 1));
+ addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 27, 44, 63, false, true, 1));
+ }
+
+ @Override
+ public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) {
+ int runs = 0;
+ if (aSlotIndex < 27) {
+ return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
+ }
+ Slot tSlot = (Slot) this.inventorySlots.get(aSlotIndex);
+ if (tSlot != null) {
+ if (this.mTileEntity.getMetaTileEntity() == null) {
+ return null;
+ }
+ if (aSlotIndex == 27) {
+
+
+ /*((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()).bOutput);
+ if (((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()).bOutput) {
+ if (aPlayer != null && aPlayer instanceof EntityPlayerMP && (((GregtechMetaSafeBlock)this.mTileEntity.getMetaTileEntity()).bOutput != false)) {
+
+ Utils.LOG_INFO(String.valueOf(Sys.is64Bit()));
+ Utils.messagePlayer(aPlayer, "Salmon");
+ }
+
+ GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside");
+ } else {
+ GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy");
+ }
+ return null;*/
+
+
+ }
+ if (aSlotIndex == 28) {}
+ /* ((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = (!((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull);
+ if (((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) {
+ GT_Utility.sendChatToPlayer(aPlayer, "Emit Redstone if no Slot is free");
+ } else {
+ GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Redstone");
+ }
+ return null;
+ }*/
+ if (aSlotIndex == 29) /*{
+ if (((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()).bUnbreakable) {
+ if (((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()).bUnbreakable) {
+ makeIndestructible(aPlayer);
+ }
+ else {
+
+ }
+ } else {
+ makeIndestructible(aPlayer);
+ }
+ return null;
+ }*/
+
+ {
+ ((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()).bUnbreakable = (!((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()).bUnbreakable);
+ blockStatus = ((GregtechMetaSafeBlock)this.mTileEntity.getMetaTileEntity()).bUnbreakable;
+ ownerUUID = ((GregtechMetaSafeBlock)this.mTileEntity.getMetaTileEntity()).ownerUUID;
+ //Utils.messagePlayer(aPlayer, "Is the safe locked? "+String.valueOf(((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()).bUnbreakable).toUpperCase());
+ /*if (aPlayer != null && aPlayer instanceof EntityPlayerMP && (((GregtechMetaSafeBlock)this.mTileEntity.getMetaTileEntity()).bUnbreakable != false)) {
+ UnbreakableBlockManager Xasda = new UnbreakableBlockManager();
+ Xasda.setmTileEntity((BaseMetaTileEntity) mTileEntity, aPlayer);
+ }
+ else {
+ UnbreakableBlockManager Xasda = new UnbreakableBlockManager();
+ Xasda.setmTileEntity((BaseMetaTileEntity) mTileEntity, aPlayer);
+ }*/
+ return null;
+ }
+
+
+ }
+ return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
+ }
+</