aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorJohann Bernhardt <johann.bernhardt@tum.de>2022-02-01 21:05:49 +0100
committerGitHub <noreply@github.com>2022-02-01 21:05:49 +0100
commitef7d3c86a849e204fc53c516f9c55294346d0a9e (patch)
tree3be8b43a23ef87c3d924c2b21353c1f20b02f160 /src/main/java
parent1596c8a58826e5c89a0d49da95cfbde2e00577f5 (diff)
downloadGT5-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')
-rw-r--r--src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ChestBuffer.java45
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