Jump to content

[1.12.x] Connected Living Space v2.0.2.0 (12 Feb 2022)


Papa_Joe

Recommended Posts

that would make sense. The config for the part in question does not allow radially attached parts.

However, the upcoming update will allow you to "tweak" your vessel designs to allow these kind of activities and to see that they are correct while in the VAB/SPH.

Read up in the earlier posts about the new VAB/SPH tweakables...

No pressure, but I'm now really looking forward to the new tweakables. This is going to allow some pretty awesome new station and base designs. :-)

Link to comment
Share on other sites

I'm still working out the pull request Merge. I may need to manually update the master :(

I expect to publish an update later tonight (CST US).

No pressure, but I'm now really looking forward to the new tweakables. This is going to allow some pretty awesome new station and base designs. :-)

Sorry for the delay folks. Real life took a front seat for a bit. Back on it today. Also, the recent discussions on cargo bays revealed some interesting things about CLS. Currently, CLS considers a Cargo bay passable.

This poses an interesting realism issue if you were to open the cargo bay doors to space....

I personally think that a cargo bay part itself should not passable (it is not designed to hold an atmosphere), but you should be able to add a docking port and make it possible to be passable all the way to the port. So, while the part itself is not passable, the "walls" should be. This can easily be accomplished with a Module manager config by making the part Not passable but making the passablenodes the top and bottom.

The module Manager Config would look like this (Mk2 small cargo bay as an example):


@PART[mk2CargoBayS]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = False
passablenodes = bottom, bottom2, top, top2
}
}

The main issue is that the current CLS code does not support this configuration condition.

I'm working this out now, and I think this will give us a more "realistic" experience...

Edited by Papa_Joe
Link to comment
Share on other sites

The cargo bay example is interesting. I am not saying this is the way forward, but consider this:

Maybe a different way of doing the CLS thing is to consider that within each part there are several attachment nodes. A different way of doing all the CLS config is to provide a list of which of these attachment nodes are connected to each other. This would allow for there being two separate living spaces within a single part. This would be useful for the cargo bay, where you could have a node on the top of the part that is connected to a node inside the cargo bay that a docking port might be attached to. At the other end you have the same arrangement, but the two pairs are not connected to each other.

I have no idea how exisiting parts and configs could be adapted to this new scheme or if there are other problems that would emerge (most likely), but there is a thought for you all.

Edited by codepoet
Link to comment
Share on other sites

If it was me, the way I would have done it is written the code such that two ModuleConnectedLivingSpace modules on the same part do not interact with each other. Looking at the source code, I believe the mod currently goes through every ModuleConnectedLivingSpace module on a part, collates all the accessible nodes and then decides whether you can get from point A to point B. Instead you could do the check at the module level rather than the part level - checking for each CLS module in turn if that particular module allows passage, then moving on to the next one if the answer is "No."

Then the config file would be as simple as this:

@PART[mk2CargoBayS]:HAS[!MODULE[ModuleConnectedLivingSpace]] 
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
impassablenodes = bottom , bottom2
}

MODULE
{
name = ModuleConnectedLivingSpace
passable = true
impassablenodes = top , top2
}
}

Edited by Grumman
Link to comment
Share on other sites

The cargo bay example is interesting. I am not saying this is the way forward, but consider this:

Maybe a different way of doing the CLS thing is to consider that within each part there are several attachment nodes. A different way of doing all the CLS config is to provide a list of which of these attachment nodes are connected to each other. This would allow for there being two separate living spaces within a single part. This would be useful for the cargo bay, where you could have a node on the top of the part that is connected to a node inside the cargo bay that a docking port might be attached to. At the other end you have the same arrangement, but the two pairs are not connected to each other.

I have no idea how exisiting parts and configs could be adapted to this new scheme or if there are other problems that would emerge (most likely), but there is a thought for you all.

If it was me, the way I would have done it is written the code such that two ModuleConnectedLivingSpace modules on the same part do not interact with each other. Looking at the source code, I believe the mod currently goes through every ModuleConnectedLivingSpace module on a part, collates all the accessible nodes and then decides whether you can get from point A to point B. Instead you could do the check at the module level rather than the part level - checking for each CLS module in turn if that particular module allows passage, then moving on to the next one if the answer is "No."

Then the config file would be as simple as this:

