public override Rectangle2D GenerateGump(TriggerObject trigObject, UberScriptGump gump, int originX, int originY) { return m_Condition != null && GetCondition(trigObject) == false ? new Rectangle2D() : new Rectangle2D(GetX(trigObject), GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject)); }
public override Rectangle2D GenerateGump(TriggerObject trigObject, UberScriptGump gump, int originX, int originY) { if (m_Condition != null && GetCondition(trigObject) == false) { return new Rectangle2D(); } gump.AddLabel(originX + GetX(trigObject), originY + GetY(trigObject), GetHue(trigObject), GetLabel(trigObject)); return new Rectangle2D(GetX(trigObject), GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject)); }
public override Rectangle2D GenerateGump(TriggerObject trigObject, UberScriptGump gump, int originX, int originY) { if (m_Condition != null && GetCondition(trigObject) == false) { return new Rectangle2D(); } gump.X = GetX(trigObject); gump.Y = GetY(trigObject); gump.Closable = Closable; gump.Disposable = Disposable; gump.Dragable = Dragable; gump.Resizable = Resizable; gump.AddPage(0); foreach (UberGumpElement child in Children) { child.GenerateGump(trigObject, gump, gump.X, gump.Y); } return new Rectangle2D(); }
public override Rectangle2D GenerateGump(TriggerObject trigObject, UberScriptGump gump, int originX, int originY) { if (m_Condition != null && GetCondition(trigObject) == false) { return new Rectangle2D(); } int x = originX + GetX(trigObject); int y = originY + GetY(trigObject); int width = GetWidth(trigObject); int height = GetHeight(trigObject); if (HTMLMath != null) { object toSend = HTMLMath.Calculate(trigObject); gump.AddHtml(x, y, width, height, toSend == null ? HTMLString : toSend.ToString(), Background, ScrollBar); } else { gump.AddHtml(x, y, width, height, HTMLString, Background, ScrollBar); } return new Rectangle2D(GetX(trigObject), GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject)); }
public override Rectangle2D GenerateGump(TriggerObject trigObject, UberScriptGump gump, int originX, int originY) { if (m_Condition != null && GetCondition(trigObject) == false) { return new Rectangle2D(); } int backgroundID = GetBackgroundID(trigObject); int padding = GetPadding(trigObject); int x = originX + GetX(trigObject); int y = originY + GetY(trigObject); int width = GetWidth(trigObject); int height = GetHeight(trigObject); int verticalGap = GetVerticalGap(trigObject); if (backgroundID != 0) { gump.AddBackground(x, y, width, height, backgroundID); } x += padding; y += padding; foreach (UberGumpElement child in Children) { if (child is UberGumpList) { UberGumpList list = (UberGumpList)child; ArrayList actualList = list.GetListSource(trigObject); if (actualList != null) { string key = list.GetObjsVarName(trigObject); string functionName = list.GetLoopFunction(trigObject); foreach (object element in actualList) { trigObject.objs[key] = element; child.GenerateGump(trigObject, gump, x, y); y += child.GetHeight(trigObject) + verticalGap; // check the script to execute in between if (functionName == null) { continue; } RootNode scriptNode = trigObject.Script.ScriptRootNode; if (scriptNode != null) { foreach (UserDefinedFunctionNode node in scriptNode.UserDefinedFunctionNodes.Where(node => node.ScriptString == functionName)) { node.Execute(trigObject); break; } } } } } else { child.GenerateGump(trigObject, gump, x, y); y += child.GetHeight(trigObject) + verticalGap; } } return new Rectangle2D(GetX(trigObject), GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject)); }
// returns the width and height of the element public virtual Rectangle2D GenerateGump(TriggerObject trigObject, UberScriptGump gump, int originX, int originY) { throw new NotImplementedException(); }
public override Rectangle2D GenerateGump(TriggerObject trigObject, UberScriptGump gump, int originX, int originY) { if (m_Condition != null && GetCondition(trigObject) == false) { return new Rectangle2D(); } int backgroundID = GetBackgroundID(trigObject); int padding = GetPadding(trigObject); int x = originX + GetX(trigObject); int y = originY + GetY(trigObject); int width = GetWidth(trigObject); int height = GetHeight(trigObject); int horizontalGap = GetHorizontalGap(trigObject); if (backgroundID != 0) { gump.AddBackground(x, y, width, height, backgroundID); } x += padding; y += padding; foreach (UberGumpElement child in Children) { child.GenerateGump(trigObject, gump, x, y); x += child.GetWidth(trigObject) + horizontalGap; } return new Rectangle2D(GetX(trigObject), GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject)); }
public override Rectangle2D GenerateGump(TriggerObject trigObject, UberScriptGump gump, int originX, int originY) { if (m_Condition != null && GetCondition(trigObject) == false) { return new Rectangle2D(); } int x = originX + GetX(trigObject); int y = originY + GetY(trigObject); gump.CurrentList = GetListSource(trigObject); string objName = GetObjsVarName(trigObject); ArrayList prevList = gump.CurrentList; object prevListObject = gump.CurrentListObject; gump.CurrentListObject = trigObject.objs.ContainsKey(objName) ? trigObject.objs[objName] : null; foreach (UberGumpElement child in Children) { child.GenerateGump(trigObject, gump, x, y); } gump.CurrentList = prevList; gump.CurrentListObject = prevListObject; return new Rectangle2D(GetX(trigObject), GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject)); }
public override Rectangle2D GenerateGump(TriggerObject trigObject, UberScriptGump gump, int originX, int originY) { if (m_Condition != null && GetCondition(trigObject) == false) { return new Rectangle2D(); } Mobile mob = GetMobile(trigObject); if (mob == null) { return new Rectangle2D(GetX(trigObject), GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject)); } var layers = new Item[NumLayers]; foreach (Item item in mob.Items) { byte byteLayer = (byte)item.Layer; if (byteLayer < 0x19) { layers[LayerMapping[byteLayer]] = item; } } if (layers[2] != null && (layers[2].ItemID == 0x1411 || layers[2].ItemID == 0x141a)) // plate legs go over shoes { layers[3] = null; // remove shoe layer } int x = originX + GetX(trigObject); int y = originY + GetY(trigObject); int mobHue = mob.Hue & 0x0FFF; // somehow 0x8000 bit is added to indicate it is a skin hue... but this doesn't work as a gumpart hue... weird :P if (mobHue > 0) { mobHue = mobHue - 1; // for some reason gump hues skip hue = 1 (pitch black), so anything above 0 needs to be offset by one } if (mob.BodyValue == 400) // human male { gump.AddImage(x, y, 0xC, mobHue); } else if (mob.BodyValue == 401) // human male { gump.AddImage(x, y, 0xD, mobHue); } else if (mob.BodyValue == 605) // elf male { gump.AddImage(x, y, 0xE, mobHue); } else if (mob.BodyValue == 606) // elf female { gump.AddImage(x, y, 0xF, mobHue); } else if (mob.BodyValue == 183 || mob.BodyValue == 185) // savage male? { gump.AddImage(x, y, 0x79, mobHue); } else if (mob.BodyValue == 184 || mob.BodyValue == 186) // savage female? { gump.AddImage(x, y, 0x78, mobHue); } else if (mob.BodyValue == 666) // gargoyle male { gump.AddImage(x, y, 0x29A, mobHue); } else if (mob.BodyValue == 667) // gargoyle female { gump.AddImage(x, y, 0x299, mobHue); } else if (mob.BodyValue == 990) // lord british { gump.AddImage(x, y, 0x3DE, mobHue); } else if (mob.BodyValue == 991) // lord blackthorn { gump.AddImage(x, y, 0x3DF, mobHue); } else if (mob.BodyValue == 994) // dupre { gump.AddImage(x, y, 0xC732, mobHue); } else { return new Rectangle2D(GetX(trigObject), GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject)); // can't make a paperdoll } for (int i = 0; i < NumLayers; i++) { int mappedGumpID = 0; if (i == 13) // hair layer { PaperDollLookup.ItemIDtoGumpID.TryGetValue(mob.HairItemID, out mappedGumpID); if (mappedGumpID != 0) { if (mob.Female && HasFemaleOffset(mappedGumpID)) { mappedGumpID += 10000; // female offset } gump.AddImage(x, y, mappedGumpID, mob.HairHue == 0 ? 0 : mob.HairHue - 1); // weird gump art hue offset (skips jet black) } PaperDollLookup.ItemIDtoGumpID.TryGetValue(mob.FacialHairItemID, out mappedGumpID); if (mappedGumpID != 0) { if (mob.Female && HasFemaleOffset(mappedGumpID)) { mappedGumpID += 10000; // female offset } gump.AddImage(x, y, mappedGumpID, mob.FacialHairHue == 0 ? 0 : mob.FacialHairHue - 1); // weird gump art hue offset (skips jet black) } } else { if (layers[i] == null) { continue; } PaperDollLookup.ItemIDtoGumpID.TryGetValue(layers[i].ItemID, out mappedGumpID); if (mappedGumpID == 0) { continue; // not in the dictionary } if (mob.Female && HasFemaleOffset(mappedGumpID)) { mappedGumpID += 10000; // female offset } gump.AddImage(x, y, mappedGumpID, layers[i].Hue == 0 ? 0 : layers[i].Hue - 1); // weird gump art hue offset (skips jet black) } } return new Rectangle2D(GetX(trigObject), GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject)); }
public override Rectangle2D GenerateGump(TriggerObject trigObject, UberScriptGump gump, int originX, int originY) { if (m_Condition != null && GetCondition(trigObject) == false) { return new Rectangle2D(); } int randomButtonID = gump.GetRandomButtonID(); int size = GetSize(trigObject); gump.ButtonMap.Add(randomButtonID, GetName(trigObject)); if (size > -1) { gump.AddTextEntry( originX + GetX(trigObject), originY + GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject), GetHue(trigObject), randomButtonID, GetDefault(trigObject), size); } else { gump.AddTextEntry( originX + GetX(trigObject), originY + GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject), GetHue(trigObject), randomButtonID, GetDefault(trigObject)); } if (gump.CurrentList != null && gump.CurrentListObject != null) { gump.AddListIDMapping(gump.CurrentList, gump.CurrentListObject, randomButtonID); } return new Rectangle2D(GetX(trigObject), GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject)); }
public override Rectangle2D GenerateGump(TriggerObject trigObject, UberScriptGump gump, int originX, int originY) { if (m_Condition != null && GetCondition(trigObject) == false) { return new Rectangle2D(); } int randomButtonID = gump.GetRandomButtonID(); gump.ButtonMap.Add(randomButtonID, GetName(trigObject)); gump.AddButton( originX + GetX(trigObject), originY + GetY(trigObject), GetNormalID(trigObject), GetPressedID(trigObject), randomButtonID, GumpButtonType.Reply, 0); if (gump.CurrentList != null && gump.CurrentListObject != null) { gump.AddListIDMapping(gump.CurrentList, gump.CurrentListObject, randomButtonID); } return new Rectangle2D(GetX(trigObject), GetY(trigObject), GetWidth(trigObject), GetHeight(trigObject)); }