blizzy78

[1.0.5] Precise Node 1.2.1 - Precisely edit your maneuver nodes

644 posts in this topic

Yet another maneuver node editor. Plus.

Regex wrote this plugin to fulfill a singular request he had since he started seriously playing this game: the ability to see the ejection angle of a maneuver node. When we have wonderful tools like alexmun's Launch Window Planner allowing us to plan our trips and take advantage of sub-optimal launch windows, it is literally a crime in his eyes to not have this simple capability.

Mod showcase/documentation by Geneborg/D.Fontana:

Download Precise Node 1.2.1

btn_donate_LG.gif

flattr-badge-large.png

Source code: https://github.com/blizzy78/ksp-precisenode

(Precise Node is licensed under the BSD 2-clause license.)

screenshot.png

Of course he also added some controls that one would expect from a tool used to edit maneuver nodes such as prograde, normal, and radial controls, plus conics draw mode and conics draw limit controls. You can edit the time of the node by typing in the desired UT, by using the normal increment controls, or by activating the coarse time controls through options. PreciseNode allows you to customize the node editor window for use as a simple node widget replacement or a full-blown interplanetary maneuver assistant. It also features a separate clock window as well as conics display controls, with or without a maneuver node present.

Keyboard Controls

You are able to control the node editor through the keyboard if desired. When the PreciseNode window is open you can click the "K" button in the upper right to open the keymapping GUI. Click the "set" button next to a control to change the control. The first key pressed within five seconds will be assigned to that action, so be sure you're in a mellow situation before setting your keys.

Default Controls


Prograde +/-: Keypad 8/Keypad 5
Normal +/-: Keypad 9/Keypad 7
Radial +/-: Keypad 6/Keypad 4
Time +/-: Keypad 3/Keypad 1
Increment +/-: Keypad 0/(alt/option) + <Increment +>
Change Conics: Keypad Enter
Hide Node Editor Window: P
Open Node: O

Change Log


1.2.1, 2015-11-14
- Fixed a bug with loading/saving the intuitive maneuver node handles option.
- Fixed a bug that occurred when patched conics were not yet available in career mode.

1.2.0, 2015-11-10
- Updated for KSP 1.0.5.
- Added intuitive behavior for maneuver node handles (code by TechnocratiK.) This can be enabled
in the options window. The intuitive behavior is most useful for normal/anti-normal burns
(ie. inclination changes.)
- Orbit information now also shows the inclination.
- Fixed a bug in the Kerbin/Earth time conversion.
- Disabled KSP compatibility check for the time being.

1.1.3, 2015-05-02
- Fixed NullReferenceException in map mode.
- Updated for KSP 1.0.2.

1.1.2, 2014-12-16
- Updated for KSP 0.90.0.

1.1.1, 2014-10-09
- Fixed a bug in the KSP compatibility check.

1.1.0, 2014-08-02
- The +/- buttons have been combined into one button. Left-clicking now acts as plus, whereas
right-clicking acts as minus.
- Fixed some bugs in the calculations of ejection angle and ejection inclination.
- If activated in the options, the conics window is now always displayed regardless of the
visibility of the main window.

1.0.0, 2014-07-27
- In addition to the automatic update check, the plugin now also gets KSP versions
from the update check server. In case the currently running KSP version is one of
those versions, the plugin will not complain about being incompatible with this
KSP version. This saves both players' and the plugin author's time.
- Updated for KSP 0.24.2.

0.14, 2014-07-25
- Updated for KSP 0.24.1.

0.13, 2014-07-18
- Updated for KSP 0.24.0.
- The RP-9f Craft Locator part is now gone.

0.12, 2014-06-10
- Added new buttons "MS" and "MR" to memorize and recall the current maneuver node's settings,
respectively.
- DN/AN buttons should no longer flicker if the relative/equatorial inclination is almost zero.

0.11, 2014-04-09
- The button "Focus Vessel" should now work as intended.
- Time and duration displays should now honor the Earth time/Kerbin time setting.
- Added a button to delete the current maneuver node.

