Esempio n. 1
0
    public static Vector3 DirectionUnitVector(Directions2D._directions direction, bool positive = false)
    {
        switch (direction)
        {
        case _directions.up:
            return(Vector3.up);

        case _directions.down:
            if (positive)
            {
                return(Vector3.up);
            }
            return(Vector3.down);

        case _directions.right:
            return(Vector3.right);

        case _directions.left:
            if (positive)
            {
                return(Vector3.right);
            }
            return(Vector3.left);
        }
        return(Vector3.zero);
    }
Esempio n. 2
0
    void Awake()
    {
        maxScaling = 3f;

        pinkCollider         = GetComponent <BoxCollider> ();
        transform.localScale = startingScale;
        growDir  = Directions2D._directions.down;
        branches = new GameObject[maxBranches + maxExtraBranches];
        for (int i = 0; i < maxBranches + maxExtraBranches; i++)
        {
            branches [i] = null;
        }

        branchAt += Random.Range(-branchAtVariance, branchAtVariance);

        touchingOtherPinks = new GameObject[stopWhenTouching];
        for (int i = 0; i < stopWhenTouching; i++)
        {
            touchingOtherPinks[i] = null;
        }

        pinkStorage = GameObject.Find("pink storage").transform;
        transform.SetParent(pinkStorage);

        hallwayMode     = _hallwayMode.off;
        hallTriggersHit = new List <Collider> ();

        GameManager.numGrowths++;
    }
Esempio n. 3
0
 //ODOT make private?
 public static void MatchSign(Directions2D._directions direction, ref float input)
 {
     input = Mathf.Abs(input);
     if ((int)direction % 2 == 1)
     {
         input *= -1;
     }
 }
Esempio n. 4
0
    private void BranchBloom(Vector3 startPoint, float overshotBy = 0f, bool extraBranches = false)
    {
        Directions2D._directions newDir = NewBranchDirection(startPoint);
        Branch(startPoint, overshotBy, extraBranches, newDir);
        Branch(startPoint, overshotBy, extraBranches, Directions2D.OppositeDirection(newDir));

        Debug.Log("Bloom called");
    }
Esempio n. 5
0
 public static Directions2D._directions OppositeAxis(Directions2D._directions initialDirection)
 {
     if (initialDirection == Directions2D._directions.numDirections)
     {
         Debug.Log("Warning: Directions2D.OppositeAxis was passed \"numDirections\" as a direction.");
         return(Directions2D._directions.numDirections);
     }
     return((Directions2D._directions)((int)(initialDirection + 2) % (int)Directions2D._directions.numDirections));
 }
Esempio n. 6
0
 /// <summary>
 /// Get value from vector for dimension corresponding to direction.
 /// </summary>
 /// <returns>Component of vector: y if direction up/down, x if right/left, else 0.</returns>
 /// <param name="direction">Direction.</param>
 /// <param name="rawVector">Raw vector.</param>
 public static float FlattenToDirection(Directions2D._directions direction, Vector3 rawVector)
 {
     if (direction == Directions2D._directions.numDirections)
     {
         Debug.Log("Warning: Directions2D.FlattenToDirection was passed \"numDirections\" as reference direction.");
         return(0f);
     }
     if ((int)direction < (int)Directions2D._directions.numDirections / 2)
     {
         return(rawVector.y);
     }
     else
     {
         return(rawVector.x);
     }
 }
Esempio n. 7
0
 public static Directions2D._directions OppositeDirection(Directions2D._directions initialDirection)
 {
     if (initialDirection == Directions2D._directions.up || initialDirection == Directions2D._directions.right)
     {
         return((Directions2D._directions)((int)initialDirection + 1));
     }
     else if (initialDirection == Directions2D._directions.down || initialDirection == Directions2D._directions.left)
     {
         return((Directions2D._directions)((int)initialDirection - 1));
     }
     else
     {
         Debug.Log("Warning: Directions2D.OppositeDirection was passed \"numDirections\" as a direction.");
         return(Directions2D._directions.numDirections);
     }
 }
Esempio n. 8
0
    public static float DistancePara(Vector3 point0, Vector3 point1, Directions2D._directions direction)
    {
        if (direction == Directions2D._directions.numDirections)
        {
            Debug.Log("Warning: Directions2D.DistancePerp was passed \"numDirections\" as reference direction.");
            return(0f);
        }

        Vector3 distance = point0 - point1;

        if ((int)direction < (int)Directions2D._directions.numDirections / 2)
        {
            return(Mathf.Abs(distance.y));
        }
        else
        {
            return(Mathf.Abs(distance.x));
        }
    }
Esempio n. 9
0
    private Pink Branch(Vector3 startPoint, float overshotBy = 0f, bool extraBranch = false, Directions2D._directions direction = Directions2D._directions.numDirections, _hallwayMode hall = _hallwayMode.off)
    {
        if (normalBranches == maxBranches)
        {
            Debug.Log("ERROR: attmepted to branch from pink object (" + this.name + ") when already at max branches");
            return(null);
        }

        branches [branchCount] = Instantiate(pinkTemplate[0], startPoint, Quaternion.identity) as GameObject;


        Pink newBranchPink = branches [branchCount].GetComponentInChildren <Pink> ();

        if (direction == Directions2D._directions.numDirections)
        {
            Directions2D._directions newDir = NewBranchDirection(startPoint);
            newBranchPink.SetDirection(newDir);
        }
        else
        {
            newBranchPink.SetDirection(direction);
        }

        if (overshotBy >= 0.05f)
        {
            newBranchPink.AddGrowthBurst(overshotBy);
        }
        newBranchPink.hallwayMode = hall;

        branchCount++;
        if (!extraBranch)
        {
            normalBranches++;
        }

        newBranchPink.DEBUGHALL = false;

        return(newBranchPink);
    }
Esempio n. 10
0
    public static Vector3 DirectionalVector(Directions2D._directions direction, Vector3 rawVector)
    {
        Vector3 newVector = rawVector;

        if (direction == Directions2D._directions.numDirections)
        {
            Debug.Log("Warning: Directions2D.DirectionalVector was passed \"numDirections\" as reference direction.");
            newVector = Vector3.zero;
        }

        if ((int)direction < (int)Directions2D._directions.numDirections / 2)
        {
            newVector.x = 0f;
            Directions2D.MatchSign(direction, ref newVector.y);
        }
        else
        {
            newVector.y = 0f;
            Directions2D.MatchSign(direction, ref newVector.x);
        }

        return(newVector);
    }
Esempio n. 11
0
 void Awake()
 {
     pairDirection = Directions2D.FindDirection(gameObject.transform, pairedTrigger.transform);
     hallDirection = Directions2D.FindDirection(gameObject.transform, oppositeTrigger.transform);
 }
Esempio n. 12
0
 public void SetDirection(Directions2D._directions newDir)
 {
     growDir = newDir;
 }