Esempio n. 1
0
    private void CreateCubes()
    {
        _size = Vector2Int.zero;
        foreach (var cubeData in _sectionData.CubeDatas)
        {
            PoolObject poolObject = PoolerManager.Instance.GetPoolObject("Cube", transform);
            Cube       cube       = poolObject.GetComponent <Cube>();
            cube.CellPosition = cubeData.CellPosition + _sectionOffset;
            cube.ChangeCubeType(cubeData.CubeType);
            _cubesByCellPos.Add(cubeData.CellPosition + _sectionOffset, cube);

            if (cubeData.CellPosition.x > _size.x)
            {
                _size.x = cubeData.CellPosition.x;
            }

            if (cubeData.CellPosition.z > _size.y)
            {
                _size.y = cubeData.CellPosition.z;
            }
        }

        foreach (var barrierData in _sectionData.BarrierDatas)
        {
            PoolObject  poolObject  = PoolerManager.Instance.GetPoolObject("BarrierCube", transform);
            BarrierCube barrierCube = poolObject.GetComponent <BarrierCube>();
            barrierCube.StartCellPosition = barrierData.StartCellPosition + _sectionOffset;
            barrierCube.EndCellPosition   = barrierData.EndCellPosition + _sectionOffset;
            barrierCube.Init();
            barrierCube.TriggeredFillingCube += BarrierCube_TriggerFillingCube;
            _barrierCubes.Add(barrierCube);
        }

        _size += Vector2Int.one;
    }
Esempio n. 2
0
        public BarrierCube CreateBarrierCube(Vector3Int startCellPosition, Vector3Int endCellPosition, Transform parent = null)
        {
            BarrierCube barrierCube = GameObject.Instantiate(ResourceManager.Instance.GetResource <GameObject>("BarrierCube"), parent).GetComponent <BarrierCube>();

            barrierCube.StartCellPosition = startCellPosition;
            barrierCube.EndCellPosition   = endCellPosition;
            return(barrierCube);
        }
Esempio n. 3
0
 private void CreateBarrierCubes(Vector2Int size)
 {
     for (int i = 0; i < size.x; i++)
     {
         for (int j = 0; j < size.y; j++)
         {
             BarrierCube barrierCube = CubeFactory.Instance.CreateBarrierCube(new Vector3Int(i, 0, j), new Vector3Int(i, 0, j), _grid.transform);
         }
     }
 }
Esempio n. 4
0
        private void LoadSelectedSection()
        {
            ClearBarrierCubes();
            ClearCubes();
            SectionData selectedSectionData = _levels.LevelDatas[_selectedLevel].Sections[_selectedSection];

            foreach (var cubeData in selectedSectionData.CubeDatas)
            {
                Cube cube = CubeFactory.Instance.CreateCube(cubeData.CellPosition, cubeData.CubeType, _grid.transform);
            }
            foreach (var cubeData in selectedSectionData.BarrierDatas)
            {
                BarrierCube barrierCube = CubeFactory.Instance.CreateBarrierCube(cubeData.StartCellPosition, cubeData.EndCellPosition, _grid.transform);
            }
            Debug.Log($"Loaded {selectedSectionData.CubeDatas.Count} cubes and {selectedSectionData.BarrierDatas.Count} barrier cubes from Level {_selectedLevel}, Section {_selectedSection}");
        }