Jump to content

[1.2.2] ManeuverQueue v0.4.2


kball

Recommended Posts

Hey all,

After getting back into KSP recently and going nuts launching ships left and right in career mode I soon found myself desperate for a way to quickly pick out the ships in the Tracking Station that needed my attention next. I saw a couple of other users requesting this feature over the years and some disappointment when the latest update didn't have it. So I decided to try my hand at an add on. Here it is. It's a little thing, but it saves me some sanity, of which I have little to spare.

I hope some of you will find it useful!

ManeuverQueue

ManeuverQueue is an add on that allows you to sort and filter objects displayed in the Tracking Station list. It was developed and tested against KSP v1.1.3 and v1.2

shvwtjE.png

Installation

Github: https://github.com/FatHand/ManeuverQueue/releases
Curse: https://kerbal.curseforge.com/projects/ksp-maneuverqueue

Make sure to get the correct archive for your version of KSP (1.1.3 or 1.2) add the contents of the archive to your KSP GameData folder. 

Usage

When the add on is installed you will see a small toolbar at the top left of the Tracking Station. Switching modes will sort and filter the list in the tracking station.

MET

- Shows the default Tracking Station list

MNV

- Shows only those ships with maneuvers nodes
- Sorts ships by next maneuver node time, earliest first
- Ships with maneuver node times in the past will appear at the top of the list
- A ship is only listed once even if it has multiple maneuver nodes
- Color coding
  - Yellow
    - Two ships' next maneuver nodes are less than 15m apart
    - A ship's next maneuver node is less than 15m away
  - Red
    - The ship's next maneuver node is in the past

A-Z

- Shows the default list, sorted alphabetically

Time Warp

- Time warp will slow to 1x when a maneuver node is 15m away. Very high speed warps can lag up to a few minutes when slowing

Vessel Type Filters

- Switching to MNV mode will unset all vessel type filters. Returning to MET or A-Z mode will restore filters set in those modes.

Known Issues

- Linux is not supported
- Certain tracking station operations such as untracking an object, terminating a vessel, or switching vessel filters causes the list to flicker momentarily


Changes in this version

  -  Fixes an issue that caused the list to reset to MNV when terminating a vessel

Edited by kball
Updated to v0.4.2
Link to comment
Share on other sites

  • 2 weeks later...

I replaced Kerbal Alarm Clock with this much simpler mod, and it is working quite well.  Vessel renaming (which you can do in the tracking station) has caused no problems so far.  

This is a minimal implementation of exactly what was requested in the thread linked below. It does not pause the game when maneuvers come close: it provides only the schedule, not the alarm clock.

Later discussion in that thread asked for other selected events like closest-approaches to be considered in the sort, whereas ManeuverQueue sorts only maneuver times, but placing a zero-dv manuever node seems a fine way to select those other events.

Link to comment
Share on other sites

Thanks for the feedback @OHara! I'm glad you're finding it useful.

Indeed when looking for this functionality I quickly stumbled on KAC but I never installed it. I like to keep my install pretty light on mods, and from what I could tell with KAC I would have to explicitly set an alarm for each node. Maybe I'm wrong about that, but this just seemed a much simpler, and more 'realistic' way to go that leaves me the responsibility of keeping tabs on my fleet.

I've got some code in place to check for nodes that are close together and in the past. I'm not a designer, so if anyone has suggestions for colors, let me know. Also, using 15 minutes as the threshold for dangerously close maneuver nodes. Think that's appropriate?

I'm open to the idea of adding other events to include - SOI change, closest approach - but I'm a little afraid it would just complicate things with questions like, if a vessel has an SOI change before a MNV node, what's more important to display? I use the same technique of setting a maneuver node at those events before returning to the space center.

 

Edited by kball
Link to comment
Share on other sites

KAC does automatically set an alarm for each maneuver.  It has layers upon layers of features and options.

Color-coding maneuvers that are closely-spaced in time, or (nearly) overdue, does seem helpful, without adding any complication to the user interface.  15 minutes seems reasonable.  In general, reading Snark's thread linked above, and the one about the mod he wrote, might be interesting for you (if you haven't already); Snark answers a lot of questions here, so probably has a good idea of what user-interface in this game has worked well (or not) for most people.

