public override void Gump(Mobile from, Gump gump, ACCGumpParams subParams)
{
gump.AddButton(195, 40, 2445, 2445, 101, GumpButtonType.Reply, 0);
gump.AddLabel(200, 41, 1153, "Manage System");
gump.AddButton(310, 40, 2445, 2445, 102, GumpButtonType.Reply, 0);
gump.AddLabel(342, 41, 1153, "Import");
if (subParams == null || !(subParams is PGGumpParams))
{
gump.AddHtml(215, 65, 300, 25, "<basefont size=7 color=white><center>Public Gates</center></font>", false, false);
gump.AddHtml(140, 95, 450, 250, "<basefont color=white><center>Welcome to the Public Gate Admin Gump!</center><br>With this gump, you can manage the entire system and import and export locations or full categories. Please choose an option from the top bar.<br><br>Manage System allows you to add/change/delete locations and categories from anywhere in the world.<br><br>Im/Ex port allows you to import or export categories and locations to files that you can distribute to other servers that use this system.</font>", false, false);
return;
}
Params = subParams as PGGumpParams;
switch ((int)Params.Page)
{
#region Manage Gump Code
case (int)Pages.Manage:
{
gump.AddBackground(640, 0, 160, 400, 5120);
gump.AddButton(425, 40, 2445, 2445, 123, GumpButtonType.Reply, 0);
gump.AddLabel(456, 41, 1153, "Export");
for (int i = 0; i < m_CategoryList.Count && i < 50; i++)
{
PGCategory PGC = m_CategoryList[i];
if (PGC != null)
{
gump.AddButton(650, 10 + i * 30, 2501, 2501, 150 + i, GumpButtonType.Reply, 0);
gump.AddButton(655, 12 + i * 30, (Params.SelectedCategory.Key == PGC ? 5401 : 5402), (Params.SelectedCategory.Key == PGC ? 5402 : 5401), 150 + i, GumpButtonType.Reply, 0);
gump.AddLabel(675, 10 + i * 30, 1153, PGC.Name);
}
}
if (Params.SelectedCategory.Key != null)
{
gump.AddBackground(425, 75, 170, 285, 5120);
gump.AddButton(195, 65, 2445, 2445, 121, GumpButtonType.Reply, 0);
gump.AddLabel(206, 66, 1153, "Add Category");
gump.AddButton(310, 65, 2445, 2445, 122, GumpButtonType.Reply, 0);
gump.AddLabel(322, 66, 1153, "Add Location");
for (int i = 0, c = 0, r = 0; i < Params.SelectedCategory.Key.Locations.Count; i++)
{
PGLocation PGL = Params.SelectedCategory.Key.Locations[i];
if (PGL != null)
{
gump.AddButton(120 + c * 150, 100 + r * 30, 2501, 2501, 200 + i, GumpButtonType.Reply, 0);
gump.AddButton(125 + c * 150, 102 + r * 30, (Params.SelectedLocation.Key == PGL ? 5401 : 5402), (Params.SelectedLocation.Key == PGL ? 5402 : 5401), 200 + i, GumpButtonType.Reply, 0);
gump.AddLabel(145 + c * 150, 100 + r * 30, 1153, PGL.Name);
r += (c == 1 ? 1 : 0);
c += (c == 1 ? -1 : 1);
}
}
if (Params.SelectedLocation.Key != null)
{
gump.AddButton(550, 265, 2642, 2643, 103, GumpButtonType.Reply, 0); //Apply Location
gump.AddImage(440, 85, 2501);
gump.AddTextEntry(446, 85, 130, 20, 0, 105, Params.SelectedLocation.Key.Name);
gump.AddImage(445, 110, 2443);
gump.AddImage(513, 110, 2443);
gump.AddImage(445, 135, 2443);
gump.AddImage(513, 135, 2443);
gump.AddImage(445, 160, 2443);
gump.AddTextEntry(450, 110, 53, 20, 0, 106, Params.SelectedLocation.Key.Location.X.ToString());
gump.AddTextEntry(518, 110, 53, 20, 0, 107, Params.SelectedLocation.Key.Location.Y.ToString());
gump.AddTextEntry(450, 135, 53, 20, 0, 108, Params.SelectedLocation.Key.Location.Z.ToString());
gump.AddTextEntry(518, 135, 53, 20, 0, 109, Params.SelectedLocation.Key.Hue.ToString());
gump.AddTextEntry(450, 160, 53, 20, 0, 110, Params.SelectedLocation.Key.Cost.ToString());
gump.AddLabel(435, 112, 1153, "X");
gump.AddLabel(578, 112, 1153, "Y");
gump.AddLabel(435, 137, 1153, "Z");
gump.AddLabel(578, 137, 1153, "H");
gump.AddLabel(435, 162, 1153, "C");
gump.AddRadio(435, 190, 208, 209, (Params.SelectedLocation.Key.Map == Map.Trammel), 111);
gump.AddRadio(570, 190, 208, 209, (Params.SelectedLocation.Key.Map == Map.Malas), 112);
gump.AddRadio(435, 215, 208, 209, (Params.SelectedLocation.Key.Map == Map.Felucca), 113);
gump.AddRadio(570, 215, 208, 209, (Params.SelectedLocation.Key.Map == Map.Ilshenar), 114);
gump.AddRadio(435, 240, 208, 209, (Params.SelectedLocation.Key.Map == Map.Tokuno), 115);
gump.AddLabel(460, 192, 1153, "Tram");
gump.AddLabel(530, 192, 1153, "Malas");
gump.AddLabel(460, 217, 1153, "Fel");
gump.AddLabel(542, 217, 1153, "Ilsh");
gump.AddLabel(460, 242, 1153, "Tokuno");
gump.AddLabel(465, 282, 1153, "Young?");
gump.AddCheck(440, 280, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Young), 120);
gump.AddLabel(465, 307, 1153, "Gen?");
gump.AddCheck(440, 305, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Generate), 116);
gump.AddLabel(515, 307, 1153, "Staff?");
gump.AddCheck(565, 305, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.StaffOnly), 117);
gump.AddLabel(465, 332, 1153, "Reds?");
gump.AddCheck(440, 330, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Reds), 118);
gump.AddLabel(522, 332, 1153, "Chrg?");
gump.AddCheck(565, 330, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Charge), 119);
}
else
{
gump.AddButton(550, 265, 2642, 2643, 104, GumpButtonType.Reply, 0); //Apply Category
gump.AddImage(440, 110, 2501);
gump.AddTextEntry(446, 110, 130, 20, 0, 105, Params.SelectedCategory.Key.Name);
gump.AddImage(445, 160, 2443);
gump.AddTextEntry(450, 160, 53, 20, 0, 110, Params.SelectedCategory.Key.Cost.ToString());
gump.AddLabel(435, 162, 1153, "C");
gump.AddLabel(465, 282, 1153, "Young?");
gump.AddCheck(440, 280, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Young), 120);
gump.AddLabel(465, 307, 1153, "Gen?");
gump.AddCheck(440, 305, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Generate), 116);
gump.AddLabel(515, 307, 1153, "Staff?");
gump.AddCheck(565, 305, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.StaffOnly), 117);
gump.AddLabel(465, 332, 1153, "Reds?");
gump.AddCheck(440, 330, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Reds), 118);
gump.AddLabel(522, 332, 1153, "Chrg?");
gump.AddCheck(565, 330, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Charge), 119);
}
}
break;
}
#endregion //Manage Gump Code
#region Import Gump Code
case (int)Pages.Import:
{//Import
if (!Directory.Exists("ACC Exports"))
{
from.SendMessage("There are no files to import!");
return;
}
gump.AddButton(195, 65, 2445, 2445, 124, GumpButtonType.Reply, 0); //Switch to Systems
gump.AddLabel(220, 66, 1153, "Systems");
gump.AddButton(310, 65, 2445, 2445, 125, GumpButtonType.Reply, 0); //Switch to Categories
gump.AddLabel(328, 66, 1153, "Categories");
gump.AddButton(425, 65, 2445, 2445, 126, GumpButtonType.Reply, 0); //Switch to Locations
gump.AddLabel(447, 66, 1153, "Locations");
switch ((int)Params.ImportSelection)
{
case (int)ImportSelections.Systems: { Dirs = Directory.GetFiles("ACC Exports/", "*.pgs"); break; }
case (int)ImportSelections.Categories: { Dirs = Directory.GetFiles("ACC Exports/", "*.pgc"); break; }
case (int)ImportSelections.Locations: { Dirs = Directory.GetFiles("ACC Exports/", "*.pgl"); break; }
default: { return; }
}
if (Dirs == null || Dirs.Length == 0)
{
from.SendMessage("There are no files of that type!");
return;
}
for (int i = 0, r = 0, c = 0; i < Dirs.Length && c < 3; i++)
{
string s = Dirs[i];
s = s.Remove(0, 12);
s = s.Remove(s.Length - 4, 4);
if (Params.ImportSelection == ImportSelections.Systems)
s = s.Remove(0, 9);
gump.AddButton(120 + c * 150, 100 + r * 30, 2501, 2501, 300 + i, GumpButtonType.Reply, 0);
gump.AddLabelCropped(125 + c * 150, 101 + r * 30, 140, 30, 1153, s);
c += (r == 7 ? 1 : 0);
r += (r == 7 ? -7 : 1);
}
break;
}
#endregion //Import Gump Code
}
}