ModernUO/Scripts/Targets/MoveTarget.cs

51 lines
No EOL
1.2 KiB
C#

using Server.Commands;
using Server.Commands.Generic;
using Server.Targeting;
namespace Server.Targets
{
public class MoveTarget : Target
{
private object m_Object;
public MoveTarget(object o) : base(-1, true, TargetFlags.None)
{
m_Object = o;
}
protected override void OnTarget(Mobile from, object o)
{
IPoint3D p = o as IPoint3D;
if (p != null)
{
if (!BaseCommand.IsAccessible(from, m_Object))
{
from.SendMessage("That is not accessible.");
return;
}
if (p is Item)
p = ((Item)p).GetWorldTop();
CommandLogging.WriteLine(from, "{0} {1} moving {2} to {3}", from.AccessLevel, CommandLogging.Format(from),
CommandLogging.Format(m_Object), new Point3D(p));
if (m_Object is Item)
{
Item item = (Item)m_Object;
if (!item.Deleted)
item.MoveToWorld(new Point3D(p), from.Map);
}
else if (m_Object is Mobile)
{
Mobile m = (Mobile)m_Object;
if (!m.Deleted)
m.MoveToWorld(new Point3D(p), from.Map);
}
}
}
}
}