void GenerateStellarDataBlocks() { Vector3 textLocation; Vector3 textLocation2; foreach (GameObject star in galaxyDataRef.GalaxyStarList) { if (star != null) { if (star.GetComponent<Star>().tag != "Companion Star") // if not a companion star { string civNames = ""; string civTolerance = ""; bool civOwnerFound = false; Color civColor = Color.grey; var nameVector = Camera.main.WorldToScreenPoint(star.transform.position); // gets the screen point of the star's transform position textLocation = new Vector3(nameVector.x, nameVector.y, 0); // where the text box is located textLocation2 = new Vector3(nameVector.x, nameVector.y, 0); // where the lower text box is located // create the text objects GameObject starName = Instantiate(starNameObject, textLocation, Quaternion.identity) as GameObject; StellarObjectDataBlock starDataBlock = new StellarObjectDataBlock(); // create a new star data block GameObject provinceName = Instantiate(starNameObject, textLocation2, Quaternion.identity) as GameObject; StellarObjectDataBlock lowerProvinceDataBlock = new StellarObjectDataBlock(); // create the lower data block for province info starName.transform.SetParent(galaxyPlanetInfoCanvas.transform.Find("Galaxy Data Panel"), true); // attach the blocks to the panel provinceName.transform.SetParent(galaxyPlanetInfoCanvas.transform.Find("Galaxy Data Panel"), true); // attach the blocks to the panel // add the owning civs if present foreach (Civilization civ in gameDataRef.CivList) { List<StarData> civSystems = new List<StarData>(); civSystems = HelperFunctions.DataRetrivalFunctions.GetCivSystemList(civ); if (!civOwnerFound) { foreach (StarData sys in civSystems) { if (sys.ID == star.GetComponent<Star>().starData.ID) { bool systemIsCapital = false; foreach (PlanetData pData in sys.PlanetList) { if (pData.ID == civ.CapitalPlanetID) { systemIsCapital = true; break; } } if (systemIsCapital) civNames += " (" + civ.Name.ToUpper() + " HOME SYSTEM," + civ.Size.ToString() + ")"; else civNames += " (" + civ.Name.ToUpper() + "," + civ.Size.ToString() + ")"; civNames += " (" + civ.Type.ToString() + ")"; if (sys.AssignedProvinceID != "") civNames += "(PROV NAME: " + HelperFunctions.DataRetrivalFunctions.GetProvince(sys.AssignedProvinceID).Name.ToUpper() + ")"; civColor = civ.Color; civTolerance = "(TOL: " + civ.PlanetMinTolerance.ToString("N0") + ")"; civOwnerFound = true; break; } } } } if (!gameDataRef.DebugMode) starName.GetComponent<Text>().text = star.GetComponent<Star>().starData.Name.ToUpper() + "[" + star.GetComponent<Star>().starData.IntelValue.ToString("N0") + "]"; //+ civNames; else starName.GetComponent<Text>().text = star.GetComponent<Star>().starData.Name.ToUpper() + civNames; starName.GetComponent<Text>().color = civColor; starName.transform.localPosition = new Vector3(textLocation.x - (Screen.width / 2),textLocation.y - (Screen.height / 2),0); // reset after making a parent to canvas relative coordinates (pivot in center) starName.transform.localScale = new Vector3(1, 1, 1); // do not scale starName.name = star.GetComponent<Star>().starData.ID; provinceName.transform.localPosition = new Vector3(textLocation.x - (Screen.width / 2), textLocation.y - (Screen.height / 2), 0); // reset after making a parent to canvas relative coordinates (pivot in center) provinceName.transform.localScale = new Vector3(1, 1, 1); // do not scale provinceName.name = star.GetComponent<Star>().starData.ID; // assign to the star data block starDataBlock.objectRotation = 0f; starDataBlock.ownerName = civNames; starDataBlock.blockType = StellarObjectDataBlock.eBlockType.Star; starDataBlock.stellarObject = star; starDataBlock.ownerColor = civColor; starDataBlock.ownerTolerance = civTolerance; starDataBlock.textObject = starName; listTextObjectsCreated.Add(starDataBlock); // assign to the secondary data block lowerProvinceDataBlock.objectRotation = 0f; lowerProvinceDataBlock.ownerName = civNames; lowerProvinceDataBlock.blockType = StellarObjectDataBlock.eBlockType.Lower; lowerProvinceDataBlock.stellarObject = star; lowerProvinceDataBlock.ownerColor = civColor; lowerProvinceDataBlock.textObject = provinceName; listTextObjectsCreated.Add(lowerProvinceDataBlock); } } } foreach (GameObject nebula in galaxyDataRef.stellarPhenonomaList) { if (nebula != null) { var nameVector = Camera.main.WorldToScreenPoint(nebula.transform.position); // gets the screen point of the star's transform position Vector2 vectorTwo = GUIUtility.ScreenToGUIPoint(new Vector2(nameVector.x, nameVector.y)); // gets center of star on screen position textLocation = new Vector3(nameVector.x, nameVector.y, 0); // where the text box is located // create the text object GameObject stellarObjectName = Instantiate(starNameObject, textLocation, Quaternion.identity) as GameObject; StellarObjectDataBlock stellarObjectDataBlock = new StellarObjectDataBlock(); // create a new star data block stellarObjectName.transform.SetParent(galaxyPlanetInfoCanvas.transform, true); stellarObjectName.GetComponent<Text>().text = nebula.GetComponent<Nebula>().nebulaData.Name.ToUpper(); stellarObjectName.transform.localPosition = new Vector3(textLocation.x - (Screen.width / 2), textLocation.y - (Screen.height / 2), 1); // reset after making a parent to canvas relative coordinates (pivot in center) stellarObjectName.transform.localScale = new Vector3(1, 1, 1); // do not scale stellarObjectName.GetComponent<LetterSpacing>().spacing = 40; // space out the letters stellarObjectName.GetComponent<Text>().fontSize = 20; // assign to the star data block stellarObjectDataBlock.objectRotation = nebula.GetComponent<Nebula>().nebulaData.TextRotation; stellarObjectDataBlock.blockType = StellarObjectDataBlock.eBlockType.Nebula; stellarObjectDataBlock.stellarObject = nebula; stellarObjectDataBlock.textObject = stellarObjectName; listTextObjectsCreated.Add(stellarObjectDataBlock); stellarObjectName.transform.Rotate(new Vector3(0, 0, stellarObjectDataBlock.objectRotation)); } } systemNameDrawn = true; }
void GenerateProvinceNames() { foreach (Province pData in galaxyDataRef.ProvinceList) { Vector3 textLocation = new Vector3(pData.ProvinceCenter.x, pData.ProvinceCenter.y, 0); // where the text box is located GameObject provinceName = Instantiate(starNameObject, pData.ProvinceCenter, Quaternion.identity) as GameObject; StellarObjectDataBlock starDataBlock = new StellarObjectDataBlock(); // create a new star data block provinceName.transform.SetParent(galaxyPlanetInfoCanvas.transform.Find("Galaxy Data Panel"), true); // attach the blocks to the panel provinceName.transform.localPosition = textLocation; //new Vector3(textLocation.x - (Screen.width / 2), textLocation.y - (Screen.height / 2), 0); // reset after making a parent to canvas relative coordinates (pivot in center) provinceName.transform.localScale = new Vector3(1, 1, 1); // do not scale provinceName.tag = "Province"; // tag for selection provinceName.name = pData.ID; starDataBlock.objectRotation = 0f; starDataBlock.ownerName = pData.Name.ToUpper() + " PROVINCE"; starDataBlock.provinceBounds = pData.ProvinceBounds; // to set the size of the label starDataBlock.provinceObjectLocation = textLocation; // provinceName.transform.localPosition; starDataBlock.ownerColor = HelperFunctions.DataRetrivalFunctions.FindProvinceOwnerColor(pData); starDataBlock.blockType = StellarObjectDataBlock.eBlockType.Province; starDataBlock.textObject = provinceName; listTextObjectsCreated.Add(starDataBlock); } }