Example #1
0
        // Get the AnimationController to do the animation of the Cube and the Map.
        public void OnRotate(InputAction.CallbackContext context, CubeAxis axis, CubeSlices slices)
        {
            if (context.phase != InputActionPhase.Started)
            {
                return;
            }

            AnimationSpecification animationSpecification;

            animationSpecification.cubeAxis   = axis;
            animationSpecification.cubeSlices = slices;

            if (Keyboard.current.leftShiftKey.isPressed)
            {
                animationSpecification.rotationDirection = RotationDirection.reverse;
            }
            else
            {
                animationSpecification.rotationDirection = RotationDirection.normal;
            }

            if (Keyboard.current.leftCtrlKey.isPressed)
            {
                animationSpecification.moveType = MoveType.doubleMove;
            }
            else
            {
                animationSpecification.moveType = MoveType.singleMove;
            }

            animationController.AddAnimation(animationSpecification);
        }
Example #2
0
        void RotateCubeletArrayAboutZAxis(CubeSlices cubeSlicesIn, RotationDirection direction)
        {
            if (cubeSlicesIn == CubeSlices.s0 || cubeSlicesIn == CubeSlices.s01 || cubeSlicesIn == CubeSlices.s01234)
            {
                RotateCubeletArrayAboutZAxisSlice(0, direction);
            }
            if (cubeSlicesIn == CubeSlices.s1 || cubeSlicesIn == CubeSlices.s01 || cubeSlicesIn == CubeSlices.s01234)
            {
                RotateCubeletArrayAboutZAxisSlice(1, direction);
            }

            if (cubeSlicesIn == CubeSlices.s2 || cubeSlicesIn == CubeSlices.s01234)
            {
                RotateCubeletArrayAboutZAxisSlice(2, direction);
            }

            if (cubeSlicesIn == CubeSlices.s3 || cubeSlicesIn == CubeSlices.s34 || cubeSlicesIn == CubeSlices.s01234)
            {
                RotateCubeletArrayAboutZAxisSlice(3, direction);
            }
            if (cubeSlicesIn == CubeSlices.s4 || cubeSlicesIn == CubeSlices.s34 || cubeSlicesIn == CubeSlices.s01234)
            {
                RotateCubeletArrayAboutZAxisSlice(4, direction);
            }
        }
Example #3
0
        //>>>> CHECK IF SAME AXIS, AND slices are 01 or 34...


        // Don't worry about "equal" slices - just "similar"...
        bool IsSimilarSlice(CubeSlices cubeSlicesIn)
        {
            if (cubeSlices == cubeSlicesIn)
            {
                return(true);
            }

            if ((cubeSlices == CubeSlices.s0 || cubeSlices == CubeSlices.s1) && cubeSlicesIn == CubeSlices.s01)
            {
                return(true);
            }

            if (cubeSlices == CubeSlices.s01 && (cubeSlicesIn == CubeSlices.s0 || cubeSlicesIn == CubeSlices.s1))
            {
                return(true);
            }

            if ((cubeSlices == CubeSlices.s3 || cubeSlices == CubeSlices.s4) && cubeSlicesIn == CubeSlices.s34)
            {
                return(true);
            }

            if (cubeSlices == CubeSlices.s34 && (cubeSlicesIn == CubeSlices.s3 || cubeSlicesIn == CubeSlices.s4))
            {
                return(true);
            }

            return(false);
        }
Example #4
0
        public void SpecifyAnimation(AnimationSpecification animationSpecification)
        {
            cubeAxis          = animationSpecification.cubeAxis;
            cubeSlices        = animationSpecification.cubeSlices;
            rotationDirection = animationSpecification.rotationDirection;

            isAnimating = true;
        }
Example #5
0
        public void AddMove(AnimationSpecification animationSpecification)
        {
            RotationDirection rotationDirection = animationSpecification.rotationDirection;
            CubeAxis          cubeAxis          = animationSpecification.cubeAxis;
            CubeSlices        cubeSlices        = animationSpecification.cubeSlices;
            MoveType          moveType          = animationSpecification.moveType;

            string s = "";

            switch (cubeAxis)
            {
            case CubeAxis.x:
                s = "x";
                break;

            case CubeAxis.y:
                s = "y";
                break;

            case CubeAxis.z:
                s = "z";
                break;
            }

            switch (cubeSlices)
            {
            case CubeSlices.s0:
                s += "0";
                break;

            case CubeSlices.s01:
                s += "01";
                break;

            case CubeSlices.s1:
                s += "1";
                break;

            case CubeSlices.s2:
                s += "2";
                break;

            case CubeSlices.s3:
                s += "3";
                break;

            case CubeSlices.s34:
                s += "34";
                break;

            case CubeSlices.s4:
                s += "4";
                break;

            case CubeSlices.s01234:
                s += "01234";
                break;
            }

            if (rotationDirection == RotationDirection.reverse)
            {
                s += "R";
            }
            if (moveType == MoveType.doubleMove)
            {
                s += "D";
            }

            GameObject g1 = Instantiate(prefab);

            g1.gameObject.transform.SetParent(contentRect, false);

            g1.SetActive(true);

            var g1m = g1.GetComponent <MyMove>();

            g1m.text.text = "  " + s;

            Canvas.ForceUpdateCanvases();

            contentObj.GetComponent <VerticalLayoutGroup>().CalculateLayoutInputVertical();
            contentObj.GetComponent <ContentSizeFitter>().SetLayoutVertical();

            sr.content.GetComponent <VerticalLayoutGroup>().CalculateLayoutInputVertical();
            sr.content.GetComponent <ContentSizeFitter>().SetLayoutVertical();

            sr.normalizedPosition = new Vector2(0, 0);

            _numMoves++;
            SetTitle();
        }