aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations
diff options
context:
space:
mode:
authorhuajijam <strhuaji@gmail.com>2019-01-30 19:01:07 +0800
committerGitHub <noreply@github.com>2019-01-30 19:01:07 +0800
commitd0e3b95db387194a5da4ff71d743a3ede6b42f5e (patch)
treeda5c64c420de4242ab1e23cbb74d8294843228b0 /src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations
parentf32773a4c5664c48b3ea832e22da9dda68120c38 (diff)
parent241df1134f16c6c9c54b198db97279d697de8c77 (diff)
downloadGT5-Unofficial-d0e3b95db387194a5da4ff71d743a3ede6b42f5e.tar.gz
GT5-Unofficial-d0e3b95db387194a5da4ff71d743a3ede6b42f5e.tar.bz2
GT5-Unofficial-d0e3b95db387194a5da4ff71d743a3ede6b42f5e.zip
update
update
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBreaker.java283
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_InputBattery.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_OutputBattery.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java216
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java182
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntityFluid.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaTreeFarmerStructural.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/CustomMetaTileBase.java60
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java37
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechDoubleFuelGeneratorBase.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java6
14 files changed, 773 insertions, 29 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBreaker.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBreaker.java
new file mode 100644
index 0000000000..e6bf4b8486
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBreaker.java
@@ -0,0 +1,283 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.Textures.BlockIcons;
+import gregtech.api.gui.GT_Container_4by4;
+import gregtech.api.gui.GT_GUIContainer_4by4;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.custom.power.GTPP_MTE_TieredMachineBlock;
+import ic2.api.item.ElectricItem;
+import ic2.api.item.IElectricItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class GT_MetaTileEntity_BasicBreaker extends GTPP_MTE_TieredMachineBlock {
+
+ public boolean mCharge = false;
+ public boolean mDecharge = false;
+ public int mBatteryCount = 0;
+ public int mChargeableCount = 0;
+ private long count = 0L;
+ private long mStored = 0L;
+ private long mMax = 0L;
+
+ public GT_MetaTileEntity_BasicBreaker(int aID, String aName, String aNameRegional, int aTier,
+ String aDescription, int aSlotCount) {
+ super(aID, aName, aNameRegional, aTier, aSlotCount, aDescription, new ITexture[0]);
+ }
+
+ public GT_MetaTileEntity_BasicBreaker(String aName, int aTier, String aDescription, ITexture[][][] aTextures,
+ int aSlotCount) {
+ super(aName, aTier, aSlotCount, aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_BasicBreaker(String aName, int aTier, String[] aDescription,
+ ITexture[][][] aTextures, int aSlotCount) {
+ super(aName, aTier, aSlotCount, aDescription, aTextures);
+ }
+
+ public String[] getDescription() {
+ String []s1 = super.getDescription();
+ s1 = new String[0];
+ return s1;
+ }
+
+ public ITexture[][][] getTextureSet(ITexture[] aTextures) {
+ ITexture[][][] rTextures = new ITexture[2][17][];
+
+ for (byte i = -1; i < 16; ++i) {
+ rTextures[0][i + 1] = new ITexture[]{BlockIcons.MACHINE_CASINGS[this.mTier][i + 1],
+ this.mInventory.length > 4
+ ? BlockIcons.OVERLAYS_ENERGY_IN_MULTI[Math.min(12, mTier)]
+ : BlockIcons.OVERLAYS_ENERGY_IN[Math.min(12, mTier)]};
+
+ rTextures[1][i + 1] = new ITexture[]{BlockIcons.MACHINE_CASINGS[this.mTier][i + 1],
+ this.mInventory.length > 4
+ ? BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[this.mTier]
+ : BlockIcons.OVERLAYS_ENERGY_OUT[this.mTier]};
+ }
+
+ return rTextures;
+ }
+
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex,
+ boolean aActive, boolean aRedstone) {
+ return this.mTextures[aSide == aFacing ? 1 : 0][aColorIndex + 1];
+ }
+
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_BasicBreaker(this.mName, this.mTier, this.mDescriptionArray, this.mTextures,
+ this.mInventory.length);
+ }
+
+ public boolean isSimpleMachine() {
+ return false;
+ }
+
+ public boolean isElectric() {
+ return true;
+ }
+
+ public boolean isValidSlot(int aIndex) {
+ return true;
+ }
+
+ public boolean isFacingValid(byte aFacing) {
+ return true;
+ }
+
+ public boolean isEnetInput() {
+ return true;
+ }
+
+ public boolean isEnetOutput() {
+ return true;
+ }
+
+ public boolean isInputFacing(byte aSide) {
+ return aSide != this.getBaseMetaTileEntity().getFrontFacing();
+ }
+
+ public boolean isOutputFacing(byte aSide) {
+ return aSide == this.getBaseMetaTileEntity().getFrontFacing();
+ }
+
+ public boolean isTeleporterCompatible() {
+ return false;
+ }
+
+ public long getMinimumStoredEU() {
+ return GT_Values.V[this.mTier] * 16L * 16;
+ }
+
+ public long maxEUStore() {
+ return GT_Values.V[this.mTier] * 64L * 16;
+ }
+
+ public long maxEUInput() {
+ return GT_Values.V[this.mTier] * 16;
+ }
+
+ public long maxEUOutput() {
+ return GT_Values.V[this.mTier];
+ }
+
+ public long maxAmperesIn() {
+ return (long) (1);
+ }
+
+ public long maxAmperesOut() {
+ return (long) 16;
+ }
+
+ public int rechargerSlotStartIndex() {
+ return 0;
+ }
+
+ public int dechargerSlotStartIndex() {
+ return 0;
+ }
+
+ public int rechargerSlotCount() {
+ return 0;
+ }
+
+ public int dechargerSlotCount() {
+ return 0;
+ }
+
+ public int getProgresstime() {
+ return (int) this.getBaseMetaTileEntity().getUniversalEnergyStored();
+ }
+
+ public int maxProgresstime() {
+ return (int) this.getBaseMetaTileEntity().getUniversalEnergyCapacity();
+ }
+
+ public boolean isAccessAllowed(EntityPlayer aPlayer) {
+ return true;
+ }
+
+ public void saveNBTData(NBTTagCompound aNBT) {
+ }
+
+ public void loadNBTData(NBTTagCompound aNBT) {
+ }
+
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
+ if (aBaseMetaTileEntity.isClientSide()) {
+ return true;
+ } else {
+ aBaseMetaTileEntity.openGUI(aPlayer);
+ return true;
+ }
+ }
+
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_Container_4by4(aPlayerInventory, aBaseMetaTileEntity);
+ }
+
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName());
+ }
+
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
+ super.onPostTick(aBaseMetaTileEntity, aTick);
+ if (aBaseMetaTileEntity.isServerSide()) {
+ /*this.mCharge = aBaseMetaTileEntity.getStoredEU() / 2L > aBaseMetaTileEntity.getEUCapacity() / 3L;
+ this.mDecharge = aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity() / 3L;
+ this.mBatteryCount = 0;
+ this.mChargeableCount = 0;
+ ItemStack[] arg3 = this.mInventory;
+ int arg4 = arg3.length;
+
+ for (int arg5 = 0; arg5 < arg4; ++arg5) {
+ ItemStack tStack = arg3[arg5];
+ if (GT_ModHandler.isElectricItem(tStack, this.mTier)) {
+ if (GT_ModHandler.isChargerItem(tStack)) {
+ ++this.mBatteryCount;
+ }
+
+ ++this.mChargeableCount;
+ }
+ }*/
+ }
+
+ }
+
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return false;
+ }
+
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return true;
+ }
+
+ public int getInventoryStackLimit() {
+ return 1;
+ }
+
+ public long[] getStoredEnergy() {
+ boolean scaleOverflow = false;
+ boolean storedOverflow = false;
+ long tScale = this.getBaseMetaTileEntity().getEUCapacity();
+ long tStored = this.getBaseMetaTileEntity().getStoredEU();
+ long tStep = 0L;
+ if (this.mInventory != null) {
+ ItemStack[] arg8 = this.mInventory;
+ int arg9 = arg8.length;
+
+ for (int arg10 = 0; arg10 < arg9; ++arg10) {
+ ItemStack aStack = arg8[arg10];
+ if (GT_ModHandler.isElectricItem(aStack)) {
+ if (aStack.getItem() instanceof GT_MetaBase_Item) {
+ Long[] stats = ((GT_MetaBase_Item) aStack.getItem()).getElectricStats(aStack);
+ if (stats != null) {
+ if (stats[0].longValue() > 4611686018427387903L) {
+ scaleOverflow = true;
+ }
+
+ tScale += stats[0].longValue();
+ tStep = ((GT_MetaBase_Item) aStack.getItem()).getRealCharge(aStack);
+ if (tStep > 4611686018427387903L) {
+ storedOverflow = true;
+ }
+
+ tStored += tStep;
+ }
+ } else if (aStack.getItem() instanceof IElectricItem) {
+ tStored += (long) ElectricItem.manager.getCharge(aStack);
+ tScale += (long) ((IElectricItem) aStack.getItem()).getMaxCharge(aStack);
+ }
+ }
+ }
+ }
+
+ if (scaleOverflow) {
+ tScale = Long.MAX_VALUE;
+ }
+
+ if (storedOverflow) {
+ tStored = Long.MAX_VALUE;
+ }
+
+ return new long[]{tStored, tScale};
+ }
+
+ public String[] getInfoData() {
+ return new String[]{};
+ }
+
+ public boolean isGivingInformation() {
+ return true;
+ }
+} \ No newline at end of file
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
index 57f8b722c3..01134817ae 100644
--- 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
@@ -51,8 +51,7 @@ GT_MetaTileEntity_Hatch {
}
return new String[]{
this.mDescription,
- "Capacity: " + mSlots + " slots",
- CORE.GT_Tooltip};
+ "Capacity: " + mSlots + " slots"};
}
@Override
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
index ba97cc38eb..8cb7c943c0 100644
--- 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
@@ -49,8 +49,7 @@ GT_MetaTileEntity_Hatch {
}
return new String[]{
this.mDescription,
- "Capacity: " + mSlots + " slots",
- CORE.GT_Tooltip};
+ "Capacity: " + mSlots + " slots"};
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java
new file mode 100644
index 0000000000..833c1bfcc0
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Input.java
@@ -0,0 +1,216 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
+
+import gregtech.api.enums.Textures.BlockIcons;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
+import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class GT_MetaTileEntity_SuperBus_Input extends GT_MetaTileEntity_Hatch_InputBus {
+ public GT_Recipe_Map mRecipeMap = null;
+
+ public GT_MetaTileEntity_SuperBus_Input(int aID, String aName, String aNameRegional, int aTier) {
+ super(aID, aName, aNameRegional, aTier);
+ }
+
+ public GT_MetaTileEntity_SuperBus_Input(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_SuperBus_Input(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aDescription, aTextures);
+ }
+
+ /**
+ * Returns a factor of 16 based on tier.
+ * @param aTier The tier of this bus.
+ * @return (1+ aTier) * 16
+ */
+ public static int getSlots(int aTier) {
+ return (1+ aTier) * 16;
+ }
+
+ public ITexture[] getTexturesActive(ITexture aBaseTexture) {
+ return new ITexture[]{aBaseTexture, new GT_RenderedTexture(BlockIcons.OVERLAY_PIPE_IN)};
+ }
+
+ public ITexture[] getTexturesInactive(ITexture aBaseTexture) {
+ return new ITexture[]{aBaseTexture, new GT_RenderedTexture(BlockIcons.OVERLAY_PIPE_IN)};
+ }
+
+ public boolean isSimpleMachine() {
+ return true;
+ }
+
+ public boolean isFacingValid(byte aFacing) {
+ return true;
+ }
+
+ public boolean isAccessAllowed(EntityPlayer aPlayer) {
+ return true;
+ }
+
+ public boolean isValidSlot(int aIndex) {
+ return true;
+ }
+
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_SuperBus_Input(this.mName, this.mTier, this.mDescriptionArray, this.mTextures);
+ }
+
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return null;
+ }
+
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return null;
+ }
+
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) {
+ if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.hasInventoryBeenModified()) {
+ this.fillStacksIntoFirstSlots();
+ }
+
+ }
+
+ public void updateSlots() {
+ for (int i = 0; i < this.mInventory.length; ++i) {
+ if (this.mInventory[i] != null && this.mInventory[i].stackSize <= 0) {
+ this.mInventory[i] = null;
+ }
+ }
+
+ this.fillStacksIntoFirstSlots();
+ }
+
+ protected void fillStacksIntoFirstSlots() {
+ for (int i = 0; i < this.mInventory.length; ++i) {
+ for (int j = i + 1; j < this.mInventory.length; ++j) {
+ if (this.mInventory[j] != null && (this.mInventory[i] == null
+ || GT_Utility.areStacksEqual(this.mInventory[i], this.mInventory[j]))) {
+ GT_Utility.moveStackFromSlotAToSlotB((IInventory) this.getBaseMetaTileEntity(), (IInventory) this.getBaseMetaTileEntity(), j, i, (byte) 64, (byte) 1, (byte) 64, (byte) 1);
+ }
+ }
+ }
+
+ }
+
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return aSide == this.getBaseMetaTileEntity().getFrontFacing();
+ }
+
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return aSide == this.getBaseMetaTileEntity().getFrontFacing()
+ && (this.mRecipeMap == null || this.mRecipeMap.containsInput(aStack));
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ }
+
+ @Override
+ public String[] getDescription() {
+ String[] aDesc = new String[] {
+ "Item Input for Multiblocks",
+ "This bus has no GUI, but can have items extracted",
+ ""+this.getSlots(this.mTier)+" Slots",
+ };
+ return aDesc;
+ }
+
+ @Override
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX,
+ float aY, float aZ) {
+ return super.onRightclick(aBaseMetaTileEntity, aPlayer, aSide, aX, aY, aZ);
+ }
+
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
+ if (aBaseMetaTileEntity.isClientSide()) {
+ return true;
+ } else {
+ //Logger.INFO("Trying to display Super Input Bus contents.");
+ displayBusContents(aPlayer);
+ return true;
+ }
+ }
+
+ public void displayBusContents(EntityPlayer aPlayer) {
+ String STRIP = "Item Array: ";
+ String aNameString = ItemUtils.getArrayStackNames(getRealInventory());
+ aNameString = aNameString.replace(STRIP, "");
+
+ String[] aNames;
+ if (aNameString.length() < 1) {
+ aNames = null;
+ }
+ else {
+ aNames = aNameString.split(",");
+ }
+
+ if (aNames == null || aNames.length <= 0) {
+ PlayerUtils.messagePlayer(aPlayer, "This Super Bus (I) is Empty. Total Slots: "+this.getSlots(this.mTier));
+ return;
+ }
+
+ PlayerUtils.messagePlayer(aPlayer, "This Super Bus (I) contains:");
+ for (String s : aNames) {
+ if (s.startsWith(" ")) {
+ s = s.substring(1);
+ }
+ //Logger.INFO("Trying to display Super Input Bus contents. "+s);
+ PlayerUtils.messagePlayer(aPlayer, s);
+ }
+ }
+
+ @Override
+ public int getMaxItemCount() {
+ // TODO Auto-generated method stub
+ return super.getMaxItemCount();
+ }
+
+ @Override
+ public int getSizeInventory() {
+ // TODO Auto-generated method stub
+ return super.getSizeInventory();
+ }
+
+ @Override
+ public ItemStack getStackInSlot(int aIndex) {
+ // TODO Auto-generated method stub
+ return super.getStackInSlot(aIndex);
+ }
+
+ @Override
+ public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) {
+ // TODO Auto-generated method stub
+ return super.canInsertItem(aIndex, aStack, aSide);
+ }
+
+ @Override
+ public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) {
+ // TODO Auto-generated method stub
+ return super.canExtractItem(aIndex, aStack, aSide);
+ }
+
+ @Override
+ public ItemStack[] getRealInventory() {
+ // TODO Auto-generated method stub
+ return super.getRealInventory();
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java
new file mode 100644
index 0000000000..d09b71ee35
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SuperBus_Output.java
@@ -0,0 +1,182 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
+
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+public class GT_MetaTileEntity_SuperBus_Output extends GT_MetaTileEntity_Hatch_OutputBus {
+ public GT_Recipe_Map mRecipeMap = null;
+
+ public GT_MetaTileEntity_SuperBus_Output(int aID, String aName, String aNameRegional, int aTier) {
+ super(aID, aName, aNameRegional, aTier);
+ }
+
+ public GT_MetaTileEntity_SuperBus_Output(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_SuperBus_Output(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aDescription, aTextures);
+ }
+
+ /**
+ * Returns a factor of 16 based on tier.
+ * @param aTier The tier of this bus.
+ * @return (1+ aTier) * 16
+ */
+ public static int getSlots(int aTier) {
+ return (1+ aTier) * 16;
+ }
+
+ public boolean isValidSlot(int aIndex) {
+ return true;
+ }
+
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_SuperBus_Output(this.mName, this.mTier, this.mDescriptionArray, this.mTextures);
+ }
+
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return null;
+ }
+
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return null;
+ }
+
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) {
+ if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.hasInventoryBeenModified()) {
+ this.fillStacksIntoFirstSlots();
+ }
+
+ }
+
+ public void updateSlots() {
+ for (int i = 0; i < this.mInventory.length; ++i) {
+ if (this.mInventory[i] != null && this.mInventory[i].stackSize <= 0) {
+ this.mInventory[i] = null;
+ }
+ }
+ this.fillStacksIntoFirstSlots();
+ }
+
+ protected void fillStacksIntoFirstSlots() {
+ for (int i = 0; i < this.mInventory.length; ++i) {
+ for (int j = i + 1; j < this.mInventory.length; ++j) {
+ if (this.mInventory[j] != null && (this.mInventory[i] == null
+ || GT_Utility.areStacksEqual(this.mInventory[i], this.mInventory[j]))) {
+ GT_Utility.moveStackFromSlotAToSlotB((IInventory) this.getBaseMetaTileEntity(), (IInventory) this.getBaseMetaTileEntity(), j, i, (byte) 64, (byte) 1, (byte) 64, (byte) 1);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ }
+
+ @Override
+ public String[] getDescription() {
+ String[] aDesc = new String[] {
+ "Item Output for Multiblocks",
+ "This bus has no GUI",
+ ""+this.getSlots(this.mTier)+" Slots",
+ };
+ return aDesc;
+ }
+
+ @Override
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX,
+ float aY, float aZ) {
+ return super.onRightclick(aBaseMetaTileEntity, aPlayer, aSide, aX, aY, aZ);
+ }
+
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
+ if (aBaseMetaTileEntity.isClientSide()) {
+ return true;
+ } else {
+ displayBusContents(aPlayer);
+ return true;
+ }
+ }
+
+ public void displayBusContents(EntityPlayer aPlayer) {
+ String STRIP = "Item Array: ";
+ String aNameString = ItemUtils.getArrayStackNames(getRealInventory());
+ aNameString = aNameString.replace(STRIP, "");
+
+ String[] aNames;
+ if (aNameString.length() < 1) {
+ aNames = null;
+ }
+ else {
+ aNames = aNameString.split(",");
+ }
+
+ if (aNames == null || aNames.length <= 0) {
+ PlayerUtils.messagePlayer(aPlayer, "This Super Bus (O) is Empty. Total Slots: "+this.getSlots(this.mTier));
+ return;
+ }
+
+ PlayerUtils.messagePlayer(aPlayer, "This Super Bus (O) contains:");
+ for (String s : aNames) {
+ if (s.startsWith(" ")) {
+ s = s.substring(1);
+ }
+ //Logger.INFO("Trying to display Super Output Bus contents. "+s);
+ PlayerUtils.messagePlayer(aPlayer, s);
+ }
+ }
+
+ @Override
+ public int getMaxItemCount() {
+ // TODO Auto-generated method stub
+ return super.getMaxItemCount();
+ }
+
+ @Override
+ public int getSizeInventory() {
+ // TODO Auto-generated method stub
+ return super.getSizeInventory();
+ }
+
+ @Override
+ public ItemStack getStackInSlot(int aIndex) {
+ // TODO Auto-generated method stub
+ return super.getStackInSlot(aIndex);
+ }
+
+ @Override
+ public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) {
+ // TODO Auto-generated method stub
+ return super.canInsertItem(aIndex, aStack, aSide);
+ }
+
+ @Override
+ public boolean canExtractItem(int aIndex, ItemStack aStack, int aSide) {
+ // TODO Auto-generated method stub
+ return super.canExtractItem(aIndex, aStack, aSide);
+ }
+
+ @Override
+ public ItemStack[] getRealInventory() {
+ // TODO Auto-generated method stub
+ return super.getRealInventory();
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntityFluid.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntityFluid.java
index 9eea6b4a28..f6056af87a 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntityFluid.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntityFluid.java
@@ -101,7 +101,7 @@ public class GregtechMetaPipeEntityFluid extends GT_MetaPipeEntity_Fluid {
EnumChatFormatting.BLUE + "Fluid Capacity: %%%" + (mCapacity * 20) + "%%% L/sec" + EnumChatFormatting.GRAY,
EnumChatFormatting.RED + "Heat Limit: %%%" + mHeatResistance + "%%% K" + EnumChatFormatting.GRAY,
EnumChatFormatting.DARK_GREEN + "Gas Proof: " + (this.mGasProof) + EnumChatFormatting.GRAY,
- CORE.GT_Tooltip
+ //CORE.GT_Tooltip
};
}
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java
index c69ecec114..98722a2b96 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java
@@ -59,7 +59,7 @@ public class GregtechMetaPipeEntity_Cable extends GT_MetaPipeEntity_Cable implem
"Max Voltage: %%%" + EnumChatFormatting.GREEN + mVoltage + " (" + VN[GT_Utility.getTier(mVoltage)] + ")" + EnumChatFormatting.GRAY,
"Max Amperage: %%%" + EnumChatFormatting.YELLOW + mAmperage + EnumChatFormatting.GRAY,
"Loss/Meter/Ampere: %%%" + EnumChatFormatting.RED + mCableLossPerMeter + EnumChatFormatting.GRAY + "%%% EU-Volt",
- CORE.GT_Tooltip
+ //CORE.GT_Tooltip
};
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaTreeFarmerStructural.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaTreeFarmerStructural.java
index 4a496c5002..d05a254bf7 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaTreeFarmerStructural.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaTreeFarmerStructural.java
@@ -16,7 +16,7 @@ extends GregtechMetaTreeFarmerBase {
@Override
public String[] getDescription() {
- return new String[] {this.mDescription, CORE.GT_Tooltip};
+ return new String[] {this.mDescription};
}
public GregtechMetaTreeFarmerStructural(final int aID, final String aName, final String aNameRegional, final int aTier) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/CustomMetaTileBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/CustomMetaTileBase.java
new file mode 100644
index 0000000000..422837fa46
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/CustomMetaTileBase.java
@@ -0,0 +1,60 @@
+package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base;
+
+import java.util.Locale;
+
+import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.util.GT_LanguageManager;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
+import net.minecraft.item.ItemStack;
+
+public abstract class CustomMetaTileBase extends MetaTileEntity {
+
+ public CustomMetaTileBase(int aID, String aBasicName, String aRegionalName, int aInvSlotCount) {
+ super(aID, aBasicName, aRegionalName, aInvSlotCount);
+ GT_LanguageManager.addStringLocalization("gtpp.blockmachines." + aBasicName.replaceAll(" ", "_").toLowerCase(Locale.ENGLISH) + ".name", aRegionalName);
+ this.setBaseMetaTileEntity(Meta_GT_Proxy.constructBaseMetaTileEntity());
+ this.getBaseMetaTileEntity().setMetaTileID((short) aID);
+ }
+
+ public CustomMetaTileBase(String aName, int aInvSlotCount) {
+ super(aName, aInvSlotCount);
+ }
+
+ public ItemStack getStackForm(long aAmount) {
+ return new ItemStack(Meta_GT_Proxy.sBlockMachines, (int) aAmount, this.getBaseMetaTileEntity().getMetaTileID());
+ }
+
+ public String getLocalName() {
+ return GT_LanguageManager.getTranslation("gtpp.blockmachines." + this.mName + ".name");
+ }
+
+ /**
+ * This determines the BaseMetaTileEntity belonging to this MetaTileEntity by using the Meta ID of the Block itself.
+ * <p/>
+ * 0 = BaseMetaTileEntity, Wrench lvl 0 to dismantlee
+ * 1 = BaseMetaTileEntity, Wrench lvl 1 to dismantle
+ * 2 = BaseMetaTileEntity, Wrench lvl 2 to dismantle
+ * 3 = BaseMetaTileEntity, Wrench lvl 3 to dismantle
+ * 4 = BaseMetaPipeEntity, Wrench lvl 0 to dismantle
+ * 5 = BaseMetaPipeEntity, Wrench lvl 1 to dismantle
+ * 6 = BaseMetaPipeEntity, Wrench lvl 2 to dismantle
+ * 7 = BaseMetaPipeEntity, Wrench lvl 3 to dismantle
+ * 8 = BaseMetaPipeEntity, Cutter lvl 0 to dismantle
+ * 9 = BaseMetaPipeEntity, Cutter lvl 1 to dismantle
+ * 10 = BaseMetaPipeEntity, Cutter lvl 2 to dismantle
+ * 11 = BaseMetaPipeEntity, Cutter lvl 3 to dismantle
+ *
+ * == Reserved for Alk now
+ *
+ * 12 = BaseMetaPipeEntity, Wrench lvl 0 to dismantle
+ * 13 = BaseMetaPipeEntity, Wrench lvl 1 to dismantle
+ * 14 = BaseMetaPipeEntity, Wrench lvl 2 to dismantle
+ * 15 = BaseMetaPipeEntity, Wrench lvl 3 to dismantle
+ */
+ @Override
+ public byte getTileEntityBaseType() {
+ return 12;
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java
index 4140617fcf..c9201471a4 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTileEntity.java
@@ -63,7 +63,7 @@ public abstract class GregtechMetaTileEntity extends MetaTileEntity {
@Override
public String[] getDescription() {
- return new String[] { this.mDescription, CORE.GT_Tooltip };
+ return new String[] { this.mDescription };
}
/**
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java
index df7e8cf373..ccf31673e7 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaTransformerHiAmp.java
@@ -85,7 +85,7 @@ public class GregtechMetaTransformerHiAmp extends GT_MetaTileEntity_Transformer
@Override
public String[] getDescription() {
- return new String[] { this.mDescription, "Accepts 4A and outputs 16A", CORE.GT_Tooltip };
+ return new String[] { this.mDescription, "Accepts 4A and outputs 16A"};
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
index bb822ec816..41ba313b0e 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java
@@ -295,15 +295,13 @@ GT_MetaTileEntity_MultiBlockBase {
aRequiresCoreModule,
aRequiresMuffler,
getPollutionTooltip(),
- getMachineTooltip(),
- CORE.GT_Tooltip};
+ getMachineTooltip()};
}
else {
z = new String[] {
aRequiresMaint,
aRequiresCoreModule,
- getMachineTooltip(),
- CORE.GT_Tooltip};
+ getMachineTooltip(),};
}
int a2, a3;
@@ -1508,28 +1506,37 @@ GT_MetaTileEntity_MultiBlockBase {
public abstract boolean checkMultiblock(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack);
- public boolean isValidBlockForStructure(IGregTechTileEntity aBaseMetaTileEntity, int aCasingID, boolean canBeHatch, Block aFoundBlock, int aFoundMeta, Block aExpectedBlock, int aExpectedMeta) {
- boolean isHatch = false;
+ public boolean isValidBlockForStructure(IGregTechTileEntity aBaseMetaTileEntity, int aCasingID, boolean canBeHatch,
+ Block aFoundBlock, int aFoundMeta, Block aExpectedBlock, int aExpectedMeta) {
+ boolean isHatch = false;
if (aBaseMetaTileEntity != null) {
isHatch = this.addToMachineList(aBaseMetaTileEntity, aCasingID);
if (isHatch) {
return true;
}
+ else {
+ //Found a controller
+ if (aFoundMeta > 0 && aFoundMeta < 1000 && aFoundBlock == GregTech_API.sBlockMachines) {
+ return true;
+ }
+ }
}
if (!isHatch) {
- if (aFoundBlock != aExpectedBlock || aFoundMeta != aExpectedMeta) {
+ if (aFoundBlock == aExpectedBlock && aFoundMeta == aExpectedMeta) {
+ return true;
+ }
+ else if (aFoundBlock != aExpectedBlock) {
+ Logger.INFO("A1 - Found: "+aFoundBlock.getLocalizedName()+", Expected: "+aExpectedBlock.getLocalizedName());
return false;
}
- else {
- return true;
+ else if (aFoundMeta != aExpectedMeta) {
+ Logger.INFO("A2");
+ return false;
}
+
}
- else {
- return true;
- }
-
-
-
+ Logger.INFO("A3");
+ return false;
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechDoubleFuelGeneratorBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechDoubleFuelGeneratorBase.java
index f6dc8547cc..287d2105ac 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechDoubleFuelGeneratorBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechDoubleFuelGeneratorBase.java
@@ -58,7 +58,7 @@ public abstract class GregtechDoubleFuelGeneratorBase extends GT_MetaTileEntity_
@Override
public String[] getDescription() {
- return new String[]{this.mDescription, "Fuel Efficiency: " + this.getEfficiency() + "%", CORE.GT_Tooltip};
+ return new String[]{this.mDescription, "Fuel Efficiency: " + this.getEfficiency() + "%"};
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
index c1915fb14a..a88d6a4832 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
@@ -65,13 +65,11 @@ public abstract class GregtechRocketFuelGeneratorBase extends GT_MetaTileEntity_
return new String[]{
this.mDescription,
"Fuel Efficiency: " + this.getEfficiency()*2 + "%",
- aPollution,
- CORE.GT_Tooltip};
+ aPollution};
}
return new String[]{
this.mDescription,
- "Fuel Efficiency: " + this.getEfficiency()*2 + "%",
- CORE.GT_Tooltip};
+ "Fuel Efficiency: " + this.getEfficiency()*2 + "%"};
}