I wondered if you could fit the 3 sort-select buttons above the tracked objects list, just to the right of "Tracked objects:"

While a newly-tracked object does appear at the bottom of the list, even if filtered by MNV, it disappears if we select other sort-option buttons.  Exiting/re-entering the tracking station restores this newly-tracked object to the list (as if the list from which you sort is created upon entry to the tracking station).

Edited by OHara
Link to comment
Share on other sites

Yeah I read that thread before I threw this together, but skimmed some parts. I'll have another look.

Thanks for finding that bug, and as for the UI, I'm still unclear how the KSP UI layout and scaling works, so the current position seemed the least likely to cause problems, but I'll play around with it.

Link to comment
Share on other sites

Sooo, I'm really excited about 1.2. There are only two problems. 1) I'm not sure I can go without one of the two other addons I use - Kerbal Engineer. 2) I've got my very first interplanetary missions headed out to Duna and Moho and I don't want to brick em by turning on the comms network.

Long story short, I'll probably be waiting a bit to upgrade. But I want this addon on to work for anyone who is so I've rebuilt it and also fixed a bug. There will have to be different downloads for 1.2 and 1.1.3, so make sure you grab the right one.

0.2.1

Features:

Updated to support KSP v1.2


Bugfixes:

Fixed an issue that caused some vessel shading to fail when tracking station filters were applied

Edited by kball
Link to comment
Share on other sites

I know that KAC has been discussed above, but this is much more 'stock-a-like' and really should be in the game.  I've even pointed people to here who have waited for KAC to update to 1.2 :)

Is it possible that while in the tracking station, to build in a feature to slow down timewarp when the  next manoeuvre node is coming up?  I'm not suggesting this feature across the board (as a replacement for KAC), but that would help those of us who time warp too fast too slow down quickly enough.

Great work.  Thanks and Peace.

Link to comment
Share on other sites

1 hour ago, theJesuit said:

I know that KAC has been discussed above, but this is much more 'stock-a-like' and really should be in the game.  I've even pointed people to here who have waited for KAC to update to 1.2 :)

Is it possible that while in the tracking station, to build in a feature to slow down timewarp when the  next manoeuvre node is coming up?  I'm not suggesting this feature across the board (as a replacement for KAC), but that would help those of us who time warp too fast too slow down quickly enough.

Great work.  Thanks and Peace.

Thanks!

I can definitely look into implementing something like that. I'm thinking it would work similarly to how the stock game works in flight when approaching an SOI change - slowing to 50x when you're 15 mins out from the next maneuver.

In the meantime - give 0.3.0 a test drive:

I started to worry about having filters set in MNV mode and then missing maneuvers for vessels that were filtered out.

0.3.0 will unset all vessel filters when switching to MNV mode or when opening the TS to MNV mode. When switching back to MET or A-Z the selected filters will be restored. Any filters set in MNV mode are discarded when switching modes or leaving the TS.

KSP's default behavior for persisting map view filters seems a little unpredictable to me. Looks like each flight has the ability to save the map view filters used on that flight, but it's not clear that KSP always (or even ever) respects those settings. In any case, let me know if these changes in any way interfere with behavior that you're used to.

Also brightened the colors some to make them less barf-ish.

Cheers!

0.3.0

Features:

  • Unsetting vessel filters when entering MNV mode and restoring when returning to MET or A-Z mode
  • Brightened the colors
Edited by kball
Link to comment
Share on other sites

45 minutes ago, kball said:

I can definitely look into implementing something like that. I'm thinking it would work similarly to how the stock game works in flight when approaching an SOI change - slowing to 50x when you're 15 mins out from the next maneuver.

In the meantime - give 0.3.0 a test drive:

I started to worry about having filters set in MNV mode and then missing maneuvers for vessels that were filtered out.

0.3.0 will unset all vessel filters when switching to MNV mode or when opening the TS to MNV mode. When switching back to MET or A-Z the selected filters will be restored. Any filters set in MNV mode are discarded when switching modes or leaving the TS.

