metalgearsloth and GitHub
dcadd34389
Serv5 fixes ( #6761 )
2026-07-09 00:08:10 +10:00
metalgearsloth and GitHub
8f6ebad5b9
Reduce game memory usage a crumb ( #30 )
2026-06-19 21:55:44 +10:00
deltanedas and deltanedas
dc2cbd952f
CompName gaming
2026-06-17 19:54:42 +01:00
PJB3005
65b8d0cce2
Add network serialization float NaN sanitization
...
Apparently cheat clients have figured out that none of SS14's code does validation against NaN inputs. Uh oh.
IRobustSerializer can now be configured to remove NaN values when reading. This is intended to be set on the server to completely block the issue.
Added "Unsafe" float types that can be used to bypass the new configurable behavior, in case somebody *really* needs NaNs.
An alternative option was to make a "SafeFloat" type, and only apply the sanitization to that. The problem is that would require updating hundreds if not thousands of messages in SS14, and probably significantly confuse contributors on "when use what." Blocking NaNs by default is likely to cause little issues while ensuring the entire exploit is guaranteed impossible.
2026-01-25 03:45:50 +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
8b7fbfa646
Add two new custom yaml serializers ( #6253 )
...
* Add two new custom yaml serializers
* make ComponentNameSerializer ignore ignored components
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com >
2025-10-27 23:05:46 +11:00
Pieter-Jan Briers and GitHub
f02cd0083a
Make SpriteSpecifier.Texture fail validation if it contains ".rsi" ( #6155 )
...
No pointing to PNGs inside RSIs.
2025-09-02 22:05:13 +02:00
John and GitHub
fb0ec52f8c
Fix TimeSpan overflow on Read ( #6170 )
...
A lot of areas use TimeSpan.MaxValue but when saved and read the current time is added which results in an overflow.
A check is now performed to prevent this.
2025-08-30 00:59:39 +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
Pieter-Jan Briers and GitHub
cdd3afaa4c
Remove redundant custom math types ( #6078 )
...
Vector3, Vector4, Matrix4, and Quaternion are now gone. Use System.Numerics instead.
This commit is just replacing usages, cleaning up using declarations, and moving over the (couple) helpers that are actually important.
2025-07-23 01:15:27 +02:00
4851e913b0
More TimespanSerializer improvements ( #5910 )
...
* improved public TryTimeSpan
* don't want any locale shenanigans or misconceptions with the input
* missed a test line
* also support capitalized time unit indicators
* Doesn't need to be nullable.
---------
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com >
2025-07-11 20:37:39 +02:00
PJB3005
c152fb8953
Fix culture-based parsing in TimespanSerializer
2025-06-17 16:03:20 +02:00
Tayrtahn and GitHub
fa6bd8f7ba
Cleanup TypeSerializer Logger warnings ( #5966 )
2025-05-24 20:23:28 +02:00
15d5b9aa02
Move parts of SpriteComponent to SpriteSystem ( #5602 )
...
* Partial sprite component ECS
* release notes
* tests
* Why
* SetSnapCardinals
* NoRotation
* DirectionOverride
* This is why I love distinct overrides that take in object
* LayerSetData
* ISerializationHooks continue to haunt me
* Relocate SetShader
* LayerSetSprite
* LayerSetTexture
* yipeeeee
* LayerSetRsi
* Remove GetFallbackState
* LayerSet Scale,Rotation,Color,Visible
* Fix LayerSetRsi
* LayerSetOffset
* LayerSetDirOffset
* Add overrides that take in a Layer
* LayerSetAnimationTime
* LayerSetRenderingStrategy
* Reduce Resolves, Add Layer.Index
* Access
* Try fix NREs
* Asserts
* LayerGetState
* Cleanup
* Merge helper partial classes
* partial rendering
* GetLayerDirectionCount
* Cache local bounds
* RenderLayer
* RefreshCachedState
* RoundToCardinalAngle
* Fix the pr
* Fix debug assert
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com >
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com >
2025-05-10 21:56:53 +10:00
Leon Friedrich and GitHub
d24854d94f
Improve yaml validation errors for ignored prototypes ( #5886 )
...
* Improve yaml validation errors for ignored prototypes
* release notes
* Comments
2025-05-10 21:37:42 +10:00
eb5ed12270
Serialize TimeSpan from text ( #5865 )
...
* timespanserializer cleanup
* string reading
* high speed, low drag
* unit tests
* Update Robust.Shared/Serialization/TypeSerializers/Implementations/TimespanSerializer.cs
---------
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com >
2025-05-05 00:57:01 +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
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
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
Pieter-Jan Briers and GitHub
7fbcfeaa8f
Warning fixes ( #5275 )
...
* Warning fixes in Robust.Shared
* Robust.Client warning fixes
* Fix test failure
Test failures were due to broken system registrations for the client RobustUnitTest. It was accidentally registering some server systems, which means DebugPhysicsSystem wasn't gettings its dependencies properly.
Fixing this meant pulling half a dozen extra dependencies that client ContainerSystem and TransformSystem are supposed to have, but didn't.
2024-07-10 01:38:32 +02:00
Leon Friedrich and GitHub
f285c62674
Rework entity prototype categories ( #5061 )
...
* Improve entity categories
* A
2024-06-02 14:10:11 +10:00
eoineoineoin and GitHub
56c30edf04
Replace Matrix3 with System.Numerics.Matrix3x2 ( #5078 )
...
* Delete Matrix3. Replace with System.Numerics.Matrix3x2
* Feedback
* release notes
2024-06-02 14:08:47 +10:00
DrSmugleaf and GitHub
beb1c4b1fb
Add EntProtoId<T> ( #5097 )
...
* Add EntProtoId<T>
* Fix error messages
* Shorten error messages
* Make services non-optional
2024-05-05 22:59:45 +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
c8cb13f832
Fix serialization error logging ( #4973 )
2024-03-17 18:01:00 +01:00
Pieter-Jan Briers
74622bac83
Add DateTimeSerializer
2024-02-11 16:40:52 +01: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
metalgearsloth and GitHub
24b0165ec9
Revert Arch ( #4613 )
2023-11-27 21:41:01 +11:00
7dce51e2cf
Arch PR two electric boogaloo ( #4388 )
...
Co-authored-by: DrSmugleaf <drsmugleaf@gmail.com >
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com >
2023-11-23 14:29:37 +11:00
deltanedas and GitHub
662195e4ff
add SortedSetSerializer ( #4473 )
2023-10-10 04:29:42 +11:00
DrSmugleaf and GitHub
0c2c8f352a
Add LocId and LocIdSerializer ( #4456 )
2023-09-28 20:22:17 +10:00
metalgearsloth and GitHub
4879252e99
Remove comprefs entirely ( #4367 )
2023-09-15 21:52:47 +10:00
DrSmugleaf and GitHub
814d6fe2d0
Add ProtoId, EntProtoId and serializers ( #4387 )
2023-09-12 23:19:40 -07:00
DrSmugleaf and GitHub
77b98b8308
Add ProtoId, EntProtoId and serializers ( #4386 )
2023-09-13 14:32:01 +10:00
Leon Friedrich and GitHub
d2311c193f
Add AbstractDictionarySerializer ( #4276 )
2023-08-23 18:53:13 +10:00
Pieter-Jan Briers
d6467f768a
Fix Logger calls in ComponentRegistrySerializer
2023-08-11 23:50:54 +02:00
Artur and GitHub
aff5711fde
Add missing CultureInfo.InvariantCulture in angle validaton ( #4248 )
2023-08-08 11:52:24 +10:00
Leon Friedrich and GitHub
5843f1087e
Add ContentFileRead test and fix file reading on windows ( #4242 )
2023-08-07 11:39:09 +10:00
Leon Friedrich and GitHub
93c0ce815f
Add IPrototypeManager.EnumerateKinds() ( #4244 )
2023-08-07 11:24:34 +10:00
Leon Friedrich and GitHub
b699e22c85
More serialization fixes ( #4224 )
2023-08-06 11:08:48 +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
7d1ad527d9
Replace Robust Vector2 with System.Numerics ( #4092 )
2023-07-08 14:08:26 +10:00
Leon Friedrich and GitHub
8fd1e9047f
Rejig time offset serializer ( #4154 )
2023-06-26 06:29:45 +10:00
06f5c78152
Allow specifiying overrides for components when spawning an entity. ( #4068 )
...
* Oh goddamnit this is a refactor now.
* aaaaaaaaaaa
---------
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com >
2023-05-19 15:38:45 -05:00
Raphael Bertoche and GitHub
f08344f60e
Fix duplicate yaml validation error exception ( #4032 )
2023-05-14 10:37:05 +10:00
metalgearsloth and GitHub
45734a2bdd
TimeOffsetSerializer fixes ( #3985 )
2023-05-01 14:47:16 +10:00