public CarpetAddon(int type, int width, int height) { CarpetInfo info = CarpetInfo.GetInfo(type); AddComponent(new AddonComponent(info.GetItemPart(Position.Top).ItemID), 0, 0, 0); AddComponent(new AddonComponent(info.GetItemPart(Position.Right).ItemID), width, 0, 0); AddComponent(new AddonComponent(info.GetItemPart(Position.Left).ItemID), 0, height, 0); AddComponent(new AddonComponent(info.GetItemPart(Position.Bottom).ItemID), width, height, 0); int w = width - 1; int h = height - 1; for (int y = 1; y <= h; ++y) { AddComponent(new AddonComponent(info.GetItemPart(Position.West).ItemID), 0, y, 0); AddComponent(new AddonComponent(info.GetItemPart(Position.East).ItemID), width, y, 0); } for (int x = 1; x <= w; ++x) { AddComponent(new AddonComponent(info.GetItemPart(Position.North).ItemID), x, 0, 0); AddComponent(new AddonComponent(info.GetItemPart(Position.South).ItemID), x, height, 0); } for (int x = 1; x <= w; ++x) { for (int y = 1; y <= h; ++y) { AddComponent(new AddonComponent(info.GetItemPart(Position.Center).ItemID), x, y, 0); } } }
public CarpetGump(BaseAddonDeed deed, IPoint3D p, Map map, int width, int height) : base(30, 30) { m_Deed = deed; m_P3D = p; m_Map = map; m_Width = width; m_Height = height; AddPage(0); AddBackground(0, 0, 450, 180, 9200); AddAlphaRegion(12, 12, 381, 22); AddHtml(13, 13, 379, 20, "<BASEFONT COLOR=WHITE>Choose a carpet type</BASEFONT>", false, false); AddAlphaRegion(398, 12, 40, 22); AddAlphaRegion(12, 39, 426, 129); AddImage(400, 16, 9766); AddImage(420, 16, 9762); AddPage(1); int page = 1; for (int i = 0, index = 0; i < CarpetInfo.Infos.Length; ++i, ++index) { if (index >= EntryCount) { if ((EntryCount * page) == EntryCount) { AddImage(400, 16, 0x2626); } AddButton(420, 16, 0x15E1, 0x15E5, 0, GumpButtonType.Page, page + 1); ++page; index = 0; AddPage(page); AddButton(400, 16, 0x15E3, 0x15E7, 0, GumpButtonType.Page, page - 1); if ((CarpetInfo.Infos.Length - (EntryCount * page)) < EntryCount) { AddImage(420, 16, 0x2622); } } CarpetInfo info = CarpetInfo.GetInfo(i); for (int j = 0; j < info.Entries.Length; ++j) { AddItem(20 + (index * 140) + info.Entries[j].OffsetX, 46 + info.Entries[j].OffsetY, info.Entries[j].ItemID); } AddButton(20 + (index * 140), 46, 1209, 1210, i + 1, GumpButtonType.Reply, 0); } }
public void UpdateComponents() { for (int i = Components.Count - 1; i >= 0; i--) { if (Components[i] != null && !Components[i].Deleted) { Components[i].Delete(); } } Components.Clear(); CarpetInfo info = CarpetInfo.GetInfo(m_Type); AddComponent(new AddonComponent(info.GetCarpetPart(Position.Top).ItemID), 0, 0, 0); AddComponent(new AddonComponent(info.GetCarpetPart(Position.Right).ItemID), m_Width, 0, 0); AddComponent(new AddonComponent(info.GetCarpetPart(Position.Left).ItemID), 0, m_Height, 0); AddComponent(new AddonComponent(info.GetCarpetPart(Position.Bottom).ItemID), m_Width, m_Height, 0); int w = m_Width - 1; int h = m_Height - 1; for (int y = 1; y <= h; ++y) { AddComponent(new AddonComponent(info.GetCarpetPart(Position.West).ItemID), 0, y, 0); AddComponent(new AddonComponent(info.GetCarpetPart(Position.East).ItemID), m_Width, y, 0); } for (int x = 1; x <= w; ++x) { AddComponent(new AddonComponent(info.GetCarpetPart(Position.North).ItemID), x, 0, 0); AddComponent(new AddonComponent(info.GetCarpetPart(Position.South).ItemID), x, m_Height, 0); } for (int x = 1; x <= w; ++x) { for (int y = 1; y <= h; ++y) { AddComponent(new AddonComponent(info.GetCarpetPart(Position.Center).ItemID), x, y, 0); } } }