KSP's default behavior for persisting map view filters seems a little unpredictable to me. Looks like each flight has the ability to save the map view filters used on that flight, but it's not clear that KSP always (or even ever) respects those settings. In any case, let me know if these changes in any way interfere with behavior that you're used to.

Also brightened the colors some to make them less barf-ish.

Cheers!

0.3.0

Features:

  • Unsetting vessel filters when entering MNV mode and restoring when returning to MET or A-Z mode
  • Brightened the colors

That sounds perfect, reducing to 1x would be best because it really does focus the attention that something is happening.  IIRC 50x was to avoid the errors creeping in from the orbital characteristics by time warping too fast with the active vessel.

One further suggestion would for your stockish replacement for KAC would be for your mod to allow for a slow down in the same way for SOI changes, or to have this as an option to be filtered as well.  It isn't a biggy, because we can set a manoeuvre node as a placeholder to achieve this.

You've created this at the right time now that we can go straight to the tracking centre too!  Amazing!

Peace.

Link to comment
Share on other sites

On 9/22/2016 at 7:40 PM, theJesuit said:

That sounds perfect, reducing to 1x would be best because it really does focus the attention that something is happening.  IIRC 50x was to avoid the errors creeping in from the orbital characteristics by time warping too fast with the active vessel.

One further suggestion would for your stockish replacement for KAC would be for your mod to allow for a slow down in the same way for SOI changes, or to have this as an option to be filtered as well.  It isn't a biggy, because we can set a manoeuvre node as a placeholder to achieve this.

You've created this at the right time now that we can go straight to the tracking centre too!  Amazing!

Peace.

Done! Though be mindful that at very high warps it will blow past the threshold by a couple minutes.

As for SOI changes, that would take a bit more effort. But more importantly, I'm not sure what would make sense from a UX perspective. Without a list specifically showing SOI changes I think it could be strange because how would you know which ship was approaching the SOI change? Or it could be annoying if the Tracking Station switched focus to the relevant ship and you weren't really that interested in it.

Changes in 0.4.0

- Stopping time warp when a maneuver node approaches
- Fixed an issue that caused the list to render incorrectly in maneuver mode when an asteroid track is ended

Edited by kball
Link to comment
Share on other sites

This mod seems interesting, even so because KAC is not available yet. However, after installing it, there is no sign of it ingame, no new tab or any other new stuff in tracking station. Is this supposed to work under linux as well? I can see it being initalized in ksp.log, couldn't find any errors, it's just not there in the game. I'm playing with 64 bit linux latest prerelease build.

Edited by bounty123
Link to comment
Share on other sites

 

7 hours ago, bounty123 said:

This mod seems interesting, even so because KAC is not available yet. However, after installing it, there is no sign of it ingame, no new tab or any other new stuff in tracking station. Is this supposed to work under linux as well? I can see it being initalized in ksp.log, couldn't find any errors, it's just not there in the game. I'm playing with 64 bit linux latest prerelease build.

That's strange. Maybe something changed in a recent prerelease that's affecting it. I haven't tested it on Linux specifically, but I don't know of any reason why it shouldn't work.

I'll have a look. Thanks for the heads up.

Link to comment
Share on other sites

  • 1 month later...

Oh i really looked forward for such possibilities. I'm tired of checking the whole list of MNVs regulary without any sorting/filtering.

Any chance for an update for KSP 1.2.1? I tried the one for 1.2pre, which doesn't work.

When in tracking station, console is flooded with things like (copied out of KSP.log):

[EXC 02:34:26.793] NullReferenceException: Object reference not set to an instance of an object
    FatHand.ManeuverQueue.GetTrackedVessels ()
    FatHand.ManeuverQueue.get_defaultVessels ()
    FatHand.ManeuverQueue.VesselsSortedByNextManeuverNode ()
    FatHand.ManeuverQueue.get_vesselsSortedByNextManeuverNode ()
    FatHand.ManeuverQueue.get_guardedVessels ()
    FatHand.ManeuverQueue.Update ()

Btw., i'm running Linux 64bit. Would love to have such a mod :wink:

Edited by AlfFromKerbin
Typo
Link to comment
Share on other sites

On 11/14/2016 at 8:39 PM, AlfFromKerbin said:

Oh i really looked forward for such possibilities. I'm tired of checking the whole list of MNVs regulary without any sorting/filtering.

Any chance for an update for KSP 1.2.1? I tried the one for 1.2pre, which doesn't work.

When in tracking station, console is flooded with things like (copied out of KSP.log):

[EXC 02:34:26.793] NullReferenceException: Object reference not set to an instance of an object
    FatHand.ManeuverQueue.GetTrackedVessels ()
    FatHand.ManeuverQueue.get_defaultVessels ()
    FatHand.ManeuverQueue.VesselsSortedByNextManeuverNode ()
    FatHand.ManeuverQueue.get_vesselsSortedByNextManeuverNode ()
    FatHand.ManeuverQueue.get_guardedVessels ()
    FatHand.ManeuverQueue.Update ()

Btw., i'm running Linux 64bit. Would love to have such a mod :wink:

This is strange. Looks like the plugin is having trouble on Linux machines, but I'm not sure why.

Just checked the latest against 1.2.1 and it's working fine for me. I did fix a minor unrelated bug and I should rebuild it for 1.2.1 anyway, but I don't think that will fix your issue.

Tomorrow I'll see if I can figure out what's causing the problem on Linux.

Link to comment
Share on other sites

Rebuilt for 1.2.1 and fixed a minor bug.

I'm afraid the current implementation might not work under Linux, but I don't have a Linux system to debug it.

Would love to know if anyone has successfully installed and used the plugin on Linux.

Link to comment
Share on other sites

Hello.

Yet another bugReport :)

System: Windows 7 x64

GameVersion: Ksp 1.2.1.1604 x64; Sandbox

Mod Version: ManeuverQueue_KSP1.2 v4.1