@PART[mk2CargoBayS]:HAS[!MODULE[ModuleConnectedLivingSpace]] 
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
impassablenodes = bottom , bottom2
}

MODULE
{
name = ModuleConnectedLivingSpace
passable = true
impassablenodes = top , top2
}
}

Interesting thoughts. I was looking at the code and trying to determine the most efficient way forward. The passablenodes idea is limited as it does not easily allow distinguishing between spaces and does not seem to have been plumbed. Atm, the passablenodes attribute does not appear to be usable or needed. The multiple modules method may well be the right way, but impacts other areas of the code.

good thoughts both of you. Let me ponder this a bit...

Link to comment
Share on other sites

  • 2 weeks later...

Stupid question: is there a "How to" out there or how can i connect vessels to a living space?

I only get messages "not same living space. kerbals have to eva".

Thanks for tips and hints.

Link to comment
Share on other sites

Stupid question: is there a "How to" out there or how can i connect vessels to a living space?

I only get messages "not same living space. kerbals have to eva".

Thanks for tips and hints.

It's pretty straightforward, actually. You should be able to transfer through any parts that make sense, such as capsules, adapters, docking ports, and a few others. Some parts don't let you transfer if the docking port is attached to a wall instead of the end (such as the mk1pod).

If you dock two ships, then you will have to open the hatches between the ships before you can transfer (via right-click on the part). Hatches close automatically when you undock.

Clicking on the CLS button will show a visualization of the selected living space on the active vessel, to help you suss out what's connected.

Link to comment
Share on other sites

suggestion - when you click transfer button to move a kerbal, parts with crewcapacity>0 highly, could this 1) check if full 2) check if a CLS path to it, and adjust highlight to not show invalid locations?

Link to comment
Share on other sites

suggestion - when you click transfer button to move a kerbal, parts with crewcapacity>0 highly, could this 1) check if full 2) check if a CLS path to it, and adjust highlight to not show invalid locations?

CLS itself does not have a transfer button (although stock does). Should this perhaps be a suggestion for Ship Manifest instead?

Link to comment
Share on other sites

First, my apologies for the long absence. My real life has seen several significant changes that required my complete attention. I'm now getting back into KSP support.

Now, to address the questions above.

It seems that any CLS support for PorkJet's Habitat Pack has been removed (despite the top post saying that support is provided), and CLS now assumes that the parts are impassible. Would it be possible to add these back?

I did think it was still there. I will investigate and ensure it is included.

Stupid question: is there a "How to" out there or how can i connect vessels to a living space?

I only get messages "not same living space. kerbals have to eva".

Thanks for tips and hints.

The WIKI provides a wealth of info on how vessels are connected. Additionally, while in the VAB or SPH, CLS provides support for "visualizing" the living spaces of your vessel during design. Finally, with the upcoming new release, it will be possible to "tweak" parts to allow passability while in the VAB/SPH using the part's tweakable interface.

suggestion - when you click transfer button to move a kerbal, parts with crewcapacity>0 highly, could this 1) check if full 2) check if a CLS path to it, and adjust highlight to not show invalid locations?

Not sure I understand the request. can you provide a specific example, including the parts that are causing you issues? Out of the box, CLS provides exactly the support you are requesting. Are you are using SM to perform the transfer or are you using KSP's stock Transfer mechanism?

Thanks for any additional info you can provide to assist in answering/addressing your concern.

Link to comment
Share on other sites

ah....

mk1-2 pod, fuselage, pod, pod

fill middle pod with kerbals

click hatch on middle pod and click transfer

all 3 pods highlight, this is stock? when the hell was that added XD

any way to disable that? like from a cfg? it needs to burn

and i havent used CLS since 0.90, i thought it didn't need ship manifest

Link to comment
Share on other sites

ah....

mk1-2 pod, fuselage, pod, pod

fill middle pod with kerbals

click hatch on middle pod and click transfer

all 3 pods highlight, this is stock? when the hell was that added XD

any way to disable that? like from a cfg? it needs to burn

and i haven't used CLS since 0.90, i thought it didn't need ship manifest

You don't need SM to use CLS. However, CLS does not come with crew transfer capability, and never has. It does however support the Stock crew transfer feature of KSP. You can use the stock transfer with CLS and either respect the living space restrictions, or override it to allow transfers anywhere.

As far as Porkjet, I do remember something to the effect of what codepoet stated above. I'll research and take appropriate action as needed.

