ModernUO/Projects/UOContent/Mobiles/Vendors/PlayerVendorPlaceholder.cs
Kamron Batman fb8563aa60
fix: Codegens house/vendors (#1767)
### Summary
- Cleans up ShardPoller
- Breaks up player vendor file
- Codegens houses/vendors
2024-05-08 22:45:59 -07:00

52 lines
1.1 KiB
C#

using System;
using ModernUO.Serialization;
namespace Server.Mobiles;
[SerializationGenerator(0)]
public partial class PlayerVendorPlaceholder : Item
{
private readonly Timer _timer;
[SerializableField(0, setter: "private")]
[SerializedCommandProperty(AccessLevel.GameMaster)]
private PlayerVendor _vendor;
public PlayerVendorPlaceholder(PlayerVendor vendor) : base(0x1F28)
{
Hue = 0x672;
Movable = false;
_vendor = vendor;
_timer = Timer.DelayCall(TimeSpan.FromMinutes(2.0), Delete);
}
public override void GetProperties(IPropertyList list)
{
base.GetProperties(list);
if (Vendor != null)
{
list.Add(1062498, Vendor.Name); // reserved for vendor ~1_NAME~
}
}
public void RestartTimer()
{
_timer.Stop();
_timer.Start();
}
public override void OnDelete()
{
if (Vendor?.Deleted == false)
{
Vendor.MoveToWorld(Location, Map);
Vendor.Placeholder = null;
}
}
[AfterDeserialization(false)]
private void AfterDeserialization() => Delete();
}