### Summary - Cleans up ShardPoller - Breaks up player vendor file - Codegens houses/vendors
52 lines
1.1 KiB
C#
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();
|
|
}
|