ModernUO/Projects/UOContent/Engines
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
..
Bulk Orders fix: Fixes serialization and dirty tracking conveniences (#1627) 2023-12-03 15:55:31 -08:00
CannedEvil fix: Fixes serialization and dirty tracking conveniences (#1627) 2023-12-03 15:55:31 -08:00
Chat feat: Adds a memory mirrored ring buffer for networking. (#1533) 2023-10-09 00:57:53 -07:00
ConPVP fix: Fixes serialization and dirty tracking conveniences (#1627) 2023-12-03 15:55:31 -08:00
Craft fix: Refactors getting static tiles to use enumerators (#1611) 2023-11-26 09:39:46 -08:00
Doom fix: Fixes serialization and dirty tracking conveniences (#1627) 2023-12-03 15:55:31 -08:00
Ethics fix: Changes Map.Sector.Items to link list. (#1547) 2023-10-16 20:51:02 -07:00
Events fix(core): Caches DateTime.NowUtc (#548) 2021-03-13 01:32:04 -08:00
Factions fix: Removes GetObjectsInRange and fixes boat planks closing (#1579) 2023-11-03 13:45:18 -07:00
Harvest fix: Use built-in RNG (#1599) 2023-11-17 17:45:18 -08:00
Help feat: Adds KR/EC client versions (No actual support yet). (#1506) 2023-09-18 23:53:18 -07:00
Khaldun fix: Fixes map iterators for Items (#1564) 2023-10-26 17:49:15 -07:00
ML Quests fix: Updates container searches for non-generic types (#1567) 2023-11-23 09:29:45 -08:00
Party 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
Pathing fix: Refactors getting static tiles to use enumerators (#1611) 2023-11-26 09:39:46 -08:00
Plants fix: Cleans up FindItems and removes allocations (#1516) 2023-09-28 22:20:36 -07:00
Player Murder System fix: Fixes extension method refactors causing crash (#1529) 2023-10-02 22:24:16 -07:00
Quests 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
Spawners fix: Refactors getting static tiles to use enumerators (#1611) 2023-11-26 09:39:46 -08:00
Stealables fix: Cleans up entity persistence. Generalizes Mobiles/Items/Guilds (#1528) 2023-10-01 22:10:47 -07:00
Treasures of Tokuno fix: Codegens ToT and replaces persistence with config (#1524) 2023-09-30 02:09:28 -07:00
UltimaStore feat: Adds a memory mirrored ring buffer for networking. (#1533) 2023-10-09 00:57:53 -07:00
Veteran Rewards fix: Adds GetClients to map iterators (#1574) 2023-10-30 18:49:00 -07:00
Virtues fix: Fixes extension method refactors causing crash (#1529) 2023-10-02 22:24:16 -07:00