public void CraftItem(CraftItem item) { if (item.TryCraft != null) { item.TryCraft(m_From, item, m_Tool); return; } int num = this.m_CraftSystem.CanCraft(this.m_From, this.m_Tool, item.ItemType); if (num > 0) { this.m_From.SendGump(new CraftGump(this.m_From, this.m_CraftSystem, this.m_Tool, num)); } else { Type type = null; CraftContext context = this.m_CraftSystem.GetContext(this.m_From); if (context != null) { CraftSubResCol res = (item.UseSubRes2 ? this.m_CraftSystem.CraftSubRes2 : this.m_CraftSystem.CraftSubRes); int resIndex = (item.UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex); if (resIndex >= 0 && resIndex < res.Count) { type = res.GetAt(resIndex).ItemType; } } this.m_CraftSystem.CreateItem(this.m_From, item.ItemType, type, this.m_Tool, item); } }
public override void OnResponse(NetState sender, RelayInfo info) { switch (info.ButtonID) { case 0: // Back Button { CraftGump craftGump = new CraftGump(m_From, m_CraftSystem, m_Tool, null); m_From.SendGump(craftGump); break; } case 1: // Make Button { if (m_CraftItem.TryCraft != null) { m_CraftItem.TryCraft(m_From, m_CraftItem, m_Tool); return; } int num = m_CraftSystem.CanCraft(m_From, m_Tool, m_CraftItem.ItemType); if (num > 0) { m_From.SendGump(new CraftGump(m_From, m_CraftSystem, m_Tool, num)); } else { Type type = null; CraftContext context = m_CraftSystem.GetContext(m_From); if (context != null) { CraftSubResCol res = (m_CraftItem.UseSubRes2 ? m_CraftSystem.CraftSubRes2 : m_CraftSystem.CraftSubRes); int resIndex = (m_CraftItem.UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex); if (resIndex > -1) { type = res.GetAt(resIndex).ItemType; } } m_CraftSystem.CreateItem(m_From, m_CraftItem.ItemType, type, m_Tool, m_CraftItem); } break; } case 2: //Make Number m_From.Prompt = new MakeNumberCraftPrompt(m_From, m_CraftSystem, m_CraftItem, m_Tool); m_From.SendLocalizedMessage(1112576); //Please type the amount you wish to create(1 - 100): <Escape to cancel> break; case 3: //Make Max AutoCraftTimer.EndTimer(m_From); new AutoCraftTimer(m_From, m_CraftSystem, m_CraftItem, m_Tool, 9999, TimeSpan.FromSeconds(m_CraftSystem.Delay * m_CraftSystem.MaxCraftEffect + 1.0), TimeSpan.FromSeconds(m_CraftSystem.Delay * m_CraftSystem.MaxCraftEffect + 1.0)); break; } }
private void CraftItem() { if (m_From.HasGump(typeof(CraftGump))) { m_From.CloseGump(typeof(CraftGump)); } if (m_From.HasGump(typeof(CraftGumpItem))) { m_From.CloseGump(typeof(CraftGumpItem)); } m_Attempts++; if (m_CraftItem.TryCraft != null) { m_CraftItem.TryCraft(m_From, m_CraftItem, m_Tool); } else { m_CraftSystem.CreateItem(m_From, m_CraftItem.ItemType, m_TypeRes, m_Tool, m_CraftItem); } }