0.10, 2014-04-02
- Added a new option to show/hide conics controls in the main window.
- In addition to the ejection angle, the ejection inclination will be displayed.
- The RP-9f Craft Locator (the part that saves maneuver nodes into the save file) has been removed.
KSP itself can save maneuver nodes now.
Note: For the time being, your existing craft should be fine. You simply cannot select the part
in the editor any longer. Be advised to replace existing craft using this part because it will
be removed permanently at some future point. You should be able to remove it from craft files in
the editor.
- The buttons to modify a maneuver node's time will be disabled now if they are not applicable with
respect to the node's current time.

PreciseNode 0.9
- Added a PartModule to save and load Maneuver Nodes: ModuleNodeSaver.
- No additional parameters are needed, there are no right-click options.
- Talisar provided a part for ModuleNodeSaver.
- The RP-9f Craft Locator is available under the Control parts section.
- In career mode it is under Advanced Flight Control for 8000 unlock, 1200 price.
- a.g. provided code to fix an issue with Unity on Linux where hotkeys were being
activated even while a text field had focus.
- Added Majiir's compatibility checker for KSP version checking.
- This will not disable any functions, it is purely used for warning the user.
- Added the ability to merge a node with a previous node on the Trip Info screen.
- Replaced the +/-10K time buttons with AN/DN snap buttons.
- If you have a target the buttons will snap to AN/DN of the target, otherwise
they will snap to the equatorial AN/DN.

PreciseNode 0.8.1
- Fixed node update during burn issue (editing a node without using the gizmo first).
- Changed the options and keymapper buttons to toggle-like functionality.

PreciseNode 0.8
- Fixed null reference exception spam.

PreciseNode 0.7.5
- Fixed erratic textbox behaviour.

PreciseNode 0.7
- Next Encounter now be calculated from the currently selected node.
- This should fix the issue where the orbit AP/PE was never shown if an encounter
existed at all.
- Added textboxes for prograde, normal, and radial controls.
- Added a button to focus on the next encounter target.
- Added a button to focus on the active vessel.
- Removed some forgotten debugging symbols.
- Fixed some repaint bugs that may have been causing unexpected CTDs.
- Fixed some null reference bugs through a better node updating scheme.

PreciseNode 0.6
- Added the time to next node in the Clock window if a node is present.
- Added a Trip Info window.
- Shows the delta-V and time until for the nodes on your route.
- Totals delta-V for the route.
- Added snap to current orbit peri- and apoapsis buttons for additional UT Controls.
- Now calculating next encounter from the current node forward.
- The "Editing Node" label at the top is now a button that focuses the map view
on that particular node.
- The Clock window will no longer stay visible when you clear the GUI via F2.

PreciseNode 0.5
- Added ability to open selected maneuver node gizmo via hotkey (default O).
- Added ability to open/hide window via hotkey (default P).
- Added ability to step down increment via alt/option + increment hotkey.
- Added ability to alter the conics patch draw limit.
- Added additional increments for UT manipulation.
- Added an options window for greater user control over plugin:
- You can show/hide the maneuver node pager.
- You can show/hide the additional UT controls.
- You can show/hide the ejection angle.
- You can show/hide the additional orbit information.
- Added an optional window for conics controls.
- If enabled the window will show whenever the map view is open.
- If enabled the window will hide automatically when the main window is open.
- Added an optional clock window to show the current UT and human readable time.
- If enabled the clock window will always show.

PreciseNode 0.4
- 0.22 compile.
- Added display for node apoapsis and periapsis, or the next encounter periapsis.

PreciseNode 0.3
- Created an options GUI for keymapping.
- PreciseNode will now save the window positions between program executions.
- Changed saving of config file to OnDisable, which happens when you switch flights.
- Changed the time display to add +1 year in order to correct to Space Center time.

PreciseNode 0.2
- Changed the "multiplier" label to "increment".
- Changed increment/decrement button colors away from the terrible cyan and magenta.
- XMLDoc'd all of the functions.
- Added conics mode selectors.
- Added keyboard controls.
- Added saving and loading from config file.

