Refactor serialization copying to use source generators (#19412)

This commit is contained in:
DrSmugleaf
2023-08-22 18:14:33 -07:00
committed by GitHub
parent 08b43990ab
commit a88e747a0b
1737 changed files with 2532 additions and 2521 deletions

View File

@@ -6,6 +6,6 @@ namespace Content.Shared.Decals;
public sealed class ColorPalettePrototype : IPrototype
{
[IdDataField] public string ID { get; } = null!;
[DataField("name")] public string Name { get; } = null!;
[DataField("colors")] public Dictionary<string, Color> Colors { get; } = null!;
[DataField("name")] public string Name { get; private set; } = null!;
[DataField("colors")] public Dictionary<string, Color> Colors { get; private set; } = null!;
}

View File

@@ -5,15 +5,15 @@ namespace Content.Shared.Decals
{
[Serializable, NetSerializable]
[DataDefinition]
public sealed class Decal
public sealed partial class Decal
{
// if these are made not-readonly, then decal grid state handling needs to be updated to clone decals.
[DataField("coordinates")] public readonly Vector2 Coordinates = Vector2.Zero;
[DataField("id")] public readonly string Id = string.Empty;
[DataField("color")] public readonly Color? Color;
[DataField("angle")] public readonly Angle Angle = Angle.Zero;
[DataField("zIndex")] public readonly int ZIndex;
[DataField("cleanable")] public readonly bool Cleanable;
[DataField("coordinates")] public Vector2 Coordinates = Vector2.Zero;
[DataField("id")] public string Id = string.Empty;
[DataField("color")] public Color? Color;
[DataField("angle")] public Angle Angle = Angle.Zero;
[DataField("zIndex")] public int ZIndex;
[DataField("cleanable")] public bool Cleanable;
public Decal() {}

View File

@@ -16,7 +16,7 @@ using static Content.Shared.Decals.DecalGridComponent;
namespace Content.Shared.Decals
{
[TypeSerializer]
public sealed class DecalGridChunkCollectionTypeSerializer : ITypeSerializer<DecalGridChunkCollection, MappingDataNode>
public sealed partial class DecalGridChunkCollectionTypeSerializer : ITypeSerializer<DecalGridChunkCollection, MappingDataNode>
{
public ValidationNode Validate(ISerializationManager serializationManager, MappingDataNode node,
IDependencyCollection dependencies, ISerializationContext? context = null)
@@ -163,22 +163,22 @@ namespace Content.Shared.Decals
}
[DataDefinition]
private readonly struct DecalData : IEquatable<DecalData>, IComparable<DecalData>
private readonly partial struct DecalData : IEquatable<DecalData>, IComparable<DecalData>
{
[DataField("id")]
public readonly string Id = string.Empty;
public string Id { get; init; } = string.Empty;
[DataField("color")]
public readonly Color? Color;
public Color? Color { get; init; }
[DataField("angle")]
public readonly Angle Angle = Angle.Zero;
public Angle Angle { get; init; } = Angle.Zero;
[DataField("zIndex")]
public readonly int ZIndex;
public int ZIndex { get; init; }
[DataField("cleanable")]
public readonly bool Cleanable;
public bool Cleanable { get; init; }
public DecalData(string id, Color? color, Angle angle, int zIndex, bool cleanable)
{

View File

@@ -10,7 +10,7 @@ namespace Content.Shared.Decals
[RegisterComponent]
[Access(typeof(SharedDecalSystem))]
[NetworkedComponent]
public sealed class DecalGridComponent : Component
public sealed partial class DecalGridComponent : Component
{
[DataField("chunkCollection", serverOnly: true)]
public DecalGridChunkCollection ChunkCollection = new(new ());
@@ -31,7 +31,7 @@ namespace Content.Shared.Decals
[DataDefinition]
[Serializable, NetSerializable]
public sealed class DecalChunk
public sealed partial class DecalChunk
{
[IncludeDataField(customTypeSerializer:typeof(DictionarySerializer<uint, Decal>))]
public Dictionary<uint, Decal> Decals;

View File

@@ -7,7 +7,7 @@ namespace Content.Shared.Decals
public sealed class DecalPrototype : IPrototype
{
[IdDataField] public string ID { get; } = null!;
[DataField("sprite")] public SpriteSpecifier Sprite { get; } = SpriteSpecifier.Invalid;
[DataField("sprite")] public SpriteSpecifier Sprite { get; private set; } = SpriteSpecifier.Invalid;
[DataField("tags")] public List<string> Tags = new();
[DataField("showMenu")] public bool ShowMenu = true;