Пример #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="InputItemViewModel"/> class.
 /// </summary>
 public InputItemViewModel()
 {
     InputItem  = new InputItemModel();
     WaitFrames = 1;
     SendInputs = true;
     PlaySound  = false;
 }
Пример #2
0
        /// <summary>
        /// The deserialize function.
        /// </summary>
        /// <param name="stringValue">The <see cref="string"/> to deserialize.</param>
        /// <returns>A new <see cref="InputItemViewModel"/>.</returns>
        public static InputItemViewModel Deserialize(string stringValue)
        {
            //Deserialize actual timeline item
            InputItemModel tmpTimeLineItem = InputItemModel.Deserialize(stringValue);

            //Setup TimeLineItemViewModel
            InputItemViewModel result = new InputItemViewModel();

            result.InputItem = tmpTimeLineItem;
            result.Index     = -1;

            return(result);
        }
Пример #3
0
        public void OldDeserialize(List <string> lines)
        {
            foreach (String line in lines)
            {
                List <Input> inputsOnHold = new List <Input>();
                String[]     tokens       = line.Split('#');

                InputItemModel item = new InputItemModel();
                int            numInputs;
                Input[]        inputs;

                string inputType = tokens[0].ToString().ToUpper();
                switch (inputType)
                {
                case "WAIT":
                    // Only hold inputs needed
                    item        = new InputItemModel();
                    item.Inputs = inputsOnHold.ToArray();
                    break;

                case "PRESS":

                    // Add hold inputs to given inputs
                    numInputs = int.Parse(tokens[2]);
                    inputs    = new Input[numInputs];
                    for (int i = 0; i < numInputs; i++)
                    {
                        inputs[i] = InputItemModel.ParseInput(tokens[3 + i]);
                    }

                    item        = new InputItemModel();
                    item.Inputs = inputsOnHold.Concat(inputs.ToList()).Distinct().ToArray();
                    break;

                case "HOLD":

                    numInputs = int.Parse(tokens[2]);
                    for (int i = 0; i < numInputs; i++)
                    {
                        inputsOnHold.Add(InputItemModel.ParseInput(tokens[3 + i]));
                    }

                    item        = new InputItemModel();
                    item.Inputs = inputsOnHold.Distinct().ToArray();
                    break;

                case "RELEASE":

                    // First remove released inputs from on hold list
                    numInputs = int.Parse(tokens[2]);
                    inputs    = new Input[numInputs];
                    for (int i = 0; i < numInputs; i++)
                    {
                        inputsOnHold.RemoveAll((x) => x == InputItemModel.ParseInput(tokens[3 + i]));
                    }

                    // Add remaining holds
                    item        = new InputItemModel();
                    item.Inputs = inputsOnHold.ToArray();
                    break;

                default:
                    throw new FormatException("Failed to deserialize TimelineItem, wrong string format: " + line);
                }

                item.PlaySound = Boolean.Parse(tokens[1]);
                item.Frames    = int.Parse(tokens[2].ToString());

                //Setup TimeLineItemViewModel
                InputItemViewModel result = new InputItemViewModel();
                result.InputItem = item;
                result.Index     = -1;

                TimeLineItemViewModel timeLineItemViewModel = new TimeLineItemViewModel(this);

                timeLineItemViewModel.PlaySound  = result.PlaySound;
                timeLineItemViewModel.WaitFrames = result.WaitFrames;
                timeLineItemViewModel.Direction  = result.Direction;

                timeLineItemViewModel.Light_Punch  = result.Light_Punch;
                timeLineItemViewModel.Medium_Punch = result.Medium_Punch;
                timeLineItemViewModel.Hard_Punch   = result.Hard_Punch;

                timeLineItemViewModel.Light_Kick  = result.Light_Kick;
                timeLineItemViewModel.Medium_Kick = result.Medium_Kick;
                timeLineItemViewModel.Hard_Kick   = result.Hard_Kick;

                TimeLineItems.Add(timeLineItemViewModel);
            }
        }