ModernUO/Projects/UOContent
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
..
Accounting fix: Fix compiling (#1617) 2023-11-25 23:41:09 -08:00
Assistants feat: Adds a memory mirrored ring buffer for networking. (#1533) 2023-10-09 00:57:53 -07:00
Commands fix: Updates container searches for non-generic types (#1567) 2023-11-23 09:29:45 -08:00
Compression feat: Customize expansion and set maps on first boot (#1425) 2023-07-31 20:46:49 -07:00
Configuration chore: Updates copyright (#1448) 2023-08-09 09:09:26 -07:00
Context Menus cleanup: Fixes bugs and cleans up code (#660) 2021-07-19 20:49:59 -07:00
Engines fix: Fixes serialization and dirty tracking conveniences (#1627) 2023-12-03 15:55:31 -08:00
Gumps fix: Fixes various mobile packets and setting serials (#1618) 2023-11-26 00:42:15 -08:00
Holiday Stuff fix: Fixes map iterators for Items (#1564) 2023-10-26 17:49:15 -07:00
Items fix: Fixes serialization and dirty tracking conveniences (#1627) 2023-12-03 15:55:31 -08:00
Migrations fix: Codegens boats (#1625) 2023-12-02 12:55:38 -08:00
Misc fix: Refactors getting static tiles to use enumerators (#1611) 2023-11-26 09:39:46 -08:00
Mobiles fix: Fixes PainSpike, ManaVampire, Evil Omen, and Curse (#1622) 2023-12-02 09:59:42 -08:00
Multis fix: Codegens boats (#1625) 2023-12-02 12:55:38 -08:00
Network fix: Refactors getting static tiles to use enumerators (#1611) 2023-11-26 09:39:46 -08:00
Regions fix: Changes Map.Sector.Mobiles to link list & Fixes various related crash bugs (#1553) 2023-10-29 22:42:46 -07:00
Skills fix: Removes custom BitArray (#1597) 2023-11-17 14:37:07 -08:00
Special Systems feat: Updates to .NET 8. (#1542) 2023-11-14 17:08:09 -08:00
Spells fix: Fixes PainSpike, ManaVampire, Evil Omen, and Curse (#1622) 2023-12-02 09:59:42 -08:00
Targets fix: Fixes the limitation on static tiles for harvesting (#1396) 2023-04-22 09:14:42 -07:00
Utilities fix: Fixes various mobile packets and setting serials (#1618) 2023-11-26 00:42:15 -08:00
World Saves fix: Fixes TimeSpan rounding issues (#1610) 2023-11-22 18:03:56 -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
UOContent.csproj fix: Fixes serialization and dirty tracking conveniences (#1627) 2023-12-03 15:55:31 -08:00