Leon Friedrich and GitHub
7b25f1e256
Fix DataRecord serialization ( #6619 )
2026-06-27 17:59:35 +10:00
83c2a1be11
[Dependency] source generator part 2 ( #6550 )
...
* [Dependency] source generator
No more reflection, no more codegen at runtime
Also various changes to Roslyn helpers to make this easier to write.
Requires all types with dependencies to be partial and not have readonly dependency fields. An analyzer enforces this at warning level, the previous injection strategies have remained in the code *for now* as a fallback.
No fallback is available for [field: Dependency] properties, due to a Roslyn bug.
Code Fixes exist. We love Roslyn
* Apply dependencies generator changes to all code
* Release notes
* Preprocessor got hands
* Handle nullable dependencies
These are bad but gotta deal with it.
* Apply suggestions from code review
Co-authored-by: Moony <moony@hellomouse.net >
* Fine, let's not use collection expressions
---------
Co-authored-by: Moony <moony@hellomouse.net >
2026-05-08 12:38:33 +02:00
PJB3005
bb81d88653
Add [NotContentImplementable] to shared interfaces
2025-12-20 16:49:35 +01:00
PJB3005
ddfa12808c
Fix some roslyn tests
2025-12-17 16:55:33 +01:00
4747e5a05a
Add and update a lot of documentation ( #6337 )
...
* Serialization docs
Co-authored-by: Moony <moonheart08@users.noreply.github.com >
* ECS docs
Co-authored-by: Moony <moonheart08@users.noreply.github.com >
* scattered docs
Co-authored-by: Moony <moonheart08@users.noreply.github.com >
* Fixes
---------
Co-authored-by: Moony <moonheart08@users.noreply.github.com >
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com >
2025-12-15 20:26:17 +01:00
Leon Friedrich and GitHub
912b6da20a
Fix serialization of data-records with get-only properties ( #6204 )
...
* Fix serialization of data-records with get-only properties
* even less nesting
* asserts
2025-09-17 19:11:12 +02:00
Pieter-Jan Briers and GitHub
dcbe0505dc
Revert "Add WeakEntityReference ( #5577 )" ( #6112 )
...
This reverts commit c3489d4ded .
2025-07-29 18:22:17 +02:00
c3489d4ded
Add WeakEntityReference ( #5577 )
...
* Add WeakEntityReference
* Use NetEntity
* release notes
* A
* Fix merge conflicts
* comments
* A
* Add network serialization test
* Add ToPrettyString support for WeakEntityReference?
* inheritdoc
* Add GetWeakReference methods
* Not-nullable too
* Make EntitySystem proxy method signatures match EntityManager
* Add TryGetEntity
* interface
* fix test
* De-ref GetWeakReference methods
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com >
2025-07-29 11:12:49 -04:00
Nemanja and GitHub
ceeb002692
Mark ValidatePrototypeIdAttribute as obsolete ( #6062 )
2025-07-12 15:20:08 +02:00
c73b54862e
Add analyzers to detect some prototype misuse ( #6048 )
...
* Add analyzers to detect some prototype misuse
Detects people marking prototype as NetSerializable.
Detects people creating new prototype instances themselves.
* Update Robust.Analyzers/PrototypeNetSerializableAnalyzer.cs
Co-authored-by: Tayrtahn <tayrtahn@gmail.com >
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com >
2025-06-26 22:24:23 +02:00
dffdff2423 and GitHub
8905a3fe14
Add documentation to the serializer interfaces and remove ITypeReaderWriter ( #5897 )
...
* Add documentation to the serializer interfaces
* Remove ITypeReaderWriter and fix the docs
* Fix spelling errors and incorrect docstrings
2025-05-04 04:03:17 +02:00
Leon Friedrich and GitHub
2f8f4f2f7a
Make MappingDataNode use string keys ( #5783 )
...
* string keys
* obsoletions
* Fix ValueTupleSerializer
* Release notes
* fix release note conflict
* cleanup
* Fix yaml validator & tests
* cleanup release notes
* a
* enumerator allocations
* Also sequence enumerator alloc
2025-04-18 19:01:34 +10:00
Leon Friedrich and GitHub
3800c5707e
Add new SerializationManager.PushComposition overload ( #5785 )
2025-04-12 12:58:40 +10:00
fbc706f37b
Refactor map loading & saving ( #5572 )
...
* Refactor map loading & saving
* test fixes
* ISerializationManager tweaks
* Fix component composition
* Try fix entity deserialization component composition
* comments
* CL
* error preinit
* a
* cleanup
* error if version is too new
* Add AlwaysPushSerializationTest
* Add auto-inclusion test
* Better categorization
* Combine test components
* Save -> TrySave
Also better handling for saving multiple entities individually
* Create new partial class for map loading
* Add OrphanSerializationTest
* Include MapIds in BeforeSerializationEvent
* Addd LifetimeSerializationTest
* Add TestMixedLifetimeSerialization
* Add CategorizationTest
* explicitly serialize list of nullspace entities
* Add backwards compatibility test
* Version comments
also fixes wrong v4 format
* add MapMergeTest
* Add NetEntity support
* Optimize EntityDeserializer
Avoid unnecessary component deserialization
* fix assert & other bugs
* fucking containers strike again
* Fix deletion of pre-init entities
* fix release note merge conflict
* Update Robust.Shared/Map/MapManager.GridCollection.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com >
* VV
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com >
2025-02-16 21:25:07 +11:00
metalgearsloth and GitHub
ea1cc5e446
Planet lighting pre-reqs ( #5490 )
...
* Add another lookup overload
* Fix RenderInRenderTarget
See the linked issue for what happens.
* Also this one
* stuff
* Fix stencilling
* fixes
* mix blend
* fix
* blur fixes
* Tile flag
* Minor tweak
* Fixes
* Render state fixes
* Fixes
* Fix stupidity
* More state render bug fixes
* MapUid on overlay draw
* Remove blur comment
* Fixes
* Fixes
* Remove
* Engine vibe
2025-02-16 19:29:32 +11:00
Leon Friedrich and GitHub
afaef645b0
Fix MappingDataNode.TryAddCopy() ( #5677 )
2025-02-14 14:10:13 +11:00
Leon Friedrich and GitHub
bdef9e3401
Fix reloading prototypes with AlwaysPushInheritance ( #5612 )
2025-01-31 15:38:13 +11:00
PJB3005
eaaa70437a
Reduce DynamicMethod use in Serv3
...
Data definitions created individual read/write methods for every single field that can be serialized. This was extremely inefficient and likely caused lots of overhead.
These methods are necessary because, in some cases, we can't directly use expression trees to write fields. But... we can still do it most of the time! So now for most data fields we can avoid a DynamicMethod entirely.
2025-01-16 15:10:35 +01:00
Leon Friedrich and GitHub
80dbf02af4
Log errors when encountering entity data fields ( #5578 )
...
* Log errors when encountering entity data fields
* Cleanup & comments
* Remove unnecessary GetGenericTypeDefinition
2025-01-07 16:54:25 +01:00
9837c33de7
Add sourcegenned field deltas ( #5155 )
...
* Remove full "delta" states
* Update MapGridComponentState
* abstract ComponentState
* Release notes
* Fix tests
* Fix nullable errors
* A
* Sourcegen component deltas
* Audio deltas + methids
* Also eye
* Optimise out the dictionary
* Minor fixes
* Physics deltas
* Also this
* Fix field deltas
* remove old release notes
* Make IComponentDelta implement IComponent
* add sourcegen launch settings
* make silent error loud
* Review
* UI deltas
* Slimmer
* Sourcegen bandaid
---------
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com >
2024-12-21 15:48:33 +11:00
Pieter-Jan Briers and GitHub
b1e1a0cd88
Quick warning fixes ( #5417 )
2024-09-01 04:54:28 +02:00
SlamBamActionman and GitHub
e5995d4edc
Add ObjectSerializer, AppearanceComponent.AppearanceDataInit, and AppearanceSystem.AppendData ( #5324 )
...
* V1 commit
* V2 Commit, ObjectSerializer
* Make sure write for objects have the !type:<T> set
* Added AppearanceDataInit
* Change to AppearanceDataInit setting to AppearanceData the moment it itself gets set; ComponentInit is too late. Forgive me sloth.
* RELEASE-NOTES.md
* Fix release notes
* Fix release-notes for realsies
2024-08-28 22:43:58 +10:00
metalgearsloth and GitHub
679c31199d
Add comments to sermanager attributes ( #5384 )
...
I always forget which is which.
2024-08-25 20:02:31 +10:00
Tayrtahn and GitHub
da7abc6580
Add analyzer and fixer for redundant DataField tag arguments ( #5134 )
...
* Add analyzer and fixer for redundant DataField tag arguments
* Share Tag autogeneration logic
2024-05-17 07:44:03 +02:00
41c40f1a94
Fix checking wrong property in TryGetVariableType() ( #5120 )
...
Co-authored-by: amylizzle <amylizzle@users.noreply.github.com >
2024-05-14 08:44:19 +10:00
ccbb6ddec7
Add method for getting type of var ( #5070 )
...
Co-authored-by: amylizzle <amylizzle@users.noreply.github.com >
2024-05-06 20:39:32 +02:00
Leon Friedrich and GitHub
4c3c74865c
Fix yaml linter & improve validation of static fields ( #5056 )
2024-04-25 00:27:02 +10:00
Leon Friedrich and GitHub
1f8b89e92f
Add frozen collections to sandbox and add yaml type serializers ( #4721 )
2023-12-16 18:36:58 +01:00
2733435218
Audio rework unrevert + audio packaging ( #4555 )
...
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com >
2023-11-27 22:12:26 +11:00
Leon Friedrich and GitHub
19a3e82848
Cache prototype data for IEntityManager.IsDefault() ( #4531 )
2023-10-29 12:54:52 +11:00
DrSmugleaf and GitHub
16d916796a
Add doc clarification to CopyByRef inheritance for the future coder ( #4476 )
2023-10-10 17:34:24 -07:00
Leon Friedrich and GitHub
7da22557fe
Add entity categories ( #4356 )
2023-09-18 12:14:26 +10:00
DrSmugleaf and GitHub
77b98b8308
Add ProtoId, EntProtoId and serializers ( #4386 )
2023-09-13 14:32:01 +10:00
DrSmugleaf and GitHub
1b6123c79f
Make data field tags optional ( #4382 )
2023-09-13 12:58:46 +10:00
DrSmugleaf and GitHub
b2d121e780
Fix serialization sharing instances when copying data definitions and not assigning null when the source is null ( #4295 )
2023-08-22 23:59:03 -07:00
DrSmugleaf and GitHub
66239d23ea
Refactor serialization copying to use source generators ( #4286 )
2023-08-22 17:37:13 -07:00
Leon Friedrich and GitHub
b699e22c85
More serialization fixes ( #4224 )
2023-08-06 11:08:48 +10:00
Leon Friedrich and GitHub
a137c839fc
Add prototype serialization validation methods. ( #4210 )
2023-08-02 10:29:55 +10:00
Leon Friedrich and GitHub
fffe3c56e9
Fix enum serialization ( #4208 )
2023-07-30 20:17:22 +10:00
Leon Friedrich and GitHub
9969899f38
Add method to validate prototype ids in c# fields ( #4189 )
2023-07-30 03:31:17 +10:00
metalgearsloth and GitHub
a52719b53f
Refactor fixture serialization ( #3923 )
2023-05-06 16:26:06 +10:00
metalgearsloth and GitHub
45734a2bdd
TimeOffsetSerializer fixes ( #3985 )
2023-05-01 14:47:16 +10:00
metalgearsloth and GitHub
a65ccd7c24
Add debug assert for data defs ( #3977 )
2023-04-29 15:53:02 +10:00
Leon Friedrich and GitHub
9a06a5727e
Make DataDefinitions check for private constructors ( #3845 )
2023-03-17 12:49:02 +11:00
DrSmugleaf and GitHub
ae27023283
Fix concurrent update error in SerializationManager._copyByRefRegistrations ( #3796 )
2023-02-21 16:07:16 +01:00
Paul Ritter and GitHub
bafbdb6363
Analyzer to check that notnullableflag is being properly used ( #3569 )
2022-12-21 00:11:04 +01:00
Paul Ritter and GitHub
ef0c0d0082
Analyzer to warn about using a boxing variant ( #3564 )
2022-12-20 23:53:02 +01:00
Pieter-Jan Briers and GitHub
84733a335c
Prototype load parallelization ( #3502 )
2022-12-20 22:46:30 +01:00
Pieter-Jan Briers
20c8eca6bf
Use ConcurrentDictionary in SerializationManager.
...
Better GC behavior.
2022-12-19 02:39:28 +01:00
be8147a722
serv4 ( #3527 )
...
Co-authored-by: Paul <ritter.paul1@gmail.com >
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com >
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com >
2022-11-27 19:23:58 +01:00