diff options
author | Martin Robertz <dream-master@gmx.net> | 2021-08-05 19:32:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-05 19:32:49 +0200 |
commit | 16754e3b4478eff74611579403a56993126e870f (patch) | |
tree | c659096052c46f6fba76bc37fc4f20d7729c45ed /src/Java | |
parent | 2008cb4b492c3f7304a86cda360677b0722813d6 (diff) | |
parent | c1e044d6fbe73b54a9d1a0055ebb2d276519ff43 (diff) | |
download | GT5-Unofficial-16754e3b4478eff74611579403a56993126e870f.tar.gz GT5-Unofficial-16754e3b4478eff74611579403a56993126e870f.tar.bz2 GT5-Unofficial-16754e3b4478eff74611579403a56993126e870f.zip |
Merge pull request #18 from D-Cysteine/delete-super-buffer
Delete ThreadedSuperBuffer
Diffstat (limited to 'src/Java')
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); } - } |