/// <inheritdoc/> public override void RemoveWaypoint(ScenarioWaypoint waypoint) { if (waypoint is ScenarioAgentWaypoint agentWaypoint) { RemoveTrigger(agentWaypoint.LinkedTrigger); } base.RemoveWaypoint(waypoint); }
/// <inheritdoc/> public override void AddWaypoint(ScenarioWaypoint waypoint, ScenarioWaypoint previousWaypoint) { base.AddWaypoint(waypoint, previousWaypoint); if (waypoint is ScenarioAgentWaypoint agentWaypoint) { AddTrigger(agentWaypoint.LinkedTrigger); agentWaypoint.LinkedTrigger.TargetAgentType = ParentAgent.Type; } }
/// <inheritdoc/> protected override void SerializeWaypoint(ScenarioWaypoint waypoint, int waypointIndex, JSONObject waypointNode) { base.SerializeWaypoint(waypoint, waypointIndex, waypointNode); if (waypoint is ScenarioAgentWaypoint agentWaypoint) { waypointNode.Add("waitTime", new JSONNumber(agentWaypoint.WaitTime)); AddTriggerNode(waypointNode, agentWaypoint.LinkedTrigger); } }
/// <inheritdoc/> protected override void DeserializeWaypoint(ScenarioWaypoint waypoint, JSONNode waypointNode) { base.DeserializeWaypoint(waypoint, waypointNode); if (waypoint is ScenarioAgentWaypoint agentWaypoint) { var waitTime = waypointNode["waitTime"]; if (waitTime == null) { waitTime = waypointNode["wait_time"]; } agentWaypoint.WaitTime = waitTime; DeserializeTrigger(agentWaypoint.LinkedTrigger, waypointNode["trigger"]); } }