Beispiel #1
0
    private void DeleteSite(GameObject gameObjectSite)
    {
        SiteMarker siteMarker = gameObjectSite.GetComponent <SiteMarker>();
        Destroyer  destroyer  = destroyerObject.GetComponent <Destroyer>();

        siteMarker.DeleteSite(destroyer);
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    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;
    }
Beispiel #4
0
    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);
    }
Beispiel #5
0
    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);
    }
Beispiel #6
0
    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);
    }
Beispiel #7
0
    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();
    }
Beispiel #8
0
    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);
    }