To Do

  • If time-warping, show actual time to node in clock as well as UT time.
  • Add ability to lock magnitude (final delta-V) while editing.
  • Add support for blizzy's toolbar. (Does not appear to be very useful to Precise Node right now.)
  • Add an option to use that horrible abomination of a stock GUI style.
  • Add an option to remove old nodes if their magnitude (delta-V) is less than a certain threshold.
  • Trip planning
    • Temporarily save nodes if you want to see the trip without them.

Edited by blizzy78
17 people like this

Share this post


Link to post
Share on other sites

This is awesome! I especially love the ejection angle readout! Downloading now.

I'm looking forward to the numpad support; I have a mod installed from reddit (think it's called Better Maneuver Nodes) which maps 8 & 5 as pro/retrograde, 4 & 6 as radial, and 7 & 9 for normal/antinormal. Do you think you'll do something like that?

Edited by CalculusWarrior

Share this post


Link to post
Share on other sites

Thank you for sharing it! This is really useful!

Share this post


Link to post
Share on other sites

Nice work. Realy liking the UI.

Suggestion: Add a button to switch between conic draw modes (0-3).

Share this post


Link to post
Share on other sites

I think the label "Multiplier" is a bit confusing because what you chose from is how much to add/subtract from the values below.

Share this post


Link to post
Share on other sites

Thanks for the kind words!

I'm looking forward to the numpad support; I have a mod installed from reddit (think it's called Better Maneuver Nodes) which maps 8 & 5 as pro/retrograde, 4 & 6 as radial, and 7 & 9 for normal/antinormal. Do you think you'll do something like that?

I'll be doing the same or something similar for the first run of hotkeys, but I plan to allow the user to set up their own keys eventually.

Suggestion: Add a button to switch between conic draw modes (0-3).

I'm wondering what the use case for that is, since it's pretty easy to edit a text file and set the conics mode you want. Don't most people stick to one conics mode? Why would you use different ones at different times?

I think the label "Multiplier" is a bit confusing because what you chose from is how much to add/subtract from the values below.

I agree. I'll change it to "Increment" or something before the next release.

1 person likes this

Share this post


Link to post
Share on other sites

Yeah ejection angle is key. I'm gonna pick this up. I've been using MJ to plot planetary transfers, but it can be pretty finicky and wants to always do it it's own way. Fiddling with stock nodes trying to guess at the ejection angle is an exercise in frustration.

When does the interface appear? When you select a node?

Share this post


Link to post
Share on other sites
When does the interface appear? When you select a node?

When you have the Map View open and have created a maneuver node. If there are no maneuver nodes, the window doesn't show.

Share this post


Link to post
Share on other sites

Ahh. Even easier. Nice. I'll try it tonight.

Share this post


Link to post
Share on other sites

Ok, sold. Downloading :)

1 person likes this

Share this post


Link to post
Share on other sites
I'm wondering what the use case for that is, since it's pretty easy to edit a text file and set the conics mode you want. Don't most people stick to one conics mode? Why would you use different ones at different times?

Personally I find being able to switch modes on the fly useful. If nothing else I didn't know I could change conic mode until I saw it in a mod.

With the maneuver node mods, UI is everything and it looks like you've got it exactly right. Looking forward to trying this out.

Share this post


Link to post
Share on other sites
Personally I find being able to switch modes on the fly useful. If nothing else I didn't know I could change conic mode until I saw it in a mod.

With the maneuver node mods, UI is everything and it looks like you've got it exactly right. Looking forward to trying this out.

Fair enough. I think the fact that people don't know you can change conics mode is probably the strongest argument for it. Thanks.

Share this post


Link to post
Share on other sites

I like that this is designed for alexmoon's launch window tool. One more detail that might help other than showing the ejection angle is showing the ejection inclination. It bugs me that there's no way to see the inclination of your planned maneuvers. Come to think of it, why not show all the orbital parameters for each maneuver node? It could get cluttered, so a button to hide all the extra info might be needed.

Anyway, thanks for writing the tool.

Share this post


Link to post
Share on other sites
I like that this is designed for alexmoon's launch window tool. One more detail that might help other than showing the ejection angle is showing the ejection inclination. It bugs me that there's no way to see the inclination of your planned maneuvers. Come to think of it, why not show all the orbital parameters for each maneuver node? It could get cluttered, so a button to hide all the extra info might be needed.

