Jump to content

[1.4.x] Comfortable Landing [V1.6]


Icecovery

Recommended Posts

Nice concept, WRONG parts...

These options should be added to HEAT SHIELDS instead, that way the mod could be released faster (You won't have to add it to EVERY mod capsule out there) and you would be able to add it to anything you build, not just capsules.

Do the AIR BAGS prevent/stop capsules from Sliding/Rolling once landed?

Link to comment
Share on other sites

47 minutes ago, Ogre420 said:

Nice concept, WRONG parts...

Maybe being a little more polite would help...

48 minutes ago, Ogre420 said:

Do the AIR BAGS prevent/stop capsules from Sliding/Rolling once landed?

Since they're mostly cosmetic and have no colliders, I'd say not.

Link to comment
Share on other sites

On 9/25/2017 at 9:24 AM, Z3R0_0NL1N3 said:

Hey! I was just playing around with some of roverdude's old floatation parts, but this is much better. I on the other hand prefer this built-in to the pod because it reduces the number of part dependencies, and Soyuz landing jets are great to have built in. (It would be nice to have a retextured pod to show the retros, but not necessary).

I do have a question about these parts IRL that I haven't found. Is it true that these inflatables popped out of the pod, or were they attached by rescue divers? The one thing I do know is that the balloon-like things on the top of Apollo were to right the capsule upright in rough seas, could those activate a few seconds before the main ring, to simulate this?

Did you write your own plugin, or did you use/base it on Roverdude's? I'm curious how these work.

The three circular buoys were a part of the Apollo command module, and the astronauts could activate them if the module flipped upside-down in the water (which would result in the hatch being underwater as well as the communication antennas, making recovery of the astronauts very dangerous).  The buoys would then inflate, and right the command module.  This happened at least once that I know of, on Apollo-11.

I believe the flotation ring was attached by diver teams,  and that it wasn't actually a part of the Apollo command module, but I'm actually not positive on this note.

Link to comment
Share on other sites

2 hours ago, ble210 said:

I believe the flotation ring was attached by diver teams,  and that it wasn't actually a part of the Apollo command module, but I'm actually not positive on this note.

I wasn't sure either, but in any case from a gameplay standpoint it's better to keep them in the pod, it's very tedious to do manual recoveries in this game.

Link to comment
Share on other sites

On 9/24/2017 at 11:03 AM, DStaal said:

A standalone pack would be great - I wouldn't think they'd need to be much more than a thin slice/ring that you can put under the pod.

You got a third/fourth/fiftieth vote from me for standalone parts pack. Very cool, @Icecovery !

I would love that as a complement to how I personally build in KSP. Like adding a thin decoupler-looking ring or something.

Edited by scottadges
Link to comment
Share on other sites

21 hours ago, Icecovery said:

That's a very easy way to solve this problem: if you gonna to landing on the land, only click "Per-landing mode" button at heat shield. And if you gonna to splashing on the sea, only click "Per-landing mode" button at Mk1-2 pod.:D

I suppose I can give your workaround a try.

However, for the sake of convenience, I would prefer to activate prelanding mode without necessarily knowing in advance whether I will be making a water or terrestrial landing, and have your plugin automatically choose different models and animations to play for each scenario.

Is there a particular reason you cannot (or do not wish to) make the CL_Buoy and CL_Airbag part modules coexist and operate independently of each other?

Link to comment
Share on other sites

13 hours ago, Z3R0_0NL1N3 said:

I wasn't sure either, but in any case from a gameplay standpoint it's better to keep them in the pod, it's very tedious to do manual recoveries in this game.

Yes, I will keep them, just pretend diver team came at the first timing.:D

10 hours ago, scottadges said:

You got a third/fourth/fiftieth vote from me for standalone parts pack. Very cool, @Icecovery !

I would love that as a complement to how I personally build in KSP. Like adding a thin decoupler-looking ring or something.

Standalone parts pack in my plan and will update in a few version.

3 hours ago, sumghai said:

I suppose I can give your workaround a try.

However, for the sake of convenience, I would prefer to activate prelanding mode without necessarily knowing in advance whether I will be making a water or terrestrial landing, and have your plugin automatically choose different models and animations to play for each scenario.

Is there a particular reason you cannot (or do not wish to) make the CL_Buoy and CL_Airbag part modules coexist and operate independently of each other?

The reason of I cannot make they coexist is they all need to use ModuleAnimateGeneric to deploy(So there are two ModuleAnimateGenerics in the CFG file), and I don't know how to select the right one to use when I want to deploy one of them.:(

Link to comment
Share on other sites

On 2017/9/28 at 3:30 PM, Z3R0_0NL1N3 said:

Very nice! What speed does that slow the Soyuz down to on touchdown?

<3m/s I think

On 2017/9/28 at 4:56 PM, plausse said:

This is gold. If it came as part of heatshields it would be diamond.

13 hours ago, Dave-Daring said:

Might I suggest you also create a range of heat shields with these features, then it could be added to almost any pod.

These are already in the plan:wink:

 

Link to comment
Share on other sites

 

 

The reason of I cannot make they coexist is they all need to use ModuleAnimateGeneric to deploy(So there are two ModuleAnimateGenerics in the CFG file), and I don't know how to select the right one to use when I want to deploy one of them.:(

Try doing something like this:

    [KSPField]
    public string animName

    public override void OnStart(StartState state)
    {
        // InflateAnim = part.Modules["ModuleAnimateGeneric"] as ModuleAnimateGeneric;
        foreach (ModuleAnimateGeneric anim in part.Modules)
        {
            if (anim.animationName == animName)
            {
                InflateAnim = anim;
            }
        }
        if (InflateAnim == null)
            Debug.Log("<color=#FF8C00ff>[Comfortable Landing]</color>Animation Missing!");
... (stuff)

Basically, instead of grabbing the first MAG out of the PartModuleList, it walks through it and matches on the designated animation name.

Also, fields don't need to be designated KSPField (like InflateAnim) unless you're going to be reading them from a config file or unless you need to make use of some specific KSPField attribute such as persistence. In your case (for InflatAnim) you should be able to get away with not using it.

Also, if you ever need to have multiple animations on a single part, you will want to assign each one a different layer. (in the ModuleAnimateGeneric config, just add layer = 0... layer = 1... etc. IIRC you specify 10 layers, or whatever the Unity limitation is, I'm not sure if it's changed recently)

Edited by Starwaster
Link to comment
Share on other sites

On 2017/10/4 at 2:49 AM, releansol said:

Wow great! What happens to the Vessels when I later deinstall the mod?

Pod will loses features, nothing more.:D

On 2017/10/5 at 12:35 AM, Starwaster said:

Try doing something like this:


    [KSPField]
    public string animName

    public override void OnStart(StartState state)
    {
        // InflateAnim = part.Modules["ModuleAnimateGeneric"] as ModuleAnimateGeneric;
        foreach (ModuleAnimateGeneric anim in part.Modules)
        {
            if (anim.animationName == animName)
            {
                InflateAnim = anim;
            }
        }
        if (InflateAnim == null)
            Debug.Log("<color=#FF8C00ff>[Comfortable Landing]</color>Animation Missing!");
... (stuff)

Basically, instead of grabbing the first MAG out of the PartModuleList, it walks through it and matches on the designated animation name.

Also, fields don't need to be designated KSPField (like InflateAnim) unless you're going to be reading them from a config file or unless you need to make use of some specific KSPField attribute such as persistence. In your case (for InflatAnim) you should be able to get away with not using it.

Also, if you ever need to have multiple animations on a single part, you will want to assign each one a different layer. (in the ModuleAnimateGeneric config, just add layer = 0... layer = 1... etc. IIRC you specify 10 layers, or whatever the Unity limitation is, I'm not sure if it's changed recently)

Thanks for your suggestion, I've started to try it. But there is still some problem in the code and need a long time to see results. Because I'm very busy recently.:)

Link to comment
Share on other sites

@Icecovery thanks for such a nice mod! Especially for it's built-in functionality so we don't have to add another bunch of strictly situational parts to our already monstrous part packs.

First things first: Is there a way to make it comparable with  KSP 1.2.2? I've removed all "using KSP.Localization;" references throughout the code and recompiled it for 1.2.2 to make it at least load correctly but nothing happens during descent anyway. I'm getting this in logs:
 

Spoiler

[ERR 13:13:45.383] Cannot find module 'CL_LandingBurn' (1206048144)

[LOG 13:13:45.383] <color=#FF8C00ff>[Comfortable Landing]</color>Not detected CL_LandingBurn
[ERR 13:13:45.384] Cannot find module 'CL_AirBag' (-1155934444)

[LOG 13:13:45.384] <color=#FF8C00ff>[Comfortable Landing]</color>Not detected CL_AirBag
[ERR 13:13:45.385] Module CL_Buoy threw during OnStart: System.InvalidCastException: Cannot cast from source type to destination type.
  at CL_Buoy.OnStart (StartState state) [0x00000] in <filename unknown>:0 
  at Part.ModulesOnStart () [0x00000] in <filename unknown>:0 

...

[ERR 13:15:50.660] Cannot find module 'CL_LandingBurn' (1206048144)

[LOG 13:15:50.661] <color=#FF8C00ff>[Comfortable Landing]</color>Not detected CL_LandingBurn
[ERR 13:15:50.661] Cannot find module 'CL_AirBag' (-1155934444)

[LOG 13:15:50.662] <color=#FF8C00ff>[Comfortable Landing]</color>Not detected CL_AirBag
[ERR 13:15:50.662] Module CL_Buoy threw during OnStart: System.InvalidCastException: Cannot cast from source type to destination type.
  at CL_Buoy.OnStart (StartState state) [0x00000] in <filename unknown>:0 
  at Part.ModulesOnStart () [0x00000] in <filename unknown>:0 

 

And second: I can't seem to find if those retro rockets are just eye-candy thing or do they actually do stuff?

Link to comment
Share on other sites

25 minutes ago, KvaNTy said:

@Icecovery thanks for such a nice mod! Especially for it's built-in functionality so we don't have to add another bunch of strictly situational parts to our already monstrous part packs.

First things first: Is there a way to make it comparable with  KSP 1.2.2? I've removed all "using KSP.Localization;" references throughout the code and recompiled it for 1.2.2 to make it at least load correctly but nothing happens during descent anyway. I'm getting this in logs:
 

  Hide contents


[ERR 13:13:45.383] Cannot find module 'CL_LandingBurn' (1206048144)

[LOG 13:13:45.383] <color=#FF8C00ff>[Comfortable Landing]</color>Not detected CL_LandingBurn
[ERR 13:13:45.384] Cannot find module 'CL_AirBag' (-1155934444)

[LOG 13:13:45.384] <color=#FF8C00ff>[Comfortable Landing]</color>Not detected CL_AirBag
[ERR 13:13:45.385] Module CL_Buoy threw during OnStart: System.InvalidCastException: Cannot cast from source type to destination type.
  at CL_Buoy.OnStart (StartState state) [0x00000] in <filename unknown>:0 
  at Part.ModulesOnStart () [0x00000] in <filename unknown>:0 

...

[ERR 13:15:50.660] Cannot find module 'CL_LandingBurn' (1206048144)

[LOG 13:15:50.661] <color=#FF8C00ff>[Comfortable Landing]</color>Not detected CL_LandingBurn
[ERR 13:15:50.661] Cannot find module 'CL_AirBag' (-1155934444)

[LOG 13:15:50.662] <color=#FF8C00ff>[Comfortable Landing]</color>Not detected CL_AirBag
[ERR 13:15:50.662] Module CL_Buoy threw during OnStart: System.InvalidCastException: Cannot cast from source type to destination type.
  at CL_Buoy.OnStart (StartState state) [0x00000] in <filename unknown>:0 
  at Part.ModulesOnStart () [0x00000] in <filename unknown>:0 

 

If you are using the version I committed four days ago (bb2bc8e), it does have some problems and I haven't resolved yet, maybe try the earlier version?

32 minutes ago, KvaNTy said:

And second: I can't seem to find if those retro rockets are just eye-candy thing or do they actually do stuff?

They will start up the solid fuel engine in the part. And of course engines use ModuleEngines/ModuleEnginesFX/ModuleEnginesRF to delimit.

Link to comment
Share on other sites

Yep, looks like taking earlier revision solved the issue. So looks like the only thing making CL incompatible with earlier KSP builds are KSP.Localization references.
Took me some time to fix MM configs for Mark3-9 pod from pre-1.3.0 version of VenStockRevamp(it had different model and part name) and to make it work well with RO rescaling. Ended up with such universal config:
 

Spoiler

//NearFutureSpacecraftPod.cfg


@PART[mk3-9pod|command-mk3-9]:NEEDS[!RealismOverhaul]:FOR[ComfortableLanding]
{
	MODEL
	{
		model = ComfortableLanding/Models/Mk3-9/AirBagMk3-9
   		scale = 1.0, 1.0, 1.0
		rotation = 0.0, 0.0, 0.0
		position = 0.0, 0.0, 0.0
	}
	MODULE
	{
		name = ModuleAnimateGeneric
		animationName = CL_Mk3-9
		startEventGUIName = Deploy
		endEventGUIName = Close
		actionGUIName = Toggle
		restrictedNode = bottom
		allowManualControl = false
	}
	MODULE
	{
		name = CL_ControlTool
	}
	MODULE
	{
		name = CL_AirBag
		inflateAltitude = 500.0
		crashToleranceAfterInflated = 45.0
		DeflateTransformName = DeflateTransform
		deflateScaleX = 1.0
		deflateScaleY = 1.0
		deflateScaleZ = 1.0
		InflateTransformName = InflateTransform
		inflateScaleX = 0.1
		inflateScaleY = 0.1
		inflateScaleZ = 0.1
		inflateSoundPath = ComfortableLanding/Sounds/Inflate_A
		volume = 1.0
		deflateSoundPath = ComfortableLanding/Sounds/Touchdown
		volume2 = 1.0
	}
}

@PART[mk3-9pod|command-mk3-9]:NEEDS[RealismOverhaul]:AFTER[zzzRealismOverhaul]:FOR[ComfortableLanding]
{
	MODEL
	{
		model = ComfortableLanding/Models/Mk3-9/AirBagMk3-9
   		scale = 1.6, 1.6, 1.6
		rotation = 0.0, 0.0, 0.0
		position = 0.0, 0.0, 0.0
	}
	MODULE
	{
		name = ModuleAnimateGeneric
		animationName = CL_Mk3-9
		startEventGUIName = Deploy
		endEventGUIName = Close
		actionGUIName = Toggle
		restrictedNode = bottom
		allowManualControl = false
	}
	MODULE
	{
		name = CL_ControlTool
	}
	MODULE
	{
		name = CL_AirBag
		inflateAltitude = 500.0
		crashToleranceAfterInflated = 45.0
		DeflateTransformName = DeflateTransform
		deflateScaleX = 1.0
		deflateScaleY = 1.0
		deflateScaleZ = 1.0
		InflateTransformName = InflateTransform
		inflateScaleX = 0.1
		inflateScaleY = 0.1
		inflateScaleZ = 0.1
		inflateSoundPath = ComfortableLanding/Sounds/Inflate_A
		volume = 1.0
		deflateSoundPath = ComfortableLanding/Sounds/Touchdown
		volume2 = 1.0
	}
}

 

Still having some buoyancy issues with stock Mark1-2 pod. It kinda works on its own, and even CL does it's job. But with RO Mk1-2 suddenly gets buoyancy of a solid brick, no matter with CL or without. Actually CL goes crazy as soon as pod starts to sink, repeats this exception over and over again:

Spoiler

[EXC 01:54:15.954] NullReferenceException: Object reference not set to an instance of an object
	ModuleAnimateGeneric.UpdateAnimSwitch ()
	ModuleAnimateGeneric.Toggle ()
	CL_Buoy.Inflate ()
	CL_ControlTool.FixedUpdate ()

 


Can't yet figure out what exactly in RO makes it sink like that.

Link to comment
Share on other sites

  • 2 weeks later...

Hello!

My computer is a potato like Pol, but your mod makes it look less like a potato :D

Album https://imgur.com/a/r3hfa will appear when post is submitted
https://imgur.com/a/r3hfa       I don't know how to use Imgur :(

Is there any chance the mod will include the ability to add parts manyally? Like modular kinda parts. 

Do the parts let you land coming in faster? (Normally you cant land faster than 6,5 m/s, does CL let you land faster or is it only visual? I don't wanna try it out myself and lose crew)

Thanks!

Edited by Pablowako
I'm still learning how to interact on forums. Still getting the hang of Imgur.
Link to comment
Share on other sites

21 minutes ago, Pablowako said:

Hello!

My computer is a potato like Pol, but your mod makes it look less like a potato :D

Album https://imgur.com/a/r3hfa will appear when post is submitted
https://imgur.com/a/r3hfa       I don't know how to use Imgur :(

Is there any chance the mod will include the ability to add parts manyally? Like modular kinda parts. 

Do the parts let you land coming in faster? (Normally you cant land faster than 6,5 m/s, does CL let you land faster or is it only visual? I don't wanna try it out myself and lose crew)

Thanks!

2

Yeah, the standalone pack is in the plan(or maybe just add in the heat shield).(But you may have to wait a few weeks because I'm really busy at my schoolwork)

And actually, it really allows you to land faster——for pod who has the airbag and retro-rockets——But not buoy, of course not.:D

 

Link to comment
Share on other sites

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