using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VRageMath;
using Sandbox.ModAPI;
using VRage.ModAPI;
namespace Sandbox.ModAPI.Ingame
{
public interface IMyLargeTurretBase : IMyUserControllableGun
{
///
/// Indicates whether a block is locally or remotely controlled.
///
bool IsUnderControl { get; }
bool CanControl { get; }
float Range { get; }
///
/// Tracks entity with enabled position prediction
///
///
void TrackTarget(IMyEntity entity);
///
/// Tracks given target with enabled position prediction
///
///
///
void TrackTarget(Vector3D pos, Vector3 velocity);
///
/// Tracks target without position prediction
///
///
void SetTarget(IMyEntity Entity);
///
/// Targets given position
///
///
void SetTarget(Vector3D pos);
///
/// Sets/gets elevation of turret, this method is not synced, you need to sync elevation manually
///
float Elevation { get; set; }
///
/// method used to sync elevation of turret , you need to call it to sync elevation for other clients/server
///
void SyncElevation();
///
/// Sets/gets azimuth of turret, this method is not synced, you need to sync azimuth manually
///
float Azimuth { get; set; }
///
/// method used to sync azimuth, you need to call it to sync azimuth for other clients/server
///
void SyncAzimuth();
///
/// enable/disable idle rotation for turret, this method is not synced, you need to sync manually
///
bool EnableIdleRotation { get; set; }
///
/// method used to sync idle rotation and elevation, you need to call it to sync rotation and elevation for other clients/server
///
void SyncEnableIdleRotation();
///
/// Checks is AI is enabled for turret
///
bool AIEnabled { get; }
///
/// resert targeting to default values
///
void ResetTargetingToDefault();
}
}