aboutsummaryrefslogtreecommitdiff
path: root/src/Java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java')
-rw-r--r--src/Java/gtPlusPlus/GTplusplus.java8
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_ThreadedSuperBuffer.java86
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/gui/GUI_ThreadedSuperBuffer.java32
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java417
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/objects/GregtechBufferThread.java242
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedChestBuffer.java75
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedSuperBuffer.java55
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechThreadedBuffers.java165
9 files changed, 119 insertions, 967 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java
index a11f693514..fdf4ea0712 100644
--- a/src/Java/gtPlusPlus/GTplusplus.java
+++ b/src/Java/gtPlusPlus/GTplusplus.java
@@ -44,7 +44,6 @@ import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.core.util.sys.SystemUtils;
import gtPlusPlus.plugin.manager.Core_Manager;
-import gtPlusPlus.xmod.gregtech.api.objects.GregtechBufferThread;
import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools;
@@ -251,13 +250,6 @@ public class GTplusplus implements ActionListener {
final FMLServerStoppingEvent event
) {
Core_Manager.serverStop();
- if (GregtechBufferThread.mBufferThreadAllocation.size() > 0) {
- for (GregtechBufferThread i : GregtechBufferThread.mBufferThreadAllocation.values()) {
- i.destroy();
- }
- SystemUtils.invokeGC();
- }
-
}
@Override
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_ThreadedSuperBuffer.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_ThreadedSuperBuffer.java
deleted file mode 100644
index 265742e5ad..0000000000
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_ThreadedSuperBuffer.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package gtPlusPlus.xmod.gregtech.api.gui;
-
-import gregtech.api.util.GT_Utility;
-
-import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_ThreadedBuffer;
-import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_ThreadedChestBuffer;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.inventory.Slot;
-import net.minecraft.inventory.IInventory;
-import gregtech.api.gui.GT_Slot_Holo;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import net.minecraft.entity.player.InventoryPlayer;
-import gregtech.api.gui.GT_ContainerMetaTile_Machine;
-
-public class CONTAINER_ThreadedSuperBuffer extends GT_ContainerMetaTile_Machine {
-
- protected int cacheTime = 0;
-
- public CONTAINER_ThreadedSuperBuffer(final InventoryPlayer aInventoryPlayer, final IGregTechTileEntity aTileEntity) {
- super(aInventoryPlayer, aTileEntity);
- cacheTime = ((GT_MetaTileEntity_ThreadedBuffer)aTileEntity.getMetaTileEntity()).mThreadTimeLeft;
- }
-
- public void addSlots(final InventoryPlayer aInventoryPlayer) {
- this.addSlotToContainer((Slot) new GT_Slot_Holo((IInventory) this.mTileEntity, 256, 8, 63, false, true, 1));
- this.addSlotToContainer((Slot) new GT_Slot_Holo((IInventory) this.mTileEntity, 256, 26, 63, false, true, 1));
- this.addSlotToContainer((Slot) new GT_Slot_Holo((IInventory) this.mTileEntity, 256, 44, 63, false, true, 1));
- }
-
- public ItemStack slotClick(final int aSlotIndex, final int aMouseclick, final int aShifthold,
- final EntityPlayer aPlayer) {
- if (aSlotIndex < 0) {
- return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
- }
- final Slot tSlot = (Slot) this.inventorySlots.get(aSlotIndex);
- if (tSlot != null) {
- if (this.mTileEntity.getMetaTileEntity() == null) {
- return null;
- }
- if (aSlotIndex == 0) {
- ((GT_MetaTileEntity_ThreadedChestBuffer) this.mTileEntity
- .getMetaTileEntity()).bOutput = !((GT_MetaTileEntity_ThreadedChestBuffer) this.mTileEntity
- .getMetaTileEntity()).bOutput;
- if (((GT_MetaTileEntity_ThreadedChestBuffer) this.mTileEntity.getMetaTileEntity()).bOutput) {
- GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside");
- } else {
- GT_Utility.sendChatToPlayer(aPlayer, "Don't emit Energy");
- }
- return null;
- }
- if (aSlotIndex == 1) {
- ((GT_MetaTileEntity_ThreadedChestBuffer) this.mTileEntity
- .getMetaTileEntity()).bRedstoneIfFull = !((GT_MetaTileEntity_ThreadedChestBuffer) this.mTileEntity
- .getMetaTileEntity()).bRedstoneIfFull;
- if (((GT_MetaTileEntity_ThreadedChestBuffer) 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 == 2) {
- ((GT_MetaTileEntity_ThreadedChestBuffer) this.mTileEntity
- .getMetaTileEntity()).bInvert = !((GT_MetaTileEntity_ThreadedChestBuffer) this.mTileEntity
- .getMetaTileEntity()).bInvert;
- if (((GT_MetaTileEntity_ThreadedChestBuffer) this.mTileEntity.getMetaTileEntity()).bInvert) {
- GT_Utility.sendChatToPlayer(aPlayer, "Invert Redstone");
- } else {
- GT_Utility.sendChatToPlayer(aPlayer, "Don't invert Redstone");
- }
- return null;
- }
- }
- return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer);
- }
-
- public int getSlotCount() {
- return 0;
- }
-
- public int getShiftClickSlotCount() {
- return 0;
- }
-} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/GUI_ThreadedSuperBuffer.java b/src/Java/gtPlusPlus/xmod/gregtech/api/gui/GUI_ThreadedSuperBuffer.java
deleted file mode 100644
index 2ca0b25e23..0000000000
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/gui/GUI_ThreadedSuperBuffer.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package gtPlusPlus.xmod.gregtech.api.gui;
-
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import net.minecraft.entity.player.InventoryPlayer;
-import gregtech.api.gui.GT_GUIContainerMetaTile_Machine;
-
-public class GUI_ThreadedSuperBuffer extends GT_GUIContainerMetaTile_Machine {
-
- int cacheTime = 0;
-
- public GUI_ThreadedSuperBuffer(final InventoryPlayer aInventoryPlayer, final IGregTechTileEntity aTileEntity) {
- super(new CONTAINER_ThreadedSuperBuffer(aInventoryPlayer, aTileEntity), "gregtech:textures/gui/SuperBuffer.png");
- }
-
- private void updateVars(){
- this.cacheTime = ((CONTAINER_ThreadedSuperBuffer)this.mContainer).cacheTime;
- }
-
- @Override
- protected void drawGuiContainerForegroundLayer(final int par1, final int par2){
- this.updateVars();
- this.fontRendererObj.drawString("Time Remaining: "+cacheTime, 76, 61, 4210752);
- }
-
- @Override
- protected void drawGuiContainerBackgroundLayer(final float par1, final int par2, final int par3) {
- super.drawGuiContainerBackgroundLayer(par1, par2, par3);
- final int x = (this.width - this.xSize) / 2;
- final int y = (this.height - this.ySize) / 2;
- this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize);
- }
-} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java
deleted file mode 100644
index 3e6d2f5d13..0000000000
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java
+++ /dev/null
@@ -1,417 +0,0 @@
-package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.entity.player.EntityPlayer;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.util.GT_Utility;
-
-import gtPlusPlus.api.objects.minecraft.BlockPos;
-import gtPlusPlus.core.util.data.ArrayUtils;
-import gtPlusPlus.xmod.gregtech.api.objects.GregtechBufferThread;
-
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Buffer;
-import gregtech.api.interfaces.IIconContainer;
-import gregtech.api.objects.GT_RenderedTexture;
-import gregtech.api.enums.Textures;
-import gregtech.api.interfaces.ITexture;
-
-public abstract class GT_MetaTileEntity_ThreadedBuffer extends GT_MetaTileEntity_Buffer {
-
- protected GregtechBufferThread mLogicThread;
- protected BlockPos mPos;
- public final ItemStack[] mInventorySynchro;
- public int mThreadTimeLeft = 0;
-
- public GT_MetaTileEntity_ThreadedBuffer(final int aID, final String aName, final String aNameRegional, final int aTier,
- final int aInvSlotCount, final String aDescription) {
- super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription);
- this.bOutput = false;
- this.bRedstoneIfFull = false;
- this.bInvert = false;
- this.mSuccess = 0;
- this.mTargetStackSize = 0;
- this.mInventorySynchro = new ItemStack[aInvSlotCount];
- }
-
- public GT_MetaTileEntity_ThreadedBuffer(final int aID, final String aName, final String aNameRegional, final int aTier,
- final int aInvSlotCount, final String[] aDescription) {
- super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription[0]);
- this.bOutput = false;
- this.bRedstoneIfFull = false;
- this.bInvert = false;
- this.mSuccess = 0;
- this.mTargetStackSize = 0;
- this.mInventorySynchro = new ItemStack[aInvSlotCount];
- }
-
- public GT_MetaTileEntity_ThreadedBuffer(final String aName, final int aTier, final int aInvSlotCount,
- final String aDescription, final ITexture[][][] aTextures) {
- super(aName, aTier, aInvSlotCount, aDescription, aTextures);
- this.bOutput = false;
- this.bRedstoneIfFull = false;
- this.bInvert = false;
- this.mSuccess = 0;
- this.mTargetStackSize = 0;
- this.mInventorySynchro = new ItemStack[aInvSlotCount];
- }
-
- public GT_MetaTileEntity_ThreadedBuffer(final String aName, final int aTier, final int aInvSlotCount,
- final String[] aDescription, final ITexture[][][] aTextures) {
- super(aName, aTier, aInvSlotCount, aDescription[0], aTextures);
- this.bOutput = false;
- this.bRedstoneIfFull = false;
- this.bInvert = false;
- this.mSuccess = 0;
- this.mTargetStackSize = 0;
- this.mInventorySynchro = new ItemStack[aInvSlotCount];
- }
-
- public synchronized final GregtechBufferThread getLogicThread() {
- if (mLogicThread != null) {
- return mLogicThread;
- }
- else {
- return this.mLogicThread = GregtechBufferThread.getBufferThread(mPos);
- }
- }
-
- public ITexture[][][] getTextureSet(final ITexture[] aTextures) {
- final ITexture[][][] rTextures = new ITexture[6][17][];
- final ITexture tIcon = this.getOverlayIcon();
- final ITexture tOut = (ITexture) new GT_RenderedTexture((IIconContainer) Textures.BlockIcons.OVERLAY_PIPE_OUT);
- final ITexture tUp = (ITexture) new GT_RenderedTexture((IIconContainer) Textures.BlockIcons.ARROW_UP);
- final ITexture tDown = (ITexture) new GT_RenderedTexture((IIconContainer) Textures.BlockIcons.ARROW_DOWN);
- final ITexture tLeft = (ITexture) new GT_RenderedTexture((IIconContainer) Textures.BlockIcons.ARROW_LEFT);
- final ITexture tRight = (ITexture) new GT_RenderedTexture((IIconContainer) Textures.BlockIcons.ARROW_RIGHT);
- for (byte i = -1; i < 16; ++i) {
- rTextures[0][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[this.mTier][i + 1], tOut};
- rTextures[1][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[this.mTier][i + 1], tRight, tIcon};
- rTextures[2][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[this.mTier][i + 1], tDown, tIcon};
- rTextures[3][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[this.mTier][i + 1], tLeft, tIcon};
- rTextures[4][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[this.mTier][i + 1], tUp, tIcon};
- rTextures[5][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[this.mTier][i + 1], tIcon};
- }
- return rTextures;
- }
-
- public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing,
- final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
- if (aSide == aFacing) {
- return this.mTextures[5][aColorIndex + 1];
- }
- if (GT_Utility.getOppositeSide((int) aSide) == aFacing) {
- return this.mTextures[0][aColorIndex + 1];
- }
- Label_0356 : {
- switch (aFacing) {
- case 0 : {
- return this.mTextures[4][aColorIndex + 1];
- }
- case 1 : {
- return this.mTextures[2][aColorIndex + 1];
- }
- case 2 : {
- switch (aSide) {
- case 0 : {
- return this.mTextures[2][aColorIndex + 1];
- }
- case 1 : {
- return this.mTextures[2][aColorIndex + 1];
- }
- case 4 : {
- return this.mTextures[1][aColorIndex + 1];
- }
- case 5 : {
- return this.mTextures[3][aColorIndex + 1];
- }
- default : {
- break Label_0356;
- }
- }
- }
- case 3 : {
- switch (aSide) {
- case 0 : {
- return this.mTextures[4][aColorIndex + 1];
- }
- case 1 : {
- return this.mTextures[4][aColorIndex + 1];
- }
- case 4 : {
- return this.mTextures[3][aColorIndex + 1];
- }
- case 5 : {
- return this.mTextures[1][aColorIndex + 1];
- }
- default : {
- break Label_0356;
- }
- }
- }
- case 4 : {
- switch (aSide) {
- case 0 : {
- return this.mTextures[3][aColorIndex + 1];
- }
- case 1 : {
- return this.mTextures[1][aColorIndex + 1];
- }
- case 2 : {
- return this.mTextures[3][aColorIndex + 1];
- }
- case 3 : {
- return this.mTextures[1][aColorIndex + 1];
- }
- default : {
- break Label_0356;
- }
- }
- }
- case 5 : {
- switch (aSide) {
- case 0 : {
- return this.mTextures[1][aColorIndex + 1];
- }
- case 1 : {
- return this.mTextures[3][aColorIndex + 1];
- }
- case 2 : {
- return this.mTextures[1][aColorIndex + 1];
- }
- case 3 : {
- return this.mTextures[3][aColorIndex + 1];
- }
- default : {
- break Label_0356;
- }
- }
- }
- }
- }
- return this.mTextures[5][aColorIndex + 1];
- }
-
- public boolean isSimpleMachine() {
- return false;
- }
-
- public boolean isValidSlot(final int aIndex) {
- return aIndex < this.mInventorySynchro.length - 1;
- }
-
- public boolean isFacingValid(final byte aFacing) {
- return true;
- }
-
- public boolean isEnetInput() {
- return true;
- }
-
- public boolean isEnetOutput() {
- return true;
- }
-
- public boolean isInputFacing(final byte aSide) {
- return !this.isOutputFacing(aSide);
- }
-
- public boolean isOutputFacing(final byte aSide) {
- return this.getBaseMetaTileEntity().getBackFacing() == aSide;
- }
-
- public boolean isTeleporterCompatible() {
- return false;
- }
-
- public long getMinimumStoredEU() {
- return 512L;
- }
-
- public long maxEUStore() {
- return 512L + GT_Values.V[this.mTier] * 50L;
- }
-
- public long maxEUInput() {
- return GT_Values.V[this.mTier];
- }
-
- public long maxEUOutput() {
- return this.bOutput ? GT_Values.V[this.mTier] : 0L;
- }
-
- public long maxAmperesIn() {
- return 2L;
- }
-
- public long maxAmperesOut() {
- return 2L;
- }
-
- public boolean isAccessAllowed(final EntityPlayer aPlayer) {
- return true;
- }
-
- public abstract ITexture getOverlayIcon();
-
- public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) {
- if (aBaseMetaTileEntity.isClientSide()) {
- return true;
- }
- aBaseMetaTileEntity.openGUI(aPlayer);
- return true;
- }
-
- public void saveNBTData(final NBTTagCompound aNBT) {
- aNBT.setBoolean("bInvert", this.bInvert);
- aNBT.setBoolean("bOutput", this.bOutput);
- aNBT.setBoolean("bRedstoneIfFull", this.bRedstoneIfFull);
- aNBT.setInteger("mTargetStackSize", this.mTargetStackSize);
- }
-
- public void loadNBTData(final NBTTagCompound aNBT) {
- this.bInvert = aNBT.getBoolean("bInvert");
- this.bOutput = aNBT.getBoolean("bOutput");
- this.bRedstoneIfFull = aNBT.getBoolean("bRedstoneIfFull");
- this.mTargetStackSize = aNBT.getInteger("mTargetStackSize");
- }
-
- public void setItemNBT(final NBTTagCompound aNBT) {
- super.setItemNBT(aNBT);
- if (this.mTargetStackSize > 0) {
- aNBT.setInteger("mTargetStackSize", this.mTargetStackSize);
- }
- }
-
- public void onScrewdriverRightClick(final byte aSide, final EntityPlayer aPlayer, final float aX, final float aY,
- final float aZ) {
- if (aSide == this.getBaseMetaTileEntity().getBackFacing()) {
- this.mTargetStackSize = (byte) ((this.mTargetStackSize + (aPlayer.isSneaking() ? -1 : 1)) % 65);
- if (this.mTargetStackSize < 0) {
- this.mTargetStackSize = 64;
- }
- if (this.mTargetStackSize == 0) {
- GT_Utility.sendChatToPlayer(aPlayer, "Do not regulate Item Stack Size");
- } else {
- GT_Utility.sendChatToPlayer(aPlayer, "Regulate Item Stack Size to: " + this.mTargetStackSize);
- }
- }
- }
-
- public synchronized void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTimer) {
- if (aBaseMetaTileEntity.isServerSide()) {
- if (mPos == null) {
- mPos = new BlockPos(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord(), this.getBaseMetaTileEntity().getZCoord(), this.getBaseMetaTileEntity().getWorld());
- }
- if (mLogicThread == null) {
- mLogicThread = GregtechBufferThread.getBufferThread(mPos);
- }
- if (mLogicThread!= null) {
- getLogicThread().onPostTick(aBaseMetaTileEntity, aTimer, this);
- this.mThreadTimeLeft = this.mLogicThread.getTimeLeft();
- }
- }
- }
-
- public void onFirstTick(final IGregTechTileEntity aBaseMetaTileEntity) {
- for (byte b = 0; b < 6; ++b) {
- aBaseMetaTileEntity.setInternalOutputRedstoneSignal(b, (byte) 0);
- }
- }
-
- protected synchronized void moveItems(final IGregTechTileEntity aBaseMetaTileEntity, final long aTimer) {
- if (aBaseMetaTileEntity.isServerSide())
- getLogicThread().moveItems(aBaseMetaTileEntity, aTimer, this);
- }
-
- public boolean allowPullStack(final IGregTechTileEntity aBaseMetaTileEntity, final int aIndex, final byte aSide,
- final ItemStack aStack) {
- return true;
- }
-
- public boolean allowPutStack(final IGregTechTileEntity aBaseMetaTileEntity, final int aIndex, final byte aSide,
- final ItemStack aStack) {
- return aSide != aBaseMetaTileEntity.getBackFacing();
- }
-
- public boolean allowGeneralRedstoneOutput() {
- return true;
- }
-
- //Custom inventory handler
-
- @Override
- public synchronized ItemStack[] getRealInventory() {
- return this.mInventorySynchro;
- }
-
- @Override
- public synchronized boolean canInsertItem(final int aIndex, final ItemStack aStack, final int aSide) {
- return this.isValidSlot(aIndex) && aStack != null && aIndex < getSizeInventory()
- && (this.mInventorySynchro[aIndex] == null || GT_Utility.areStacksEqual(aStack, this.mInventorySynchro[aIndex]))
- && this.allowPutStack(this.getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack);
- }
-
- @Override
- public synchronized boolean canExtractItem(final int aIndex, final ItemStack aStack, final int aSide) {
- return this.isValidSlot(aIndex) && aStack != null && aIndex < getSizeInventory()
- && this.allowPullStack(this.getBaseMetaTileEntity(), aIndex, (byte) aSide, aStack);
- }
-
- @Override
- public synchronized int getSizeInventory() {
- return this.mInventorySynchro.length;
- }
-
- @Override
- public synchronized ItemStack getStackInSlot(final int aIndex) {
- if (aIndex >= 0 && aIndex < getSizeInventory()) {
- return this.mInventorySynchro[aIndex];
- }
- return null;
- }
-
- @Override
- public synchronized void setInventorySlotContents(final int aIndex, final ItemStack aStack) {
- if (aIndex >= 0 && aIndex < getSizeInventory()) {
- this.mInventorySynchro[aIndex] = aStack;
- }
- }
-
- private synchronized void cleanup() {
- if (this.mLogicThread != null) {
- this.mLogicThread.destroy();
- this.mLogicThread = null;
- }
- }
-
- @Override
- public void onExplosion() {
- cleanup();
- super.onExplosion();
- }
-
- @Override
- public void onRemoval() {
- cleanup();
- super.onRemoval();
- }
-
- @Override
- public boolean isGivingInformation() {
- return true;
- }
-
- @Override
- public String[] getInfoData() {
- String mResult[] = super.getInfoData();
- String mAdditive[] = new String[] {
- "info"
- };
- for (String s : mAdditive) {
- ArrayUtils.expandArray(mResult, s);
- }
- return mResult;
- }
-} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/objects/GregtechBufferThread.java b/src/Java/gtPlusPlus/xmod/gregtech/api/objects/GregtechBufferThread.java
deleted file mode 100644
index 1e7d73bacd..0000000000
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/objects/GregtechBufferThread.java
+++ /dev/null
@@ -1,242 +0,0 @@
-package gtPlusPlus.xmod.gregtech.api.objects;
-
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-import net.minecraft.init.Items;
-import net.minecraft.inventory.IInventory;
-import net.minecraft.item.ItemStack;
-
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.util.GT_Utility;
-
-import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.api.objects.minecraft.BlockPos;
-import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_ThreadedBuffer;
-import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_ThreadedChestBuffer;
-
-public class GregtechBufferThread extends Thread {
-
- public static final ConcurrentMap<String, GregtechBufferThread> mBufferThreadAllocation = new ConcurrentHashMap<String, GregtechBufferThread>();
- private final BlockPos mBlockPos;
- private final int mMaxLife = 300;
- private int mLifeCycleTime = mMaxLife;
- private final String mID;
-
- public static synchronized final GregtechBufferThread getBufferThread(BlockPos pos) {
- if (pos != null && mBufferThreadAllocation.containsKey(""+pos.getUniqueIdentifier())){
- Logger.INFO("[SB] Found an existing thread for this Buffer.");
- return mBufferThreadAllocation.get(""+pos.getUniqueIdentifier());
- }
- else {
- return new GregtechBufferThread(pos);
- }
- }
-
- public GregtechBufferThread(BlockPos pos) {
- super();
- String aID = pos != null ? pos.getUniqueIdentifier() : ""+Short.MIN_VALUE;
- this.mID = aID;
- if (pos != null && !mBufferThreadAllocation.containsKey(mID)){
- mBlockPos = pos;
- mBufferThreadAllocation.put(mID, this);
- }
- else {
- this.mLifeCycleTime = 1;
- mBlockPos = null;
- }
- this.setName("GTPP-SuperBuffer("+mID+")");
- this.setDaemon(true);
- if (mBlockPos != null && !this.isAlive()) {
- try {
- start();
- Logger.INFO("[SB] Created a SuperBuffer Thread for dimension "+mID+".");
- }
- catch (Throwable t_) {
- //Do nothing.
- }
- }
- }
-
- public synchronized int getTimeLeft() {
- return this.mLifeCycleTime;
- }
-
- public synchronized void fillStacksIntoFirstSlots(GT_MetaTileEntity_ThreadedChestBuffer mBuffer) {
- for (int i = 0; i < mBuffer.mInventorySynchro.length - 1; ++i) {
- for (int j = i + 1; j < mBuffer.mInventorySynchro.length - 1; ++j) {
- if (mBuffer.mInventorySynchro[j] != null && (mBuffer.mInventorySynchro[i] == null
- || areStacksEqual(mBuffer.mInventorySynchro[i], mBuffer.mInventorySynchro[j]))) {
- moveStackFromSlotAToSlotB((IInventory) mBuffer.getBaseMetaTileEntity(),
- (IInventory) mBuffer.getBaseMetaTileEntity(), j, i, (byte) 64, (byte) 1, (byte) 64, (byte) 1);
- }
- }
- }
- }
-
- public synchronized boolean moveItems(final IGregTechTileEntity aBaseMetaTileEntity, final long aTimer, GT_MetaTileEntity_ThreadedBuffer mBuffer) {
- final byte mTargetStackSize = (byte) mBuffer.mTargetStackSize;
- final int tCost = GT_Utility.moveOneItemStack((Object) aBaseMetaTileEntity,
- (Object) aBaseMetaTileEntity.getTileEntityAtSide(aBaseMetaTileEntity.getBackFacing()),
- aBaseMetaTileEntity.getBackFacing(), aBaseMetaTileEntity.getFrontFacing(), (List<ItemStack>) null, false,
- (byte) ((mTargetStackSize == 0) ? 64 : ((byte) mTargetStackSize)),
- (byte) ((mTargetStackSize == 0) ? 1 : ((byte) mTargetStackSize)), (byte) 64, (byte) 1);
- if (tCost > 0 || aBaseMetaTileEntity.hasInventoryBeenModified()) {
- mBuffer.mSuccess = 50;
- aBaseMetaTileEntity.decreaseStoredEnergyUnits((long) Math.abs(tCost), true);
- return true;
- }
- return false;
- }
-
- public synchronized void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTimer, GT_MetaTileEntity_ThreadedBuffer mBuffer) {
- if (aBaseMetaTileEntity.isAllowedToWork() && aBaseMetaTileEntity.isServerSide()
- && aBaseMetaTileEntity.isUniversalEnergyStored(mBuffer.getMinimumStoredEU())
- && (aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified()
- || aTimer % 200L == 0L || mBuffer.mSuccess > 0)) {
- --mBuffer.mSuccess;
- if (mLifeCycleTime < (mMaxLife-1)){
- mLifeCycleTime += 1;
- }
- //Logger.INFO("Ticking SB @ "+mBuffer.getLogicThread().mBlockPos.getUniqueIdentifier() + " | Time Left: "+mLifeCycleTime);
- moveItems(aBaseMetaTileEntity, aTimer, mBuffer);
- for (byte b = 0; b < 6; ++b) {
- aBaseMetaTileEntity.setInternalOutputRedstoneSignal(b, (byte) (mBuffer.bInvert ? 15 : 0));
- }
- if (mBuffer.bRedstoneIfFull) {
- for (byte b = 0; b < 6; ++b) {
- aBaseMetaTileEntity.setInternalOutputRedstoneSignal(b, (byte) (mBuffer.bInvert ? 0 : 15));
- }
- for (int i = 0; i < mBuffer.mInventorySynchro.length; ++i) {
- if (mBuffer.isValidSlot(i) && mBuffer.mInventorySynchro[i] == null) {
- for (byte b2 = 0; b2 < 6; ++b2) {
- aBaseMetaTileEntity.setInternalOutputRedstoneSignal(b2, (byte) (mBuffer.bInvert ? 15 : 0));
- }
- aBaseMetaTileEntity.decreaseStoredEnergyUnits(1L, true);
- break;
- }
- }
- }
- }
- }
-
- /**
- * Some GT logic we'd like to move off thread
- */
-
- public synchronized boolean areStacksEqual(final ItemStack aStack1, final ItemStack aStack2) {
- return areStacksEqual(aStack1, aStack2, false);
- }
-
- public synchronized boolean areStacksEqual(final ItemStack aStack1, final ItemStack aStack2, final boolean aIgnoreNBT) {
- return aStack1 != null && aStack2 != null && aStack1.getItem() == aStack2.getItem()
- && (aIgnoreNBT || (aStack1.getTagCompound() == null == (aStack2.getTagCompound() == null)
- && (aStack1.getTagCompound() == null
- || aStack1.getTagCompound().equals((Object) aStack2.getTagCompound()))))
- && (Items.feather.getDamage(aStack1) == Items.feather.getDamage(aStack2)
- || Items.feather.getDamage(aStack1) == 32767 || Items.feather.getDamage(aStack2) == 32767);
- }
-
- public synchronized byte moveStackFromSlotAToSlotB(final IInventory aTileEntity1, final IInventory aTileEntity2,
- final int aGrabFrom, final int aPutTo, byte aMaxTargetStackSize, final byte aMinTargetStackSize,
- final byte aMaxMoveAtOnce, final byte aMinMoveAtOnce) {
- if (aTileEntity1 == null || aTileEntity2 == null || aMaxTargetStackSize <= 0 || aMinTargetStackSize <= 0
- || aMinTargetStackSize > aMaxTargetStackSize || aMaxMoveAtOnce <= 0
- || aMinMoveAtOnce > aMaxMoveAtOnce) {
- return 0;
- }
- final ItemStack tStack1 = aTileEntity1.getStackInSlot(aGrabFrom);
- final ItemStack tStack2 = aTileEntity2.getStackInSlot(aPutTo);
- ItemStack tStack3 = null;
- if (tStack1 != null) {
- if (tStack2 != null && !areStacksEqual(tStack1, tStack2)) {
- return 0;
- }
- tStack3 = GT_Utility.copy(tStack1);
- aMaxTargetStackSize = (byte) Math.min(aMaxTargetStackSize,
- Math.min(tStack3.getMaxStackSize(),
- Math.min((tStack2 == null) ? Integer.MAX_VALUE : tStack2.getMaxStackSize(),
- aTileEntity2.getInventoryStackLimit())));
- tStack3.stackSize = Math.min(tStack3.stackSize,
- aMaxTargetStackSize - ((tStack2 == null) ? 0 : tStack2.stackSize));
- if (tStack3.stackSize > aMaxMoveAtOnce) {
- tStack3.stackSize = aMaxMoveAtOnce;
- }
- if (tStack3.stackSize + ((tStack2 == null) ? 0 : tStack2.stackSize) >= Math.min(tStack3.getMaxStackSize(),
- aMinTargetStackSize) && tStack3.stackSize >= aMinMoveAtOnce) {
- tStack3 = aTileEntity1.decrStackSize(aGrabFrom, tStack3.stackSize);
- aTileEntity1.markDirty();
- if (tStack3 != null) {
- if (tStack2 == null) {
- aTileEntity2.setInventorySlotContents(aPutTo, GT_Utility.copy(tStack3));
- aTileEntity2.markDirty();
- } else {
- final ItemStack itemStack = tStack2;
- itemStack.stackSize += tStack3.stackSize;
- aTileEntity2.markDirty();
- }
- return (byte) tStack3.stackSize;
- }
- }
- }
- return 0;
- }
-
- //Logic Vars
- private boolean mRunning = true;
-
- @Override
- public void run() {
- //While thread is alive.
- run: while (mRunning) {
- //While thread is active, lets tick it's life down.
- life: while (mLifeCycleTime > 0) {
- if (!mRunning) {
- break life;
- }
-
- //Remove invalid threads
- if (this.mBlockPos.world == null || this.mBlockPos.getBlockAtPos() == null) {
- destroy();
- break run;
- }
- //Prevent Overflows
- if (mLifeCycleTime > mMaxLife) {
- mLifeCycleTime = mMaxLife;
- }
- try {
- sleep(1000);
- mLifeCycleTime--;
- Logger.WARNING("[SB] Ticking Thread "+mID+" | Remaining: "+mLifeCycleTime+"s");
- }
- catch (InterruptedException e) {
- mLifeCycleTime = 0;
- }
- }
- if (mLifeCycleTime <= 0) {
- destroy();
- break run;
- }
- }
- }
-
- @SuppressWarnings("deprecation")
- @Override
- public void destroy() {
- mRunning = false;
- GregtechBufferThread.mBufferThreadAllocation.remove(mID, this);
- Logger.INFO("[SB] Removing Thread "+mID);
- try {
- stop();
- this.finalize();
- }
- catch (Throwable t) {
- //Do nothing.
- }
- }
-
-
-
-
-}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java
index 8b181a05f4..d4221f064a 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/blocks/textures/TexturesGtBlock.java
@@ -427,11 +427,7 @@ public class TexturesGtBlock {
public static final CustomIcon Overlay_Oil = Internal_Overlay_Oil;
private static final CustomIcon Internal_Overlay_UU_Matter = new CustomIcon("TileEntities/adv_machine_uum");
public static final CustomIcon Overlay_UU_Matter = Internal_Overlay_UU_Matter;
-
- //Buffer Overlays
- private static final CustomIcon Internal_OVERLAY_AUTOMATION_SUPERBUFFER = new CustomIcon("iconsets/AUTOMATION_SUPERBUFFER");
- public static final CustomIcon OVERLAY_AUTOMATION_SUPERBUFFER = Internal_OVERLAY_AUTOMATION_SUPERBUFFER;
-
+
// GT++ Tiered Hulls
public static final CustomIcon TEXTURE_CASING_TIERED_ULV = new CustomIcon("iconsets/TieredHulls/CASING_ULV");
public static final CustomIcon TEXTURE_CASING_TIERED_LV = new CustomIcon("iconsets/TieredHulls/CASING_LV");
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedChestBuffer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedChestBuffer.java
deleted file mode 100644
index d75fc27024..0000000000
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedChestBuffer.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package gtPlusPlus.xmod.gregtech.common.tileentities.automation;
-
-import gregtech.common.gui.GT_GUIContainer_ChestBuffer;
-
-import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEntity_ThreadedBuffer;
-import gtPlusPlus.xmod.gregtech.common.StaticFields59;
-import gregtech.common.gui.GT_Container_ChestBuffer;
-import net.minecraft.entity.player.InventoryPlayer;
-import gregtech.api.interfaces.IIconContainer;
-import gregtech.api.objects.GT_RenderedTexture;
-import gregtech.api.enums.Textures;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.interfaces.ITexture;
-
-public class GT_MetaTileEntity_ThreadedChestBuffer extends GT_MetaTileEntity_ThreadedBuffer {
- public GT_MetaTileEntity_ThreadedChestBuffer(final int aID, final String aName, final String aNameRegional,
- final int aTier) {
- super(aID, aName, aNameRegional, aTier, 28, new String[]{"Buffers up to 27 Item Stacks",
- "Use Screwdriver to regulate output stack size", "Consumes 1EU per moved Item"});
- }
-
- public GT_MetaTileEntity_ThreadedChestBuffer(final int aID, final String aName, final String aNameRegional, final int aTier,
- final int aInvSlotCount, final String aDescription) {
- super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription);
- }
-
- public GT_MetaTileEntity_ThreadedChestBuffer(final int aID, final String aName, final String aNameRegional, final int aTier,
- final int aInvSlotCount, final String[] aDescription) {
- super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription);
- }
-
- public GT_MetaTileEntity_ThreadedChestBuffer(final String aName, final int aTier, final int aInvSlotCount,
- final String aDescription, final ITexture[][][] aTextures) {
- super(aName, aTier, aInvSlotCount, aDescription, aTextures);
- }
-
- public GT_MetaTileEntity_ThreadedChestBuffer(final String aName, final int aTier, final int aInvSlotCount,
- final String[] aDescription, final ITexture[][][] aTextures) {
- super(aName, aTier, aInvSlotCount, aDescription, aTextures);
- }
-
- public IMetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) {
- return (IMetaTileEntity) new GT_MetaTileEntity_ThreadedChestBuffer(this.mName, this.mTier, this.mInventorySynchro.length,
- StaticFields59.getDescriptionArray(this), this.mTextures);
- }
-
- public ITexture getOverlayIcon() {
- return (ITexture) new GT_RenderedTexture((IIconContainer) Textures.BlockIcons.AUTOMATION_CHESTBUFFER);
- }
-
- public boolean isValidSlot(final int aIndex) {
- return aIndex < this.mInventorySynchro.length - 1;
- }
-
- protected void moveItems(final IGregTechTileEntity aBaseMetaTileEntity, final long aTimer) {
- this.fillStacksIntoFirstSlots();
- super.moveItems(aBaseMetaTileEntity, aTimer);
- this.fillStacksIntoFirstSlots();
- }
-
- protected synchronized void fillStacksIntoFirstSlots() {
- this.mLogicThread.fillStacksIntoFirstSlots(this);
- }
-
- public Object getServerGUI(final int aID, final InventoryPlayer aPlayerInventory,
- final IGregTechTileEntity aBaseMetaTileEntity) {
- return new GT_Container_ChestBuffer(aPlayerInventory, aBaseMetaTileEntity);
- }
-
- public Object getClientGUI(final int aID, final InventoryPlayer aPlayerInventory,
- final IGregTechTileEntity aBaseMetaTileEntity) {
- return new GT_GUIContainer_ChestBuffer(aPlayerInventory, aBaseMetaTileEntity);
- }
-} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedSuperBuffer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedSuperBuffer.java
deleted file mode 100644
index 282268fb3d..0000000000
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ThreadedSuperBuffer.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package gtPlusPlus.xmod.gregtech.common.tileentities.automation;
-
-import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_ThreadedSuperBuffer;
-import gtPlusPlus.xmod.gregtech.api.gui.GUI_ThreadedSuperBuffer;
-import gtPlusPlus.xmod.gregtech.common.StaticFields59;
-import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
-
-import net.minecraft.entity.player.InventoryPlayer;
-import gregtech.api.interfaces.IIconContainer;
-import gregtech.api.objects.GT_RenderedTexture;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.interfaces.ITexture;
-
-public class GT_MetaTileEntity_ThreadedSuperBuffer extends GT_MetaTileEntity_ThreadedChestBuffer {
-
- public GT_MetaTileEntity_ThreadedSuperBuffer(final int aID, final String aName, final String aNameRegional,
- final int aTier) {
- super(aID, aName, aNameRegional, aTier, 257, new String[]{
- "Server friendly",
- "Buffers up to 256 Item Stacks",
- "Use Screwdriver to regulate output stack size",
- "Consumes 1EU per moved Item",
- });
- }
-
- public GT_MetaTileEntity_ThreadedSuperBuffer(final String aName, final int aTier, final int aInvSlotCount,
- final String aDescription, final ITexture[][][] aTextures) {
- super(aName, aTier, aInvSlotCount, aDescription, aTextures);
- }
-
- public GT_MetaTileEntity_ThreadedSuperBuffer(final String aName, final int aTier, final int aInvSlotCount,
- final String[] aDescription, final ITexture[][][] aTextures) {
- super(aName, aTier, aInvSlotCount, aDescription, aTextures);
- }
-
- public IMetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) {
- return (IMetaTileEntity) new GT_MetaTileEntity_ThreadedSuperBuffer(this.mName, this.mTier, this.mInventorySynchro.length,
- StaticFields59.getDescriptionArray(this), this.mTextures);
- }
-
- public ITexture getOverlayIcon() {
- return (ITexture) new GT_RenderedTexture((IIconContainer) TexturesGtBlock.OVERLAY_AUTOMATION_SUPERBUFFER);
- }
-
- public Object getServerGUI(final int aID, final InventoryPlayer aPlayerInventory,
- final IGregTechTileEntity aBaseMetaTileEntity) {
- return new CONTAINER_ThreadedSuperBuffer(aPlayerInventory, aBaseMetaTileEntity);
- }
-
- public Object getClientGUI(final int aID, final InventoryPlayer aPlayerInventory,
- final IGregTechTileEntity aBaseMetaTileEntity) {
- return new GUI_ThreadedSuperBuffer(aPlayerInventory, aBaseMetaTileEntity);
- }
-} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechThreadedBuffers.java b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechThreadedBuffers.java
index 7c16eb351b..23c9f7e666 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechThreadedBuffers.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/registration/gregtech/GregtechThreadedBuffers.java
@@ -1,13 +1,12 @@
package gtPlusPlus.xmod.gregtech.registration.gregtech;
-import static gtPlusPlus.core.recipe.common.CI.bitsd;
-
import gregtech.api.enums.ItemList;
-import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Recipe;
+import gregtech.common.tileentities.automation.GT_MetaTileEntity_SuperBuffer;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
-import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_ThreadedSuperBuffer;
import gtPlusPlus.xmod.gregtech.common.tileentities.storage.creative.GT_MetaTileEntity_InfiniteItemHolder;
+import net.minecraft.item.ItemStack;
public class GregtechThreadedBuffers {
@@ -18,48 +17,120 @@ public class GregtechThreadedBuffers {
private static void run2() {
GregtechItemList.Infinite_Item_Chest.set((new GT_MetaTileEntity_InfiniteItemHolder(31010, "infinite.chest.tier.01", "Infinite Item Chest", 1)).getStackForm(1L));
-
- GregtechItemList.Automation_Threaded_SuperBuffer_ULV.set(new GT_MetaTileEntity_ThreadedSuperBuffer(31000,"automation.superbuffer.threaded.tier.00",
- "ULV Super Buffer [Threaded]", 0).getStackForm(1L));
- GregtechItemList.Automation_Threaded_SuperBuffer_LV.set(new GT_MetaTileEntity_ThreadedSuperBuffer(31001, "automation.superbuffer.threaded.tier.01",
- "LV Super Buffer [Threaded]", 1).getStackForm(1L));
- GregtechItemList.Automation_Threaded_SuperBuffer_MV.set(new GT_MetaTileEntity_ThreadedSuperBuffer(31002, "automation.superbuffer.threaded.tier.02",
- "MV Super Buffer [Threaded]", 2).getStackForm(1L));
- GregtechItemList.Automation_Threaded_SuperBuffer_HV.set(new GT_MetaTileEntity_ThreadedSuperBuffer(31003, "automation.superbuffer.threaded.tier.03",
- "HV Super Buffer [Threaded]", 3).getStackForm(1L));
- GregtechItemList.Automation_Threaded_SuperBuffer_EV.set(new GT_MetaTileEntity_ThreadedSuperBuffer(31004, "automation.superbuffer.threaded.tier.04",
- "EV Super Buffer [Threaded]", 4).getStackForm(1L));
- GregtechItemList.Automation_Threaded_SuperBuffer_IV.set(new GT_MetaTileEntity_ThreadedSuperBuffer(31005, "automation.superbuffer.threaded.tier.05",
- "IV Super Buffer [Threaded]", 5).getStackForm(1L));
- GregtechItemList.Automation_Threaded_SuperBuffer_LuV.set(new GT_MetaTileEntity_ThreadedSuperBuffer(31006, "automation.superbuffer.threaded.tier.06",
- "LuV Super Buffer [Threaded]", 6).getStackForm(1L));
- GregtechItemList.Automation_Threaded_SuperBuffer_ZPM.set(new GT_MetaTileEntity_ThreadedSuperBuffer(31007, "automation.superbuffer.threaded.tier.07",
- "ZPM Super Buffer [Threaded]", 7).getStackForm(1L));
- GregtechItemList.Automation_Threaded_SuperBuffer_UV.set(new GT_MetaTileEntity_ThreadedSuperBuffer(31008, "automation.superbuffer.threaded.tier.08",
- "UV Super Buffer [Threaded]", 8).getStackForm(1L));
- GregtechItemList.Automation_Threaded_SuperBuffer_MAX.set(new GT_MetaTileEntity_ThreadedSuperBuffer(31009, "automation.superbuffer.threaded.tier.09",
- "MAX Super Buffer [Threaded]", 9).getStackForm(1L));
-
- GT_ModHandler.addCraftingRecipe(GregtechItemList.Automation_Threaded_SuperBuffer_ULV.get(1L, new Object[0]), bitsd, new Object[]{
- "DMV", 'M', ItemList.Automation_SuperBuffer_ULV, 'V', ItemList.Conveyor_Module_LV, 'D', ItemList.Tool_DataOrb});
- GT_ModHandler.addCraftingRecipe(GregtechItemList.Automation_Threaded_SuperBuffer_LV.get(1L, new Object[0]), bitsd, new Object[]{
- "DMV", 'M', ItemList.Automation_SuperBuffer_LV, 'V', ItemList.Conveyor_Module_LV, 'D', ItemList.Tool_DataOrb});
- GT_ModHandler.addCraftingRecipe(GregtechItemList.Automation_Threaded_SuperBuffer_MV.get(1L, new Object[0]), bitsd, new Object[]{
- "DMV", 'M', ItemList.Automation_SuperBuffer_MV, 'V', ItemList.Conveyor_Module_MV, 'D', ItemList.Tool_DataOrb});
- GT_ModHandler.addCraftingRecipe(GregtechItemList.Automation_Threaded_SuperBuffer_HV.get(1L, new Object[0]), bitsd, new Object[]{
- "DMV", 'M', ItemList.Automation_SuperBuffer_HV, 'V', ItemList.Conveyor_Module_HV, 'D', ItemList.Tool_DataOrb});
- GT_ModHandler.addCraftingRecipe(GregtechItemList.Automation_Threaded_SuperBuffer_EV.get(1L, new Object[0]), bitsd, new Object[]{
- "DMV", 'M', ItemList.Automation_SuperBuffer_EV, 'V', ItemList.Conveyor_Module_EV, 'D', ItemList.Tool_DataOrb});
- GT_ModHandler.addCraftingRecipe(GregtechItemList.Automation_Threaded_SuperBuffer_IV.get(1L, new Object[0]), bitsd, new Object[]{
- "DMV", 'M', ItemList.Automation_SuperBuffer_IV, 'V', ItemList.Conveyor_Module_IV, 'D', ItemList.Tool_DataOrb});
- GT_ModHandler.addCraftingRecipe(GregtechItemList.Automation_Threaded_SuperBuffer_LuV.get(1L, new Object[0]), bitsd, new Object[]{
- "DMV", 'M', ItemList.Automation_SuperBuffer_LuV, 'V', ItemList.Conveyor_Module_LuV, 'D', ItemList.Tool_DataOrb});
- GT_ModHandler.addCraftingRecipe(GregtechItemList.Automation_Threaded_SuperBuffer_ZPM.get(1L, new Object[0]), bitsd, new Object[]{
- "DMV", 'M', ItemList.Automation_SuperBuffer_ZPM, 'V', ItemList.Conveyor_Module_ZPM, 'D', ItemList.Tool_DataOrb});
- GT_ModHandler.addCraftingRecipe(GregtechItemList.Automation_Threaded_SuperBuffer_UV.get(1L, new Object[0]), bitsd, new Object[]{
- "DMV", 'M', ItemList.Automation_SuperBuffer_UV, 'V', ItemList.Conveyor_Module_UV, 'D', ItemList.Tool_DataOrb});
- GT_ModHandler.addCraftingRecipe(GregtechItemList.Automation_Threaded_SuperBuffer_MAX.get(1L, new Object[0]), bitsd, new Object[]{
- "DMV", 'M', ItemList.Automation_SuperBuffer_MAX, 'V', GregtechItemList.Conveyor_Module_MAX, 'D', ItemList.Tool_DataOrb});
+
+ /*
+ * This file used to contain registration and recipes for GT++ threaded super buffers. Those have now been
+ * deprecated and replaced by the original GT super buffers.
+ *
+ * To avoid breaking existing bases, we've assigned the threaded super buffer metadata IDs to a copy of the GT
+ * super buffers, with a deprecation notice attached. We've also provided disassembler recipes that are the
+ * reverse of the original crafting recipes, allowing players to reclaim their original materials as well as
+ * convert the deprecated threaded super buffer metadata ID item back to the original GT super buffer metadata
+ * ID item.
+ */
+
+ final String deprecationNotice = "**DEPRECATED - Drop in disassembler!** ";
+ GregtechItemList.Automation_Threaded_SuperBuffer_ULV.set((new GT_MetaTileEntity_SuperBuffer(31000, "automation.superbuffer.tier.00.deprecated", deprecationNotice + "Ultra Low Voltage Super Buffer", 0)).getStackForm(1L));
+ GregtechItemList.Automation_Threaded_SuperBuffer_LV.set((new GT_MetaTileEntity_SuperBuffer(31001, "automation.superbuffer.tier.01.deprecated", deprecationNotice + "Low Voltage Super Buffer", 1)).getStackForm(1L));
+ GregtechItemList.Automation_Threaded_SuperBuffer_MV.set((new GT_MetaTileEntity_SuperBuffer(31002, "automation.superbuffer.tier.02.deprecated", deprecationNotice + "Medium Voltage Super Buffer", 2)).getStackForm(1L));
+ GregtechItemList.Automation_Threaded_SuperBuffer_HV.set((new GT_MetaTileEntity_SuperBuffer(31003, "automation.superbuffer.tier.03.deprecated", deprecationNotice + "High Voltage Super Buffer", 3)).getStackForm(1L));
+ GregtechItemList.Automation_Threaded_SuperBuffer_EV.set((new GT_MetaTileEntity_SuperBuffer(31004, "automation.superbuffer.tier.04.deprecated", deprecationNotice + "Extreme Voltage Super Buffer", 4)).getStackForm(1L));
+ GregtechItemList.Automation_Threaded_SuperBuffer_IV.set((new GT_MetaTileEntity_SuperBuffer(31005, "automation.superbuffer.tier.05.deprecated", deprecationNotice + "Insane Voltage Super Buffer", 5)).getStackForm(1L));
+ GregtechItemList.Automation_Threaded_SuperBuffer_LuV.set((new GT_MetaTileEntity_SuperBuffer(31006, "automation.superbuffer.tier.06.deprecated", deprecationNotice + "Ludicrous Voltage Super Buffer", 6)).getStackForm(1L));
+ GregtechItemList.Automation_Threaded_SuperBuffer_ZPM.set((new GT_MetaTileEntity_SuperBuffer(31007, "automation.superbuffer.tier.07.deprecated", deprecationNotice + "ZPM Voltage Super Buffer", 7)).getStackForm(1L));
+ GregtechItemList.Automation_Threaded_SuperBuffer_UV.set((new GT_MetaTileEntity_SuperBuffer(31008, "automation.superbuffer.tier.08.deprecated", deprecationNotice + "Ultimate Voltage Super Buffer", 8)).getStackForm(1L));
+ GregtechItemList.Automation_Threaded_SuperBuffer_MAX.set((new GT_MetaTileEntity_SuperBuffer(31009, "automation.superbuffer.tier.09.deprecated", deprecationNotice + "Highly Ultimate Voltage Super Buffer", 9)).getStackForm(1L));
+
+ // These recipes are all 1 sec @ 32 EU/t
+ GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.addRecipe(
+ true,
+ new ItemStack[]{ GregtechItemList.Automation_Threaded_SuperBuffer_ULV.get(1L, new Object[0]) },
+ new ItemStack[]{
+ ItemList.Automation_SuperBuffer_ULV.get(1L, new Object[0]),
+ ItemList.Tool_DataOrb.get(1L, new Object[0]),
+ ItemList.Conveyor_Module_LV.get(1L, new Object[0]),
+ },
+ null, null, null, 20, 32, -100);
+ GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.addRecipe(
+ true,
+ new ItemStack[]{ GregtechItemList.Automation_Threaded_SuperBuffer_LV.get(1L, new Object[0]) },
+ new ItemStack[]{
+ ItemList.Automation_SuperBuffer_LV.get(1L, new Object[0]),
+ ItemList.Tool_DataOrb.get(1L, new Object[0]),
+ ItemList.Conveyor_Module_LV.get(1L, new Object[0]),
+ },
+ null, null, null, 20, 32, -100);
+ GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.addRecipe(
+ true,
+ new ItemStack[]{ GregtechItemList.Automation_Threaded_SuperBuffer_MV.get(1L, new Object[0]) },
+ new ItemStack[]{
+ ItemList.Automation_SuperBuffer_MV.get(1L, new Object[0]),
+ ItemList.Tool_DataOrb.get(1L, new Object[0]),
+ ItemList.Conveyor_Module_MV.get(1L, new Object[0]),
+ },
+ null, null, null, 20, 32, -100);
+ GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.addRecipe(
+ true,
+ new ItemStack[]{ GregtechItemList.Automation_Threaded_SuperBuffer_HV.get(1L, new Object[0]) },
+ new ItemStack[]{
+ ItemList.Automation_SuperBuffer_HV.get(1L, new Object[0]),
+ ItemList.Tool_DataOrb.get(1L, new Object[0]),
+ ItemList.Conveyor_Module_HV.get(1L, new Object[0]),
+ },
+ null, null, null, 20, 32, -100);
+ GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.addRecipe(
+ true,
+ new ItemStack[]{ GregtechItemList.Automation_Threaded_SuperBuffer_EV.get(1L, new Object[0]) },
+ new ItemStack[]{
+ ItemList.Automation_SuperBuffer_EV.get(1L, new Object[0]),
+ ItemList.Tool_DataOrb.get(1L, new Object[0]),
+ ItemList.Conveyor_Module_EV.get(1L, new Object[0]),
+ },
+ null, null, null, 20, 32, -100);
+ GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.addRecipe(
+ true,
+ new ItemStack[]{ GregtechItemList.Automation_Threaded_SuperBuffer_IV.get(1L, new Object[0]) },
+ new ItemStack[]{
+ ItemList.Automation_SuperBuffer_IV.get(1L, new Object[0]),
+ ItemList.Tool_DataOrb.get(1L, new Object[0]),
+ ItemList.Conveyor_Module_IV.get(1L, new Object[0]),
+ },
+ null, null, null, 20, 32, -100);
+ GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.addRecipe(
+ true,
+ new ItemStack[]{ GregtechItemList.Automation_Threaded_SuperBuffer_LuV.get(1L, new Object[0]) },
+ new ItemStack[]{
+ ItemList.Automation_SuperBuffer_LuV.get(1L, new Object[0]),
+ ItemList.Tool_DataOrb.get(1L, new Object[0]),
+ ItemList.Conveyor_Module_LuV.get(1L, new Object[0]),
+ },
+ null, null, null, 20, 32, -100);
+ GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.addRecipe(
+ true,
+ new ItemStack[]{ GregtechItemList.Automation_Threaded_SuperBuffer_ZPM.get(1L, new Object[0]) },
+ new ItemStack[]{
+ ItemList.Automation_SuperBuffer_ZPM.get(1L, new Object[0]),
+ ItemList.Tool_DataOrb.get(1L, new Object[0]),
+ ItemList.Conveyor_Module_ZPM.get(1L, new Object[0]),
+ },
+ null, null, null, 20, 32, -100);
+ GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.addRecipe(
+ true,
+ new ItemStack[]{ GregtechItemList.Automation_Threaded_SuperBuffer_UV.get(1L, new Object[0]) },
+ new ItemStack[]{
+ ItemList.Automation_SuperBuffer_UV.get(1L, new Object[0]),
+ ItemList.Tool_DataOrb.get(1L, new Object[0]),
+ ItemList.Conveyor_Module_UV.get(1L, new Object[0]),
+ },
+ null, null, null, 20, 32, -100);
+ GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.addRecipe(
+ true,
+ new ItemStack[]{ GregtechItemList.Automation_Threaded_SuperBuffer_MAX.get(1L, new Object[0]) },
+ new ItemStack[]{
+ ItemList.Automation_SuperBuffer_MAX.get(1L, new Object[0]),
+ ItemList.Tool_DataOrb.get(1L, new Object[0]),
+ GregtechItemList.Conveyor_Module_MAX.get(1L, new Object[0]),
+ },
+ null, null, null, 20, 32, -100);
}
-
}