コード例 #1
0
        public void Execute(int index, TransformAccess transform)
        {
            var pos   = transform.position;
            var lvl   = 0;
            var above = 0;

            for (var i = 0; i < 10; i++)
            {
                pos += Vector3.up;
                if (!WorldController.CheckCoords(pos))
                {
                    ++lvl;
                }
                else
                {
                    ++above;
                }
            }

            if (above >= 3)
            {
                lvl = 0;
            }

            if (lvl > 3)
            {
                lvl = 3;
            }

            if (lvl == 0)
            {
                have_sun[0] = 0;
            }
            else
            {
                have_sun[0] = 1;
            }

            cell_lvl[0] = lvl;
        }
コード例 #2
0
    private void GrowOneCell(Vector3 grow_direction, int one_gene)
    {
        var obj_transform = transform;
        var new_coord     = obj_transform.position + grow_direction;

        if (!WorldController.CheckCoords(new_coord) && Math.Abs(new_coord.x) <= MAX_X && Math.Abs(new_coord.z) <= MAX_Z && new_coord.y >= 0)
        {
            var new_seed = Instantiate(_cellPrefab, obj_transform.parent);
            new_seed.name = "Cell" + WorldController.GetIndexer();
            WorldController.IncreaseIndexer();
            _treeController.AddNewCell(new_seed);

            WorldController.AddCoords(new_coord);
            new_seed.transform.position = new_coord;

            var cellController = new_seed.GetComponent <CellController>();
            cellController.SetSeed();
            cellController.SetGen(_treeController.GetGenes()[one_gene]);
            cellController.SetGenes(_treeController.GetGenes());

            _isSeed = false;
            gameObject.GetComponent <Renderer>().material = _woodMaterial;
        }
    }