Sign in to follow this  
NathanKell

[1.0.4] ModuleRCSFX v4.2 Aug 23 OBSOLETE IN 1.0.5

Recommended Posts

Alright, it seems useThrottle feature, is not functioning correctly, it seems to interpret this as transferring the ship in the Y- axis, while instead should be going in the X-axis (in the main heading direction of the vessel). This is possibly one of the best features of ModuleRCSFX, so why isn't working correctly?

I made a pull request with the fix I verified myself

Edited by FreeThinker

Share this post


Link to post
Share on other sites

As discussed on git, the problem is not that it's using the wrong axis; Y is the correct axis. The problem is the order of operations, it needs to be done before the rotation is applied, because the Y axis needs to be the vessel's Y axis, not worldspace Y.

CHANGELOG

v4.2

* Fixed bug where inputs were being improperly normalized (thanks Starwaster!)

* Fixed a bug in applying useThrottle (was being done in global Y not local Y; ditto).

Share this post


Link to post
Share on other sites

The Throttle bug now seems correctly fixed, but my hard dependency on ModuleRCSFX causes player games to crash after ModuleRCSFX was updated.

Therefore to prevent any future version problem, I will use a clone of ModuleRCSFX called FNModuleRCSFX until I can find a better solution for my ElectricRCSController which depends on ModuleRCSFX features

Edited by FreeThinker

Share this post


Link to post
Share on other sites

Is there something wrong with moduleRCSFX? if i install in 1.0.5, the rcsthusters don't load.

KSP log:

[EXC 10:14:13.278] MissingFieldException: Field '.ModuleRCS.G' not found.

PartModule.Load (.ConfigNode node)

Part.AddModule (.ConfigNode node)

PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node)

PartLoader+.MoveNext ()

[EXC 10:14:13.286] NullReferenceException: Object reference not set to an instance of an object

ModuleRCS.FindThrusters ()

ModuleRCS.OnStart (StartState state)

ModuleRCSFX.OnStart (StartState state)

Part.ModulesOnStart ()

Part+.MoveNext ()

[EXC 10:14:13.290] MissingFieldException: Field '.ModuleRCS.G' not found.

If i remove dll, it starts normally....

Share this post


Link to post
Share on other sites
Is there something wrong with moduleRCSFX? if i install in 1.0.5, the rcsthusters don't load.

KSP log:

[EXC 10:14:13.278] MissingFieldException: Field '.ModuleRCS.G' not found.

PartModule.Load (.ConfigNode node)

Part.AddModule (.ConfigNode node)

PartLoader.ParsePart (.UrlConfig urlConfig, .ConfigNode node)

PartLoader+.MoveNext ()

[EXC 10:14:13.286] NullReferenceException: Object reference not set to an instance of an object

ModuleRCS.FindThrusters ()

ModuleRCS.OnStart (StartState state)

ModuleRCSFX.OnStart (StartState state)

Part.ModulesOnStart ()

Part+.MoveNext ()

[EXC 10:14:13.290] MissingFieldException: Field '.ModuleRCS.G' not found.

If i remove dll, it starts normally....

ModuleRCSFX functionality has been implemented in ModuleRCS. AFAIK it's not going to be necessary any longer?

Share this post


Link to post
Share on other sites
Starwaster said:
ModuleRCSFX functionality has been implemented in ModuleRCS. AFAIK it's not going to be necessary any longer?

Yes, it is now stock. Although we lost the flexibility of defining separate custom thrust directions for each port (e.g. Port, Starboard, Yaw, Pitch Roll) that ModuleRCSFX had.

Edited by Phineas Freak

Share this post


Link to post
Share on other sites
Yes, now it is stock. Although we lose the flexibility of defining separate custom thrust directions for each port (e.g. Port, Starboard, Yaw, Pitch Roll) that ModuleRCSFX had.

No we don't. That's in too. Same field names too I think.

Share this post


Link to post
Share on other sites
No we don't. That's in too. Same field names too I think.

Weird, because when i right - click on the parts i can only see the thrust limiter slider.

Share this post


Link to post
Share on other sites
Weird, because when i right - click on the parts i can only see the thrust limiter slider.

Thats right, I forgot RCSFX had that capacity. The stock ones probably need to be configured in their part cfg. Nathan did the fixes, I'll ask him in irc. Or maybe he'll chime in here.

Share this post


Link to post
Share on other sites

