public string ParseData(List <string> codeWords) { if (codeWords.Count % parametersOnLine != 2) { return($"Please follow this snippet: \n{GetSnippet()}"); } StringId = codeWords[1]; for (int i = 2; i < codeWords.Count; i += parametersOnLine) { string stateId = codeWords[i]; bool flipX, flipY; int timesRotate90; string animId = codeWords[i + 1]; Animation anim = AnimatingObjectsLib.Instance.Get(animId) as Animation; if (anim == null) { return($"Animation Id {animId} is not found"); } try { flipX = bool.Parse(codeWords[i + 2]); flipY = bool.Parse(codeWords[i + 3]); } catch { return($"FlipX and FlipY must be either {Boolean.TrueString} or {Boolean.FalseString}"); } try { timesRotate90 = int.Parse(codeWords[i + 4]); } catch (Exception e) { if (e is FormatException || e is OverflowException) { return($"Times_Rotate_90 must be a positive integer and not exceed 2^32"); } return($"{Utils.UnknownErrorMsg}: {e.Message}"); } StateAnimation state = new StateAnimation(stateId, anim, flipX, flipY, timesRotate90); States.Add(state); TotalDuration += state.TotalDuration; } return(""); }
private string GenerateInput_StateAnimation() { string result = "[STATE_ANIMATIONS]\n"; result += "#ID\tAnimId\tFlipX\tFlipY\tTimesR90\n"; foreach (var item in data) { if (item.Value is StateAnimation) { StateAnimation state = item.Value as StateAnimation; int id = intIds[state.StringId]; int animId = intIds[state.AnimationId]; int flipX = state.FlipX? 1:0; int flipY = state.FlipY? 1:0; int timesR90 = state.TimesRotate90; result += $"{id}\t{animId}\t{flipX}\t{flipY}\t{timesR90}\n"; } } return(result); }