diff options
author | Johann Bernhardt <johann.bernhardt@tum.de> | 2022-02-01 21:05:49 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-01 21:05:49 +0100 |
commit | ef7d3c86a849e204fc53c516f9c55294346d0a9e (patch) | |
tree | 3be8b43a23ef87c3d924c2b21353c1f20b02f160 /src/main/java/gregtech/common/tileentities | |
parent | 1596c8a58826e5c89a0d49da95cfbde2e00577f5 (diff) | |
download | GT5-Unofficial-ef7d3c86a849e204fc53c516f9c55294346d0a9e.tar.gz GT5-Unofficial-ef7d3c86a849e204fc53c516f9c55294346d0a9e.tar.bz2 GT5-Unofficial-ef7d3c86a849e204fc53c516f9c55294346d0a9e.zip |
Add input bus like sorting to chest and super buffers (#900)
* Add input bus like sorting to chest and super buffers
* Remove unused import
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java | 45 |
1 files changed, 5 insertions, 40 deletions
diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java index 480367095c..b499e2c55e 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java @@ -83,47 +83,12 @@ public class GT_MetaTileEntity_ChestBuffer extends GT_MetaTileEntity_Buffer { } } -// Implementation using Java built in sort algorithm -// Uses terribad string comparison to sort against. Would be better if we did something else? - protected void sortStacks() { - Arrays.sort(this.mInventory, new Comparator<ItemStack>() { - @Override - // Taken from https://gist.github.com/Choonster/876acc3217229e172e46 - public int compare(ItemStack o1, ItemStack o2) { - if( o2 == null ) - return -1; - if( o1 == null ) - return 1; - Item item1 = o1.getItem(); - Item item2 = o2.getItem(); - - if(item1 instanceof ItemBlock) { - if (!(item2 instanceof ItemBlock)) - return -1; // If item1 is a block and item2 isn't, sort item1 before item2 - } else if (item2 instanceof ItemBlock) - return 1; // If item2 is a block and item1 isn't, sort item1 after item2 - - int id1 = Item.getIdFromItem( item1 ); - int id2 = Item.getIdFromItem( item2 ); - if ( id1 < id2 ) { - return -1; - } - if ( id1 > id2 ) { - return 1; - } - - id1 = o1.getItemDamage(); - id2 = o2.getItemDamage(); - - return Integer.compare(id1, id2); - } - }); - } - @Override - protected void fillStacksIntoFirstSlots() { - sortStacks(); - super.fillStacksIntoFirstSlots(); + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { + if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.hasInventoryBeenModified()) { + fillStacksIntoFirstSlots(); + } + super.onPostTick(aBaseMetaTileEntity, aTimer); } @Override |