Updates Serialization (#292)

- [X] Removes all save strategies
- [X] Removes duplicate file writer that won't be used
- [X] Removes persistence (it will become a duplicate system)
- [X] Add a save position variable to skip serializing a clean item/mobile
- [X] Update Guilds/Accounts to be IEntity types
    - Because guilds are abstract, this may make serialization tricky.
- [X] Update the generalized IEntity writing
- [X] Update the load/save to write to buffers then to files in background


Bumps release version
This commit is contained in:
Kamron Batman 2020-10-31 17:38:29 -07:00 committed by GitHub
parent a8d486a969
commit 1ca8655fc1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
43 changed files with 1148 additions and 4351 deletions

View file

@ -13,7 +13,7 @@ namespace Server.Tests.Network
var m = new Mobile(0x1);
m.DefaultMobileInit();
var item = new Item(Serial.LastItem + 1);
var item = new Item(World.NewItem);
var info = new EquipmentInfo(
500000,
@ -77,7 +77,7 @@ namespace Server.Tests.Network
var m = new Mobile(0x1);
m.DefaultMobileInit();
var item = new Item(Serial.LastItem + 1) { Parent = m };
var item = new Item(World.NewItem) { Parent = m };
var data = new EquipUpdate(item).Compile();

View file

@ -497,8 +497,8 @@ namespace Server.Tests.Network
[Fact]
public void TestContainerContent()
{
var cont = new Container(Serial.LastItem + 1);
cont.AddItem(new Item(Serial.LastItem + 2));
var cont = new Container(World.NewItem);
cont.AddItem(new Item(World.NewItem));
var m = new Mobile(0x1);
m.DefaultMobileInit();
@ -549,8 +549,8 @@ namespace Server.Tests.Network
[Fact]
public void TestContainerContent6017()
{
var cont = new Container(Serial.LastItem + 1);
cont.AddItem(new Item(Serial.LastItem + 2));
var cont = new Container(World.NewItem);
cont.AddItem(new Item(World.NewItem));
var m = new Mobile(0x1);
m.DefaultMobileInit();

View file

@ -145,7 +145,7 @@ namespace Server.Tests.Network
var m = new Mobile(0x1);
m.DefaultMobileInit();
var item = new ContextMenuItem(Serial.LastItem + 1);
var item = new ContextMenuItem(World.NewItem);
var menu = new ContextMenu(m, item);
var data = new DisplayContextMenu(menu).Compile();
@ -196,7 +196,7 @@ namespace Server.Tests.Network
var m = new Mobile(0x1);
m.DefaultMobileInit();
var item = new ContextMenuItem(Serial.LastItem + 1);
var item = new ContextMenuItem(World.NewItem);
var menu = new ContextMenu(m, item);
var data = new DisplayContextMenuOld(menu).Compile();

View file

@ -16,8 +16,8 @@ namespace Server.Tests.Network
var m = new Mobile(0x1);
m.DefaultMobileInit();
var firstCont = new Container(Serial.LastItem + 1);
var secondCont = new Container(Serial.LastItem + 2);
var firstCont = new Container(World.NewItem);
var secondCont = new Container(World.NewItem);
var data = new DisplaySecureTrade(m, firstCont, secondCont, name).Compile();
@ -44,7 +44,7 @@ namespace Server.Tests.Network
[Fact]
public void TestCloseSecureTrade()
{
var cont = new Container(Serial.LastItem + 1);
var cont = new Container(World.NewItem);
var data = new CloseSecureTrade(cont).Compile();
@ -64,8 +64,8 @@ namespace Server.Tests.Network
[InlineData(false, true)] // Update second
public void TestUpdateSecureTrade(bool first, bool second)
{
var firstCont = new Container(Serial.LastItem + 1);
var secondCont = new Container(Serial.LastItem + 2);
var firstCont = new Container(World.NewItem);
var secondCont = new Container(World.NewItem);
var cont = first ? firstCont : secondCont;
var data = new UpdateSecureTrade(cont, first, second).Compile();
@ -88,7 +88,7 @@ namespace Server.Tests.Network
[InlineData(250000, 50000, TradeFlag.UpdateLedger)]
public void TestUpdateGoldSecureTrade(int gold, int plat, TradeFlag flag)
{
var cont = new Container(Serial.LastItem + 1);
var cont = new Container(World.NewItem);
var data = new UpdateSecureTrade(cont, flag, gold, plat).Compile();
Span<byte> expectedData = stackalloc byte[16];
@ -110,8 +110,8 @@ namespace Server.Tests.Network
var m = new Mobile(0x1);
m.DefaultMobileInit();
var cont = new Container(Serial.LastItem + 1);
var itemInCont = new Item(Serial.LastItem + 2) { Parent = cont };
var cont = new Container(World.NewItem);
var itemInCont = new Item(World.NewItem) { Parent = cont };
var data = new SecureTradeEquip(itemInCont, m).Compile();
Span<byte> expectedData = stackalloc byte[20];
@ -140,8 +140,8 @@ namespace Server.Tests.Network
var m = new Mobile(0x1);
m.DefaultMobileInit();
var cont = new Container(Serial.LastItem + 1);
var itemInCont = new Item(Serial.LastItem + 2) { Parent = cont };
var cont = new Container(World.NewItem);
var itemInCont = new Item(World.NewItem) { Parent = cont };
var data = new SecureTradeEquip6017(itemInCont, m).Compile();

View file

@ -13,13 +13,13 @@ namespace Server.Tests.Network
[Fact]
public void TestVendorBuyContent()
{
var cont = new Container(Serial.LastItem + 1);
var cont = new Container(World.NewItem);
var buyStates = new List<BuyItemState>
{
new BuyItemState("First Item", cont.Serial, Serial.NewItem, 10, 1, 0x01, 0),
new BuyItemState("Second Item", cont.Serial, Serial.NewItem, 20, 2, 0x0A, 0),
new BuyItemState("Third Item", cont.Serial, Serial.NewItem, 30, 10, 0x0F, 0)
new BuyItemState("First Item", cont.Serial, World.NewItem, 10, 1, 0x01, 0),
new BuyItemState("Second Item", cont.Serial, World.NewItem, 20, 2, 0x0A, 0),
new BuyItemState("Third Item", cont.Serial, World.NewItem, 30, 10, 0x0F, 0)
};
var data = new VendorBuyContent(buyStates).Compile();
@ -52,13 +52,13 @@ namespace Server.Tests.Network
[Fact]
public void TestVendorBuyContent6017()
{
var cont = new Container(Serial.LastItem + 1);
var cont = new Container(World.NewItem);
var buyStates = new List<BuyItemState>
{
new BuyItemState("First Item", cont.Serial, Serial.NewItem, 10, 1, 0x01, 0),
new BuyItemState("Second Item", cont.Serial, Serial.NewItem, 20, 2, 0x0A, 0),
new BuyItemState("Third Item", cont.Serial, Serial.NewItem, 30, 10, 0x0F, 0)
new BuyItemState("First Item", cont.Serial, World.NewItem, 10, 1, 0x01, 0),
new BuyItemState("Second Item", cont.Serial, World.NewItem, 20, 2, 0x0A, 0),
new BuyItemState("Third Item", cont.Serial, World.NewItem, 30, 10, 0x0F, 0)
};
var data = new VendorBuyContent6017(buyStates).Compile();
@ -139,13 +139,13 @@ namespace Server.Tests.Network
var vendor = new Mobile(0x1);
vendor.DefaultMobileInit();
var cont = new Container(Serial.LastItem + 1);
var cont = new Container(World.NewItem);
var buyStates = new List<BuyItemState>
{
new BuyItemState("First Item", cont.Serial, Serial.NewItem, 10, 1, 0x01, 0),
new BuyItemState("Second Item", cont.Serial, Serial.NewItem, 20, 2, 0x0A, 0),
new BuyItemState("Third Item", cont.Serial, Serial.NewItem, 30, 10, 0x0F, 0)
new BuyItemState("First Item", cont.Serial, World.NewItem, 10, 1, 0x01, 0),
new BuyItemState("Second Item", cont.Serial, World.NewItem, 20, 2, 0x0A, 0),
new BuyItemState("Third Item", cont.Serial, World.NewItem, 30, 10, 0x0F, 0)
};
var data = new VendorBuyList(vendor, buyStates).Compile();

View file

@ -15,9 +15,9 @@ namespace Server.Tests.Network
var vendor = new Mobile(0x1);
vendor.DefaultMobileInit();
var item1 = new Item(Serial.LastItem + 1);
var item2 = new Item(Serial.LastItem + 2) { Name = "Second Item" };
var item3 = new Item(Serial.LastItem + 3);
var item1 = new Item(World.NewItem);
var item2 = new Item(World.NewItem) { Name = "Second Item" };
var item3 = new Item(World.NewItem);
var sellStates = new List<SellItemState>
{