Пример #1
0
    // Update is called once per frame
    void Update()
    {
        Vector3 alpacaPos = alpaca.GetCurrAlpacaLocation();

        switch (step)
        {
        case 0:         //approach shrub
            if (equals(alpacaPos, alpacaApproachLeft) || equals(alpacaPos, alpacaApproachRight))
            {
                step += 1;
                arrowRight.active = false;
            }
            break;

        case 1:         // hold to pick up
            if (equals(alpacaPos, alpacaApproachLeft) || equals(alpacaPos, alpacaApproachRight))
            {
                approachShrub.active = false;
                arrowRight.active    = false;
                if (equals(alpacaPos, alpacaApproachLeft) && alpaca.dir == FacingDirection.NE)
                {
                    holdLeft.enabled = background.enabled = true;
                }
                else if (equals(alpacaPos, alpacaApproachRight) && alpaca.dir == FacingDirection.NW)
                {
                    holdLeft.enabled = background.enabled = /*quadrant0.enabled =*/ true;
                }
                else
                {
                    holdLeft.enabled = background.enabled = false;
                }
            }
            else if (!alpaca.HasBlock())
            {
                approachShrub.active = true;
                arrowRight.active    = true;
                holdLeft.enabled     = background.enabled = false;
            }
            if (alpaca.HasBlock())
            {
                step            += 1;
                holdLeft.enabled = background.enabled = /*quadrant0.enabled =*/ false;
                // holdRight.enabled = quadrant1.enabled = false;
            }
            break;

        case 2:
            dropLeft.enabled = background.enabled = alpaca.HasBlock() && onEdge(alpacaPos, alpaca.dir);
            break;

        default:
            break;
        }
    }
Пример #2
0
    Block highlighted;     // block highlighted if you're holding a block

    void HandleFrontBlockHighlight()
    {
        if (highlighted != null)
        {
            highlighted.Unhighlight();
        }
        if (!alpaca.HasBlock())
        {
            return;
        }

        Vector3 dest = alpaca.GetCurrAlpacaDest(clickedWhere);

        highlighted = map.GetHighestBlockBelow(dest);
        if (highlighted != null && GetBlockAt(dest) == null)
        {
            highlighted.Highlight();
        }
    }