Link to comment
Share on other sites

Sorry if this is a question with an obvious answer but... wasn't the ability to transfer Kerbals between different pods in a ship/station recently added to the stock game? I assume there must be some additional feature that this mod offers that's the reason for why it has continued to be supported. What is that feature exactly?

I'm installing Deep Freeze and it has this listed as a pre-requisite, and I'm just wondering why it's needed.

Link to comment
Share on other sites

Sorry if this is a question with an obvious answer but... wasn't the ability to transfer Kerbals between different pods in a ship/station recently added to the stock game? I assume there must be some additional feature that this mod offers that's the reason for why it has continued to be supported. What is that feature exactly?

I'm installing Deep Freeze and it has this listed as a pre-requisite, and I'm just wondering why it's needed.

Stock will let you transfer your Kerbals through such parts as fuel tanks, engines, girders - well, anything. CLS identifies "connected living spaces" where you can transfer a Kerbal and limits you to that. Also, it includes a feature allowing you to highlight parts that are connected, to help you visualize it.

It's mostly intended to be used as a base for more sophisticated mods, but it's usable on it's own. That's how I use it.

There's more info in the first post.

Link to comment
Share on other sites

  • 5 weeks later...

I asked on add-on development but it might be a better idea to put a request here since cls is brilliant must have mod.

It would be super if cls had a feature sort of "next available space". Like in a large moon base I land a craft with 7crew and I need either to enter the closest hatch and transfer crew or move them to the following hatch and enter there until there's no more space on the part.

Cool if we could get them all in through the same hatch and when that specific part was full they would be transferred automatic to the next available crew space!

Great job for picking up on cls!

Link to comment
Share on other sites

  • 3 weeks later...

Is there anyway to combine CLS with Ubi Welding mod, in order to Weld/Merge IN-flight parts together using the colour selection CLS got? If it works, it would lower the part count for stations in orbit, and when docking a new module onto the station, CLS select them open gates etc, and the station "model" is updated. And same goes in reverse, first close gates / CLS deselect, and then its 2 vanilla docked parts and then undock?

Just spitting ideas, on the of chance nobody thought about it

Link to comment
Share on other sites

The Mk3 Cargo Bays and Z-4K Battery (which has crew hatches) are missing CLS support. Here is a patch:

@PART[batteryBankLarge]:Final
{
%MODULE[ModuleConnectedLivingSpace]
{
%passable = true
}
}
@PART[mk3CargoBay*]:Final
{
%MODULE[ModuleConnectedLivingSpace]
{
%passable = true
}
}

Link to comment
Share on other sites

I have this code to patch in what i think is a Connected Living Space Fix for KIS containers, OBI Workshop ThunderAeroSpace LifeSupport, but thx for the mk3cargobay headsup, dont use it myself that often

@PART[probeStackLarge]:HAS[!MODULE[ModuleConnectedLivingSpace]] 
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}
@PART[batteryBankLarge]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}
@PART[KIS_Container2]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}
@PART[KIS_Container3]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}

@PART[OSE_Workshop]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}

@PART[ose6000]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}
@PART[ose3000]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}

@PART[TacLifeSupportMFTContainerLarge]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}
@PART[TacFoodContainerLarge]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}
@PART[TacLifeSupportContainerLarge]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}
@PART[TacOxygenContainerLarge]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}
@PART[TacWasteContainerLarge]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}
@PART[TacWaterContainerLarge]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}

Link to comment
Share on other sites

for anyone using

the wonderfull cockpit iva's (and thus 3 new cockpits) made by

http://forum.kerbalspaceprogram.com/threads/96148-V5-0-RC1-released-AeroKerbin-Industries-Modified-IVAs/page17

i have a connected living spaces config, already shared in that thread but eh, the better findable the better right :D?

https://dl.dropboxusercontent.com/u/15950995/CLSAKIIVAs.cfg

Link to comment
Share on other sites

  • 4 weeks later...

Hey All, I'm still around.

I've released an update to ShipManifest, so now I can focus on CLS.

I've noted the discussions of late and am formulating a plan. I have much work already done that has been discussed several pages back, that I will include in the current discussion.

Be back in a bit with a proposed change log for the next release.

Finally, the current CLS works fine in KSP 1.0.5.

Link to comment
Share on other sites

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