fix: Fixes commodity resource property hue (#1875)

### Summary

- Fixes resource commodities so the hue changes when setting the resource
- Fixes some commodities not being able to be modified in-game.
This commit is contained in:
Kamron Batman 2024-07-20 15:37:16 -07:00 • committed by GitHub
parent eed11be012
commit 3cb688a2fb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 151 additions and 45 deletions

View file

@ -5,11 +5,6 @@ namespace Server.Items;
[SerializationGenerator(2, false)]
public abstract partial class BaseIngot : Item, ICommodity
{
[InvalidateProperties]
[SerializedCommandProperty(AccessLevel.GameMaster)]
[SerializableField(0)]
private CraftResource _resource;
public BaseIngot(CraftResource resource, int amount = 1) : base(0x1BF2)
{
Stackable = true;
@ -21,6 +16,24 @@ public abstract partial class BaseIngot : Item, ICommodity
public override double DefaultWeight => 0.1;
[SerializableProperty(0)]
[CommandProperty(AccessLevel.GameMaster)]
public CraftResource Resource
{
get => _resource;
set
{
if (_resource != value)
{
_resource = value;
Hue = CraftResources.GetHue(value);
InvalidateProperties();
this.MarkDirty();
}
}
}
public override int LabelNumber
{
get
@ -162,4 +175,4 @@ public partial class ValoriteIngot : BaseIngot
public ValoriteIngot(int amount = 1) : base(CraftResource.Valorite, amount)
{
}
}
}

View file

@ -17,10 +17,23 @@ public abstract partial class BaseOre : Item
_resource = resource;
}
[InvalidateProperties]
[SerializedCommandProperty(AccessLevel.GameMaster)]
[SerializableField(0)]
private CraftResource _resource;
[SerializableProperty(0)]
[CommandProperty(AccessLevel.GameMaster)]
public CraftResource Resource
{
get => _resource;
set
{
if (_resource != value)
{
_resource = value;
Hue = CraftResources.GetHue(value);
InvalidateProperties();
this.MarkDirty();
}
}
}
public override int LabelNumber
{

View file

@ -5,11 +5,6 @@ namespace Server.Items;
[SerializationGenerator(1, false)]
public abstract partial class BaseScales : Item, ICommodity
{
[InvalidateProperties]
[SerializableField(0)]
[SerializedCommandProperty(AccessLevel.GameMaster)]
private CraftResource _resource;
public BaseScales(CraftResource resource, int amount = 1) : base(0x26B4)
{
Stackable = true;
@ -19,6 +14,24 @@ public abstract partial class BaseScales : Item, ICommodity
_resource = resource;
}
[SerializableProperty(0)]
[CommandProperty(AccessLevel.GameMaster)]
public CraftResource Resource
{
get => _resource;
set
{
if (_resource != value)
{
_resource = value;
Hue = CraftResources.GetHue(value);
InvalidateProperties();
this.MarkDirty();
}
}
}
public override int LabelNumber => 1053139; // dragon scales
public override double DefaultWeight => 0.1;