Exemple #1
0
    IEnumerator DoDragInstruct()
    {
        if (mShapeCategoryWidgetActivePicks.Exists(mDragInstructTarget))
        {
            yield return(new WaitForSeconds(0.1f)); //slight delay to allow UIs to position properly

            if (dragGuide.isActive)
            {
                dragGuide.UpdatePositions(mDragInstructTarget.transform.position, categoryContainer.position);
            }
            else
            {
                dragGuide.Show(false, mDragInstructTarget.transform.position, categoryContainer.position);
            }

            dragInstructGO.SetActive(true);
        }
        else if (mShapeCategoryWidgetActivePlaced.Exists(mDragInstructTarget))
        {
            dragGuide.Hide();

            dragInstructGO.SetActive(false);
        }

        mDragInstructRout = null;
    }
Exemple #2
0
    void Update()
    {
        if (isVisible && mCardWidget)
        {
            var startPos = mCardWidget.transform.position;
            var endPos   = GetDragEndPos();

            if (dragGuideWidget.isActive)
            {
                dragGuideWidget.UpdatePositions(startPos, endPos);
            }
            else
            {
                dragGuideWidget.Show(false, startPos, endPos);
            }
        }
    }
Exemple #3
0
    IEnumerator DoDragIndicator()
    {
        //grab guide
        if (!mDragGuide)
        {
            var go = GameObject.FindGameObjectWithTag(dragIndicatorTag);
            mDragGuide = go.GetComponent <DragToGuideWidget>();
        }

        //grab camera
        var cam = Camera.main;

        //wait for blobs to spawn
        while (blobSpawner.spawnQueueCount > 0 && blobSpawner.CheckAnyBlobActiveState(Blob.State.Spawning))
        {
            yield return(null);
        }

        var blobOp1 = blobSpawner.blobActives[0];
        var blobOp2 = blobSpawner.blobActives[1];
        var blobEq  = blobSpawner.blobActives[2];

        while (!(blobOp1.isConnected && blobOp2.isConnected && blobEq.isConnected))
        {
            if (connectControl.curOp == OperatorType.Divide && blobOp1.isConnected && blobEq.isConnected)
            {
                //special case when dividing
                var blobEqPos  = blobEq.jellySprite.CentralPoint.Body2D.position;
                var blobOp2Pos = blobOp2.jellySprite.CentralPoint.Body2D.position;

                Vector2 blobEqUIPos  = cam.WorldToScreenPoint(blobEqPos);
                Vector2 blobOp2UIPos = cam.WorldToScreenPoint(blobOp2Pos);

                if (mDragGuide.isActive)
                {
                    mDragGuide.UpdatePositions(blobEqUIPos, blobOp2UIPos);
                }
                else
                {
                    mDragGuide.Show(false, blobEqUIPos, blobOp2UIPos);
                }
            }
            else if (!(blobOp1.isConnected && blobOp2.isConnected))
            {
                var blobOp1Pos = blobOp1.jellySprite.CentralPoint.Body2D.position;
                var blobOp2Pos = blobOp2.jellySprite.CentralPoint.Body2D.position;

                Vector2 blobOp1UIPos = cam.WorldToScreenPoint(blobOp1Pos);
                Vector2 blobOp2UIPos = cam.WorldToScreenPoint(blobOp2Pos);

                if (mDragGuide.isActive)
                {
                    mDragGuide.UpdatePositions(blobOp1UIPos, blobOp2UIPos);
                }
                else
                {
                    mDragGuide.Show(false, blobOp1UIPos, blobOp2UIPos);
                }
            }
            //wait for blob 3 to be connected
            else if (!blobEq.isConnected)
            {
                var blobOp2Pos = blobOp2.jellySprite.CentralPoint.Body2D.position;
                var blobEqPos  = blobEq.jellySprite.CentralPoint.Body2D.position;

                Vector2 blobOp2UIPos = cam.WorldToScreenPoint(blobOp2Pos);
                Vector2 blobEqUIPos  = cam.WorldToScreenPoint(blobEqPos);

                if (mDragGuide.isActive)
                {
                    mDragGuide.UpdatePositions(blobOp2UIPos, blobEqUIPos);
                }
                else
                {
                    mDragGuide.Show(false, blobOp2UIPos, blobEqUIPos);
                }
            }

            yield return(null);
        }

        mDragGuide.Hide();

        mDragIndicatorRout = null;
    }
Exemple #4
0
    void Update()
    {
        if (isVisible)
        {
            var gridCtrl  = GridEditController.instance.entityContainer.controller;
            var ghostCtrl = GridEditController.instance.ghostController;

            if (!mCamera)
            {
                mCamera = Camera.main;
            }

            bool    isDragVisible = false;
            Vector3 startPosWorld = Vector3.zero, endPosWorld = Vector3.zero;

            //check if col size is met, show expand from right side
            if (ghostCtrl.cellSize.col < cellSize.col)
            {
                startPosWorld = ghostCtrl.expandCollRight.transform.position;

                GridCell toCell = new GridCell();

                toCell.row = ghostCtrl.cellIndex.row + (ghostCtrl.cellSize.row / 2);
                toCell.col = ghostCtrl.cellIndex.col + cellSize.col - 1;

                var toCellBounds = gridCtrl.GetBoundsFromCell(toCell);
                endPosWorld = gridCtrl.transform.TransformPoint(new Vector3(toCellBounds.center.x, 0f, ghostCtrl.transform.localPosition.z));

                isDragVisible = true;
            }
            //check row, show expand from back side
            else if (ghostCtrl.cellSize.row < cellSize.row)
            {
                startPosWorld = ghostCtrl.expandCollBack.transform.position;

                GridCell toCell = new GridCell();

                toCell.row = ghostCtrl.cellIndex.row - (cellSize.row - ghostCtrl.cellSize.row);
                toCell.col = ghostCtrl.cellIndex.col + (ghostCtrl.cellSize.col / 2);

                var toCellBounds = gridCtrl.GetBoundsFromCell(toCell);
                endPosWorld = gridCtrl.transform.TransformPoint(new Vector3(ghostCtrl.transform.localPosition.x, 0f, toCellBounds.center.z));

                isDragVisible = true;
            }

            if (isDragVisible)
            {
                endPosWorld.y = startPosWorld.y;

                Vector2 dragStart = mCamera.WorldToScreenPoint(startPosWorld);
                Vector2 dragEnd   = mCamera.WorldToScreenPoint(endPosWorld);

                if (!dragGuideWidget.isActive)
                {
                    dragGuideWidget.Show(false, dragStart, dragEnd);
                }
                else
                {
                    dragGuideWidget.UpdatePositions(dragStart, dragEnd);
                }

                confirmExpandGO.SetActive(false);
            }
            else
            {
                dragGuideWidget.Hide();

                confirmExpandGO.SetActive(true);
            }
        }
    }