package advancedsystemsmanager.helpers; import cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry; import cpw.mods.fml.common.registry.GameData; import cpw.mods.fml.common.registry.GameRegistry; import gnu.trove.map.TObjectIntMap; import gnu.trove.map.hash.TObjectIntHashMap; import net.minecraft.item.Item; import java.util.HashMap; import java.util.Map; public final class ModItemHelper { public static TObjectIntMap<Item> items; public static void init() { FMLControlledNamespacedRegistry<Item> itemRegistry = GameData.getItemRegistry(); Map<String, Integer> modMappings = new HashMap<String, Integer>(); modMappings.put(null, -1); Object[] keys = itemRegistry.getKeys().toArray(); items = new TObjectIntHashMap<Item>(keys.length); int modVal = 1; for (Object key : keys) { Item item = (Item)itemRegistry.getObject(key); GameRegistry.UniqueIdentifier uniqueIdentity = GameRegistry.findUniqueIdentifierFor(item); String modId = uniqueIdentity == null ? null : uniqueIdentity.modId; if (modMappings.containsKey(modId)) { items.put(item, modMappings.get(modId)); } else { modMappings.put(modId, modVal); items.put(item, modVal); modVal++; } } } public static boolean areItemsFromSameMod(Item item1, Item item2) { if (item1 == null || item2 == null) { return false; } else { int mod1 = items.get(item1); int mod2 = items.get(item2); return mod1 > 0 && mod1 == mod2; } } }