public void buildClicked(BuildingManager.structureData data) { if (!buildingMode) { startbuildingMode(); } GameObject.Destroy(holoPlacement); holoPlacement = null; RaycastHit raycastHit; int layerMask = LayerMask.GetMask("PlacementMask"); Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out raycastHit, 200.0f, layerMask); Vector3 startPos = raycastHit.point; startPos.y -= 1.0f; holoPlacement = GameObject.Instantiate(data.placement, startPos, data.placement.transform.rotation); currentlyBuilding = data.prefab; currentData = data; initialRotation = holoPlacement.transform.rotation; Debug.Log("placing holo for " + name + " at" + startPos + " hitinfo: " + raycastHit); }
public void handleOption(string option) { Debug.Log("handling option: " + option); BuildingManager.structureData data; switch (option) { case "Info": displayInfo(); break; case "BuildReactor": data = new BuildingManager.structureData(corePrefab, corePlacement, null, "reactorcore", "reactorcore", new List <ressourceStack> { new ressourceStack(250, ressources.Stone), new ressourceStack(50, ressources.Wood), new ressourceStack(20, ressources.Gold), new ressourceStack(200, ressources.Iron) }, isNearReactor); GameObject.Find("Terrain").GetComponent <Building>().buildClicked(data); GameObject.Find("Terrain").GetComponent <Building>().setOverrideCost(data.cost.ToArray()); break; case "BuildBoiler": data = new BuildingManager.structureData(boilerPrefab, boilerPlacement, null, "reactorboiler", "reactorboiler", new List <ressourceStack> { new ressourceStack(200, ressources.Stone), new ressourceStack(200, ressources.Wood), new ressourceStack(500, ressources.Iron) }, isNearReactor); GameObject.Find("Terrain").GetComponent <Building>().buildClicked(data); GameObject.Find("Terrain").GetComponent <Building>().setOverrideCost(data.cost.ToArray()); break; case "BuildWall": data = new BuildingManager.structureData(wallPrefab, wallPlacement, null, "reactorwall", "reactorwall", new List <ressourceStack> { new ressourceStack(100, ressources.Stone), new ressourceStack(50, ressources.Iron) }, isNearReactor); GameObject.Find("Terrain").GetComponent <Building>().buildClicked(data); GameObject.Find("Terrain").GetComponent <Building>().setOverrideCost(data.cost.ToArray()); break; case "activate": this.gameObject.GetComponent <ReactorLogic>().activate(); break; case "deactivate": this.gameObject.GetComponent <ReactorLogic>().deactivate(); break; default: break; } }
private void buildingClicked(BuildingManager.structureData data) { clickDetector.overlayClicked = true; print("clicked building icon ! " + data.name); InfoClicked preview = Scene_Controller.getInstance().buildPreview.GetComponent <InfoClicked>(); preview.show(); preview.setTitle(data.name); preview.setDesc(data.description); preview.setPrice(data.cost); preview.setData(data); }
public override void handleOption(string option) { Debug.Log("handling option: " + option); BuildingManager.structureData data; switch (option) { case "Info": displayInfo(); break; case "BuildHeatReflector": data = new BuildingManager.structureData(heatPrefab, heatPlacement, null, "reactorHeat", "reactorHeat", new List <ressourceStack> { new ressourceStack(250, ressources.Stone), new ressourceStack(15, ressources.Gold), }, isNearReactor); GameObject.Find("Terrain").GetComponent <Building>().buildClicked(data); GameObject.Find("Terrain").GetComponent <Building>().setOverrideCost(data.cost.ToArray()); break; case "BuildCoolingGrid": data = new BuildingManager.structureData(coolPrefab, coolPlacement, null, "reactorCool", "reactorCool", new List <ressourceStack> { new ressourceStack(250, ressources.Stone), new ressourceStack(300, ressources.Iron) }, isNearReactor); GameObject.Find("Terrain").GetComponent <Building>().buildClicked(data); GameObject.Find("Terrain").GetComponent <Building>().setOverrideCost(data.cost.ToArray()); break; default: break; } }
public void setData(BuildingManager.structureData data) { currentData = data; }