Reorganizes Project (#41)
This commit is contained in:
parent
08bf44af9a
commit
3614a66aee
3499 changed files with 79 additions and 55 deletions
188
Projects/Scripts/Gumps/BaseGridGump.cs
Normal file
188
Projects/Scripts/Gumps/BaseGridGump.cs
Normal file
|
|
@ -0,0 +1,188 @@
|
|||
namespace Server.Gumps
|
||||
{
|
||||
public abstract class BaseGridGump : Gump
|
||||
{
|
||||
public const int ArrowLeftID1 = 0x15E3;
|
||||
public const int ArrowLeftID2 = 0x15E7;
|
||||
public const int ArrowLeftWidth = 16;
|
||||
public const int ArrowLeftHeight = 16;
|
||||
|
||||
public const int ArrowRightID1 = 0x15E1;
|
||||
public const int ArrowRightID2 = 0x15E5;
|
||||
public const int ArrowRightWidth = 16;
|
||||
public const int ArrowRightHeight = 16;
|
||||
protected GumpBackground m_Background;
|
||||
protected GumpImageTiled m_Offset;
|
||||
|
||||
public BaseGridGump(int x, int y) : base(x, y)
|
||||
{
|
||||
}
|
||||
|
||||
public int CurrentPage{ get; private set; }
|
||||
|
||||
public int CurrentX{ get; private set; }
|
||||
|
||||
public int CurrentY{ get; private set; }
|
||||
|
||||
public virtual int BorderSize => 10;
|
||||
public virtual int OffsetSize => 1;
|
||||
|
||||
public virtual int EntryHeight => 20;
|
||||
|
||||
public virtual int OffsetGumpID => 0x0A40;
|
||||
public virtual int HeaderGumpID => 0x0E14;
|
||||
public virtual int EntryGumpID => 0x0BBC;
|
||||
public virtual int BackGumpID => 0x13BE;
|
||||
|
||||
public virtual int TextHue => 0;
|
||||
public virtual int TextOffsetX => 2;
|
||||
|
||||
public string Center(string text)
|
||||
{
|
||||
return $"<CENTER>{text}</CENTER>";
|
||||
}
|
||||
|
||||
public string Color(string text, int color)
|
||||
{
|
||||
return $"<BASEFONT COLOR=#{color:X6}>{text}</BASEFONT>";
|
||||
}
|
||||
|
||||
public int GetButtonID(int typeCount, int type, int index)
|
||||
{
|
||||
return 1 + index * typeCount + type;
|
||||
}
|
||||
|
||||
public bool SplitButtonID(int buttonID, int typeCount, out int type, out int index)
|
||||
{
|
||||
if (buttonID < 1)
|
||||
{
|
||||
type = 0;
|
||||
index = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
buttonID -= 1;
|
||||
|
||||
type = buttonID % typeCount;
|
||||
index = buttonID / typeCount;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void FinishPage()
|
||||
{
|
||||
if (m_Background != null)
|
||||
m_Background.Height = CurrentY + EntryHeight + OffsetSize + BorderSize;
|
||||
|
||||
if (m_Offset != null)
|
||||
m_Offset.Height = CurrentY + EntryHeight + OffsetSize - BorderSize;
|
||||
}
|
||||
|
||||
public void AddNewPage()
|
||||
{
|
||||
FinishPage();
|
||||
|
||||
CurrentX = BorderSize + OffsetSize;
|
||||
CurrentY = BorderSize + OffsetSize;
|
||||
|
||||
AddPage(++CurrentPage);
|
||||
|
||||
m_Background = new GumpBackground(0, 0, 100, 100, BackGumpID);
|
||||
Add(m_Background);
|
||||
|
||||
m_Offset = new GumpImageTiled(BorderSize, BorderSize, 100, 100, OffsetGumpID);
|
||||
Add(m_Offset);
|
||||
}
|
||||
|
||||
public void AddNewLine()
|
||||
{
|
||||
CurrentY += EntryHeight + OffsetSize;
|
||||
CurrentX = BorderSize + OffsetSize;
|
||||
}
|
||||
|
||||
public void IncreaseX(int width)
|
||||
{
|
||||
CurrentX += width + OffsetSize;
|
||||
|
||||
width = CurrentX + BorderSize;
|
||||
|
||||
if (m_Background != null && width > m_Background.Width)
|
||||
m_Background.Width = width;
|
||||
|
||||
width = CurrentX - BorderSize;
|
||||
|
||||
if (m_Offset != null && width > m_Offset.Width)
|
||||
m_Offset.Width = width;
|
||||
}
|
||||
|
||||
public void AddEntryLabel(int width, string text)
|
||||
{
|
||||
AddImageTiled(CurrentX, CurrentY, width, EntryHeight, EntryGumpID);
|
||||
AddLabelCropped(CurrentX + TextOffsetX, CurrentY, width - TextOffsetX, EntryHeight, TextHue, text);
|
||||
|
||||
IncreaseX(width);
|
||||
}
|
||||
|
||||
public void AddEntryHtml(int width, string text)
|
||||
{
|
||||
AddImageTiled(CurrentX, CurrentY, width, EntryHeight, EntryGumpID);
|
||||
AddHtml(CurrentX + TextOffsetX, CurrentY, width - TextOffsetX, EntryHeight, text);
|
||||
|
||||
IncreaseX(width);
|
||||
}
|
||||
|
||||
public void AddEntryHeader(int width)
|
||||
{
|
||||
AddEntryHeader(width, 1);
|
||||
}
|
||||
|
||||
public void AddEntryHeader(int width, int spannedEntries)
|
||||
{
|
||||
AddImageTiled(CurrentX, CurrentY, width, EntryHeight * spannedEntries + OffsetSize * (spannedEntries - 1),
|
||||
HeaderGumpID);
|
||||
IncreaseX(width);
|
||||
}
|
||||
|
||||
public void AddBlankLine()
|
||||
{
|
||||
if (m_Offset != null)
|
||||
AddImageTiled(m_Offset.X, CurrentY, m_Offset.Width, EntryHeight, BackGumpID + 4);
|
||||
|
||||
AddNewLine();
|
||||
}
|
||||
|
||||
public void AddEntryButton(int width, int normalID, int pressedID, int buttonID, int buttonWidth, int buttonHeight)
|
||||
{
|
||||
AddEntryButton(width, normalID, pressedID, buttonID, buttonWidth, buttonHeight, 1);
|
||||
}
|
||||
|
||||
public void AddEntryButton(int width, int normalID, int pressedID, int buttonID, int buttonWidth, int buttonHeight,
|
||||
int spannedEntries)
|
||||
{
|
||||
AddImageTiled(CurrentX, CurrentY, width, EntryHeight * spannedEntries + OffsetSize * (spannedEntries - 1),
|
||||
HeaderGumpID);
|
||||
AddButton(CurrentX + (width - buttonWidth) / 2,
|
||||
CurrentY + (EntryHeight * spannedEntries + OffsetSize * (spannedEntries - 1) - buttonHeight) / 2, normalID,
|
||||
pressedID, buttonID);
|
||||
|
||||
IncreaseX(width);
|
||||
}
|
||||
|
||||
public void AddEntryPageButton(int width, int normalID, int pressedID, int page, int buttonWidth, int buttonHeight)
|
||||
{
|
||||
AddImageTiled(CurrentX, CurrentY, width, EntryHeight, HeaderGumpID);
|
||||
AddButton(CurrentX + (width - buttonWidth) / 2, CurrentY + (EntryHeight - buttonHeight) / 2, normalID, pressedID,
|
||||
0, GumpButtonType.Page, page);
|
||||
|
||||
IncreaseX(width);
|
||||
}
|
||||
|
||||
public void AddEntryText(int width, int entryID, string initialText)
|
||||
{
|
||||
AddImageTiled(CurrentX, CurrentY, width, EntryHeight, EntryGumpID);
|
||||
AddTextEntry(CurrentX + TextOffsetX, CurrentY, width - TextOffsetX, EntryHeight, TextHue, entryID, initialText);
|
||||
|
||||
IncreaseX(width);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue