Jump to content

[WIP] "Connected Living Space"- API for connected habs (new download 9 June 14)


codepoet

Recommended Posts

Hi there, I just created some extra configs for mods I use, and thought I'd share:

https://drive.google.com/file/d/0B15B3MQ2F4JTakFmM1JhRjNiSkE/edit?usp=sharing

support for the following mods:

- Spaceplane Plus

- KASA IXS mod (for the stock version, but probably works for Interstellar version too if part names are the same)

- MP_Nazari - Mk3 Refit

- TouhouTorpedo - Mk3 and Mk4 expansion

- KAX

- Hawkspeed Deployable Airstairs

- SH_Mods (featuring the KN2 Cockpit and Passenger Can)

Wow! You are awesome. I will definitely ship these with the next release (unless the maintainers of the actual mods are interested to ship them with the mod. I will ask....

Link to comment
Share on other sites

Wow! You are awesome. I will definitely ship these with the next release (unless the maintainers of the actual mods are interested to ship them with the mod. I will ask....

It was a straightforward bit of copy-pasta, and this is in no way fully checked out, but very little that could go wrong. I'm not completely sure how it behaves for more unusual parts (see the IXS hull, it has extra kibble on the sides), all my edits were for traversing stack nodes, nothing surface attachable in there. No sense waiting around though, this functionality will be stock in 0.25.

Link to comment
Share on other sites

It was a straightforward bit of copy-pasta, and this is in no way fully checked out, but very little that could go wrong. I'm not completely sure how it behaves for more unusual parts (see the IXS hull, it has extra kibble on the sides), all my edits were for traversing stack nodes, nothing surface attachable in there. No sense waiting around though, this functionality will be stock in 0.25.

I have heard that moving around inside craft will be in 0.25, but I am not clear of if there will be the concept of some part being passable and others not (which is a crux of CLS). Do you have any more info about 0.25 than I do? I am a bit worried that 0.25 will make CLS not really work anymore without providing all its features :(

Link to comment
Share on other sites

I have heard that moving around inside craft will be in 0.25, but I am not clear of if there will be the concept of some part being passable and others not (which is a crux of CLS). Do you have any more info about 0.25 than I do? I am a bit worried that 0.25 will make CLS not really work anymore without providing all its features :(

I know only what Maxmaps told us. He didn't clarify if this logic test would happen, but they do pay attention to what modders do, so they'll have taken on board what CLS does. I cannot imagine they'll make it as absurd as transferring between two crewcans in orbit through a girder. How they manage compound parts which have both crew and fuel, I can't see how an approach different from yours would improve things. The only thing they could do beyond CLS, is summon crew from anywhere in the craft (if passable) to the EVA hatch without first having to transfer to the hatch's part.

Link to comment
Share on other sites

I know only what Maxmaps told us. He didn't clarify if this logic test would happen, but they do pay attention to what modders do, so they'll have taken on board what CLS does. I cannot imagine they'll make it as absurd as transferring between two crewcans in orbit through a girder. How they manage compound parts which have both crew and fuel, I can't see how an approach different from yours would improve things. The only thing they could do beyond CLS, is summon crew from anywhere in the craft (if passable) to the EVA hatch without first having to transfer to the hatch's part.

I am skeptical. Doing what CLS does is not obvious. Before we have CLS we had CrewManifest that just allowed kerbels to be placed into a different part, and that was seen as a big step forward. It was only once we started doing that that we released is was no realistic to transfer a kerbal up a girder.

If 0.25 adds crewmanifest style transfers then there will be no reason to use KerbalCrewTransfer or ShipManifest, and hence no reason to use CLS, so I can see the CLS concept dying out.

Link to comment
Share on other sites

If 0.25 adds crewmanifest style transfers then there will be no reason to use KerbalCrewTransfer or ShipManifest, and hence no reason to use CLS, so I can see the CLS concept dying out.

I very much hope there will be a way for CLS to live on - it's one of my must-have mods! Hopefully the 0.25 crew transfer mechanism will have hooks.

Link to comment
Share on other sites

Odd, CLS definitely doesn't work for at least one of the Coffee Industries passenger fuselages, even though the right-click info box says CLS is live. The only reason I can think is because it contains fuel. Is there any logic in CLS which blocks transfer if there's fuel in the part also?

Link to comment
Share on other sites

Similar thing happened with a SXT part, again because it had fuel. This time, the transfer happened but because the part has no hatch and the only thing visible on right-click is the fuel gauge, I couldn't get them out again.

Link to comment
Share on other sites

Heya, looking forward to surface attachment passage.

Anyway, I whipped up some patches for a few mods that needed it.

I'm not sure if this is the best way to patch things, as this is my first patch. It would be nice to simply patch anything with CrewCapacity > 0.


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


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


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


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


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


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


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


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


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


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


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


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


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


@PART[Mark1-2SciencePod]:HAS[!MODULE[ModuleConnectedLivingSpace]]
{
MODULE
{
name = ModuleConnectedLivingSpace
passable = true
}
}


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


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


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


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


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


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


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

Link to comment
Share on other sites

  • 3 weeks later...

I might be doing something wrong.

I have a part that changes habitability and passability (I'm making wetworks) and I want to properly support CLS. All I have to do in my plugin is find a ModuleConnectedLivingSpace component on the part, and change .passable. right? Should CLS auto-update habitable spaces on a change like that? I can't seem to get it to do so without switching vessels away and back again.

Do I have to manually pump it somehow? It looks like what I'd need is CLSVessel.Populate() but that's marked internal.

Link to comment
Share on other sites

I might be doing something wrong.

I have a part that changes habitability and passability (I'm making wetworks) and I want to properly support CLS. All I have to do in my plugin is find a ModuleConnectedLivingSpace component on the part, and change .passable. right? Should CLS auto-update habitable spaces on a change like that? I can't seem to get it to do so without switching vessels away and back again.

Do I have to manually pump it somehow? It looks like what I'd need is CLSVessel.Populate() but that's marked internal.

I have mused on wetworks type mods before, and I think to support them I would need to provide a hook, so that a part can tell me that it has changed its capacity. I have the same problem with inflatable habs. If you are willing to work with me on this I would be happy to do it, but I first want to see how 0.25 affects things - I suspect CLS will soon be redundant.

Link to comment
Share on other sites

I first want to see how 0.25 affects things - I suspect CLS will soon be redundant.

My current and limited understanding is that, while crew transfer has been implemented in the stock game, it doesn't account for unpassable parts or nodes like CLS does.

It would be nice if there was a way to hook CLS into the stock crew transfer function.

Link to comment
Share on other sites

My current and limited understanding is that, while crew transfer has been implemented in the stock game, it doesn't account for unpassable parts or nodes like CLS does.

It would be nice if there was a way to hook CLS into the stock crew transfer function.

Yep, I think the role of CLS from 0.25 on should be to disable transfers between non-connected nodes. ;)

Link to comment
Share on other sites

If you are willing to work with me on this I would be happy to do it, but I first want to see how 0.25 affects things - I suspect CLS will soon be redundant.

Understandable. I'm trying to identify all the bottlenecks I can with 0.24.2 mods while the 0.25 dust settles.

What would you need from me?

Link to comment
Share on other sites

Understandable. I'm trying to identify all the bottlenecks I can with 0.24.2 mods while the 0.25 dust settles.

What would you need from me?

Well I would have to provide a new version with the hook, and then you test it by creating a version of your mod that tickles the hook whenever you convert your wetworkshop.

Is 0.25 out yet? I can never tell - so many people getting excited makes it hard to distinguish the stuff from the fluff.

Link to comment
Share on other sites

Is 0.25 out yet? I can never tell - so many people getting excited makes it hard to distinguish the stuff from the fluff.

It came out just yesterday, and everyone's scrambling to check that (or make their) add-ons compatible :)

Link to comment
Share on other sites

Well I would have to provide a new version with the hook, and then you test it by creating a version of your mod that tickles the hook whenever you convert your wetworkshop.

I can do that.

Is 0.25 out yet? I can never tell - so many people getting excited makes it hard to distinguish the stuff from the fluff.

You can tell when the "0.25 hype thread" drops off the first page and the mods have to start locking "0.26 hype thread" threads instead.

Link to comment
Share on other sites

OK< well first I will have a look at 0.25 and see if CLS has any future at all. If so we can get to work...

To reiterate - my understanding is that the current crew transfer system does not check for passability - therefore, CLS is still important for realism.

Link to comment
Share on other sites

To reiterate - my understanding is that the current crew transfer system does not check for passability - therefore, CLS is still important for realism.

I can certainly confirm, CLS is still unique, stock KSP wasn't made to implement the checks it does. And CLS remains a much needed add-on for those who like more realism in building/operating complex vessels.

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