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(); } } } } }
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); }
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); } } }
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"); }