From b4ba1af1ec53653be0364ebdb1051459234070ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salom=C3=A3o?= Date: Sun, 28 Feb 2021 02:03:00 -0300 Subject: [PATCH] bind BlockPos of the interface on the list --- .../implementations/GuiInterfaceTerminal.java | 16 ++++++---------- .../ContainerInterfaceTerminal.java | 5 +++++ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java b/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java index bfbdb065814..ab4fda86bee 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java +++ b/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java @@ -19,16 +19,8 @@ package appeng.client.gui.implementations; -import java.awt.*; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; -import java.util.WeakHashMap; +import java.util.*; import com.google.common.collect.HashMultimap; @@ -50,6 +42,8 @@ import appeng.core.localization.GuiText; import appeng.parts.reporting.PartInterfaceTerminal; import appeng.util.Platform; +import net.minecraft.nbt.NBTUtil; +import net.minecraft.util.math.BlockPos; public class GuiInterfaceTerminal extends AEBaseGui @@ -62,6 +56,7 @@ public class GuiInterfaceTerminal extends AEBaseGui private final HashMap byId = new HashMap<>(); private final HashMultimap byName = HashMultimap.create(); + private final HashMap blockPosHashMap = new HashMap<>(); private final ArrayList names = new ArrayList<>(); private final ArrayList lines = new ArrayList<>(); @@ -257,6 +252,7 @@ public void postUpdate( final NBTTagCompound in ) final long id = Long.parseLong( key.substring( 1 ), Character.MAX_RADIX ); final NBTTagCompound invData = in.getCompoundTag( key ); final ClientDCInternalInv current = this.getById( id, invData.getLong( "sortBy" ), invData.getString( "un" ) ); + blockPosHashMap.put( current, NBTUtil.getPosFromTag( invData.getCompoundTag( "pos" )) ); for( int x = 0; x < current.getInventory().getSlots(); x++ ) { @@ -294,7 +290,7 @@ private void refreshList() final String searchFieldInputs = this.searchFieldInputs.getText().toLowerCase(); final String searchFieldOutputs = this.searchFieldOutputs.getText().toLowerCase(); - final Set cachedSearch = this.getCacheForSearchTerm( searchFieldInputs + searchFieldOutputs ); + final Set cachedSearch = this.getCacheForSearchTerm( "IN:" + searchFieldInputs + " OUT:" + searchFieldOutputs ); final boolean rebuild = cachedSearch.isEmpty(); for( final ClientDCInternalInv entry : this.byId.values() ) diff --git a/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java b/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java index 338fb898a89..05f5564e82a 100644 --- a/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java +++ b/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java @@ -28,6 +28,8 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTUtil; +import net.minecraft.util.math.BlockPos; import net.minecraftforge.items.IItemHandler; import appeng.api.config.Settings; @@ -378,6 +380,7 @@ private void addItems( final NBTTagCompound data, final InvTracker inv, final in { tag.setLong( "sortBy", inv.sortBy ); tag.setString( "un", inv.unlocalizedName ); + tag.setTag("pos", NBTUtil.createPosTag( inv.pos ) ); } for( int x = 0; x < length; x++ ) @@ -408,6 +411,7 @@ private static class InvTracker private final String unlocalizedName; private final IItemHandler client; private final IItemHandler server; + private final BlockPos pos; public InvTracker( final DualityInterface dual, final IItemHandler patterns, final String unlocalizedName ) { @@ -415,6 +419,7 @@ public InvTracker( final DualityInterface dual, final IItemHandler patterns, fin this.client = new AppEngInternalInventory( null, this.server.getSlots() ); this.unlocalizedName = unlocalizedName; this.sortBy = dual.getSortValue(); + this.pos = dual.getTile().getPos(); } }