More description: I has 1 ship + 1 satellit + 1 debris on orbit. Debris (ship`s 2nd stage) has an M. node in the past, ~2 min.

Mod works (great!), sorting, filters... but while in Tracking station i see that Exeption (from KSP.log)

Spoiler

//----//----//---- I going to station now
[WRN 14:10:39.612] [HighLogic]: =========================== Scene Change : From SPACECENTER to TRACKSTATION =====================
[LOG 14:10:40.168] ScaleModList: listSize 41 maxListSize 1194
[LOG 14:10:40.172] [UIApp] OnDestroy: KSPedia
[LOG 14:10:40.173] ScaleModList: listSize 41 maxListSize 1194
[LOG 14:10:40.187] UICanvasPrefabSpawner TrackingStationSpawner spawning TrackingStation
[LOG 14:10:40.221] [AddonLoader]: Instantiating addon 'ManeuverQueue' from assembly 'ManeuverQueue'
[LOG 14:10:40.227] [AddonLoader]: Instantiating addon 'Observer' from assembly 'EngineIgnitor'
[LOG 14:10:40.227] [AddonLoader]: Instantiating addon 'StageRecovery' from assembly 'StageRecovery'
[LOG 14:10:40.229] [PlanetariumCamera]: Focus: Kerbin
[LOG 14:10:40.230] [UIMasterController]: ShowUI
[LOG 14:10:40.852] Loading Depletion Nodes
[LOG 14:10:40.853] DepNodeCount:  0
[LOG 14:10:40.853] Loading Biome Nodes
[LOG 14:10:40.853] BiomeNodeCount:  0
[LOG 14:10:40.853] Loading Planet Nodes
[LOG 14:10:40.853] PlanetNodeCount:  0
[LOG 14:10:40.858] [ScenarioDestructibles]: Loading... 0 objects registered
[LOG 14:10:41.045] [PlanetariumCamera]: Focus: Kerbin
[EXC 14:10:41.109] ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
	System.Collections.Generic.List`1[Vessel].get_Item (Int32 index)
	System.Linq.Enumerable.ElementAt[Vessel] (IEnumerable`1 source, Int32 index)
	FatHand.ManeuverQueue.Update ()
[EXC 14:10:41.677] ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
	System.Collections.Generic.List`1[Vessel].get_Item (Int32 index)
	System.Linq.Enumerable.ElementAt[Vessel] (IEnumerable`1 source, Int32 index)
	FatHand.ManeuverQueue.Update ()
[WRN 14:10:41.679] [UiApp] Awake: KSPedia
[LOG 14:10:41.679] [ApplicationLauncher] OnSceneLoadedGUIReady: scene TRACKSTATION ShouldBeVisible() True ShouldBeOnTop() False iIsPositionedAtTop False
[WRN 14:10:41.696] [KnowledgeBase] OnAppLauncherReady 4851
[LOG 14:10:41.729] ScaleModList: listSize 41 maxListSize 1079
[LOG 14:10:41.732] [UIApp] OnDestroy: ContractsApp
[EXC 14:10:41.739] ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
	System.Collections.Generic.List`1[Vessel].get_Item (Int32 index)
	System.Linq.Enumerable.ElementAt[Vessel] (IEnumerable`1 source, Int32 index)
	FatHand.ManeuverQueue.Update ()
[LOG 14:10:41.793] [MessageSystem] Reposition 0.02 4852
[EXC 14:10:41.801] ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
	System.Collections.Generic.List`1[Vessel].get_Item (Int32 index)
	System.Linq.Enumerable.ElementAt[Vessel] (IEnumerable`1 source, Int32 index)
	FatHand.ManeuverQueue.Update ()
[LOG 14:10:41.805] [PlanetariumCamera]: Focus: Kerbin
[EXC 14:10:41.917] ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
	System.Collections.Generic.List`1[Vessel].get_Item (Int32 index)
	System.Linq.Enumerable.ElementAt[Vessel] (IEnumerable`1 source, Int32 index)
	FatHand.ManeuverQueue.Update ()
[EXC 14:10:41.934] ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
	System.Collections.Generic.List`1[Vessel].get_Item (Int32 index)
	System.Linq.Enumerable.ElementAt[Vessel] (IEnumerable`1 source, Int32 index)
	FatHand.ManeuverQueue.Update ()
[EXC 14:10:41.946] ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
	System.Collections.Generic.List`1[Vessel].get_Item (Int32 index)
	System.Linq.Enumerable.ElementAt[Vessel] (IEnumerable`1 source, Int32 index)
	FatHand.ManeuverQueue.Update ()
[EXC 14:10:41.955] ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
	System.Collections.Generic.List`1[Vessel].get_Item (Int32 index)
	System.Linq.Enumerable.ElementAt[Vessel] (IEnumerable`1 source, Int32 index)
	FatHand.ManeuverQueue.Update ()
[EXC 14:10:41.963] ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
	System.Collections.Generic.List`1[Vessel].get_Item (Int32 index)
	System.Linq.Enumerable.ElementAt[Vessel] (IEnumerable`1 source, Int32 index)
	FatHand.ManeuverQueue.Update ()
  



  ... same over9000 times... 
  



  //----//----//---- I leaving station now
  
  [EXC 14:11:05.798] ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
	System.Collections.Generic.List`1[Vessel].get_Item (Int32 index)
	System.Linq.Enumerable.ElementAt[Vessel] (IEnumerable`1 source, Int32 index)
	FatHand.ManeuverQueue.Update ()
[EXC 14:11:05.809] ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
	System.Collections.Generic.List`1[Vessel].get_Item (Int32 index)
	System.Linq.Enumerable.ElementAt[Vessel] (IEnumerable`1 source, Int32 index)
	FatHand.ManeuverQueue.Update ()
[LOG 14:11:05.820] Flight State Captured 
[LOG 14:11:05.820] Saving Achievements Tree...
[LOG 14:11:05.821] [MessageSystem] Save Messages
[LOG 14:11:05.851] Game State Saved to saves/SandBox/persistent
[LOG 14:11:05.854] [Tracking Station]: SetVessel(null)
[LOG 14:11:05.854] [PlanetariumCamera]: Focus: Kerbin
[LOG 14:11:05.868] [UIMasterController]: HideUI
[WRN 14:11:06.009] [HighLogic]: =========================== Scene Change : From TRACKSTATION to SPACECENTER =====================

... no more errors.

Trying to start KSP without other mods and woth 0 flights in progress and tell results...

UPD: New fresh save, sandbox, only this mod, and same error.

Edited by Jenyaza
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...