Jump to content

[1.12.x] Landertrons (Automatic Landing Retro-Rockets) v1.3.0 (02021 Sep 06)


Kerbas_ad_astra

Recommended Posts

Landertrons

Automatic retro-rockets for landing.

Landertrons logo

Features

Part catalog

Landertrons (left to right: XT-L1, XT-L2, XT-L2B) are small solid rocket motors which can be mounted on a craft and set to automatically fire in one of three modes:

  • SoftLanding, firing to brake a rocket's descent and prevent the rocket from breaking. Note that the engines will cut out when the craft is above the ground, so be ready for a bit of a drop!
  • ShortLanding, firing to arrest a spaceplane's momentum on landing.
  • StayPut, firing downward to prevent a vehicle from bouncing or tipping (or at least try).

A landertron will only fire if it can make a positive contribution to its desired mode, and will cut out automatically, but it's up to you to put them in the proper quantity and orientation to get the job done.

The landertrons can be refueled using the included hex-cans of solid fuel (far left). Just attach them to spent landertrons, and you will be ready to fly again in no time. (The XT-L1 requires one can each, and the XT-L2 and -L2B require two cans each.)

There is also an XT-L-KRAB "Landertron Box" (far right), which will attempt to control a spacecraft's engines as if they were landertrons. Warranty void if used for critical mission phases!

Download and install

From there, just unzip the "Landertron" folder into your GameData directory.

Known and anticipated issues

The math used in this mod is simplified compared to the real (non-linear) physics of propulsive landing, and so it does not function very well with vehicles with low TWR (<2) or high atmospheric drag. Run some test flights before sending any valuable crew or payloads, and be ready for a bumpy landing!

Please let us know in the thread or on the issue tracker if you find any more.

