Example #1
0
    void Update()
    {
        if (grabbed)
        {
            shadow.transform.SetPositionAndRotation(transform.position, transform.rotation);
            Snap(shadow.transform);
        }
        else if (!planting)
        {
            transform.position += BlockManager.BlockFallingSpeed(transform.position.y) * Time.deltaTime * Vector3.down;

            //if (BlockArea.IsOccupied (BlockArea.WorldSpaceToIndex (transform.position), cubePositions, transform.rotation)) {
            //	Snap (transform);
            //	Lay ();
            //}
            if (Snap(transform))
            {
                Lay();
            }
        }
        if (planting)
        {
            IntegerVector3 underIndex = BlockArea.WorldSpaceToIndex(transform.position) + new IntegerVector3(0, -1, 0);

            if (!BlockArea.IsOccupied(underIndex, cubePositions, transform.rotation, id))
            {
                Unlay();
            }
        }

        // Debug

        /*cubeVFX.ApplyColor(Color.blue);
         * if (delayedUngrabbed) {
         *      cubeVFX.ApplyColor(Color.yellow);
         * }
         * if (grabbed) {
         *      cubeVFX.ApplyColor(Color.red);
         * }
         * if (planting) {
         *      cubeVFX.ApplyColor(Color.green);
         * }*/
    }