Jump to content

[0.25] RasterPropMonitor - putting the A in your IVA (v0.18.3) [8 Oct]


Mihara

Recommended Posts

You can edit the MFD40x20.cfg and change the font color of the text. Find this section of code:


name = aviapfd
button = button_A
text = JSI/RasterPropMonitor/Example/ExampleMFD/pa_HUDPFD.txt
defaultFontTint = 0,128,0,255
defaultFontNumber = 2

And edit this line to the desired color (RGBA format I believe):


defaultFontTint = 0,128,0,255

I would pick 0,255,0,255 (I believe this is the right format, although the last number may need to be different)

Much appreciated. :)

Link to comment
Share on other sites

Using RPM 0.13 I am encountering a memory leak when time warping at maximum from inside the cockpit with one of the screens showing the scansat map. Using the 64bit version of KSP on linux, I warped for 60 days with the map visible and the process ended up using 10gb of memory. When the MFD is switched to one of the text-only display modes, this doesn't happen. This is with the provided 'example' MFD setup.

Edited by Virindi
Link to comment
Share on other sites

Hyomoto,

Downloaded your package. Everything seems to work great, but selecting Kerbin as a target simply returns "No Target". Now Jeb's stranded above the moon. Any advice?

I don't think there's anything that can be done specifically, KSP won't allow that target. You'll notice that even if you go to map mode, you can never select Kerbin as your target as long as you are somewhere in it's SOI (that includes the Mun and Minmus). However, if you burn prograde towards Kerbin, you should eject yourself on a low PE escape (about 9Mm) which should make it easy to get back.

Mihara, I have another one for you. Sort of an interesting situation, I'm not really sure it's a bug but the functionality doesn't work as intended (or I goofed):

(apparently YouTube hates acc, just mute the audio I forgot to cut it in lightworks)

The problem is my display uses TARGETEXISTS to decide whether or not to display the bottom information on the camera (lower left), but it is ONLY supposed to do it when you have a vessel selected. That works, but as you can see in the video when I swap to targeting a docking port, the information disappears. Any ideas? Here is the line in the page file in case I'm a dummy:

{2:"";"                                        ";"                                        "} REL {0:SIP_6.3}m/s      RCS {3,-3:"[#00ff00ff]ON [#ffffffff]";0;OFF}     {1:SIP_6.3}m$&$ TRGTSPEED TARGETDISTANCE TARGETEXISTS RCS

Edited by Hyomoto
Link to comment
Share on other sites

Using RPM 0.13 I am encountering a memory leak when time warping at maximum from inside the cockpit with one of the screens showing the scansat map. Using the 64bit version of KSP on linux, I warped for 60 days with the map visible and the process ended up using 10gb of memory. When the MFD is switched to one of the text-only display modes, this doesn't happen. This is with the provided 'example' MFD setup.

A few questions.

  1. Does this happen with SCANsat's map window rather than just with an RPM screen?
  2. Does the memory use go down after you stop warping?

Hyomoto,

Downloaded your package. Everything seems to work great, but selecting Kerbin as a target simply returns "No Target". Now Jeb's stranded above the moon. Any advice?

Actually, that isn't Hyomoto's problem (Or mine.) KSP does not let you target the body you're orbiting much of the time, that's why it's greyed out.

Link to comment
Share on other sites

The problem is my display uses TARGETEXISTS to decide whether or not to display the bottom information, but it is ONLY supposed to do it when you have a vessel selected. That works, but as you can see in the video when I swap to targeting a docking port, the information disappears. Any ideas?


case "TARGETEXISTS":
if (target == null)
return -1d;
if (target is Vessel)
return 1d;
return 0d;

A ModuleDockingNode is not a Vessel, so as you switch to target a docking node, your "{2:positive-empty;negative-lotsaspaces;zero-lotsaspaces}" receives a 0 and produces spaces.

By the way, I just thought about it: Using nudge tags to push unwanted output out of the screen is more efficient programmatically and easier to type. :)

Link to comment
Share on other sites

A ModuleDockingNode is not a Vessel, so as you switch to target a docking node, your "{2:positive-empty;negative-lotsaspaces;zero-lotsaspaces}" receives a 0 and produces spaces.

By the way, I just thought about it: Using nudge tags to push unwanted output out of the screen is more efficient programmatically and easier to type. :)

First off, naturally you are right. This would be the second time you've encouraged me to use nudge tags :)

However, as far as TARGETEXISTS is concerned, the docking port is part of a vessel. And that's sort of where semantics come into play. If you don't feel like adjusting this variable recognize docking ports as part of a vessel, is it possible you'd be interested in providing one that does? It's very useful to know whether it is a ship or a planet you are targeting, and in this case the purpose of showing that information is to assist with docking. It either undermines the sweet work you put into drawing the docking port on the navball, or the less impressive work I did trying to exploit it!

