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(); } } } } }
public static bool IsFilterEnabled(Vessel vessel) { //For non-tracking station scenes we only allow a fixed set of vessels. if (HighLogic.LoadedScene != GameScenes.TRACKSTATION) { switch (vessel.vesselType) { case VesselType.Base: case VesselType.Lander: case VesselType.Plane: case VesselType.Probe: case VesselType.Relay: case VesselType.Rover: case VesselType.Ship: return(true); default: return(false); } } //For the tracking station, we rely upon the filter buttons. MapViewFiltering.VesselTypeFilter vesselTypeFilter = MapViewFiltering.vesselTypeFilter; if (vesselTypeFilter == MapViewFiltering.VesselTypeFilter.All) { return(true); } if (vesselTypeFilter == MapViewFiltering.VesselTypeFilter.None) { return(false); } switch (vessel.vesselType) { case VesselType.Base: return((vesselTypeFilter & MapViewFiltering.VesselTypeFilter.Bases) > 0 ? true : false); case VesselType.Lander: return((vesselTypeFilter & MapViewFiltering.VesselTypeFilter.Landers) > 0 ? true : false); case VesselType.Plane: return((vesselTypeFilter & MapViewFiltering.VesselTypeFilter.Plane) > 0 ? true : false); case VesselType.Probe: return((vesselTypeFilter & MapViewFiltering.VesselTypeFilter.Probes) > 0 ? true : false); case VesselType.Relay: return((vesselTypeFilter & MapViewFiltering.VesselTypeFilter.Relay) > 0 ? true : false); case VesselType.Rover: return((vesselTypeFilter & MapViewFiltering.VesselTypeFilter.Rovers) > 0 ? true : false); case VesselType.Ship: return((vesselTypeFilter & MapViewFiltering.VesselTypeFilter.Ships) > 0 ? true : false); default: return(false); } }
private void OnMapViewFiltersModified(MapViewFiltering.VesselTypeFilter filterType) { _instantStart = true; //if (_TrackedVesselWidgets == null || _TrackedVesselWidgets.Count <= 1) StartCoroutine(WaitForUpdate(3)); }
protected void OnMapViewFiltersModified(MapViewFiltering.VesselTypeFilter filter) { if (filter == MapViewFiltering.VesselTypeFilter.None) { // Reset state of renderers foreach (WaypointData wpData in waypoints) { WaypointManager.RemoveWaypoint(wpData.waypoint); wpData.isAdded = false; AddWayPoint(wpData); } } }
private void onMapEntered() { this.pluginConfiguration.load(); MapViewFiltering.VesselTypeFilter stateToRestore = (MapViewFiltering.VesselTypeFilter) this.pluginConfiguration.GetValue(ManeuverQueue.configurationFiltersKey, (int)MapViewFiltering.VesselTypeFilter.All); if (stateToRestore != MapViewFiltering.VesselTypeFilter.All) { MapViewFiltering.SetFilter(stateToRestore); this.pluginConfiguration.SetValue(ManeuverQueue.configurationFiltersKey, ManeuverQueue.savedFilterState); this.pluginConfiguration.save(); } GameEvents.OnMapEntered.Remove(this.onMapEntered); }
protected void Start() { const float WINDOW_VERTICAL_POSITION = 36; this.pluginConfiguration.load(); if (MapViewFiltering.vesselTypeFilter != MapViewFiltering.VesselTypeFilter.All) { ManeuverQueue.savedFilterState = MapViewFiltering.vesselTypeFilter; } else { ManeuverQueue.savedFilterState = (MapViewFiltering.VesselTypeFilter) this.pluginConfiguration.GetValue(ManeuverQueue.configurationFiltersKey, (int)MapViewFiltering.VesselTypeFilter.All); } this.pluginConfiguration.SetValue(ManeuverQueue.configurationFiltersKey, (int)MapViewFiltering.VesselTypeFilter.All); this.pluginConfiguration.save(); this.spaceTrackingScene = (SpaceTracking)UnityEngine.Object.FindObjectOfType(typeof(SpaceTracking)); this.sideBarRect = GetSideBarRect(); this.windowPos = new Rect(this.sideBarRect.xMax, WINDOW_VERTICAL_POSITION, 10, 10); this.windowStyle = new GUIStyle(HighLogic.Skin.window) { margin = new RectOffset(), padding = new RectOffset(5, 5, 5, 5) }; GameEvents.onGameSceneSwitchRequested.Add(this.onGameSceneSwitchRequested); GameEvents.onVesselDestroy.Add(this.onVesselDestroy); GameEvents.onVesselCreate.Add(this.onVesselCreate); GameEvents.onKnowledgeChanged.Add(this.onKnowledgeChanged); GameEvents.OnMapViewFiltersModified.Add(this.onMapViewFiltersModified); ManeuverQueue.filterModeLabels = Enum.GetValues(typeof(FilterMode)).Cast <FilterMode>().Where( x => x != FilterMode.Undefined).Select( x => ManeuverQueue.LabelForFilterMode(x)).ToArray(); this.currentMode = (FilterMode)this.pluginConfiguration.GetValue(ManeuverQueue.configurationModeKey, (int)FilterMode.Default); this.render = true; }
protected void SetVesselList(List <Vessel> vessels, MapViewFiltering.VesselTypeFilter filters) { if (this.spaceTrackingScene == null) { return; } this.spaceTrackingScene.GetType().GetField("trackedVessels", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(this.spaceTrackingScene, vessels); MethodInfo clearMethod = this.spaceTrackingScene.GetType().GetMethod("ClearUIList", BindingFlags.NonPublic | BindingFlags.Instance); MethodInfo constructMethod = this.spaceTrackingScene.GetType().GetMethod("ConstructUIList", BindingFlags.NonPublic | BindingFlags.Instance); clearMethod.Invoke(this.spaceTrackingScene, new object[0]); constructMethod.Invoke(this.spaceTrackingScene, new object[0]); MapViewFiltering.SetFilter(filters); this.ResetWidgetsForActiveVessel(); }
protected void OnMapViewFiltersModified(MapViewFiltering.VesselTypeFilter filter) { if (filter == MapViewFiltering.VesselTypeFilter.None) { // Reset state of renderers foreach (OrbitData obData in orbits) { if (contract.ContractState == Contract.State.Active && ContractConfiguratorSettings.Instance.DisplayActiveOrbits || contract.ContractState == Contract.State.Offered && ContractConfiguratorSettings.Instance.DisplayOfferedOrbits) { obData.SetupRenderer(); } else { obData.CleanupRenderer(); } } } }
private void onMapViewFiltersModified(MapViewFiltering.VesselTypeFilter data) { this.needsWidgetColorRender = true; }