Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Serialization v3 aka constant suffering (space-wizards#1606)
* oops * fixes serialization il * copytest * typo & misc fixes * 139 moment * boxing * mesa dum * stuff * goodbye bad friend * last commit before the big (4) rewrite * adds datanodes * kills yamlobjserializer in favor of the new system * adds more serializers, actually implements them & removes most of the last of the old system * changed yamlfieldattribute namespace * adds back iselfserialize * refactors consts&flags * renames everything to data(field/definition) * adds afterserialization * help * dataclassgen * fuggen help me mannen * Fix most errors on content * Fix engine errors except map loader * maploader & misc fix * misc fixes * thing * help * refactors datanodes * help me mannen * Separate ITypeSerializer into reader and writer * Convert all type serializers * priority * adds alot * il fixes * adds robustgen * argh * adds array & enum serialization * fixes dataclasses * adds vec2i / misc fixes * fixes inheritance * a very notcursed todo * fixes some custom dataclasses * push dis * Remove data classes * boutta box * yes * Add angle and regex serializer tests * Make TypeSerializerTest abstract * sets up ioc etc * remove pushinheritance * fixes * Merge fixes, fix yaml hot reloading * General fixes2 * Make enum serialization ignore case * Fix the tag not being copied in data nodes * Fix not properly serializing flag enums * Fix component serialization on startup * Implement ValueDataNode ToString * Serialization IL fixes, fix return and string equality * Remove async from prototype manager * Make serializing unsupported node as enum exception more descriptive * Fix serv3 tryread casting to serializer instead of reader * Add constructor for invalid node type exception * Temporary fix for SERV3: Turn populate delegate into regular code * Fix not copying the data of non primitive types * Fix not using the data definition found in copying * Make ISerializationHooks require explicit implementations * Add test for serialization inheritance * Improve IsOverridenIn method * Fix error message when a data definition is null * Add method to cast a read value in Serv3Manager * Rename IServ3Manager to ISerializationManager * Rename usages of serv3manager, add generic copy method * Fix IL copy method lookup * Rename old usages of serv3manager * Add ITypeCopier * resistance is futile * we will conquer this codebase * Add copy method to all serializers * Make primitive mismatch error message more descriptive * bing bong im going to freacking heck * oopsie moment * hello are you interested in my wares * does generic serializers under new architecture * Convert every non generic serializer to the new format, general fixes * Update usgaes of generic serializers, cleanup * does some pushinheritance logic * finishes pushinheritance FRAMEWORK * shed * Add box2, color and component registry serializer tests * Create more deserialized types and store prototypes with their deserialized results * Fixes and serializer updates * Add serialization manager extensions * adds pushinheritance * Update all prototypes to have a parent and have consistent id/parent properties * Fix grammar component serialization * Add generic serializer tests * thonk * Add array serializer test * Replace logger warning calls with exceptions * fixes * Move redundant methods to serialization manager extensions, cleanup * Add array serialization * fixes context * more fixes * argh * inheritance * this should do it * fixes * adds copiers & fixes some stuff * copiers use context v1 * finishing copy context * more context fixes * Test fixes * funky maps * Fix server user interface component serialization * Fix value tuple serialization * Add copying for value types and arrays. Fix copy internal for primitives, enums and strings * fixes * fixes more stuff * yes * Make abstract/interface skips debugs instead of warnings * Fix typo * Make some dictionaries readonly * Add checks for the serialization manager initializing and already being initialized * Add base type required and usage for MeansDataDefinition and ImplicitDataDefinitionForInheritorsAttribute * copy by ref * Fix exception wording * Update data field required summary with the new forbidden docs * Use extension in map loader * wanna erp * Change serializing to not use il temporarily * Make writing work with nullable types * pushing * check * cuddling slaps HARD * Add serialization priority test * important fix * a serialization thing * serializer moment * Add validation for some type serializers * adds context * moar context * fixes * Do the thing for appearance * yoo lmao * push haha pp * Temporarily make copy delegate regular c# code * Create deserialized component registry to handle not inheriting conflicting references * YAML LINTER BABY * ayes * Fix sprite component norot not being default true like in latest master * Remove redundant todos * Add summary doc to every ISerializationManager method * icon fixes * Add skip hook argument to readers and copiers * Merge fixes * Fix ordering of arguments in read and copy reflection call * Fix user interface components deserialization * pew pew * i am going to HECK * Add MustUseReturnValue to copy-over methods * Make serialization log calls use the same sawmill * gamin * Fix doc errors in ISerializationManager.cs * goodbye brave soldier * fixes * WIP merge fixes and entity serialization * aaaaaaaaaaaaaaa * aaaaaaaaaaaaaaa * adds inheritancebehaviour * test/datafield fixes * forgot that one * adds more verbose validation * This fixes the YAML hot reloading * Replace yield break with Enumerable.Empty * adds copiers * aaaaaaaaaaaaa * array fix priority fix misc fixes * fix(?) * fix. * funny map serialization (wip) * funny map serialization (wip) * Add TODO * adds proper info the validation * Make yaml linter 5 times faster (~80% less execution time) * Improves the error message for missing fields in the linter * Include component name in unknown component type error node * adds alwaysrelevant usa * fixes mapsaving * moved surpressor to analyzers proj * warning cleanup & moves surpressor * removes old msbuild targets * Revert "Make yaml linter 5 times faster (~80% less execution time)" This reverts commit 2ee4cc2. * Add serialization to RobustServerSimulation and mock reflection methods Fixes container tests * Fix nullability warnings * Improve yaml linter message feedback * oops moment * Add IEquatable, IComparable, ToString and operators to DataPosition Rename it to NodeMark Make it a readonly struct * Remove try catch from enum parsing * Make dependency management in serialization less bad * Make dependencies an argument instead of a property on the serialization manager * Clean up type serializers * Improve validation messages and resourc epath checking * Fix sprite error message * reached perfection Co-authored-by: Paul <[email protected]> Co-authored-by: DrSmugleaf <[email protected]> Co-authored-by: Vera Aguilera Puerto <[email protected]>
- Loading branch information