It's not specifically written for alexmun's tool, nor should you take my endorsement as his endorsement (what?), but I do make extensive use of his planner when I play and wanted the information. It's pretty critical for any sort of "launch" window planning.

As far as the inclination angle, I'll look into it, but it involves math and I'm terrible at math. So long as we're only talking angle on the y coords (normal) it should be fairly easy (that's just constructing triangles, right?). I don't feel like the rest of the orbit information along the patch is really helpful so I don't see a need to include it. Maybe the periapsis on the transfer-to body...

Share this post


Link to post
Share on other sites

So, before this ready-to-drink margarita wine thing takes hold (probably already has) I wanted to release a new version. Please understand that I don't code this fast. Today I was learning CURL and trying to get around the lack of an API function in our repository hosting company's website and it was terrible... Yeah, you don't need to hear that.

New version, check the OP for changes. Thanks again for all the kind words! Every mod author thanks you, in fact.

Share this post


Link to post
Share on other sites

I could have sworn this mod showed the periapsis of the maneuver node, but I just flew a test mission and that value was not visible anywhere. What am I missing?

Share this post


Link to post
Share on other sites
I could have sworn this mod showed the periapsis of the maneuver node, but I just flew a test mission and that value was not visible anywhere. What am I missing?

If you're talking about my screenshots, just click the respective 'apsis "tag" to have it show while you're making adjustments.

Share this post


Link to post
Share on other sites
If you're talking about my screenshots, just click the respective 'apsis "tag" to have it show while you're making adjustments.

It's such a pain though, trying to click on that damnable tag without accidentally hitting the trajectory line (which pops up the "Add a Node?" dialog).

I thought I remembered seeing the periapsis on the PreciseNode window itself. Maybe I'm confusing it with something else.

Share this post


Link to post
Share on other sites
I thought I remembered seeing the periapsis on the PreciseNode window itself. Maybe I'm confusing it with something else.

If you saw the earlier version in the "What did you do in KSP today" thread in General Discussion, then that would likely have been my custom MechJeb window. I might add the apo/periapsis information later along with some other numbers; it's quite useful to have.

Share this post


Link to post
Share on other sites

I usually use Improved Maneuver Nodes, but last night I decided I'd swap it out for this to see what the differences were, and I have to say that I think I'll be using this one instead from here on out. The interface display is much less clunky and more user-friendly, and I really like the fact that it shows the ejection angle for the maneuver as well as the other available information.

The only thing I really noticed that might need addressing is that the maneuver nodes seem to get a little "twitchy" when you try to drag them around the orbit now.

Keep up the good work!

Share this post


Link to post
Share on other sites

That was my missing mod to get completely independant from MechJeb's autopilots.

And I'll use it in my uber role play :)

Share this post


Link to post
Share on other sites
The only thing I really noticed that might need addressing is that the maneuver nodes seem to get a little "twitchy" when you try to drag them around the orbit now.

I noticed that too, I don't know exactly what to do about it but there's a small tweak I'll be making for the next version that might help, but I think it stems from floating point errors and the general twitchiness of close AP/PE orbits. Then there's "debouncing" the text entry field, drives me nuts. Also, "Year -1" really threw me off when I was planning in Year 3 KSP; MechJeb has the same problem. It's a very easy fix.

Anyway, thanks!

Share this post


Link to post
Share on other sites

Fresh baked dll, 0.3 has arrived:

- Created an options GUI for keymapping.
- PreciseNode will now save the window positions between program executions.
- Changed saving of config file to OnDisable, which happens when you switch flights.
- Changed the time display to add +1 year in order to correct to Space Center time.
(-Conics mode will now be properly set to the last-used mode when you create a maneuver node.)

Please let me know if there are any issues you have. I'll be away for five days on vacation starting Wednesday and I'm leaving my laptop at home, so I'll try to get some more of my TODO items done before I go and will be available for any hotfixes that are needed during that time. No promises, though.

Enjoy!

Share this post


Link to post
Share on other sites

Awesome, will download once I get back home. Saving window position will be especially helpful for me.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now