Refactor serialization copying to use source generators (#19412)
This commit is contained in:
@@ -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!;
|
||||
}
|
||||
|
||||
@@ -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() {}
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user