51 lines
1.2 KiB
C#
51 lines
1.2 KiB
C#
using Plane.CopterManagement;
|
|
using Plane.Messaging;
|
|
|
|
namespace Plane.CopterControllers
|
|
{
|
|
public class FlyToController : CopterControllerBase
|
|
{
|
|
public FlyToController(IPLMessenger messenger, ICopterManager copterManager) : base(messenger, copterManager)
|
|
{
|
|
}
|
|
|
|
public override bool IsEnabled
|
|
{
|
|
get
|
|
{
|
|
return base.IsEnabled;
|
|
}
|
|
|
|
set
|
|
{
|
|
base.IsEnabled = value;
|
|
if (value)
|
|
{
|
|
_messenger.Register<RequestFlyToMessage>(this, OnRequestFlyTo);
|
|
}
|
|
else
|
|
{
|
|
_messenger.Unregister(this);
|
|
}
|
|
}
|
|
}
|
|
|
|
public override CopterControllerTypes Type
|
|
{
|
|
get
|
|
{
|
|
return CopterControllerTypes.FlyToController;
|
|
}
|
|
}
|
|
|
|
private async void OnRequestFlyTo(RequestFlyToMessage m)
|
|
{
|
|
var accepted = await _copterManager.CheckStatusAndFlyToAsync(m.Latitude, m.Longitude);
|
|
if (accepted)
|
|
{
|
|
_messenger.Send(new FlyToRequestAcceptedMessage(m));
|
|
}
|
|
}
|
|
}
|
|
}
|