Пример #1
0
    public void Set(Vector3 position, TreeNode2 origine, byte rank)
    {
        transform.position = position;
        _state             = State.PREWARMING;
        _stateProgres      = 0f;
        _origine           = origine;
        _rank        = rank;
        _size        = 0;
        _direction   = position - origine.transform.position;
        _direction.z = 0;
        _direction.Normalize();

        // Calculate prewarm duration
        _prewarmDuration = Vector3.Distance(position, origine.transform.position) / _prewarmSpeed;

        // Spawn node on banch
        _node = Instantiate(TreeSystem2._debug_staticNodePrefab).GetComponent <Node>();
        _node.transform.parent   = TreeSystem2._debug_staticNodeContainer;
        _node.transform.position = new Vector3(position.x, position.y, 0);
        _node._treeNode          = this;

        // Set feedback
        SetRank();
        SetBranch();
    }
Пример #2
0
    public void AddBranch(Vector3 position, int rank)
    {
        GameObject newBranch = Instantiate(TreeSystem2._debug_staticTreeNodePrefab);

        newBranch.transform.position = position;
        TreeNode2 newBranchNode = newBranch.GetComponent <TreeNode2>();

        newBranchNode.Set(position, this, (byte)rank);
        _branchingNodes.Add(newBranchNode);
    }
Пример #3
0
 void SpawnFirstNode()
 {
     GameObject startNode = Instantiate(_debug_treeNodePrefab);
     startNode.transform.position = transform.position;
     startNode.transform.localScale = Vector3.one * 1;
     _startNode = startNode.GetComponent<TreeNode2>();
     _startNode._state = TreeNode2.State.GROWING;
     _startNode._askGrow = true;
     _startNode._rank = 8;
     _startNode._size = 2;
     _startNode._direction = Vector3.up;
 }
Пример #4
0
    void SpawnFirstNode()
    {
        GameObject startNode = Instantiate(_debug_treeNodePrefab);

        startNode.transform.position   = transform.position;
        startNode.transform.localScale = Vector3.one * 1;
        _startNode            = startNode.GetComponent <TreeNode2>();
        _startNode._state     = TreeNode2.State.GROWING;
        _startNode._askGrow   = true;
        _startNode._rank      = 8;
        _startNode._size      = 2;
        _startNode._direction = Vector3.up;
    }
Пример #5
0
 IEnumerator Grow(TreeNode2 node)
 {
     float delay = 5f;
     float time = delay;
     for (;;) {
         time = Mathf.MoveTowards(time, 0, Time.fixedDeltaTime);
         if (time <= 0) {
             time = delay;
             if (!TreeNode2._stopGrowing) {
                 node._askGrow = true;
             }
         }
         yield return null;
     }
 }
Пример #6
0
    public TreeNode2(Vector3 position, TreeNode2 origine, byte rank)
    {
        transform.position = position;
        _state             = State.PREWARMING;
        _stateProgres      = 0f;
        _origine           = origine;
        _rank = rank;
        _size = 0;

        // Calculate prewarm duration
        _prewarmDuration = Vector3.Distance(position, origine.transform.position) / _prewarmSpeed;

        // Set feedback
        SetRank();
        SetBranch();
    }
Пример #7
0
    IEnumerator Grow(TreeNode2 node)
    {
        float delay = 5f;
        float time  = delay;

        for (;;)
        {
            time = Mathf.MoveTowards(time, 0, Time.fixedDeltaTime);
            if (time <= 0)
            {
                time = delay;
                if (!TreeNode2._stopGrowing)
                {
                    node._askGrow = true;
                }
            }
            yield return(null);
        }
    }