Link to comment
Share on other sites

If you don't feel like adjusting this variable recognize docking ports as part of a vessel, is it possible you'd be interested in providing one that does? It's very useful to know whether it is a ship or a planet you are targeting, and in this case the purpose of showing that information is to assist with docking. It either undermines the sweet work you put into drawing the docking port on the navball, or the less impressive work I did trying to exploit it!

This variable has been around for quite a while and I don't know what I would be breaking by changing it. I can obviously add a new one and forget about it, (here, TARGETISVESSELORPORT) but while I'm at it, here's a particularly sneaky idea for you:

Nudge tags can be indirectly used to introduce logical conditions. :) I.e. you can give an X shift of something like 2000 in one tag, and then give a negative shift of 2000 in another. If the first tag fires, the text will be pushed off the screen. If the second tag fires, the text will be dragged back in. If the first tag doesn't fire but the second tag does, the text will be pushed off screen in the opposite direction. Voila, you have a text that shows only if two conditions are satisfied.

EDIT: No, I'm talking nonsense. Nudge shifts don't add up, they override each other. Sorry about that... You can, however, exploit the fact that nudge shifts can be negated by resetting them to zero anyway, it's just less flexible.

Edited by Mihara
Link to comment
Share on other sites

You might have noticed the jet engines don't have instant throttle response. The rocket engines are the same but respond much faster. Throttle depicts the position of the handle, effective throttle depicts your actual engine output.

Link to comment
Share on other sites

A few questions.

  1. Does this happen with SCANsat's map window rather than just with an RPM screen?
  2. Does the memory use go down after you stop warping?

1: No. I launched a manned vessel to an equatorial 720km orbit around kerbin and warped at max with one or both mapsat screens open, and there is no issue.

2: No, memory used stays when you stop warping. I played for 10 minutes or so after and it was still used. I'm not sure if this is really definitive though, I presume that unity uses a modified gc so who knows when that is expected to occur...

I would hope that at this point unity uses sgen, because I've certainly struggled a lot in the past with mono and boehm and it is really poor. When using boehm phantom problems like this happen all the time.

Link to comment
Share on other sites

Can the JSIOrbitDisplay background handler be made to render separate parts of an orbit? i.e. If I'm on an encounter trajectory could it be made to render the hyperbolic trajectory w.r.t. the body being encountered? This would be very useful for plotting encounters, one of the few things that's hard to do from IVA-only with RPM.

Link to comment
Share on other sites

Can the JSIOrbitDisplay background handler be made to render separate parts of an orbit? i.e. If I'm on an encounter trajectory could it be made to render the hyperbolic trajectory w.r.t. the body being encountered? This would be very useful for plotting encounters, one of the few things that's hard to do from IVA-only with RPM.

Not yet. I'm not sure how to handle the UI aspect of it. For instance, let's say you're plotting Kerbin to Jool, and you start your burn in Kerbin orbit. Once you reach escape velocity, you now have two segments of interest - Kerbin's SoI and the orbit around the sun. You now need to be able to switch between them, and we need to provide information so the info screen can explain which SoI you are viewing, as well as which segment of the orbit you're viewing (segment 1 - your current orbit, segment 2 - the sun's orbit), as well as orbital parameters applicable to that segment (Ap, Pe, etc). Now, once the Jool intercept is complete, we have a third segment to display.

It gets more fun thanks to those pesky little moons - say you've switched to segment two (the part orbiting the sun), and while you're watching that orbit close on intercepting Jool, your Kerbin SoI orbit intercepts the Mun? We now have (Kerbin escape - Mun SoI/escape - Kerbin escape - Sun). We were showing SoI 2, so do we jump to the Mun SoI view now? Or do we stick to this one and let you wonder why the orbit just changed drastically? Or what if the segment disappears because you're no longer on an escape trajectory?

OTOH, if we show all the segments at once, then it gets tough to tell what's going on near the planets when the interplanetary orbit is visible, since that orbit will dominate the display.

It isn't an intractable problem, but it needs some thought.

Link to comment
Share on other sites

What if it was restricted to only displaying the current orbit or the next encounter orbit. The currently existing encounter variables seem to already be limited to next encounter only. If you could add a parameter in the background handler to display the nth segment people could use it in a custom page until a more generally acceptable UI solution is found.

Edited by SnappingTurtle
Link to comment
Share on other sites

I would hope that at this point unity uses sgen, because I've certainly struggled a lot in the past with mono and boehm and it is really poor. When using boehm phantom problems like this happen all the time.

I suspect it's something within SCANsat, to be honest, but I guess to be safe I'll just stop the map from redrawing while timewarp is on....

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...