public MyDroneStrafeBehaviour(MyRemoteControl remoteControl, string presetName, bool activate, List <MyEntity> waypoints, List <DroneTarget> targets, int playerPriority, TargetPrioritization prioritizationStyle, float maxPlayerDistance, bool cycleWaypoints) { m_remoteControl = remoteControl; m_returnPosition = m_remoteControl.PositionComp.GetPosition(); MySpaceStrafeData strafeData = MySpaceStrafeDataStatic.LoadPreset(presetName); m_currentPreset = presetName; LoadStrafeData(strafeData); m_lastTargetUpdate = MySandboxGame.TotalGamePlayTimeInMilliseconds; m_lastWeaponUpdate = m_lastTargetUpdate; m_waypointReachedTimeMs = m_lastTargetUpdate; m_forcedWaypoints = waypoints != null ? waypoints : new List <MyEntity>(); m_targetsList = targets != null ? targets : new List <DroneTarget>(); PlayerPriority = playerPriority; m_prioritizationStyle = prioritizationStyle; MaxPlayerDistance = maxPlayerDistance; m_cycleWaypoints = cycleWaypoints; NeedUpdate = activate; }
public void Load(MyObjectBuilder_AutomaticBehaviour objectBuilder, MyRemoteControl remoteControl) { MyObjectBuilder_DroneStrafeBehaviour builder = objectBuilder as MyObjectBuilder_DroneStrafeBehaviour; if (builder != null) { m_remoteControl = remoteControl; MySpaceStrafeData strafeData = MySpaceStrafeDataStatic.LoadPreset(builder.CurrentPreset); m_currentPreset = builder.CurrentPreset; LoadStrafeData(strafeData); m_lastTargetUpdate = MySandboxGame.TotalGamePlayTimeInMilliseconds; m_lastWeaponUpdate = m_lastTargetUpdate; m_waypointReachedTimeMs = m_lastTargetUpdate; m_forcedWaypoints = new List <MyEntity>(); m_loadWaypointList = builder.WaypointList; m_targetsList = new List <DroneTarget>(); m_loadTargetList = builder.TargetList; m_currentTarget = null; m_loadCurrentTarget = builder.CurrentTarget; m_returnPosition = builder.ReturnPosition; PlayerPriority = builder.PlayerPriority; m_prioritizationStyle = builder.PrioritizationStyle; MaxPlayerDistance = builder.MaxPlayerDistance; m_cycleWaypoints = builder.CycleWaypoints; m_alternativebehaviorSwitched = builder.AlternativebehaviorSwitched; CollisionAvoidance = builder.CollisionAvoidance; m_canSkipWaypoint = builder.CanSkipWaypoint; NeedUpdate = builder.NeedUpdate; IsActive = builder.IsActive; m_loadEntities = true; } }