public void Rotate(string action, float duration, bool silent) { if (string.IsNullOrEmpty(action)) { return; } action = action.ToUpper(); if (!CubeOperations.IsValidOp(action)) { return; } AnimContext animContext = new AnimContext() { Op = action, Duration = duration, Silent = silent //Change = rotation //Transform = transform }; //run once /* * Transform transform = BeforeTransform(animContext); * DoTransform(transform, rotation); * UpdateCubiePosition(transform); */ //Animation _animator.Start(animContext); }
public void Random() { string[] ops = CubeOperations.GetRandomOps(10); foreach (string op in ops) { Rotate(op); } }
private Transform BeforeTransform(AnimContext animContext) { BasicOp basicOp; bool isReverse; CubeOperations.GetBasicOp(animContext.Op, out basicOp, out isReverse); IEnumerable <Cubicle> cubicles = basicOp.GetCubicles().Select(c => _cubeConfiguration[c]); Transform transform = new Transform() { Op = animContext.Op, IsReversedBasicOp = isReverse, BasicOp = basicOp, AffectedCubicles = cubicles, Silent = animContext.Silent }; animContext.Change = isReverse? -basicOp.Rotation : basicOp.Rotation; animContext.Transform = transform; return(transform); }