Version history and changelog

  • 2014 Oct 10 (0.08): XanderTek's last release, for 0.25.
  • 2015 Sep 06 (v0.09-beta.KAA): Restored functionality.
    • Fixed Landertron module to work with 1.0.x atmosphere changes (new Isp calculation code based on Kerbal Engineer).
    • Fixed Landertron Short Landing mode to be less sensitive to bouncy landings.
    • Updated parts to 1.0.4 thermal and atmosphereCurve properties.
    • Changed scale (and updated nodes and FX accordingly) to avoid bug with MODEL{} nodes and rescaleFactor.
  • 2015 Nov 03 (v0.10.0-alpha): Complete code rewrite (by charfa)
    • Config/persistence file changes:
      • Fields endspeed, boom and showgui removed. If you depended on functionality switched by those fields, it won't work.
      • Field names of electricrate and AnimationName changed to electricRate and animationName. Yeah, I know, silly little changes that require you to fix the save files, but I like consistent naming.
      • Field mode now stores literal mode name instead of a number. You need to substitute 1, 2 and 3 with SoftLanding, ShortLanding and StayPut respectively.
    • Functional changes:
      • Methods of determining when to fire and shutdown landertrons in all modes have changed. This mostly results in improvements and avoids some bugs that were reported. One case that may be seen as a regression is the removal of throttling at the end of burn that allowed softer landings. This version burns full throttle until complete stop, which may cause the vessel to stop up to a few meters above ground due to discreet nature of physics in game. I felt like throttling solid fuel rockets was cheating.
      • Some GUI changes, mostly decluttering. Of useful stuff, gone is the braking distance display and notification when there's not enough deltaV.
      • Landertron now consumes electric charge when it's armed and disarms when it runs out of juice. You can arm it again when you refill your batteries. I honestly couldn't figure out what the behavior was in old code, so I don't know if it is a change.
    • New features:
      • Landertron module should now support being used on parts with ModuleEnginesFX and ModuleEnginesRF, and using other propellant that SolidFuel (as long as it's a single propellant only). Not tested though.
    • There might be other changes not listed here. Like I said it's a complete code rewrite so it's hard to figure out how the behavior will differ specifically.
  • 2015 Nov 07 (v0.10.0-beta): Also by charfa.
    • Removed features:
      • Config parameters endspeed, boom and showgui are removed. End speed is always 0, parts never go boom, GUI is always visible.
      • Icon is no longer colored when Landertron does not have enough electric charge or deltaV. When running out of electric charge Landertron disarms and shows a screen message. Not having enough deltaV is not notified in any way.
      • Removed throttling of Landertron to provide a soft touchdown. You may end up being stopped a few meters above ground now. I felt like throttling of solid fuel rockets was cheating. If you want a gentle touchdown use liquid fuel engines and MechJeb autopilot.
    • Bug fixes:
      • XT-L1 and XT-L2B can now be refueled.
      • Mode is now initialized properly to SoftLanding and ShortLanding in VAB and SPH respectively.
    • New features:
      • Landertron module should now work when added to parts with ModuleEnginesFX and ModuleEnginesRF.
      • Landertron module should now work with engines running on any propellant, not only SolidFuel, as long as it's a single propellant (i.e. won't work with LF+O, but should work with RealFuels' solid fuels).
    • Other changes/improvements:
      • GUI is significantly decluttered. Landertron module itself only adds mode switch button in editor and arm/disarm button and status information in flight.
      • Logic behind deciding when to fire and stop Landertrons has been rewritten. It should now be more robust and better handle some situations that I saw reported on forum as causing problems (e.g. building landers in SPH, placing Landertrons at various angles, mixing different Landertrons in a stage...).
      • All textures are converted to DDS.
      • Other? It's a complete code rewrite, it's a hard to predict if the behavior hasn't changed slightly in other aspects.
  • 2015 Nov 19 (v0.11.0): Also by charfa.
    • Bug fixes:
      • Fix "Look rotation viewing vector is zero" log spam.
      • Turn off decoupler Enable/Disable Staging switch
    • Internal:
      • Compile for KSP 1.0.5
      • Switch to use 'stagingEnabled' to prevent engine and decoupler from activating upon staging.
  • 2016 Mar 25 (v0.12): Ocean landings
    • Landertrons will now soft-land over oceans as well as on land.
  • 2016 Apr 24 (v0.13): Vnity 5
    • Incorporated "LandertronBox" module from Booots. A part with this module will control a craft's engines to achieve landertron functionality (at least, it will try -- this feature is a bit finicky).
      • Added the "XT-LB Landertron Box" part (welded from the stock Small Inline Reaction Wheel and Atmospheric Fluid Spectro-Variometer models, so be careful when pruning).
    • Compiled against 1.1 libraries.
  • 2016 Oct 12 (v0.14): Future Proofing.
    • Added support for thrustTransformMultipliers.
    • Updated for KSP 1.2.
    • Added .version file.
  • 02016 Oct 13 0340 UTC (v0.15): Crunch!
    • Packaged the right DLL this time...
  • 02017 Apr 03 (v1.0.0): Terminal Burn
    • New XT-L-KRAB model to replace the XT-LB, from steedcrugeon. (The old model has been made unresearchable, and will be removed in the next release.)
    • Changed SoftLanding calculation so that it no longer fires late in landers with TWRs below 5 or so. Again, be advised that solid rocket motors do not throttle, so there will be a drop after they cut out! Bring airbags, girders, or something crushable to land on...
    • Adjusted rearm/settle conditions for landertron box to be less 'bouncy'.
    • Added subtle up-arrows to XT-L2, to clarify which way to orient it.
  • 02017 Jun 10 (v1.1.0): I-D-18-N
    • Updated for KSP 1.3.
    • Completed deprecation of old XT-LB model.
    • Accommodates new internationalization system.
  • 02018 Nov 03 (v1.1.1): From en-us With Love
    • Added some strings to the localization file. Now the display strings from the code (e.g. mode names) can be localized as well.
  • 02019 Nov 12 (v1.1.2): 4.5 Roentgens
    • Recompiled with .NET Framework 4.5 for KSP 1.8.x.
  • 02019 Dec 16 (v1.2.0): Baby L-KRAB
    • Shrunk the XT-L-KRAB model to fit on probes a little better. (Thanks, @Yemo.)
    • Fixed the electric charge consumption.
  • 02021 Sep 06 (v1.3.0): KISS
    • Updated part configs to use KSP's stock EVA construction system. (Also had to recompile the DLL, so this version should only be used with KSP 1.12.x!)
    • Fixed a few config errors.

Roadmap

Just as KSP 1.12 was the last major game release, I'm expecting XTL v1.3 to be the last major release of this mod. One of these days, I might get around to implementing a more complicated solver that does a better job with tricky situations (i.e. low TWR, low terminal velocity), which I would consider a prerequisite to implementing the popular request of sliders to adjust the target altitude, but I wouldn't count on it.

Please let us know in the thread or on the issue tracker if you have any suggestions.

Credits / License

  • Source code and DLL licensed under GNU GPL (v3). Variously by XanderTek, Kerbas_ad_astra, charfa, and Booots.
  • SolidFuel HexCan part based on Greys' HexCans, licensed under CC-BY-SA.
  • Landertron parts based on models by BahamutoD, licensed under CC-BY-SA.
  • XT-L-KRAB model by steedcrugeon, licensed under CC-BY-SA (4.0 or later).

Any redistributions or derivative works must use a different name and folder (per the GPL section 7c). All other rights (e.g. the Landertrons logo) reserved.

 

 

Edited by Kerbas_ad_astra
Final-ish release
Link to comment
Share on other sites

Hi Kerbas_Ad_Astra, thanks much for updating Landertron to 1.2-- it's a mod I enjoy greatly.

OSX, KSP 1.2 (not pre), Landertron v0.14, tons of other mods. 

Seeing an exception on loading, looks like it's trying to call KSPUtil.

Spoiler

 

Non platform assembly: /Users/Foozle/Library/Application Support/Steam/SteamApps/common/Kerbal Space Program/GameData/Landertron/Landertron.dll (this message is harmless)
ADDON BINDER: Cannot resolve assembly: KSPUtil, Culture=neutral, PublicKeyToken=null
 
(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

ADDON BINDER: Cannot resolve assembly: KSPUtil, Culture=neutral, PublicKeyToken=null
 
(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

AssemblyLoader: Exception loading 'Landertron': System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
  at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
  at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0
  at AssemblyLoader.LoadAssemblies () [0x00000] in <filename unknown>:0

Additional information about this exception:

 System.TypeLoadException: Could not load type 'Landertron.Landertron' from assembly 'Landertron, Version=0.14.0.0, Culture=neutral, PublicKeyToken=null'.

 System.TypeLoadException: Could not load type 'Landertron.ModeHandlerBase' from assembly 'Landertron, Version=0.14.0.0, Culture=neutral, PublicKeyToken=null'.

 System.TypeLoadException: Could not load type 'Landertron.ModeHandlerBase' from assembly 'Landertron, Version=0.14.0.0, Culture=neutral, PublicKeyToken=null'.

 System.TypeLoadException: Could not load type 'Landertron.ModeHandlerBase' from assembly 'Landertron, Version=0.14.0.0, Culture=neutral, PublicKeyToken=null'.

 System.TypeLoadException: Could not load type 'Landertron.ModeHandlerBase' from assembly 'Landertron, Version=0.14.0.0, Culture=neutral, PublicKeyToken=null'.

 System.TypeLoadException: Could not load type 'Landertron.Landertron' from assembly 'Landertron, Version=0.14.0.0, Culture=neutral, PublicKeyToken=null'.

 

I can provide a full log if it's helpful, but since I'm currently testing compatibility of all the 1.2 mods I can get it's rather... large.

This might be the cause of jfigueredo's issue as well.  jfigueredo, are you getting a similar exception in your log?

Hope this is useful to you, and thanks again for the update!

Edited by Foozle
Link to comment
Share on other sites

Aw, looks like I zipped the wrong DLL -- must have compiled, checked, and then forgotten to copy to the release location.  (I'm going to have to look into this build automation business that kids these days are going on about.  Grumble, back in my day 'Jenkins' was a real butler!)  I'll sort this in a jiffy...

Link to comment
Share on other sites

Nice video, @Kottabos, the only thing you missed out on mentioning was that:

On 10/13/2016 at 10:11 AM, Kerbas_ad_astra said:

If KAS and KIS are installed, then the landertrons can be refueled using the included hex-cans of solid fuel. Just attach them to spent landertrons, and you will be ready to fly again in no time.

Link to comment
Share on other sites

On 10/14/2016 at 0:01 PM, Kottabos said:

Oh look I did

@Kerbas_ad_astra absolutely wonderful work on this, loved messing around with this.  and I feel that the short landing mode will save a lot of my typically doomed spaceplanes lol

Regarding your one pet peeve, switching mode in-flight -- that's certainly a fair criticism, and it would be pretty simple to tweak the code and recompile to enable that button in the flight scene, but it might have some frustrating and surprising consequences, especially if the mode is switched at a critical time of flight (e.g. if there are motors which would be firing in one mode but not in another).  I'd need to spend time testing...which I would rather spend *playing* KSP than *managing* it, at least for a while...:wink:

Link to comment
Share on other sites

5 hours ago, TheRagingIrishman said:

Thanks. Have fun modeling. 

Oh, the model's by @steedcrugeon and already done -- I've just got a bunch of logistics to sort out for the new release.  Now that the box has its own model, I consider Landertron to be feature-complete, so there's a bunch of polish/presentation/documentation I want to clean up before rolling out the big 1.0.

Link to comment
Share on other sites

@Kerbas_ad_astra Does Landertron know to look for ModuleEnginesFX as opposed to just ModuleEngines? I'm not talking about the Landertron box.

I'm mimicking your HGR Soy Landertron patches to supply Landertron engines to the Taurus HCV, but RealPlume renames its' ModuleEngines to ModuleEnginesFX, and I'm getting an error ("Cannot find module 'ModuleEngines'"). Nothing to indicate that it'd be Landertron, just a guess (either that or ModuleDeployableEngines). Everything works, it just throws an error in the editor.

EDIT: Actually, I don't think it's Landertron, but it doesn't stand to reason to being ModuleDeployableEngines, since I know Nertea's CryoEngines uses it a lot.:huh:

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...