public void BuildItem(BuildItem item) { int num = m_BuildSystem.CanBuild(m_From, m_Tool, item.ItemType); if (num > 0) { m_From.SendGump(new BuildGump(m_From, m_BuildSystem, m_Tool, num)); } else { Type type = null; BuildContext context = m_BuildSystem.GetContext(m_From); if (context != null) { BuildSubResCol res = (item.UseSubRes2 ? m_BuildSystem.BuildSubRes2 : m_BuildSystem.BuildSubRes); int resIndex = (item.UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex); if (resIndex >= 0 && resIndex < res.Count) { type = res.GetAt(resIndex).ItemType; } } m_BuildSystem.CreateItem(m_From, item.ItemType, type, m_Tool, item); } }
public override void OnResponse(NetState sender, RelayInfo info) { // Back Button if (info.ButtonID == 0) { BuildGump buildGump = new BuildGump(m_From, m_BuildSystem, m_Tool, null); m_From.SendGump(buildGump); } else // Make Button { int num = m_BuildSystem.CanBuild(m_From, m_Tool, m_BuildItem.ItemType); if (num > 0) { m_From.SendGump(new BuildGump(m_From, m_BuildSystem, m_Tool, num)); } else { Type type = null; BuildContext context = m_BuildSystem.GetContext(m_From); if (context != null) { BuildSubResCol res = (m_BuildItem.UseSubRes2 ? m_BuildSystem.BuildSubRes2 : m_BuildSystem.BuildSubRes); int resIndex = (m_BuildItem.UseSubRes2 ? context.LastResourceIndex2 : context.LastResourceIndex); if (resIndex > -1) { type = res.GetAt(resIndex).ItemType; } } m_BuildSystem.CreateItem(m_From, m_BuildItem.ItemType, type, m_Tool, m_BuildItem); } } }