public static ItemIDOf ( |
||
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;
}
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 }