/// <summary> /// Initializes a new instance of the <see cref="InputItemViewModel"/> class. /// </summary> public InputItemViewModel() { InputItem = new InputItemModel(); WaitFrames = 1; SendInputs = true; PlaySound = false; }
/// <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); }
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); } }