fix(core): Fixes several serialization issues (#355)

- [X] Fixes an issue where a buffer smaller than 8 bytes would not double with enough space in some cases.
- [X] Fixes an issue with dupe copying the savebuffer reference (ugh).
- [X] Streamlines the IGenericWriter API to use better generics.
- [X] Streamlines the IGenericReader API to use better generics.
- [X] Forces `tidying` of a List/HashSet to be done externally since Writers/Readers should not have side effects.
- [X] Fixes an issue where Tidying a list didn't TrimExcess, causing memory leaks.
- [X] Reverted the meaning of `World.Running` to specifically refer to any world state post world loading.
  - NOTE: Do not use this if you want to block on world saves. Instead use checks against `WorldState.Saving` states.
- [X] Fixes an issue with serializing negative DateTime deltas.
- [X] Fixes a potential issue with serializing non-UTC DateTime.

Bumps release version
This commit is contained in:
Kamron Batman 2020-12-23 07:11:41 -08:00 • committed by GitHub
parent 0888ab9b86
commit 4ddb3de026
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
162 changed files with 652 additions and 1045 deletions

View file

@ -201,7 +201,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -292,7 +292,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as AnkhWest;
m_Item = reader.ReadEntity<AnkhWest>();
}
}
}
@ -388,7 +388,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
[TypeAlias("Server.Items.AnkhEast+InternalItem")]
@ -481,7 +481,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as AnkhNorth;
m_Item = reader.ReadEntity<AnkhNorth>();
}
}
}

View file

@ -154,7 +154,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -210,7 +210,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as DecorativeSwordNorth;
m_Item = reader.ReadEntity<DecorativeSwordNorth>();
}
}
}
@ -269,7 +269,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -325,7 +325,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as DecorativeSwordWest;
m_Item = reader.ReadEntity<DecorativeSwordWest>();
}
}
}
@ -384,7 +384,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -440,7 +440,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as DecorativeDAxeNorth;
m_Item = reader.ReadEntity<DecorativeDAxeNorth>();
}
}
}
@ -499,7 +499,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -555,7 +555,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as DecorativeDAxeWest;
m_Item = reader.ReadEntity<DecorativeDAxeWest>();
}
}
}

View file

@ -54,7 +54,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -110,7 +110,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as Tapestry1N;
m_Item = reader.ReadEntity<Tapestry1N>();
}
}
}
@ -169,7 +169,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -225,7 +225,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as Tapestry2N;
m_Item = reader.ReadEntity<Tapestry2N>();
}
}
}
@ -284,7 +284,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -340,7 +340,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as Tapestry2W;
m_Item = reader.ReadEntity<Tapestry2W>();
}
}
}
@ -399,7 +399,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -455,7 +455,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as Tapestry3N;
m_Item = reader.ReadEntity<Tapestry3N>();
}
}
}
@ -514,7 +514,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -570,7 +570,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as Tapestry3W;
m_Item = reader.ReadEntity<Tapestry3W>();
}
}
}
@ -629,7 +629,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -685,7 +685,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as Tapestry4N;
m_Item = reader.ReadEntity<Tapestry4N>();
}
}
}
@ -744,7 +744,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -800,7 +800,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as Tapestry4W;
m_Item = reader.ReadEntity<Tapestry4W>();
}
}
}
@ -859,7 +859,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -915,7 +915,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as Tapestry5N;
m_Item = reader.ReadEntity<Tapestry5N>();
}
}
}
@ -974,7 +974,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -1030,7 +1030,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as Tapestry5W;
m_Item = reader.ReadEntity<Tapestry5W>();
}
}
}
@ -1089,7 +1089,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -1145,7 +1145,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as Tapestry6N;
m_Item = reader.ReadEntity<Tapestry6N>();
}
}
}
@ -1204,7 +1204,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as InternalItem;
m_Item = reader.ReadEntity<InternalItem>();
}
private class InternalItem : Item
@ -1260,7 +1260,7 @@ namespace Server.Items
var version = reader.ReadInt();
m_Item = reader.ReadItem() as Tapestry6W;
m_Item = reader.ReadEntity<Tapestry6W>();
}
}
}

View file

@ -543,7 +543,7 @@ namespace Server.Items
OpenedSound = reader.ReadInt();
ClosedSound = reader.ReadInt();
Offset = reader.ReadPoint3D();
m_Link = reader.ReadItem() as BaseDoor;
m_Link = reader.ReadEntity<BaseDoor>();
m_Timer = new InternalTimer(this);