aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/api
diff options
context:
space:
mode:
authorAlkalus <draknyte1@hotmail.com>2017-11-15 03:48:31 +1000
committerAlkalus <draknyte1@hotmail.com>2017-11-15 03:48:31 +1000
commitf5f5d246723fce0aaa01bf72d47bb2120d9eb5d1 (patch)
tree7c2e6ce6d96bf58fd7e1af1a91ed3a1274b20dc2 /src/Java/gtPlusPlus/xmod/gregtech/api
parent5c2b131a29c3ea0871ecbd400635ca0be3ebdfbe (diff)
downloadGT5-Unofficial-f5f5d246723fce0aaa01bf72d47bb2120d9eb5d1.tar.gz
GT5-Unofficial-f5f5d246723fce0aaa01bf72d47bb2120d9eb5d1.tar.bz2
GT5-Unofficial-f5f5d246723fce0aaa01bf72d47bb2120d9eb5d1.zip
+ Added custom Hatch textures.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/api')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBattery.java167
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBattery.java153
2 files changed, 320 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBattery.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBattery.java
new file mode 100644
index 0000000000..d0201c64d1
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBattery.java
@@ -0,0 +1,167 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
+
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
+import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.xmod.gregtech.api.gui.hatches.charge.CONTAINER_Electric_2by2;
+import gtPlusPlus.xmod.gregtech.api.gui.hatches.charge.CONTAINER_Electric_4by4;
+import gtPlusPlus.xmod.gregtech.api.gui.hatches.charge.GUI_Electric_2by2;
+import gtPlusPlus.xmod.gregtech.api.gui.hatches.charge.GUI_Electric_4by4;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+
+public class GT_MetaTileEntity_Hatch_InputBattery
+ extends
+ GT_MetaTileEntity_Hatch {
+ public GT_Recipe_Map mRecipeMap = null;
+
+ public GT_MetaTileEntity_Hatch_InputBattery(int aID, String aName,
+ String aNameRegional, int aTier) {
+ super(aID, aName, aNameRegional, aTier, getSlots(aTier),
+ new String[]{"Chargeable Item Bus for Multiblocks",
+ "Capacity: " + getSlots(aTier) + " stack"
+ + (getSlots(aTier) >= 2 ? "s" : "")});
+ }
+
+ public GT_MetaTileEntity_Hatch_InputBattery(String aName, int aTier,
+ String aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier,
+ aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 4 : 16,
+ aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_Hatch_InputBattery(String aName, int aTier,
+ String[] aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier,
+ aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 4 : 16,
+ aDescription, aTextures);
+ }
+
+ @Override
+ public ITexture[] getTexturesActive(ITexture aBaseTexture) {
+ return new ITexture[]{aBaseTexture,
+ new GT_RenderedTexture(TexturesGtBlock.Overlay_Hatch_Charger)};
+ }
+
+ @Override
+ public ITexture[] getTexturesInactive(ITexture aBaseTexture) {
+ return new ITexture[]{aBaseTexture,
+ new GT_RenderedTexture(TexturesGtBlock.Overlay_Hatch_Charger)};
+ }
+
+ @Override
+ public boolean isSimpleMachine() {
+ return true;
+ }
+
+ @Override
+ public boolean isFacingValid(byte aFacing) {
+ return true;
+ }
+
+ @Override
+ public boolean isAccessAllowed(EntityPlayer aPlayer) {
+ return true;
+ }
+
+ @Override
+ public boolean isValidSlot(int aIndex) {
+ return true;
+ }
+
+ @Override
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_Hatch_InputBattery(mName, mTier,
+ mDescriptionArray, mTextures);
+ }
+
+ @Override
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity,
+ EntityPlayer aPlayer) {
+ if (aBaseMetaTileEntity.isClientSide())
+ return true;
+ aBaseMetaTileEntity.openGUI(aPlayer);
+ return true;
+ }
+
+ @Override
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory,
+ IGregTechTileEntity aBaseMetaTileEntity) {
+ switch (mTier) {
+ case 2 :
+ return new CONTAINER_Electric_2by2(aPlayerInventory,
+ aBaseMetaTileEntity);
+ case 4 :
+ return new CONTAINER_Electric_4by4(aPlayerInventory,
+ aBaseMetaTileEntity);
+ default :
+ return new CONTAINER_Electric_4by4(aPlayerInventory,
+ aBaseMetaTileEntity);
+ }
+ }
+
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory,
+ IGregTechTileEntity aBaseMetaTileEntity) {
+ switch (mInventory.length) {
+ case 2 :
+ return new GUI_Electric_2by2(aPlayerInventory,
+ aBaseMetaTileEntity, "Charging Bus");
+ case 4 :
+ return new GUI_Electric_4by4(aPlayerInventory,
+ aBaseMetaTileEntity, "Charging Bus");
+ default :
+ return new GUI_Electric_4by4(aPlayerInventory,
+ aBaseMetaTileEntity, "Charging Bus");
+ }
+ }
+
+ @Override
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity,
+ long aTimer) {
+ if (aBaseMetaTileEntity.isServerSide()
+ && aBaseMetaTileEntity.hasInventoryBeenModified()) {
+ fillStacksIntoFirstSlots();
+ }
+ }
+
+ public void updateSlots() {
+ for (int i = 0; i < mInventory.length; i++)
+ if (mInventory[i] != null && mInventory[i].stackSize <= 0)
+ mInventory[i] = null;
+ fillStacksIntoFirstSlots();
+ }
+
+ protected void fillStacksIntoFirstSlots() {
+ for (int i = 0; i < mInventory.length; i++)
+ for (int j = i + 1; j < mInventory.length; j++)
+ if (mInventory[j] != null
+ && (mInventory[i] == null || GT_Utility.areStacksEqual(
+ mInventory[i], mInventory[j]))) {
+ GT_Utility.moveStackFromSlotAToSlotB(
+ getBaseMetaTileEntity(), getBaseMetaTileEntity(), j,
+ i, (byte) 64, (byte) 1, (byte) 64, (byte) 1);
+ }
+ }
+
+ @Override
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity,
+ int aIndex, byte aSide, ItemStack aStack) {
+ return aSide == getBaseMetaTileEntity().getFrontFacing()
+ && (mRecipeMap == null || mRecipeMap.containsInput(aStack));
+ }
+
+ @Override
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity,
+ int aIndex, byte aSide, ItemStack aStack) {
+ return aSide == getBaseMetaTileEntity().getFrontFacing()
+ && (mRecipeMap == null || mRecipeMap.containsInput(aStack));
+ }
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBattery.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBattery.java
new file mode 100644
index 0000000000..62fef4dac3
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBattery.java
@@ -0,0 +1,153 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
+
+import gregtech.api.enums.Textures;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
+import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.xmod.gregtech.api.gui.hatches.charge.CONTAINER_Electric_2by2;
+import gtPlusPlus.xmod.gregtech.api.gui.hatches.charge.CONTAINER_Electric_4by4;
+import gtPlusPlus.xmod.gregtech.api.gui.hatches.charge.GUI_Electric_2by2;
+import gtPlusPlus.xmod.gregtech.api.gui.hatches.charge.GUI_Electric_4by4;
+import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+
+public class GT_MetaTileEntity_Hatch_OutputBattery
+ extends
+ GT_MetaTileEntity_Hatch {
+ public GT_MetaTileEntity_Hatch_OutputBattery(int aID, String aName,
+ String aNameRegional, int aTier) {
+ super(aID, aName, aNameRegional, aTier, getSlots(aTier),
+ new String[]{"Dischargeable Item Bus for Multiblocks",
+ "Capacity: " + getSlots(aTier) + " stack"
+ + (getSlots(aTier) >= 2 ? "s" : "")});
+ }
+
+ public GT_MetaTileEntity_Hatch_OutputBattery(String aName, int aTier,
+ String aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier,
+ aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 9 : 16,
+ aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_Hatch_OutputBattery(String aName, int aTier,
+ String[] aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier,
+ aTier < 1 ? 1 : aTier == 1 ? 4 : aTier == 2 ? 9 : 16,
+ aDescription, aTextures);
+ }
+
+ @Override
+ public ITexture[] getTexturesActive(ITexture aBaseTexture) {
+ return new ITexture[]{aBaseTexture,
+ new GT_RenderedTexture(TexturesGtBlock.Overlay_Hatch_Discharger)};
+ }
+
+ @Override
+ public ITexture[] getTexturesInactive(ITexture aBaseTexture) {
+ return new ITexture[]{aBaseTexture,
+ new GT_RenderedTexture(TexturesGtBlock.Overlay_Hatch_Discharger)};
+ }
+
+ @Override
+ public boolean isSimpleMachine() {
+ return true;
+ }
+
+ @Override
+ public boolean isFacingValid(byte aFacing) {
+ return true;
+ }
+
+ @Override
+ public boolean isAccessAllowed(EntityPlayer aPlayer) {
+ return true;
+ }
+
+ @Override
+ public boolean isValidSlot(int aIndex) {
+ return true;
+ }
+
+ @Override
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_Hatch_OutputBattery(mName, mTier,
+ mDescriptionArray, mTextures);
+ }
+
+ @Override
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity,
+ EntityPlayer aPlayer) {
+ if (aBaseMetaTileEntity.isClientSide())
+ return true;
+ aBaseMetaTileEntity.openGUI(aPlayer);
+ return true;
+ }
+
+ @Override
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory,
+ IGregTechTileEntity aBaseMetaTileEntity) {
+ switch (mTier) {
+ case 2 :
+ return new CONTAINER_Electric_2by2(aPlayerInventory,
+ aBaseMetaTileEntity);
+ case 4 :
+ return new CONTAINER_Electric_4by4(aPlayerInventory,
+ aBaseMetaTileEntity);
+ default :
+ return new CONTAINER_Electric_4by4(aPlayerInventory,
+ aBaseMetaTileEntity);
+ }
+ }
+
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory,
+ IGregTechTileEntity aBaseMetaTileEntity) {
+ switch (mTier) {
+ case 2 :
+ return new GUI_Electric_2by2(aPlayerInventory,
+ aBaseMetaTileEntity, "Discharging Bus");
+ case 4 :
+ return new GUI_Electric_4by4(aPlayerInventory,
+ aBaseMetaTileEntity, "Discharging Bus");
+ default :
+ return new GUI_Electric_4by4(aPlayerInventory,
+ aBaseMetaTileEntity, "Discharging Bus");
+ }
+ }
+
+ @Override
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity,
+ int aIndex, byte aSide, ItemStack aStack) {
+ return aSide == aBaseMetaTileEntity.getFrontFacing();
+ }
+
+ @Override
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity,
+ int aIndex, byte aSide, ItemStack aStack) {
+ return aSide == aBaseMetaTileEntity.getFrontFacing();
+ }
+
+ public void updateSlots() {
+ for (int i = 0; i < mInventory.length; i++)
+ if (mInventory[i] != null && mInventory[i].stackSize <= 0)
+ mInventory[i] = null;
+ fillStacksIntoFirstSlots();
+ }
+
+ protected void fillStacksIntoFirstSlots() {
+ for (int i = 0; i < mInventory.length; i++)
+ for (int j = i + 1; j < mInventory.length; j++)
+ if (mInventory[j] != null
+ && (mInventory[i] == null || GT_Utility.areStacksEqual(
+ mInventory[i], mInventory[j]))) {
+ GT_Utility.moveStackFromSlotAToSlotB(
+ getBaseMetaTileEntity(), getBaseMetaTileEntity(), j,
+ i, (byte) 64, (byte) 1, (byte) 64, (byte) 1);
+ }
+ }
+}