Esempio n. 1
0
    private void RootFormer()
    {
        var root = Instantiate(_cellPrefab, transform);

        root.name = "Cell" + WorldController.GetIndexer();
        WorldController.IncreaseIndexer();
        _treeCells.Add(root);

        var new_coord = transform.position;

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

        var cell_controller = root.GetComponent <CellController>();

        cell_controller.SetSeed();
        cell_controller.SetEnergy(START_SEED_ENERGY);
        cell_controller.SetGen(_treeGenes[0]);
        cell_controller.SetGenes(_treeGenes);
    }
    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;
        }
    }