void InstantiateChunk() { for (var yPos = 0; yPos < h; yPos++) { for (var xPos = 0; xPos < w; xPos++) { if (chunkData.getTileAt(xPos, yPos).getTile() == TileType.TileTypes.ground) { var go = Instantiate(tilePrefabGround, new Vector2(x + xPos, y + yPos), tilePrefabGround.transform.rotation, transform); TileControllerScript tcs = go.GetComponent <TileControllerScript>(); tcs.tile = new TileType(true, yPos, h); tcs.tile._tileHP = 2; tcs.initTile(); } else if (chunkData.getTileAt(xPos, yPos).getTile() == TileType.TileTypes.obstacle) { var go = Instantiate(tilePrefabRock, new Vector2(x + xPos, y + yPos), tilePrefabRock.transform.rotation, transform); TileControllerScript tcs = go.GetComponent <TileControllerScript>(); tcs.tile = new TileType(true, yPos, h); tcs.tile._tileHP = 10000000000; tcs.initTile(); } } } }
// Update is called once per frame void Update() { // Check if mineable if (cms.isMining && colObject != null) { TileControllerScript tcs = colObject.GetComponent <TileControllerScript>(); tcs.TakeDamage(miningPower); } }
// Let's get and instantiate chunks void UnpackAndInstantiateChunks() { // CHUNK for (var i = 0; i < _levelCreator._chunks.Length; i++) { var chunk = _levelCreator._chunks[i]; var cGo = Instantiate(chunkContainerPrefab, new Vector2(chunk._x, chunk._y), Quaternion.identity); // TILE for (var y = 0; y < Constants.Chunk.CHUNK_Y; y++) { for (var x = 0; x < Constants.Chunk.CHUNK_X; x++) { var tile = chunk._tiles[x, y]; // Jos tarkasteltavan tilen on groundDirt tyyppiä if (tile._tileType == Enums.GroundTileType.groundDirt) { var go = Instantiate(groundDirtPrefab, new Vector2(chunk._x + chunk._tiles[x, y]._x, chunk._y + chunk._tiles[x, y]._y), groundDirtPrefab.transform.rotation, cGo.transform); // asetetaan luodulle tilelle hp TileControllerScript tcs = go.GetComponent <TileControllerScript>(); tcs.currentHp = tile._hp; // asetetaan tilelle sprite TileSpriteSwapperScript tsss = go.GetComponent <TileSpriteSwapperScript>(); tsss.SetAtlasToUse(SceneChangeHelper._mapBiodome); // TODO: tänne sitten muutkin tileset määrittelyt tsss.SetSprite(GetRandomTileVariationForGroundDirt()); // Jos päälimmäinen kerros if (y == Constants.Chunk.CHUNK_Y - 1) { var maxChunkY = _levelCreator._chunks.Max(c => c._y); if (chunk._y == maxChunkY) { tsss.SetSprite(Constants.TileConstants.TileDirtAtlas.DIRT_TOP_MOSS_VAR_0); } } } } } } // Instantiate wall chunks for (var i = 0; i < _levelCreator._wallChunks.Length; i++) { var offsetY = -1; if (mapOrientation == Enums.MapOrientation.Horizontal) { // Spawn chunk var chunk = _levelCreator._wallChunks[i]; var wGo = Instantiate(chunkContainerPrefab, new Vector2(chunk._x, chunk._y), Quaternion.identity); if (!chunk._isSideways) { // Spawn every tile of chunk for (var x = 0; x < Constants.Chunk.CHUNK_X; x++) { var tile = chunk._tiles[x, 0]; var go = Instantiate(groundDirtPrefab, new Vector2(chunk._x + chunk._tiles[x, 0]._x, chunk._y + chunk._tiles[x, 0]._y - offsetY), groundDirtPrefab.transform.rotation, wGo.transform); // asetetaan luodulle tilelle hp TileControllerScript tcs = go.GetComponent <TileControllerScript>(); tcs.currentHp = tile._hp; // asetetaan tilelle sprite TileSpriteSwapperScript tsss = go.GetComponent <TileSpriteSwapperScript>(); tsss.SetSpriteToBoundry(); // TODO: tänne sitten muutkin tileset määrittelyt tsss.SetSprite(0); } } else { for (var y = 0; y < Constants.Chunk.CHUNK_Y; y++) { var tile = chunk._tiles[0, y]; var go = Instantiate(groundDirtPrefab, new Vector2(chunk._x + chunk._tiles[0, y]._x, chunk._y + chunk._tiles[0, y]._y - offsetY), groundDirtPrefab.transform.rotation, wGo.transform); // asetetaan luodulle tilelle hp TileControllerScript tcs = go.GetComponent <TileControllerScript>(); tcs.currentHp = tile._hp; // asetetaan tilelle sprite TileSpriteSwapperScript tsss = go.GetComponent <TileSpriteSwapperScript>(); tsss.SetSpriteToBoundry(); // TODO: tänne sitten muutkin tileset määrittelyt tsss.SetSprite(0); } } } if (mapOrientation == Enums.MapOrientation.Vertical) { // Spawn chunk var chunk = _levelCreator._wallChunks[i]; var wGo = Instantiate(chunkContainerPrefab, new Vector2(chunk._x, chunk._y), Quaternion.identity); if (!chunk._isSideways) { // Spawn every tile of chunk for (var x = 0; x < Constants.Chunk.CHUNK_X; x++) { var tile = chunk._tiles[x, 0]; var go = Instantiate(groundDirtPrefab, new Vector2(chunk._x + chunk._tiles[x, 0]._x, chunk._y + chunk._tiles[x, 0]._y - offsetY), groundDirtPrefab.transform.rotation, wGo.transform); // asetetaan luodulle tilelle hp TileControllerScript tcs = go.GetComponent <TileControllerScript>(); tcs.currentHp = tile._hp; // asetetaan tilelle sprite TileSpriteSwapperScript tsss = go.GetComponent <TileSpriteSwapperScript>(); tsss.SetSpriteToBoundry(); // TODO: tänne sitten muutkin tileset määrittelyt tsss.SetSprite(0); } } else { for (var y = 0; y < Constants.Chunk.CHUNK_Y; y++) { var tile = chunk._tiles[0, y]; var go = Instantiate(groundDirtPrefab, new Vector2(chunk._x + chunk._tiles[0, y]._x, chunk._y + chunk._tiles[0, y]._y - offsetY), groundDirtPrefab.transform.rotation, wGo.transform); // asetetaan luodulle tilelle hp TileControllerScript tcs = go.GetComponent <TileControllerScript>(); tcs.currentHp = tile._hp; // asetetaan tilelle sprite TileSpriteSwapperScript tsss = go.GetComponent <TileSpriteSwapperScript>(); tsss.SetSpriteToBoundry(); // TODO: tänne sitten muutkin tileset määrittelyt tsss.SetSprite(0); } } } } }