//spawn houses void spawnHouses() { //spawn houses while (startingNumberOfHouses > 0) { // Makes things more random APPARENTLY Random.InitState((int)System.DateTime.Now.Ticks); //assign x position a random number for spawn xPos = Random.Range(offsetDistance + 2, (int)startingWidth + 1); //assign y position a random number for spawn yPos = Random.Range(offsetDistance + 3, (int)startingHeight - 1); //determine if generated position is empty if (BuildFunctions.IsGridSpaceEmpty(new Vector3(xPos, yPos, 0))) { //determine if position already has an instance next to it if (BuildFunctions.CheckSurroundingGridSpaces(new Vector3(xPos, yPos, 0), house)) { //create instance Instantiate(house, new Vector3(xPos, yPos, 0), transform.rotation); //set space in grid BuildFunctions.SetGridSpace(house, new Vector3(xPos, yPos, 0)); //decrement counter startingNumberOfHouses--; houseAmount++; } } } }
//spawn trees void spawnTrees() { //spawn trees while (startingNumberOfTrees > 0) { //assign x position a random number for spawn xPos = Random.Range(offsetDistance + 2, maxWidth); //assign y position a random number for spawn yPos = Random.Range(offsetDistance + 3, maxHeight); //determine if generated position is empty if (BuildFunctions.IsGridSpaceEmpty(new Vector3(xPos, yPos, 0))) { //determine if position already has an instance next to it if (BuildFunctions.CheckSurroundingGridSpaces(new Vector3(xPos, yPos, 0), tree)) { //create instance Instantiate(tree, new Vector3(xPos, yPos, 0), transform.rotation); //set space in grid BuildFunctions.SetGridSpace(tree, new Vector3(xPos, yPos, 0)); //decrement counter startingNumberOfTrees--; } } } }
// Update is called once per frame void Update() { //check if mouse is on screen if (Helper.IsMouseOnScreen()) { transform.position = new Vector3(Helper.getMousePositionFromWorldRounded().x, Helper.getMousePositionFromWorldRounded().y, 0); if (BuildFunctions.areGridSpacesEmpty(Helper.getMousePositionFromWorldRounded())) { sprRend.color = new Color(1, 1, 1, transLevel); } else { sprRend.color = new Color(1, 0, 0, transLevel); } switch (BuildFunctions.menuSelection) { case (0): sprRend.sprite = electricPole.GetComponent <SpriteRenderer>().sprite; transform.localScale = new Vector3(.1f, .1f, 1); break; case (2): sprRend.sprite = solarPanel.GetComponent <SpriteRenderer>().sprite; transform.localScale = new Vector3(.1f, .1f, .1f); break; case (3): sprRend.sprite = windTurbine.GetComponent <SpriteRenderer>().sprite; transform.localScale = new Vector3(.3f, .3f, .1f); break; case (4): sprRend.sprite = coalPlant.GetComponent <SpriteRenderer>().sprite; transform.localScale = new Vector3(.3f, .3f, .1f); break; case (5): sprRend.sprite = gasPlant.GetComponent <SpriteRenderer>().sprite; transform.localScale = new Vector3(.2f, .2f, .1f); break; default: sprRend.sprite = null; break; } } }
private void Start() { currency = startingCurrency; build = FindObjectOfType <BuildFunctions>(); coal = coalReference.GetComponent <CoalScript>(); turbine = turbineReference.GetComponent <TurbineScript>(); gas = gasReference.GetComponent <NaturalGasScript>(); solar = solarReference.GetComponent <SolarScript>(); TriggerEvent(); if (excessPowerGrowth < 1) { excessPowerGrowth = 1; } }
public void spawnMoreHouses(int housesToBeAdded) { int limiter = 50; while (housesToBeAdded > 0) { //determine the amount of usable gridspaces currentWidth = mainCamera.ScreenToWorldPoint(new Vector3(mainCamera.pixelWidth, mainCamera.pixelHeight, 0)).x - .5f; currentHeight = mainCamera.ScreenToWorldPoint(new Vector3(mainCamera.pixelWidth, mainCamera.pixelHeight, 0)).y - .5f; //assign x position a random number for spawn xPos = Random.Range(offsetDistance + 2, (int)currentWidth + 1); //assign y position a random number for spawn yPos = Random.Range(offsetDistance + 3, (int)currentHeight); //determine if generated position is empty if (BuildFunctions.IsGridSpaceEmpty(new Vector3(xPos, yPos, 0))) { //determine if position already has an instance next to it if (BuildFunctions.CheckSurroundingGridSpaces(new Vector3(xPos, yPos, 0), house)) { //create instance Instantiate(house, new Vector3(xPos, yPos, 0), transform.rotation); //set space in grid BuildFunctions.SetGridSpace(house, new Vector3(xPos, yPos, 0)); houseAmount++; housesToBeAdded--; } } limiter--; if (limiter <= 0) { break; } } }
public void removeHouses(int housesToBeRemoved) { int limiter = 50; while (housesToBeRemoved > 0) { var objects = GameObject.FindGameObjectsWithTag("house"); var objectCount = objects.Length; for (int i = 0; i < objectCount; i++) { if (objects[i].GetComponent <HomeScript>().neededPower != objects[i].GetComponent <HomeScript>().MaxneededPower) { //house BuildFunctions.ClearGridSpace(new Vector3(objects[i].transform.position.x, objects[i].transform.position.y, 0)); BuildFunctions.RemoveLines(new Vector3(objects[i].transform.position.x, objects[i].transform.position.y, 0)); houseAmount--; housesToBeRemoved--; } if (housesToBeRemoved <= 0) { break; } } limiter--; if (limiter <= 0) { break; } } if (housesToBeRemoved > 0) { while (housesToBeRemoved > 0) { var objects = GameObject.FindGameObjectsWithTag("house"); var objectCount = objects.Length; for (int i = 0; i < objectCount; i++) { //house BuildFunctions.ClearGridSpace(new Vector3(objects[i].transform.position.x, objects[i].transform.position.y, 0)); BuildFunctions.RemoveLines(new Vector3(objects[i].transform.position.x, objects[i].transform.position.y, 0)); houseAmount--; housesToBeRemoved--; if (housesToBeRemoved <= 0) { break; } } limiter--; if (limiter <= 0) { break; } } } BuildFunctions.simulationReset = false; }