The stock parts support the axis restriction, they just don't have the buttons enabled in the editor to do it ingame. A simple plugin module could sit beside the RCS module and toggle those.

ialdabaoth: I gave up on doing EFFECTS because there would need to be a way to handle it per thruster transform rather than for all transforms at once, and I didn't have time to write something like that.

Per Starwaster, with pretty much all the current functionality of this mod in stock, this will not be maintained. Please let the CKAN people know if you are able to install this on 1.0.5, because you should not and they should fix that.

Share this post


Link to post
Share on other sites

For those with ModuleRCSFX configs already set up, what would need to be changed to make them work as ModuleRCS?

Share this post


Link to post
Share on other sites
For those with ModuleRCSFX configs already set up, what would need to be changed to make them work as ModuleRCS?

If it's for StockAlike you should already be good to go. Just make sure there's nothing in there trying to convert RCS to RCSFX. I'm on the road so I can't look right now but things were working for me as is. (Unless there's a cfg I made then forgot about, patching things for me)

Share this post


Link to post
Share on other sites
If it's for StockAlike you should already be good to go. Just make sure there's nothing in there trying to convert RCS to RCSFX. I'm on the road so I can't look right now but things were working for me as is. (Unless there's a cfg I made then forgot about, patching things for me)

Stockalike sets everything to ModuleRCSFX, but that can easily be swapped to ModuleRCS. I was more worried about the syntax being different for something, in which case I'd need to do a proper rewrite instead of a find/replace.

Share this post


Link to post
Share on other sites
Can you teach me how this works so I can help you improve / fix / recompile it?[quote name='NathanKell']Updated version of ialdabaoth's (who is awesome) ModuleRCSFX.

ModuleRCSFX
*fixes the major known issues with the stock RCS Module (ModuleRCS)
*Supports some advanced features (axis restriction, full thrust, scaling).
*Supports EFFECTS (well, it will--currently broken)

[size=3]Installation: Extract to GameData (creating a ModuleRCSFX folder, and inside that, Plugins and the readme.[/size]
[size=4][url=https://github.com/NathanKell/ModuleRCSFX/releases/download/v4.2/ModuleRCSFX_v4.2.zip]Download[/url]
[url=https://github.com/NathanKell/ModuleRCSFX]GitHub[/url][/size]
License: CC-BY-SA (with the ialdabaoth proviso, that all forkers must remark upon his awesomeness...which I'd do anyway).

From the readme:
ModuleRCSFX is a fixed version of the stock RCS module.
It is derived from ModuleRCSFX by ialdabaoth (who is awesome).
It supports a lot of configuration, as well as fixing stock bugs.

** RCS Part Controls **
useZaxis defaults to false. If you set it to true, the RCS will fire along the Z axis of the given transform(s). This means you can use engine part models as RCS parts (like using the ion engine model as an RCS part).

** RCS Axis Control **
enablePitch
enableYaw
enableRoll
enableX
enableY
enableZ
All these default to true, but if one is set to false in the MODULE, the RCS part will not fire for that input. These can be toggled in the VAB/SPH.

useThrottle
which, when set to true, means that RCS will fire forwards with the throttle.


** RCS Thrust Control **
fullThrust defaults to false. Set it to true and if the thrust ratio is > fullThrustMin (default: 0.2) RCS will fire at full thrust (or 10% thrust in precision mode), rather than the less-than-full-thrust, dependent-on-angle they do stock.

useLever defaults to false. When it's false, fine controls will make RCS fire at 10% (default) power only. When it's set to true, stock behavior returns (i.e. fine controls means lever arm compensation).

precisionFactor is the multiplier to use when useLever is false (as it is by default). precisionFactor defaults to 0.1 (10%).

** RCS Input Controls **
EPSILON defaults to 0.05. That means a control actuation of less than 5% is ignored. This is because Unity is bad at joysticks and ignores deadzones.

** RCS Effects **
Currently disabled pending rework.

Changelog:
v4.2
* Fixed bug where inputs were being improperly normalized (thanks Starwaster!)
* Fixed a bug in applying useThrottle (was being done in global Y not local Y; ditto).

v4.1
* Fixed bug in thrust calculation (was 2% what it should be...)
* When in fullThrust mode, don't switch to full thrust unless thrust ratio already starts out at fullThrustMin (configurable).[/QUOTE]

Share this post


Link to post
Share on other sites
MAFMan: as I mentioned upthread, there is no need to fix it, or recompile it, or use it whatsoever anymore, because the stuff it added is now stock.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this