Server.Engines.Craft.CraftItem.ItemIDOf C# (CSharp) Method

ItemIDOf() public static method

public static ItemIDOf ( Type type ) : int
type System.Type
return int
        public static int ItemIDOf(Type type)
        {
            int itemId;

            if (!_itemIds.TryGetValue(type, out itemId))
            {
                if (itemId == 0)
                {
                    object[] attrs = type.GetCustomAttributes(typeof(CraftItemIDAttribute), false);

                    if (attrs.Length > 0)
                    {
                        CraftItemIDAttribute craftItemID = (CraftItemIDAttribute)attrs[0];
                        itemId = craftItemID.ItemID;
                    }
                }

                if (itemId == 0)
                {
                    Item item = null;

                    try { item = Activator.CreateInstance(type) as Item; } catch { }

                    if (item != null)
                    {
                        itemId = item.ItemID;
                        item.Delete();
                    }
                }

                _itemIds[type] = itemId;
            }

            return itemId;
        }

Usage Example

        public void DrawItem()
        {
#if old
            Item item = Activator.CreateInstance(m_CraftItem.ItemType) as Item;

            if (item != null)
            {
                AddItem(20, 50, item.ItemID);

                if (item is DragonBardingDeed || item is BaseArmor || item is BaseWeapon || item is BaseClothing ||
                    item is BaseInstrument || item is BaseTool || item is BaseHarvestTool || item is Runebook ||
                    item is BaseJewel || item is Bola)
                {
                    AddHtmlLocalized(170, 302 + (m_OtherCount++ *20), 310, 18, 1044059, LabelColor, false, false);                      // This item may hold its maker's mark
                    m_ShowExceptionalChance = true;
                }
                item.Delete();
            }
#else
            Type type = m_CraftItem.ItemType;

            AddItem(20, 50, CraftItem.ItemIDOf(type));

            if (m_CraftItem.IsMarkable(type))
            {
                AddHtmlLocalized(170, 302 + (m_OtherCount++ *20), 310, 18, 1044059, LabelColor, false, false);                    // This item may hold its maker's mark
                m_ShowExceptionalChance = true;
            }
#endif
        }
All Usage Examples Of Server.Engines.Craft.CraftItem::ItemIDOf