feat: Adds SerializableFieldChanged option (#2324)

This commit is contained in:
Kamron Batman 2026-02-01 21:28:26 -08:00 • committed by GitHub
parent 06bb2f552e
commit fd2f90cba9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 62 additions and 122 deletions

View file

@ -1,3 +1,4 @@
using System.Runtime.CompilerServices;
using ModernUO.Serialization;
namespace Server.Items
@ -51,6 +52,16 @@ namespace Server.Items
[SerializationGenerator(2, false)]
public partial class ThighBoots : BaseShoes, IArcaneEquip
{
[EncodedInt]
[InvalidateProperties]
[SerializableField(0)]
[SerializedCommandProperty(AccessLevel.GameMaster)]
private int _curArcaneCharges;
[SerializableFieldChanged(0)]
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private void OnCurArcaneChargesChanged(int oldValue, int newValue) => Update();
[Constructible]
public ThighBoots(int hue = 0) : base(0x1711, hue)
{
@ -60,21 +71,6 @@ namespace Server.Items
public override CraftResource DefaultResource => CraftResource.RegularLeather;
[EncodedInt]
[SerializableProperty(0)]
[CommandProperty(AccessLevel.GameMaster)]
public int CurArcaneCharges
{
get => _curArcaneCharges;
set
{
_curArcaneCharges = value;
InvalidateProperties();
Update();
this.MarkDirty();
}
}
[EncodedInt]
[SerializableProperty(1)]
[CommandProperty(AccessLevel.GameMaster)]

View file

@ -47,8 +47,8 @@
<PackageReference Include="ModernUO.CodeGeneratedEvents.Generator" Version="1.0.3.2" PrivateAssets="all" />
<PackageReference Include="Zstd.Binaries" Version="1.6.0" />
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.14.0" />
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.14.1" />
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.14.2" />
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.14.2" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="Migrations/*.v*.json" />