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 } }