Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public void Random()
 {
     string[] ops = CubeOperations.GetRandomOps(10);
     foreach (string op in ops)
     {
         Rotate(op);
     }
 }
Exemplo n.º 3
0
        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);
        }