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; } }
public MyObjectBuilder_AutomaticBehaviour GetObjectBuilder() { MyObjectBuilder_DroneStrafeBehaviour builder = new MyObjectBuilder_DroneStrafeBehaviour(); builder.CollisionAvoidance = CollisionAvoidance; builder.CurrentTarget = m_currentTarget != null ? m_currentTarget.EntityId : 0; builder.CycleWaypoints = m_cycleWaypoints; builder.IsActive = IsActive; builder.MaxPlayerDistance = m_maxPlayerDistance; builder.NeedUpdate = NeedUpdate; builder.PlayerPriority = PlayerPriority; builder.PrioritizationStyle = m_prioritizationStyle; builder.TargetList = new List <VRage.Game.ObjectBuilders.AI.MyObjectBuilder_AutomaticBehaviour.DroneTargetSerializable>(); foreach (var target in m_targetsList) { if (target.Target != null) { builder.TargetList.Add(new VRage.Game.ObjectBuilders.AI.MyObjectBuilder_AutomaticBehaviour.DroneTargetSerializable(target.Target.EntityId, target.Priority)); } } builder.WaypointList = new List <long>(); foreach (var waypoint in m_forcedWaypoints) { if (waypoint != null) { builder.WaypointList.Add(waypoint.EntityId); } } builder.CurrentPreset = m_currentPreset; builder.AlternativebehaviorSwitched = m_alternativebehaviorSwitched; builder.ReturnPosition = m_returnPosition; builder.CanSkipWaypoint = m_canSkipWaypoint; return(builder); }