public void Paste(TrackTransformation newData, float oldStartTime, float newStartTime) { to = newData.to; start = newStartTime + (newData.start - oldStartTime); end = newStartTime + (newData.end - oldStartTime); ease = newData.ease; }
public TrackTransformation Copy() { TrackTransformation copiedTrans = new TrackTransformation(); copiedTrans.to = to; copiedTrans.start = start; copiedTrans.end = end; copiedTrans.ease = ease; return(copiedTrans); }
// Replaces the contents of the dest transformation list with the source transformation list, without breaking its original reference public static void ReplaceTransformationList(List <TrackTransformation> source, List <TrackTransformation> dest, float initialStartTime, float newStartTime) { dest.Clear(); for (int i = 0; i < source.Count; i += 1) { TrackTransformation newTrans = new TrackTransformation(); newTrans.Paste(source[i], initialStartTime, newStartTime); float timeLimit = VoezEditor.Editor.musicPlayer.source.clip.length; if (newTrans.start <= timeLimit && newTrans.end <= timeLimit) { dest.Add(newTrans); } } }
private List <TrackTransformation> parseTransformationList(string jsonList) { List <TrackTransformation> transformList = new List <TrackTransformation>(); string[] transforms = Regex.Split(jsonList, @"\},"); for (int k = 0; k < transforms.Length; k += 1) { string trans = transforms[k]; trans += (trans.EndsWith("}") ? "" : "}"); Dictionary <string, object> transProperties = (Dictionary <string, object>)Json.Deserialize(trans); TrackTransformation transObj = new TrackTransformation(); transObj.to = Util.ParseJSONFloat(transProperties["To"]); transObj.start = Util.ParseJSONFloat(transProperties["Start"]); transObj.end = Util.ParseJSONFloat(transProperties["End"]); string easeStyle = (string)transProperties["Ease"]; if (easeStyle == "easelinear") { transObj.ease = Easing.LINEAR; } else if (easeStyle == "easeinexpo") { transObj.ease = Easing.EXP_IN; } else if (easeStyle == "easeoutexpo") { transObj.ease = Easing.EXP_OUT; } else if (easeStyle == "easeinoutexpo") { transObj.ease = Easing.EXP_INOUT; } else if (easeStyle == "easeoutinexpo") { transObj.ease = Easing.EXP_OUTIN; } else if (easeStyle == "easeinquad") { transObj.ease = Easing.QUAD_IN; } else if (easeStyle == "easeoutquad") { transObj.ease = Easing.QUAD_OUT; } else if (easeStyle == "easeinoutquad") { transObj.ease = Easing.QUAD_INOUT; } else if (easeStyle == "easeoutinquad") { transObj.ease = Easing.QUAD_OUTIN; } else if (easeStyle == "easeincirc") { transObj.ease = Easing.CIRC_IN; } else if (easeStyle == "easeoutcirc") { transObj.ease = Easing.CIRC_OUT; } else if (easeStyle == "easeinoutcirc") { transObj.ease = Easing.CIRC_INOUT; } else if (easeStyle == "easeoutincirc") { transObj.ease = Easing.CIRC_OUTIN; } else if (easeStyle == "easeoutback") { transObj.ease = Easing.BACK_OUT; } else if (easeStyle == "easeinback") { transObj.ease = Easing.BACK_IN; } else if (easeStyle == "easeinoutback") { transObj.ease = Easing.EXIT; // Replicates the buggy behavior of BACK_INOUT in the original game } else if (easeStyle == "easeoutinback") { transObj.ease = Easing.BACK_OUTIN; } else if (easeStyle == "easeintelastic") // not a typo { transObj.ease = Easing.ELASTIC_IN; } else if (easeStyle == "easeoutelastic") { transObj.ease = Easing.ELASTIC_OUT; } else if (easeStyle == "easeinoutelastic") { transObj.ease = Easing.ELASTIC_INOUT; } else if (easeStyle == "easeoutinelastic") { transObj.ease = Easing.ELASTIC_OUTIN; } else { Debug.Log("UNKNOWN EASING STYLE: " + easeStyle); } transformList.Add(transObj); } return(transformList); }