示例#1
0
        private void Save()
        {
            BinaryFormatter binaryFormatter = new BinaryFormatter();
            FileStream      fileStream      = File.Open(Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/Replays/Recording.sia", FileMode.OpenOrCreate);
            SavedData       savedData       = new SavedData();

            savedData._keyframes = new SavedData.KeyframeSerializable[_keyframes.Count];
            for (int i = 0; i < _keyframes.Count; i++)
            {
                Keyframe keyframe = _keyframes[i];
                SavedData.KeyframeSerializable keyframeSerializable = new SavedData.KeyframeSerializable();
                keyframeSerializable._xPos1  = keyframe._pos1.x;
                keyframeSerializable._yPos1  = keyframe._pos1.y;
                keyframeSerializable._zPos1  = keyframe._pos1.z;
                keyframeSerializable._xPos2  = keyframe._pos2.x;
                keyframeSerializable._yPos2  = keyframe._pos2.y;
                keyframeSerializable._zPos2  = keyframe._pos2.z;
                keyframeSerializable._xRot1  = keyframe._rot1.x;
                keyframeSerializable._yRot1  = keyframe._rot1.y;
                keyframeSerializable._zRot1  = keyframe._rot1.z;
                keyframeSerializable._wRot1  = keyframe._rot1.w;
                keyframeSerializable._xRot2  = keyframe._rot2.x;
                keyframeSerializable._yRot2  = keyframe._rot2.y;
                keyframeSerializable._zRot2  = keyframe._rot2.z;
                keyframeSerializable._wRot2  = keyframe._rot2.w;
                keyframeSerializable._time   = keyframe._time;
                keyframeSerializable._energy = keyframe._energy;
                keyframeSerializable._score  = keyframe._score;
                keyframeSerializable._combo  = keyframe._combo;
                savedData._keyframes[i]      = keyframeSerializable;
            }
            binaryFormatter.Serialize(fileStream, savedData);
            fileStream.Close();
            Logger.Log.Notice("Data saved to:" + Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/Replays/Recording.sia");
        }
示例#2
0
        private void Load()
        {
            BinaryFormatter binaryFormatter = new BinaryFormatter();
            SavedData       savedData       = null;

            FileStream fileStream = null;

            try
            {
                fileStream = File.Open(Environment.CurrentDirectory.Replace('\\', '/') + "/UserData/Replays/Recording.sia", FileMode.Open);
                savedData  = (SavedData)binaryFormatter.Deserialize(fileStream);
            }
            catch
            {
                savedData = null;
            }
            finally
            {
                if (fileStream != null)
                {
                    fileStream.Close();
                }
            }
            if (savedData != null)
            {
                Logger.Log.Notice("Loaded recording...");
            }

            if (savedData != null)
            {
                _keyframes = new List <Keyframe>(savedData._keyframes.Length);
                for (int i = 0; i < savedData._keyframes.Length; i++)
                {
                    SavedData.KeyframeSerializable keyframeSerializable = savedData._keyframes[i];
                    Keyframe keyframe = new Keyframe();
                    keyframe._pos1   = new Vector3(keyframeSerializable._xPos1, keyframeSerializable._yPos1, keyframeSerializable._zPos1);
                    keyframe._pos2   = new Vector3(keyframeSerializable._xPos2, keyframeSerializable._yPos2, keyframeSerializable._zPos2);
                    keyframe._rot1   = new Quaternion(keyframeSerializable._xRot1, keyframeSerializable._yRot1, keyframeSerializable._zRot1, keyframeSerializable._wRot1);
                    keyframe._rot2   = new Quaternion(keyframeSerializable._xRot2, keyframeSerializable._yRot2, keyframeSerializable._zRot2, keyframeSerializable._wRot2);
                    keyframe._time   = keyframeSerializable._time;
                    keyframe._energy = keyframeSerializable._energy;
                    keyframe._score  = keyframeSerializable._score;
                    keyframe._combo  = keyframeSerializable._combo;
                    _keyframes.Add(keyframe);
                }
                ready = true;
                return;
            }
            Logger.Log.Error("Could not deserialize!");
            enabled = false;
        }