public void stopRecording() { //if (activeTrack.EndAction == Track.EndActions.LOOP) if (activeTrack != null) { Vector3 startPos = Vector3.zero; Vector3 endPos = Vector3.zero; Vector3 vel = Vector3.zero; Quaternion rot = Quaternion.identity; activeTrack.evaluateAtTime(activeTrack.GetStartTime(), out startPos, out rot, out vel); activeTrack.evaluateAtTime(activeTrack.GetEndTime(), out endPos, out rot, out vel); activeTrack.LoopClosureTime = Vector3.Distance(startPos, endPos) / vel.magnitude; } activeTrack = null; recording = false; }
public void startNewTrack() { Debug.Log("Starting new Track"); recording = true; //create new Track activeTrack = new Track(); //initializes with TrackName = activeVessel.Name CraftLoader.saveCraftToFile(); activeTrack.TrackName = Utilities.makeUniqueTrackName(activeTrack.TrackName, ref allTracks, false); allTracks.Add(activeTrack); updateCurrentTrack(); }
public void continueTrack(Track track) { Debug.Log("TrackManager continueTrack()"); stopRecording(); CraftLoader.saveCraftToFile(); recording = true; track.SourceVessel = FlightGlobals.ActiveVessel; track.VesselName = track.SourceVessel.name; activeTrack = track; updateCurrentTrack(); }
public void deleteTrack(ref Track track) { allTracks.Remove(track); track.Visible = false; Debug.Log("removing track"); if (File.Exists(Utilities.TrackPath + track.TrackName + ".trk")) { Debug.Log("deleting track-file"); File.Delete(Utilities.TrackPath + track.TrackName + ".trk"); } if (track == activeTrack) { stopRecording(); activeTrack = null; } track = null; }
private TrackManager() { activeTrack = null; recording = false; allTracks = new List<Track>(); //this.behaviour = behaviour; GameEvents.onVesselDestroy.Add(delegate(Vessel v) { if (activeTrack != null && activeTrack.SourceVessel == v) stopRecording(); }); GameEvents.onDominantBodyChange.Add(delegate(GameEvents.FromToAction<CelestialBody, CelestialBody> fromToAction) { stopRecording(); }); GameEvents.onFlightReady.Add(delegate() { restoreTracksFromFile(); }); GameEvents.onGameSceneLoadRequested.Add(delegate(GameScenes scene) { clearTracks(); }); }