public static ParsedTimeProp Parse(string key, float value) { var split = key.Split('/'); if (split.Length != 3) { return(null); } var result = new ParsedTimeProp(); result.AnimName = split[0]; if (!int.TryParse(split[1], out result.ID)) { return(null); } var keySplit = split[2].Split('='); if (keySplit.Length == 1) { //just a key, use number value result.Event = split[2]; result.Value = ((short)value).ToString(); } else if (keySplit.Length == 2) { //key value, ignore number result.Event = keySplit[0]; result.Value = keySplit[1]; } else { return(null); //invalid } return(result); }
private List <ParsedTimeProp> GetTimeProps(Dictionary <string, object> props, string animName) { return(props.Select(x => ParsedTimeProp.Parse(x.Key, Convert.ToSingle(x.Value))) .Where(x => x != null && (x.AnimName == animName || x.AnimName == "timeprop")).ToList()); }