Exemplo n.º 1
0
        private void AddWayPoint(WaypointData wpData)
        {
            if (wpData.isAdded)
            {
                return;
            }

            Waypoint waypoint = wpData.waypoint;

            // No contract, no waypoint
            if (waypoint.contractReference == null)
            {
                return;
            }

            // Always surface and navigatable
            waypoint.isOnSurface   = true;
            waypoint.isNavigatable = true;

            // Show only active waypoints in flight, but show offered as well in the tracking station
            if (HighLogic.LoadedScene == GameScenes.TRACKSTATION || HighLogic.LoadedScene == GameScenes.FLIGHT)
            {
                ContractConfiguratorParameters parms = HighLogic.CurrentGame.Parameters.CustomParams <ContractConfiguratorParameters>();

                if (contract.ContractState == Contract.State.Active && (parms.DisplayActiveWaypoints || HighLogic.LoadedScene != GameScenes.TRACKSTATION) ||
                    contract.ContractState == Contract.State.Offered && parms.DisplayOfferedWaypoints && HighLogic.LoadedScene == GameScenes.TRACKSTATION)
                {
                    WaypointManager.AddWaypoint(waypoint);
                    wpData.isAdded = true;
                }
            }
        }
        protected void OnMapViewFiltersModified(MapViewFiltering.VesselTypeFilter filter)
        {
            if (filter == MapViewFiltering.VesselTypeFilter.None)
            {
                if (contract == null)
                {
                    return;
                }

                // Reset state of renderers
                foreach (OrbitData obData in orbits)
                {
                    ContractConfiguratorParameters parms = HighLogic.CurrentGame.Parameters.CustomParams <ContractConfiguratorParameters>();

                    if (parms != null && obData != null)
                    {
                        if (contract.ContractState == Contract.State.Active && parms.DisplayActiveOrbits ||
                            contract.ContractState == Contract.State.Offered && parms.DisplayOfferedOrbits)
                        {
                            obData.SetupRenderer();
                        }
                        else
                        {
                            obData.CleanupRenderer();
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        protected void OfferedOrbitButtonClick()
        {
            LoggingUtil.LogVerbose(this, "OfferedOrbitButtonClick");

            // Flip the toggle
            ContractConfiguratorParameters parms = HighLogic.CurrentGame.Parameters.CustomParams <ContractConfiguratorParameters>();

            parms.DisplayOfferedOrbits = !parms.DisplayOfferedOrbits;

            // Fire the filter modified event
            GameEvents.OnMapViewFiltersModified.Fire(MapViewFiltering.VesselTypeFilter.None);
        }
Exemplo n.º 4
0
            public void SetupRenderer()
            {
                if (orbitRenderer != null)
                {
                    return;
                }

                if (HighLogic.LoadedScene == GameScenes.TRACKSTATION || HighLogic.LoadedScene == GameScenes.FLIGHT)
                {
                    ContractConfiguratorParameters parms = HighLogic.CurrentGame.Parameters.CustomParams <ContractConfiguratorParameters>();

                    if (contract.ContractState == Contract.State.Active && (parms.DisplayActiveOrbits || HighLogic.LoadedScene != GameScenes.TRACKSTATION) ||
                        contract.ContractState == Contract.State.Offered && parms.DisplayOfferedOrbits && HighLogic.LoadedScene == GameScenes.TRACKSTATION)
                    {
                        orbitRenderer = ContractOrbitRenderer.Setup(contract, orbit);
                    }
                }
            }
Exemplo n.º 5
0
        public void Start()
        {
            LoggingUtil.LogVerbose(this, "Start");

            // Don't run if not in career
            if (HighLogic.CurrentGame.Mode != Game.Modes.CAREER)
            {
                LoggingUtil.LogDebug(this, "Destroying TrackingStationUI - not in career mode.");
                Destroy(this);
                return;
            }

            // Get the last button in the list to use as a copy
            MapViewFiltering.FilterButton lastButton = MapViewFiltering.Instance.FilterButtons.Last();

            // Create our copies
            activeWaypointButton       = UnityEngine.Object.Instantiate(lastButton.button.gameObject);
            activeWaypointButton.name  = "Button Active Waypoints";
            offeredWaypointButton      = UnityEngine.Object.Instantiate(lastButton.button.gameObject);
            offeredWaypointButton.name = "Button Offered Waypoints";
            activeOrbitButton          = UnityEngine.Object.Instantiate(lastButton.button.gameObject);
            activeOrbitButton.name     = "Button Active Orbits";
            offeredOrbitButton         = UnityEngine.Object.Instantiate(lastButton.button.gameObject);
            offeredOrbitButton.name    = "Button Offered Orbits";

            // Fix z coordinates
            activeWaypointButton.GetComponent <RectTransform>().SetLocalPositionZ(750);
            offeredWaypointButton.GetComponent <RectTransform>().SetLocalPositionZ(750);
            activeOrbitButton.GetComponent <RectTransform>().SetLocalPositionZ(750);
            offeredOrbitButton.GetComponent <RectTransform>().SetLocalPositionZ(750);

            // Set up the tool-tips
            activeWaypointButton.GetComponent <TooltipController_Text>().textString  = "Toggle Active Waypoints";
            offeredWaypointButton.GetComponent <TooltipController_Text>().textString = "Toggle Offered Waypoints";
            activeOrbitButton.GetComponent <TooltipController_Text>().textString     = "Toggle Active Orbits";
            offeredOrbitButton.GetComponent <TooltipController_Text>().textString    = "Toggle Offered Orbits";

            // Setup the button
            TrackingStationObjectButton activeWaypointTSButton  = activeWaypointButton.GetComponent <TrackingStationObjectButton>();
            TrackingStationObjectButton offeredWaypointTSButton = offeredWaypointButton.GetComponent <TrackingStationObjectButton>();
            TrackingStationObjectButton activeOrbitTSButton     = activeOrbitButton.GetComponent <TrackingStationObjectButton>();
            TrackingStationObjectButton offeredOrbitTSButton    = offeredOrbitButton.GetComponent <TrackingStationObjectButton>();

            // Setup handlers
            activeWaypointTSButton.OnClickLeft.AddListener(new UnityAction(ActiveWaypointButtonClick));
            activeWaypointTSButton.OnClickRight.AddListener(new UnityAction(ActiveWaypointButtonClick));
            offeredWaypointTSButton.OnClickLeft.AddListener(new UnityAction(OfferedWaypointButtonClick));
            offeredWaypointTSButton.OnClickRight.AddListener(new UnityAction(OfferedWaypointButtonClick));
            activeOrbitTSButton.OnClickLeft.AddListener(new UnityAction(ActiveOrbitButtonClick));
            activeOrbitTSButton.OnClickRight.AddListener(new UnityAction(ActiveOrbitButtonClick));
            offeredOrbitTSButton.OnClickLeft.AddListener(new UnityAction(OfferedOrbitButtonClick));
            offeredOrbitTSButton.OnClickRight.AddListener(new UnityAction(OfferedOrbitButtonClick));

            // Setup sprites
            activeWaypointTSButton.spriteTrue   = activeWaypointEnabledSprite;
            activeWaypointTSButton.spriteFalse  = activeWaypointDisabledSprite;
            offeredWaypointTSButton.spriteTrue  = offeredWaypointEnabledSprite;
            offeredWaypointTSButton.spriteFalse = offeredWaypointDisabledSprite;
            activeOrbitTSButton.spriteTrue      = activeOrbitEnabledSprite;
            activeOrbitTSButton.spriteFalse     = activeOrbitDisabledSprite;
            offeredOrbitTSButton.spriteTrue     = offeredOrbitEnabledSprite;
            offeredOrbitTSButton.spriteFalse    = offeredOrbitDisabledSprite;

            // Set defaults
            ContractConfiguratorParameters parms = HighLogic.CurrentGame.Parameters.CustomParams <ContractConfiguratorParameters>();

            activeWaypointButton.GetComponent <TrackingStationObjectButton>().SetState(parms.DisplayActiveWaypoints);
            offeredWaypointButton.GetComponent <TrackingStationObjectButton>().SetState(parms.DisplayOfferedWaypoints);
            activeOrbitButton.GetComponent <TrackingStationObjectButton>().SetState(parms.DisplayActiveOrbits);
            offeredOrbitButton.GetComponent <TrackingStationObjectButton>().SetState(parms.DisplayOfferedOrbits);

            // Disable counts
            activeWaypointButton.GetChild("Count").SetActive(false);
            offeredWaypointButton.GetChild("Count").SetActive(false);
            activeOrbitButton.GetChild("Count").SetActive(false);
            offeredOrbitButton.GetChild("Count").SetActive(false);

            // Re-parent
            GameObject    trackingFilters     = lastButton.button.transform.parent.gameObject;
            RectTransform trackingFiltersRect = trackingFilters.GetComponent <RectTransform>();

            trackingFiltersRect.sizeDelta = new Vector2(trackingFiltersRect.sizeDelta.x + 44 * 2, trackingFiltersRect.sizeDelta.y);
            activeWaypointButton.transform.SetParent(trackingFilters.transform);
            offeredWaypointButton.transform.SetParent(trackingFilters.transform);
            activeOrbitButton.transform.SetParent(trackingFilters.transform);
            offeredOrbitButton.transform.SetParent(trackingFilters.transform);
            activeWaypointButton.SetActive(true);
            offeredWaypointButton.SetActive(true);
            activeOrbitButton.SetActive(true);
            offeredOrbitButton.SetActive(true);

            // Move the commNet button
            GameObject commNet = trackingFilters.transform.parent.gameObject.GetChild("CommNetVisualisation");

            if (commNet != null)
            {
                RectTransform r = commNet.GetComponent <RectTransform>();
                r.localPosition = new Vector3(r.localPosition.x + 132, r.localPosition.y);
            }

            LoggingUtil.LogVerbose(this, "Finished setup");
        }