public void generateEdgesOfMap(GameObject tempObject, GameChunk tempChunk, SpriteRenderer spriteRender, string filePath, string[] typeOfDungeonTexture, string[] specificTextureType) { //Debug.Log("Dlugość chunkow past: " + producedChunks.Count); int i; for (i = 0; i < 2; i++) { //Generating temporary Object tempObject = Instantiate(factoryObject); tempChunk = new GameChunk(tempObject, -1); tempObject.SetActive(false); producedChunks.Add(tempChunk); spriteRender = producedChunks[(int)(objectsToGenerate + i)].getProducedObject().AddComponent <SpriteRenderer>(); spriteRender.sprite = Resources.Load <Sprite>(filePath + typeOfDungeonTexture[0] + specificTextureType[2]); //Entrance and exit generation if (i == 0) { producedChunks[objectsToGenerate + i].getProducedObject().transform.Translate(Vector2.left * leftBoundPossition); producedChunks[objectsToGenerate + i].getProducedObject().name = "DungeonChunkEntrance"; } else { //Exit texture must be flipped spriteRender.flipX = true; producedChunks[objectsToGenerate + i].getProducedObject().transform.Translate(Vector2.right * rightBoundPossitionForGenerator); producedChunks[objectsToGenerate + i].getProducedObject().name = "DungeonChunkExit"; } //Adjusting their size producedChunks[objectsToGenerate + i].getProducedObject().transform.localScale = new Vector3((float)0.975, (float)1.12, 1); producedChunks[objectsToGenerate + i].getProducedObject().SetActive(true); } }
public void generateMap(int pickedOneInt, int i, bool wasAlreadyGenerated) { GameObject tempObject; GameChunk tempChunk; SpriteRenderer spriteRender; string filePath = "IceTextures/"; string[] typeOfDungeonTexture = { "ice." }; string[] specificTextureType = { "corridor_wall.", "corridor_door.basic", "endhall.01" }; tempObject = Instantiate(factoryObject); tempChunk = new GameChunk(tempObject, pickedOneInt); tempObject.SetActive(false); producedChunks.Add(tempChunk); //Adding SpriteRenderer to component (later we can change it to add it into cloned object) spriteRender = producedChunks[i].getProducedObject().AddComponent <SpriteRenderer>();//jest jeszcze GetComponent //Every first and last chunk will be generated as entrance and exit if (i == 0 || i == objectsToGenerate - 1) { //Generating entrance and exit from the corridor spriteRender.sprite = Resources.Load <Sprite>(filePath + typeOfDungeonTexture[0] + specificTextureType[1]); if (i == objectsToGenerate - 1) { spriteRender.flipX = true; } } else { if (wasAlreadyGenerated == false) { //This checks if it generated 2 identical textures in a row if (producedChunks[i - 1].getRandomizedNumber() == producedChunks[i].getRandomizedNumber()) { //And tries to reroll it until it gets different one while (producedChunks[i - 1].getRandomizedNumber() == producedChunks[i].getRandomizedNumber()) { //Applies new value producedChunks[i].setRandomizedNumber(randomNumber.Next(1, 7)); } } spriteRender.sprite = Resources.Load <Sprite>(filePath + typeOfDungeonTexture[0] + specificTextureType[0] + producedChunks[i].getRandomizedNumber().ToString());//I might need to remove toString } else { spriteRender.sprite = Resources.Load <Sprite>(filePath + typeOfDungeonTexture[0] + specificTextureType[0] + pickedOneInt); } } //Setting possition, naming new object and making it active in inspector producedChunks[i].getProducedObject().transform.Translate(Vector2.right * chunkWidth * i); producedChunks[i].getProducedObject().name = "DungeonChunk_" + i.ToString(); producedChunks[i].getProducedObject().transform.localScale = new Vector3((float)0.975, (float)1.12, 1); producedChunks[i].getProducedObject().SetActive(true); //After generating last chunk we are generating border chunks if (i == objectsToGenerate - 1) { generateEdgesOfMap(tempObject, tempChunk, spriteRender, filePath, typeOfDungeonTexture, specificTextureType); } }