feat: Adds TextDefinition serialization support. (#1217)

This commit is contained in:
Kamron Batman 2022-10-30 01:42:48 -07:00 • committed by GitHub
parent 39e6f62ec9
commit d791feb583
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 301 additions and 267 deletions

View file

@ -112,13 +112,12 @@ namespace Server.Engines.Craft
if (craftItem.RequiredExpansion != Expansion.None)
{
var supportsEx = from.NetState?.SupportsExpansion(craftItem.RequiredExpansion) == true;
TextDefinition.AddHtmlText(
RequiredExpansionMessage(craftItem.RequiredExpansion).AddHtmlText(
this,
170,
302 + m_OtherCount++ * 20,
310,
18,
RequiredExpansionMessage(craftItem.RequiredExpansion),
false,
false,
supportsEx ? LabelColor : RedLabelColor,

View file

@ -134,7 +134,7 @@ namespace Server.Factions
if (IsCorrupted)
{
TextDefinition.AddTo(list, m_Corrupted.Definition.SigilControl);
m_Corrupted.Definition.SigilControl.AddTo(list);
}
else
{

View file

@ -23,7 +23,7 @@ namespace Server.Engines.Harvest
public void SendSuccessTo(Mobile m)
{
TextDefinition.SendMessageTo(m, SuccessMessage);
SuccessMessage.SendMessageTo(m);
}
}
}

View file

@ -149,7 +149,7 @@ namespace Server.Engines.MLQuests.Gumps
0x2710
);
TextDefinition.AddHtmlText(this, 98, 156, 312, 240, quest.Description, false, true, 0x15F90, 0xBDE784);
quest.Description.AddHtmlText(this, 98, 156, 312, 240, false, true, 0x15F90, 0xBDE784);
}
public void AddObjectives(MLQuest quest)
@ -250,7 +250,7 @@ namespace Server.Engines.MLQuests.Gumps
public void AddConversation(TextDefinition text)
{
TextDefinition.AddHtmlText(this, 98, 140, 312, 180, text, false, true, 0x15F90, 0xBDE784);
text.AddHtmlText(this, 98, 140, 312, 180, false, true, 0x15F90, 0xBDE784);
}
/* OSI gump IDs:

View file

@ -10,8 +10,8 @@ namespace Server.Engines.MLQuests.Gumps
SetPageCount(1);
BuildPage();
TextDefinition.AddHtmlText(this, 160, 108, 250, 16, title, false, false, 0x2710, 0x4AC684);
TextDefinition.AddHtmlText(this, 98, 156, 312, 180, message, false, true, 0x15F90, 0xBDE784);
title.AddHtmlText(this, 160, 108, 250, 16, false, false, 0x2710, 0x4AC684);
message.AddHtmlText(this, 98, 156, 312, 180, false, true, 0x15F90, 0xBDE784);
}
}
}

View file

@ -47,13 +47,12 @@ namespace Server.Engines.MLQuests.Gumps
numberColor = stringColor = 0xFFFFFF;
}
TextDefinition.AddHtmlText(
instances[i].Quest.Title.AddHtmlText(
this,
98,
140 + 21 * i,
270,
21,
instances[i].Quest.Title,
false,
false,
numberColor,

View file

@ -67,7 +67,7 @@ namespace Server.Engines.MLQuests.Items
return true;
}
TextDefinition.SendMessageTo(m, Message);
Message.SendMessageTo(m);
return false;
}
@ -88,7 +88,7 @@ namespace Server.Engines.MLQuests.Items
writer.Write(0); // version
writer.Write(m_QuestType?.FullName);
TextDefinition.Serialize(writer, Message);
writer.Write(Message);
}
public override void Deserialize(IGenericReader reader)
@ -104,7 +104,7 @@ namespace Server.Engines.MLQuests.Items
m_QuestType = AssemblyHandler.FindTypeByFullName(typeName);
}
Message = TextDefinition.Deserialize(reader);
Message = reader.ReadTextDefinition();
}
}
@ -170,7 +170,7 @@ namespace Server.Engines.MLQuests.Items
if (ticket == null)
{
TextDefinition.SendMessageTo(m, Message);
Message.SendMessageTo(m);
return false;
}
@ -196,7 +196,7 @@ namespace Server.Engines.MLQuests.Items
writer.Write(0); // version
writer.Write( m_TicketType?.FullName);
TextDefinition.Serialize(writer, Message);
writer.Write(Message);
}
public override void Deserialize(IGenericReader reader)
@ -212,7 +212,7 @@ namespace Server.Engines.MLQuests.Items
m_TicketType = AssemblyHandler.FindTypeByFullName(typeName);
}
Message = TextDefinition.Deserialize(reader);
Message = reader.ReadTextDefinition();
}
}
}

View file

@ -96,7 +96,7 @@ namespace Server.Engines.MLQuests
public BaseObjectiveInstance[] Objectives { get; set; }
public bool SkipReportBack => TextDefinition.IsNullOrEmpty(Quest.CompletionMessage);
public bool SkipReportBack => Quest.CompletionMessage.IsNullOrEmpty();
private void Register()
{
@ -166,7 +166,7 @@ namespace Server.Engines.MLQuests
obj.OnQuestCompleted();
}
TextDefinition.SendMessageTo(Player, Quest.CompletionNotice, 0x23);
Quest.CompletionNotice.SendMessageTo(Player, 0x23);
/*
* Advance to the ClaimReward=true stage if this quest has no
@ -176,8 +176,8 @@ namespace Server.Engines.MLQuests
* For quests that require collections, this is done later when
* the player double clicks the quester.
*/
if (!Removed && SkipReportBack && !Quest.RequiresCollection
) // An OnQuestCompleted can potentially have removed this instance already
// An OnQuestCompleted can potentially have removed this instance already
if (!Removed && SkipReportBack && !Quest.RequiresCollection)
{
ContinueReportBack(false);
}

View file

@ -243,7 +243,7 @@ namespace Server.Engines.MLQuests.Mobiles
}
}
TextDefinition.PublicOverheadMessage(m_Owner, MessageType.Regular, 0x3B2, m_Conversation[m_Index++]);
m_Conversation[m_Index++].PublicOverheadMessage(m_Owner, MessageType.Regular, 0x3B2);
Interval = GetDelay();
}
}
@ -257,9 +257,9 @@ namespace Server.Engines.MLQuests.Mobiles
1073998, // Blessings of Sosaria to you and merry met, friend.
1073999, // I am glad for your company and wonder if you seek the heritage of your people? I sense within you an elven bloodline -- the purity of which was lost when our brothers and sisters were exiled here in the Rupture.
1074000, // If it is your desire to reclaim your place amongst the people, you must demonstrate that you understand and embrace the responsibilities expected of you as an elf.
1074001, // The most basic lessons of our Sosaria are taught by her humblest children. Seek Maul, the great bear, who understands instictively the seasons.
1074001, // The most basic lessons of our Sosaria are taught by her humblest children. Seek Maul, the great bear, who understands instinctively the seasons.
1074398, // Seek Strongroot, the great treefellow, whose very roots reach to the heart of the world. Seek Enigma, whose wisdom can only be conveyed in riddles and rhymes. Seek Bravehorn, the great hart, who exemplifies the fierce dedication of a protector of his people.
1074399, // Seek the Huntsman, the centuar tasked with maintaining the balance. And lastly seek Arielle, the pixie, who has perhaps the most important lesson -- not to take yourself too seriously.
1074399, // Seek the Huntsman, the centaur tasked with maintaining the balance. And lastly seek Arielle, the pixie, who has perhaps the most important lesson -- not to take yourself too seriously.
1074400 // Or do none of these things. You must choose your own path in the world, and what use you'll make of your existence.
};

