ModernUO/Projects/Server
Kamron Batman b7882df136
fix: Fixes serialization and dirty tracking conveniences (#1627)
### Summary
- Fixes issues with non-_ISerializable_ objects having bad serialization (Skill/Stat. Mods)
- Fixes issues with MarkDirty and namespaces: https://github.com/modernuo/SerializationGenerator/issues/29
- Fixes missing dirty tracking for some data structures.
- Fixes cascading MarkDirty for non-serializable types that have owners that are also non-serializable types.

### New Codegenned API
When a data structure (Array, List, Dictionary, HashSet, etc) is source generated for serialization, new methods are added which will handle dirty tracking. Use these instead of the built in methods for that data structure.

_All Data Structures_
```cs
public void Clear<PropertyName>();
```

_Lists and Sets_
```cs
public void AddTo<PropertyName>(V value);
public void RemoveFrom<PropertyName>(V value);
```

_Lists_
```cs
public void InsertInto<PropertyName>(int index, V value);
public void RemoveFrom<PropertyName>At(int index);
```

_Dictionaries_
```cs
public void AddTo<PropertyName>(T key, V value);
public void RemoveFrom<PropertyName>(T key);
public void ReplaceIn<PropertyName>(T key, V value);
```

Over time, they will be cleaned up and more variants added such as `bool RemoveFrom<PropertyName>(T key, out V value)`
2023-12-03 15:55:31 -08:00
..
Buffers feat: Updates to .NET 8. (#1542) 2023-11-14 17:08:09 -08:00
Client feat: Adds KR/EC client versions (No actual support yet). (#1506) 2023-09-18 23:53:18 -07:00
Collections fix: Removes custom BitArray (#1597) 2023-11-17 14:37:07 -08:00
Comparers chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Configuration feat: Adds configurable skill and stat gain (#1489) 2023-10-14 12:02:36 -07:00
ContextMenus fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
Diagnostics fix: Fixes PainSpike, ManaVampire, Evil Omen, and Curse (#1622) 2023-12-02 09:59:42 -08:00
Events feat: Adds a movement throttle system. Removes Fastwalk system. (#1511) 2023-09-27 20:53:22 -07:00
Exceptions chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
GarbageCollection fix: Adds Gen2 callback for each STArrayPool (#971) 2022-03-26 13:57:42 -07:00
Geometry fix: Changes Map.Sector.Items to link list. (#1547) 2023-10-16 20:51:02 -07:00
Gumps chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Items fix: Codegens BaseMulti, Container, and VirtualCheck (#1624) 2023-12-02 10:00:02 -08:00
Json fix: Codegens BaseMulti, Container, and VirtualCheck (#1624) 2023-12-02 10:00:02 -08:00
Localization chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Logging chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Maps fix: Fixes wrong sector shift for tilematrix iteration (#1623) 2023-12-01 18:09:26 -06:00
Menus fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
Migrations fix: Fixes migration check (#1626) 2023-12-02 12:50:42 -08:00
Mobiles fix: Codegens boats (#1625) 2023-12-02 12:55:38 -08:00
Network fix: Fixes various mobile packets and setting serials (#1618) 2023-11-26 00:42:15 -08:00
PropertyList chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Random fix: Use built-in RNG (#1599) 2023-11-17 17:45:18 -08:00
Regions fix: Changes Map.Sector.Items to link list. (#1547) 2023-10-16 20:51:02 -07:00
Serialization fix: Codegens BaseMulti, Container, and VirtualCheck (#1624) 2023-12-02 10:00:02 -08:00
Targeting Adds hue support to StaticTile (#1321) 2023-01-21 11:19:11 -08:00
Text fix: Fixes sending packets and sidesteps a major issue with stackalloc and PGO in .NET 8 (#1607) 2023-11-21 12:18:20 -08:00
TileMatrix fix: Fixes wrong sector shift for tilematrix iteration (#1623) 2023-12-01 18:09:26 -06:00
Timer chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
TimeZones chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Utilities chore: Cleans up unused imports (#1608) 2023-11-21 12:32:51 -08:00
World fix: Use built-in RNG (#1599) 2023-11-17 17:45:18 -08:00
AssemblyHandler.cs chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Attributes.cs chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
CityInfo.cs chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Commands.cs fix: Fixes crafter deserialize, cleans up bandages, and codegens misc items (#1350) 2023-02-25 00:54:12 -08:00
Effects.cs fix: Adds GetClients to map iterators (#1574) 2023-10-30 18:49:00 -07:00
EventLoopTasks.cs chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
ExpansionInfo.cs feat: Adds KR/EC client versions (No actual support yet). (#1506) 2023-09-18 23:53:18 -07:00
Guild.cs fix: Fixes serialization threading, moves world save to end of loop, and eliminates Parallel.ForEach. (#1530) 2023-10-03 00:42:49 -07:00
HuePicker.cs fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
IAccount.cs fix: Reverts GetAccount to use IAccount. Adds IAccount to serialization. (#1565) 2023-10-25 19:17:57 -07:00
IEntity.cs fix: Fixes map iterators for Items (#1564) 2023-10-26 17:49:15 -07:00
Interfaces.cs fix: Fixes casting by sending ParalyzeFlag to client while animating (#1397) 2023-04-27 23:12:07 -07:00
KeywordList.cs fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
Main.cs fix: Fixes shutdown+save (#1614) 2023-11-25 10:11:24 -08:00
MessageType.cs fix: Moves the rest of the Incoming packets (#1338) 2023-02-10 22:59:36 -08:00
Module.cs fix: Fixes sending packets and sidesteps a major issue with stackalloc and PGO in .NET 8 (#1607) 2023-11-21 12:18:20 -08:00
MultiData.cs fix: Refactors getting static tiles to use enumerators (#1611) 2023-11-26 09:39:46 -08:00
MUO.ico Adds MUO Logo (#52) 2019-09-12 13:13:13 -07:00
Party.cs fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
Poison.cs fix: Adds ISpanParsable and fixes command conditionals (#1241) 2022-11-12 00:26:02 -08:00
Prompt.cs fix: Cleans up core code (#1187) 2022-10-10 21:47:08 -07:00
Race.cs fix: Fixes TryParse for Race (#1244) 2022-11-12 00:31:25 -08:00
SecureTrade.cs fix: Update LabelTo, SendMessage, etc to Interpolated Strings (#1283) 2022-11-28 19:58:12 -08:00
Serial.cs chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Server.csproj fix: Fixes serialization and dirty tracking conveniences (#1627) 2023-12-03 15:55:31 -08:00
Skills.cs feat: Adds configurable skill and stat gain (#1489) 2023-10-14 12:02:36 -07:00
TileData.cs fix: Cleans up FindItems and removes allocations (#1516) 2023-09-28 22:20:36 -07:00
TileList.cs fix: Refactors getting static tiles to use enumerators (#1611) 2023-11-26 09:39:46 -08:00