diff --git a/client/me/ItemRepo.java b/client/me/ItemRepo.java index 05890d81..ec107096 100644 --- a/client/me/ItemRepo.java +++ b/client/me/ItemRepo.java @@ -198,6 +198,13 @@ public class ItemRepo boolean terminalSearchToolTips = AEConfig.instance.settings.getSetting( Settings.SEARCH_TOOLTIPS ) != YesNo.NO; // boolean terminalSearchMods = Configuration.instance.settings.getSetting( Settings.SEARCH_MODS ) != YesNo.NO; + boolean searchMod = false; + if ( searchString.startsWith( "@" ) ) + { + searchMod = true; + searchString = searchString.substring( 1 ); + } + Pattern m = null; try { @@ -236,7 +243,7 @@ public class ItemRepo if ( vmode == ViewItems.STORED && is.getStackSize() == 0 ) continue; - String dspName = Platform.getItemDisplayName( is ); + String dspName = searchMod ? Platform.getModId( is ) : Platform.getItemDisplayName( is ); notDone = true; if ( m.matcher( dspName.toLowerCase() ).find() ) diff --git a/util/Platform.java b/util/Platform.java index 88529d94..3cbba8bc 100644 --- a/util/Platform.java +++ b/util/Platform.java @@ -791,6 +791,15 @@ public class Platform } } + public static String getModId(IAEItemStack is) + { + if ( is == null ) + return "** Null"; + + String n = ((AEItemStack) is).getModID(); + return n == null ? "** Null" : n; + } + public static String getItemDisplayName(Object o) { if ( o == null ) diff --git a/util/item/AEItemDef.java b/util/item/AEItemDef.java index bb7800ef..4b5a308a 100644 --- a/util/item/AEItemDef.java +++ b/util/item/AEItemDef.java @@ -7,6 +7,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTBase; import appeng.util.Platform; +import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -32,6 +33,9 @@ public class AEItemDef @SideOnly(Side.CLIENT) public List tooltip; + @SideOnly(Side.CLIENT) + public UniqueIdentifier uniqueID; + public OreRefrence isOre; static AESharedNBT lowTag = new AESharedNBT( Integer.MIN_VALUE ); diff --git a/util/item/AEItemStack.java b/util/item/AEItemStack.java index 5defa307..1440cd9b 100644 --- a/util/item/AEItemStack.java +++ b/util/item/AEItemStack.java @@ -18,6 +18,8 @@ import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAETagCompound; import appeng.util.Platform; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -273,6 +275,23 @@ public final class AEItemStack extends AEStack implements IAEItemS return def.displayName = Platform.getItemDisplayName( getItemStack() ); } + @SideOnly(Side.CLIENT) + public String getModID() + { + if ( def.uniqueID != null ) + return getModName( def.uniqueID ); + + return getModName( def.uniqueID = GameRegistry.findUniqueIdentifierFor( def.item ) ); + } + + private String getModName(UniqueIdentifier uniqueIdentifier) + { + if ( uniqueIdentifier == null ) + return "** Null"; + + return uniqueIdentifier.modId == null ? "** Null" : uniqueIdentifier.modId; + } + @Override public IAEItemStack empty() { @@ -588,4 +607,5 @@ public final class AEItemStack extends AEStack implements IAEItemS { return def.isOre != null; } + }