private void DeleteSite(GameObject gameObjectSite) { SiteMarker siteMarker = gameObjectSite.GetComponent <SiteMarker>(); Destroyer destroyer = destroyerObject.GetComponent <Destroyer>(); siteMarker.DeleteSite(destroyer); }
public SitelinkMarker placeSitelinkMarker(SitelinkPair sitelinkPair, Dictionary <SiteId, SiteMarker> siteMarkers) { SitelinkReporting sitelink0 = sitelinkPair.pair[0]; SiteMarker fromSite = siteMarkers[sitelink0.local_site]; SiteMarker toSite = siteMarkers[sitelink0.remote_site]; Debug.Log($"Drawing sitelink from {fromSite.site.name} to {toSite.site.name}"); GameObject sitelinkMarkerObject = Instantiate(sitelinkMarkerPrefab, Vector3.zero, Quaternion.identity, transform); SitelinkMarker sitelinkMarker = sitelinkMarkerObject.GetComponent <SitelinkMarker>(); sitelinkMarker.Set(fromSite, toSite, sitelinkPair, transform.position, globeRadius * 1.03f); return(sitelinkMarker); }
void Start() { _siteObject = transform.parent.gameObject; SiteMarker siteMarker = _siteObject.GetComponent <SiteMarker>(); Site site = siteMarker.site; string text = $"Id: {site.id}\n" + $"Name: {site.name}\n" + $"Longname: {site.longname}\n" + $"Org: {site.org}\n" + $"Country: {site.country}\n" + $"City: {site.city}\n" + $"Street Address: {site.street_address}"; TextMesh textMesh = GetComponent <TextMesh>(); textMesh.text = text; _camera = Camera.main; }
public SiteMarker placeSiteMarker(Site site, LatLong latLong) { Vector3 sitePosition = LatLongUtility.LatLongToCartesian(latLong, globeRadius); // We want the site marker's up to face outwards. If we just use Quaternion.LookRotation // directly and just specify the forward vector, the marker's forward will face outwards. // So we need to rotate it so its up faces forward first. Quaternion upToForward = Quaternion.Euler(90.0f, 0.0f, 0.0f); Quaternion siteOrientation = Quaternion.LookRotation(sitePosition.normalized) * upToForward; Debug.Log($"GLOBE: Site {site.id} is at world position {sitePosition}"); GameObject newSiteMarkerObject = Instantiate(siteMarkerPrefab, sitePosition, siteOrientation, this.transform); SiteMarker newSiteMarker = newSiteMarkerObject.GetComponent <SiteMarker>(); newSiteMarker.site = site; return(newSiteMarker); }
IEnumerator LaserMovement(GameObject target) { while (Vector3.Distance(laser.transform.position, target.transform.position) > 0.05f) { laser.transform.position = Vector3.Lerp(laser.transform.position, target.transform.position, laserSmoothing * Time.deltaTime); yield return(null); } laser.SetActive(false); SiteMarker siteMarker = shootTarget.GetComponent <SiteMarker>(); siteMarker.SiteDestruction(); shootTarget = null; // Move back to original position StopCoroutine("Movement"); StartCoroutine(Movement(originalPosition.transform, false)); yield return(null); }
public SiteMarker placeSiteMarker(Site site, LatLong latLong) { Debug.Log($"FLAT MAP: Site {site.name} is at {latLong}"); Vector3 sitePosition = map.GeoToWorldPosition(new Vector2d(latLong.latitude, latLong.longitude), false); //Vector3 sitePosition = new Vector3((float)sPosition.x, (float)sPosition.y, 0); Quaternion siteOrientation = Quaternion.Euler(0.0f, 0.0f, 0.0f); Debug.Log($"FLAT MAP: Site {site.id} is at world position {sitePosition}"); GameObject newSiteMarkerObject = Instantiate(siteMarkerPrefab, sitePosition, siteOrientation, this.transform); SiteMarker newSiteMarker = newSiteMarkerObject.GetComponent <SiteMarker>(); Vector3 translate = new Vector3(0.0f, this.transform.position.y); //newSiteMarker.transform.Translate(translate); newSiteMarker.transform.Rotate(this.transform.eulerAngles); newSiteMarker.site = site; return(newSiteMarker); }
public void Set(SiteMarker fromSiteMarker, SiteMarker toSiteMarker, SitelinkPair sitelinkPair, Vector3 globePosition, float globeRadius = 0.0f) { this.fromSiteMarker = fromSiteMarker; this.toSiteMarker = toSiteMarker; this.sitelinkPair = sitelinkPair; _stateManager = GameObject.Find("State Manager").GetComponent <StateManager>(); _lineRenderer = GetComponent <LineRenderer>(); // TODO: Get these values in a better way, eg. link the globe object here with a public member variable. this._globePosition = globePosition; this._globeRadius = globeRadius; // --- SitelinkReporting sitelink0 = sitelinkPair.pair[0]; _lineColor = Color.green; _lineWidth = 0.1f; _blinkPeriodSeconds = 0.0f; if (sitelink0.state == "up") { _lineColor = Color.green; _lineWidth = 0.05f + sitelink0.throughput_out * 0.01f; } else { _lineColor = Color.red; _blinkPeriodSeconds = 2.0f; } // --- Draw(); UpdateCollider(); UpdateInformation(); }
private void SetLine() { Vector3 heading = site.transform.position - wan.transform.position; float distance = heading.magnitude; Vector3 direction = heading / distance; Vector3 midPoint = (wan.transform.position + site.transform.position) / 2; // Linecast and see if Earth is in between WAN and site. If so, don't enable RaycastHit hit; if (Physics.Linecast(wan.transform.position, site.transform.position, out hit, _lineLayerMask)) { if (hit.collider != null) { if (hit.collider.tag == _siteLayer) { SiteMarker siteMarker = site.GetComponent <SiteMarker>(); SiteMarker hitSiteMarker = hit.transform.parent.parent.GetComponent <SiteMarker>(); if (hitSiteMarker.site.id == siteMarker.site.id) { if (hitSiteMarker.gameObject.layer != _hideSitesLayer && siteMarker.gameObject.layer != _hideSitesLayer) { line.SetActive(true); line.transform.parent = transform; line.transform.position = midPoint; Utilities.SetGlobalScale(line.transform, new Vector3(1, 1, distance)); // Any value for x and y. Will change soon // Set X and Y localscale so cube appears to be a line line.transform.localScale = new Vector3(uplinkLineThickness, uplinkLineThickness, line.transform.localScale.z); line.transform.rotation = Quaternion.LookRotation(direction); return; } } } } } line.SetActive(false); }