示例#1
0
        private void SaveAsFunscript(string filename, int mode = 0)
        {
            FunScriptFile script = new FunScriptFile
            {
                Inverted = false,
                Range    = 90,
                Version  = new Version(1, 0),
                Actions  = BeatsToFunScriptConverter.Convert(Beats, ConversionMode.UpOrDown)
            };

            string content = JsonConvert.SerializeObject(script);

            File.WriteAllText(filename, content, new UTF8Encoding(false));
        }
示例#2
0
        private void mnuSaveFunscript_Click(object sender, RoutedEventArgs e)
        {
            SaveFileDialog dialog = new SaveFileDialog
            {
                Filter   = "Funscript|*.funscript|All Files|*.*",
                FileName = Path.GetFileNameWithoutExtension(_openFile)
            };

            if (dialog.ShowDialog(this) != true)
            {
                return;
            }

            FunScriptFile script = new FunScriptFile();

            script.Inverted = false;
            script.Range    = 85;
            script.Version  = new Version(1, 0);

            bool up = false;

            foreach (TimeSpan timestamp in Beats)
            {
                up ^= true;

                script.Actions.Add(new FunScriptAction
                {
                    Position  = (byte)(up?99:15),
                    TimeStamp = timestamp
                });
            }

            string content = JsonConvert.SerializeObject(script);

            File.WriteAllText(dialog.FileName, content, Encoding.UTF8);
        }
示例#3
0
        private void mnuLoadVorze_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog {
                Filter = "Vorze Script|*.csv"
            };

            if (dialog.ShowDialog(this) != true)
            {
                return;
            }

            VorzeScriptLoader loader = new VorzeScriptLoader();
            var actions = loader.Load(dialog.FileName).Cast <VorzeScriptAction>().ToList();

            var filteredActions = new List <VorzeScriptAction>();

            foreach (var action in actions)
            {
                if (filteredActions.Count == 0)
                {
                    filteredActions.Add(action);
                }
                else if (filteredActions.Last().TimeStamp >= action.TimeStamp)
                {
                    continue;
                }
                else
                {
                    filteredActions.Add(action);
                }
            }

            actions = filteredActions;

            List <FunScriptAction> funActions = new List <FunScriptAction>();

            for (int i = 0; i < actions.Count; i++)
            {
                int samePosition = 0;

                for (int j = i + 1; j < actions.Count; j++)
                {
                    if (actions[j].Action == actions[i].Action)
                    {
                        samePosition++;
                    }
                    else
                    {
                        break;
                    }
                }

                funActions.Add(new FunScriptAction
                {
                    Position  = (byte)(actions[i].Action == 0 ? 95:5),
                    TimeStamp = actions[i + samePosition].TimeStamp
                });
            }

            var pos = funActions.Select(s => new TimedPosition()
            {
                TimeStamp = s.TimeStamp,
                Position  = s.Position
            });

            Positions = new PositionCollection(pos);

            SaveFileDialog dialog2 = new SaveFileDialog
            {
                Filter   = "Funscript|*.funscript|All Files|*.*",
                FileName = Path.GetFileNameWithoutExtension(_videoFile)
            };

            if (dialog2.ShowDialog(this) != true)
            {
                return;
            }

            FunScriptFile script = new FunScriptFile
            {
                Inverted = false,
                Range    = 90,
                Version  = new Version(1, 0),
                Actions  = funActions
            };

            string content = JsonConvert.SerializeObject(script);

            File.WriteAllText(dialog2.FileName, content, new UTF8Encoding(false));
        }