rabidus-test/Assets/SCSM/SciFiShipController/Scripts/AI/AIStateMethodParameters.cs

101 lines
3.4 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// Sci-Fi Ship Controller. Copyright (c) 2018-2023 SCSM Pty Ltd. All rights reserved.
namespace SciFiShipController
{
public class AIStateMethodParameters
{
#region Public Variables
/// <summary>
/// The list of AI behaviour inputs.
/// </summary>
public List<AIBehaviourInput> aiBehaviourInputsList;
/// <summary>
/// The Ship Control Module instance of this AI ship. The ship instance can be obtained using shipControlModule.shipInstance.
/// </summary>
public ShipControlModule shipControlModule;
/// <summary>
/// The Ship AI Input Module instance of this AI ship.
/// </summary>
public ShipAIInputModule shipAIInputModule;
/// <summary>
/// The target position vector of this AI ship.
/// </summary>
public Vector3 targetPosition;
/// <summary>
/// The target rotation of this AI ship.
/// </summary>
public Quaternion targetRotation;
/// <summary>
/// The target location of this AI ship.
/// </summary>
public LocationData targetLocation;
/// <summary>
/// The target path of this AI ship.
/// </summary>
public PathData targetPath;
/// <summary>
/// The target ship of this AI ship.
/// </summary>
public Ship targetShip;
/// <summary>
/// The list of ships to evade for this AI ship.
/// </summary>
public List<Ship> shipsToEvade;
/// <summary>
/// The list of surface turrets to evade for this AI ship.
/// </summary>
public List<SurfaceTurretModule> surfaceTurretsToEvade;
/// <summary>
/// The target radius of this AI ship.
/// </summary>
public float targetRadius;
/// <summary>
/// The target distance of this AI ship.
/// </summary>
public float targetDistance;
/// <summary>
/// The target angular distance of this AI ship.
/// </summary>
public float targetAngularDistance;
/// <summary>
/// The target velocity of this AI ship.
/// </summary>
public Vector3 targetVelocity;
/// <summary>
/// The target time of this AI ship.
/// </summary>
public float targetTime;
#endregion
#region Constructors
// Constructor
public AIStateMethodParameters (List<AIBehaviourInput> behaviourInputsList, ShipControlModule shipControlModuleInstance, ShipAIInputModule shipAIInputModuleInstance)
{
this.aiBehaviourInputsList = behaviourInputsList;
this.shipControlModule = shipControlModuleInstance;
this.shipAIInputModule = shipAIInputModuleInstance;
this.targetPosition = Vector3.zero;
this.targetRotation = Quaternion.identity;
this.targetLocation = null;
this.targetPath = null;
this.targetShip = null;
this.shipsToEvade = null;
this.surfaceTurretsToEvade = null;
this.targetRadius = 0f;
this.targetDistance = 0f;
this.targetAngularDistance = 0f;
this.targetVelocity = Vector3.zero;
this.targetTime = 0f;
}
#endregion
}
}