View file

@ -14,7 +14,7 @@ namespace Server.Engines.MLQuests.Rewards
public void WriteToGump(Gump g, int x, ref int y)
{
TextDefinition.AddHtmlText(g, x, y, 280, LabelHeight, Name, false, false, 0x15F90, 0xBDE784);
Name.AddHtmlText(g, x, y, 280, LabelHeight, false, false, 0x15F90, 0xBDE784);
}
public abstract void AddRewardItems(PlayerMobile pm, List<Item> rewards);

View file

@ -145,7 +145,7 @@ namespace Server.Engines.Spawners
if (IsEmpty && End <= Core.Now && m.InRange(GetWorldLocation(), TriggerRange) &&
m.Location != oldLocation && ValidTrigger(m))
{
TextDefinition.SendMessageTo(m, SpawnMessage);
SpawnMessage.SendMessageTo(m);
DoTimer();
Spawn();
@ -170,7 +170,7 @@ namespace Server.Engines.Spawners
writer.WriteEncodedInt(0); // version
writer.Write(TriggerRange);
TextDefinition.Serialize(writer, SpawnMessage);
writer.Write(SpawnMessage);
writer.Write(InstantFlag);
}
@ -181,7 +181,7 @@ namespace Server.Engines.Spawners
var version = reader.ReadEncodedInt();
TriggerRange = reader.ReadInt();
SpawnMessage = TextDefinition.Deserialize(reader);
SpawnMessage = reader.ReadTextDefinition();
InstantFlag = reader.ReadBool();
}
}

View file

@ -117,11 +117,7 @@ namespace Server.Items
{
base.GetProperties(list);
if (m_Label > 0)
{
TextDefinition.AddTo(list, m_Label);
}
m_Label.AddTo(list);
list.Add(1060584, m_UsesRemaining); // uses remaining: ~1_val~
}