Jump to content

[1.12.x] - Modular Kolonization System (MKS)


RoverDude

Recommended Posts

Is it intentional that the Tundra Assembly Plant can only operate while landed for purposes of Global Construction? Since Global Construction allows for orbital assembly of craft using the dockable kit... and that kit is included with the minimal GC install that comes with MKS, I had not realized that they would have that limitation. I had hoped to use that functionality to build stations in orbit that would be difficult to get up the gravity well.

I mean, fair enough. MKS has whatever rules it has, and ultimately I can just cheat to fix the situation in my current game (a station core connected to a giant deployed kit, unable to do anything about it)

I guess I shouldn't have assumed just because the Tundra parts look like space station modules.

Are there any other functions (other than power distribution) that will only function while landed? I'm sure this was in the wiki somewhere, but since I apparently totally missed it, I'll probably add a more prominent warning for the next person who comes along, to avoid a similar surprise. :)

Link to comment
Share on other sites

35 minutes ago, Tokamak said:

Is it intentional that the Tundra Assembly Plant can only operate while landed for purposes of Global Construction? Since Global Construction allows for orbital assembly of craft using the dockable kit... and that kit is included with the minimal GC install that comes with MKS, I had not realized that they would have that limitation. I had hoped to use that functionality to build stations in orbit that would be difficult to get up the gravity well.

I mean, fair enough. MKS has whatever rules it has, and ultimately I can just cheat to fix the situation in my current game (a station core connected to a giant deployed kit, unable to do anything about it)

I guess I shouldn't have assumed just because the Tundra parts look like space station modules.

Are there any other functions (other than power distribution) that will only function while landed? I'm sure this was in the wiki somewhere, but since I apparently totally missed it, I'll probably add a more prominent warning for the next person who comes along, to avoid a similar surprise. :)

It is possible it is just in need of an update. Back when MKS integrated with GC the GC stood for ground construction.   It wasn't until later that orbital construction was added.

Link to comment
Share on other sites

1 hour ago, goldenpsp said:

It is possible it is just in need of an update. Back when MKS integrated with GC the GC stood for ground construction.   It wasn't until later that orbital construction was added.

I'm running the latest version of GC (2.6.0) and MKS (1.3.0.0) available in CKAN, and this entire install of KSP is about two months old tops, so that's probably not it. :(

I see that GC supports orbital workshops, so I was just going to edit the part cfg, but I'll be damned if I can find where the relevant module is defined. It doesn't seem to be in the main cfg file for the Tundra Assembly Plant. It must be in a patch somewhere, but I'm having no luck finding it.

Not demanding help (though it's welcome), just mostly whining. :)

Link to comment
Share on other sites

1 minute ago, Tokamak said:

I'm running the latest version of GC (2.6.0) and MKS (1.3.0.0) available in CKAN, and this entire install of KSP is about two months old tops, so that's probably not it. :(

I see that GC supports orbital workshops, so I was just going to edit the part cfg, but I'll be damned if I can find where the relevant module is defined. It doesn't seem to be in the main cfg file for the Tundra Assembly Plant. It must be in a patch somewhere, but I'm having no luck finding it.

Not demanding help (though it's welcome), just mostly whining. :)

I'm meaning that the MKS part may have had configurations based around GC being ground based only.  I don't know if it had an update after GC added the ability for orbital construction.  Also purely conjecture as I haven't looked myself.

Link to comment
Share on other sites

11 minutes ago, goldenpsp said:

I'm meaning that the MKS part may have had configurations based around GC being ground based only.  I don't know if it had an update after GC added the ability for orbital construction.  Also purely conjecture as I haven't looked myself.

Oh, I see. I misunderstood. All the more reason to try to find where the heck that module is defined, I guess.

Link to comment
Share on other sites

1 hour ago, Tokamak said:

Oh, I see. I misunderstood. All the more reason to try to find where the heck that module is defined, I guess.

I believe this may be related to the orbital construction activity having a separate configuration flag than the ground construction activity, so some configurations that may not have been updated may only have the ground only configuration.

It sounds like this may be the case for the MKS part in question.

The config changes are probably in a config script as opposed to part of the parts definition.  If it is out of date, probably something from the MKS directory.

 

Link to comment
Share on other sites

2 hours ago, Terwin said:

I believe this may be related to the orbital construction activity having a separate configuration flag than the ground construction activity, so some configurations that may not have been updated may only have the ground only configuration.

It sounds like this may be the case for the MKS part in question.

The config changes are probably in a config script as opposed to part of the parts definition.  If it is out of date, probably something from the MKS directory.

 

Looking at the part configs from the full install of Global Construction itself (which I don't have presently installed, I just have core installed) the important bit seems to be this, taken from GroundConstruction\Parts\Workshops\OrbitalWorkshop.cfg

    MODULE
    {
        name = SingleVesselConstructionWorkshop
        workshopType = ORBITAL
    }

That looks like it relates to a module on the Tundra Assembly Plant on my station in my save file, which is this:

WorkshopManager
{
  Workshops
  {
    Item
    {
      id = 2015236393
      VesselName = Tundra.AssemblyPlant (Workshop station base)
      PartName = MKS 'Tundra' Assembly Plant
      Stage = CONSTRUCTION
      State = IDLE
      EndUT = -1
      Workforce = Workforce: 6.0/60.0 SK
      workshopType = GROUND
      isOperable = False
      vesselID = afad6b505d2d4a1eabd8cc0bf6ab85df
    }
  }
}

However, grepping my entire GameData directory for a .cfg file containing "workshopType" gives me no results. So I'm not sure where to go from here. *scratches head* I also manually poked around for anything that looked applicable in the MKS and GroundConstruction directories, and didn't find anything apropos.

If I _can_ fix this, I'll also submit it to the github, but I'm at a bit of a loss at this step.

 

Oh, and yes, i did try just changing workshopType and isOperable in my safe file, and the game just automatically reverted them back.

Link to comment
Share on other sites

9 hours ago, Tokamak said:

Looking at the part configs from the full install of Global Construction itself (which I don't have presently installed, I just have core installed) the important bit seems to be this, taken from GroundConstruction\Parts\Workshops\OrbitalWorkshop.cfg

However, grepping my entire GameData directory for a .cfg file containing "workshopType" gives me no results. So I'm not sure where to go from here. *scratches head* I also manually poked around for anything that looked applicable in the MKS and GroundConstruction directories, and didn't find anything apropos.

You might want to ping @allista 

When MKS switched from EPL to Ground Construction (now Global Construction) it supported surface construction *only*. Allista added orbital construction comparatively recently hence the name switch over to Global Construction (GC). I'm assuming he added the separate workshopType parameter to differentiate a ground workshop from an orbital workshop and MKS just hasn't caught up yet. I'm not sure what happens if you try to use a ground workshop in space... possibly bad things as the DIY kit either expects to be docked or landed. 

The simplest change would be to update *all* the MKS workshop CFGs to match the corresponding part from GC. It might also be helpful to add a workshop to either the Karibou cab or passenger cab as an MKS complement to GC's own mobile workshop. Additionally MKS still includes two very cool orbital and ground construction platforms that were built for EPL. EPL support is no longer maintained in core MKS but the parts are still bundled, just hidden if you don't have EPL. The textures aren't quite up to current MKS standards so I can see Rover not wanting to bring them back officially but they could be easily be patched to support GC. 

Link to comment
Share on other sites

On 23.6.2020 at 23:57, Terwin said:

Nehmen Sie es mit einer Kralle und tun Sie einfach so, als wäre es ein Behälter voller Schmutz (schließen Sie es an ein Sieb an).

Thank you for the help, I forgot to switch the Sifter to resource havester, thanks to your contribution I came up with it! now I'm trying to understand the whole thing with Global Construction. If you don't speak english well, it's not that easy. I thought I could build something for the inflatabel workshop, but I think it only works with a DIY kit. well, I'll probably have to think about it further;)

 

Link to comment
Share on other sites

Regarding GC, @goldenpsp is correct that orbital construction is relatively new and there are no MKS parts specifically made for it. Because of the way it's implemented, having the ability to do both ground and orbital construction from the same part results in duplicate buttons in the PAW with no indication as to which is which. It's difficult to tell even from the UI if you've open the ground workshop or orbital workshop. The only way to tell the difference is to try to queue up a task.

I have written a ModuleManager patch that will update the Tundra Assembly Plant and 2.5M Workshop to also allow orbital construction but again, due to the confusing duplication of buttons in the PAW, I have not yet created a PR for it. If anyone is interested in testing out the patch and can live with the duplicated buttons, here are the relevant patches:

// For ground construction
@PART[Tundra_AssemblyPlant]:HAS[!MODULE[GroundWorkshop]]:NEEDS[GroundConstruction]
{
    MODULE
    {
        name = GroundWorkshop
        workshopType = GROUND
        Efficiency = 3
    }    
}
// For orbital construction
@PART[Tundra_AssemblyPlant]:HAS[!MODULE[SingleVesselConstructionWorkshop]]:NEEDS[GroundConstruction]
{
    MODULE
    {
        name = SingleVesselConstructionWorkshop
        workshopType = ORBITAL
    }    
}

 

Link to comment
Share on other sites

On 6/24/2020 at 4:27 PM, RoverDude said:

Need a lot more specificity.

Right. I was planning to use a Ranger Inflatable workshop for my base's OSE Workshop, as Pathfinder wasn't working correctly (It was also having the same problem). This is my base:

https://imgur.com/a/FQY7D7H (I don't know how to make the image appear on the post.)

Basically, it printed the first time I inflated it, but after KSP was closed and reopened, and the base was looked at again, the Workshop would freeze up at 100%. When I checked the log, I saw this:

Spoiler

[EXC 21:05:14.520] InvalidCastException: Specified cast is not valid.
    Workshop.W_KIS.KISWrapper.GetInventories (Vessel vessel) (at <476ea10d65914767a3468907f8f1d0d0>:0)
    Workshop.OseModuleWorkshop.AddToContainer (Workshop.WorkshopItem item) (at <476ea10d65914767a3468907f8f1d0d0>:0)
    Workshop.OseModuleWorkshop.FinishManufacturing () (at <476ea10d65914767a3468907f8f1d0d0>:0)
    Workshop.OseModuleWorkshop.ProcessItem (System.Double deltaTime) (at <476ea10d65914767a3468907f8f1d0d0>:0)
    Workshop.OseModuleWorkshop.FixedUpdate () (at <476ea10d65914767a3468907f8f1d0d0>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:LogException(Exception)
    Workshop.WorkshopUtils:LogError(String, Exception)
    Workshop.OseModuleWorkshop:FixedUpdate()
[ERR 21:05:14.527] [OSE] - OseModuleWorkshop_OnUpdate

[EXC 21:05:14.529] InvalidCastException: Specified cast is not valid.
    Workshop.W_KIS.KISWrapper.GetInventories (Vessel vessel) (at <476ea10d65914767a3468907f8f1d0d0>:0)
    Workshop.OseModuleWorkshop.AddToContainer (Workshop.WorkshopItem item) (at <476ea10d65914767a3468907f8f1d0d0>:0)
    Workshop.OseModuleWorkshop.FinishManufacturing () (at <476ea10d65914767a3468907f8f1d0d0>:0)
    Workshop.OseModuleWorkshop.ProcessItem (System.Double deltaTime) (at <476ea10d65914767a3468907f8f1d0d0>:0)
    Workshop.OseModuleWorkshop.FixedUpdate () (at <476ea10d65914767a3468907f8f1d0d0>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:LogException(Exception)
    Workshop.WorkshopUtils:LogError(String, Exception)
    Workshop.OseModuleWorkshop:FixedUpdate()
[ERR 21:05:14.530] [OSE] - OseModuleWorkshop_OnUpdate

If there is any other information you want, please let me know. 

EDIT:WAIT, WHAT?! I got a kerbal out (one of the two engineers in the inflatable workshop) and 5 seconds later, BAM! it printed (The focus was still on the kerbal). I have no idea what's going on. The log didn't say anything more.

Edited by MoonstreamInSpace
Link to comment
Share on other sites

19 hours ago, DoktorKrogg said:

Regarding GC, @goldenpsp is correct that orbital construction is relatively new and there are no MKS parts specifically made for it. Because of the way it's implemented, having the ability to do both ground and orbital construction from the same part results in duplicate buttons in the PAW with no indication as to which is which. It's difficult to tell even from the UI if you've open the ground workshop or orbital workshop. The only way to tell the difference is to try to queue up a task.

I have written a ModuleManager patch that will update the Tundra Assembly Plant and 2.5M Workshop to also allow orbital construction but again, due to the confusing duplication of buttons in the PAW, I have not yet created a PR for it. If anyone is interested in testing out the patch and can live with the duplicated buttons, here are the relevant patches:


// For ground construction
@PART[Tundra_AssemblyPlant]:HAS[!MODULE[GroundWorkshop]]:NEEDS[GroundConstruction]
{
    MODULE
    {
        name = GroundWorkshop
        workshopType = GROUND
        Efficiency = 3
    }    
}
// For orbital construction
@PART[Tundra_AssemblyPlant]:HAS[!MODULE[SingleVesselConstructionWorkshop]]:NEEDS[GroundConstruction]
{
    MODULE
    {
        name = SingleVesselConstructionWorkshop
        workshopType = ORBITAL
    }    
}

 

The GroundWorkshop overrides the workshopType option to GROUND in OnStart.

But you can use the SingleVesselConstructionWorkshop with workshopType = OMNI
This will give you a workshop that can only construct the dockable kit containers docked to the workshop vessel, but it'll work both in orbit and while landed.

Currently there's no truly omnipotent workshop module that would combine GroundWorkshop functionality (remote construction in a landed container) and orbital workshop that can build in orbit from docked containers.

Edited by allista
Link to comment
Share on other sites

1 hour ago, allista said:

The GroundWorkshop overrides the workshopType option to GROUND in OnStart.

It has admittedly been a while since I last looked at this but I did have these ModuleManager patches working with both GroundWorkshop and SingleVesselConstructionWorkshop modules on the same part at one point. It just resulted in 2 Workshop buttons in the PAW, one that launched the UI for the GroundWorkshop module and one that launched the UI for the SingleVesselConstructionWorkshop module.

Link to comment
Share on other sites

Just curious if I'm doing something wrong, or just misunderstand something. Are the kerbitrail flex-o-tubes meant to be just structural? I had thought they would act as a docking port and join multiple craft together into one, but that seems to be not happening. Or is there something else I have to do after connecting them that I am managing to miss?

Link to comment
Share on other sites

Just now, Tokamak said:

Just curious if I'm doing something wrong, or just misunderstand something. Are the kerbitrail flex-o-tubes meant to be just structural? I had thought they would act as a docking port and join multiple craft together into one, but that seems to be not happening. Or is there something else I have to do after connecting them that I am managing to miss?

They are basically giant KAS pipes :)

(That being said, folks should really take advantage of the fact that MKS works really well with lots of close, disconnected components).

'

Link to comment
Share on other sites

4 minutes ago, RoverDude said:

They are basically giant KAS pipes :)

(That being said, folks should really take advantage of the fact that MKS works really well with lots of close, disconnected components).

'

Ah, I see! I must just have not had my kerbal quite close enough to see that in the action menu.

Docked connections keep turning to undocked connections without any pattern that I can spot, when I switch vessels, but that's an issue for the KAS thread.

I do like these better than pipes, though. It makes a lot more sense to think of them as not having to EVA just to go from one part of the base to the other.

I must say, I've been playing Kerbal on and off for quite a few years, but never really tackled MKS. This adds a whole new element to the game, and a lot of new play value. Thanks for the cool thing!

Link to comment
Share on other sites

Incidentally, it IS really cool to be able to have a lot of disconnected bits, and the work that has gone into that shows. I guess the main thing is that I like to have my basic habitat joined up. Also a few things, like Global Construction, seem to care about how much of a resource is actually on the current craft at a given moment.

Link to comment
Share on other sites

9 hours ago, DoktorKrogg said:

It has admittedly been a while since I last looked at this but I did have these ModuleManager patches working with both GroundWorkshop and SingleVesselConstructionWorkshop modules on the same part at one point. It just resulted in 2 Workshop buttons in the PAW, one that launched the UI for the GroundWorkshop module and one that launched the UI for the SingleVesselConstructionWorkshop module.

Well, nothing should prevent this. But now that I know there's a use-case for it, I'll think of s better way.

1 hour ago, Tokamak said:

Incidentally, it IS really cool to be able to have a lot of disconnected bits, and the work that has gone into that shows. I guess the main thing is that I like to have my basic habitat joined up. Also a few things, like Global Construction, seem to care about how much of a resource is actually on the current craft at a given moment.

That's because GC has no support for the MKS distribution system. If be glad to add it, but I need help from folks here who knows how things work and what should be added to GC for it to recognize the resources stored elsewhere.

Link to comment
Share on other sites

7 hours ago, allista said:

Well, nothing should prevent this. But now that I know there's a use-case for it, I'll think of s better way.

That would be awesome! It's actually not that big a deal to just have 2 buttons in the PAW, it would just be helpful if they were labeled something like 'Ground Workshop' and 'Orbital Workshop'.

7 hours ago, allista said:

That's because GC has no support for the MKS distribution system. If be glad to add it, but I need help from folks here who knows how things work and what should be added to GC for it to recognize the resources stored elsewhere.

Take a look at ModuleLogisticsConsumer in USITools (https://github.com/UmbraSpaceIndustries/UmbraSpaceIndustries/tree/master/USITools/USITools/Logistics) as a starting point. Feel free to PM me and/or @RoverDude if you have specific questions or have suggestions for architectural changes to expose more hooks into that system.

Link to comment
Share on other sites

59 minutes ago, DoktorKrogg said:

Take a look at ModuleLogisticsConsumer in USITools (https://github.com/UmbraSpaceIndustries/UmbraSpaceIndustries/tree/master/USITools/USITools/Logistics) as a starting point. Feel free to PM me and/or @RoverDude if you have specific questions or have suggestions for architectural changes to expose more hooks into that system.

Do you have any docs to start with?

I mean, I can look at the code, but I have never played with MKS (wrong; I have in KSP-0.24 :cool:) and know nothing about logistics.

So the first question for me is actually not "how do I do IT" but rather "what IS it" :blush:

Should I somehow teach my modules to get resources from other vessels through some API? Or is there something more to it?

And in any case, is there a way to make without referencing USITools?

Edited by allista
Link to comment
Share on other sites

2 hours ago, allista said:

So the first question for me is actually not "how do I do IT" but rather "what IS it" :blush:

Here's a good primer on logistics:

https://github.com/UmbraSpaceIndustries/MKS/wiki/Functions-(Logistics)

Also, once WOLF is finally released, I think I'm going to try to either start doing some Twitch streams and/or put together a YouTube series that demonstrates everything USI from start to finish in a fresh career-mode save, including WOLF. So that might be a good way to see logistics in action without really having to experiment with it yourself.

2 hours ago, allista said:

And in any case, is there a way to make without referencing USITools?

Hmm... probably not, at least not in its current form. I'll have to think about that some more. If nothing else, the code for ModuleLogisticsConsumer might be a good starting point for you to implement a similar feature in GC. Since @RoverDude has decided to make GC a supported mod within the USI sphere, it's also possible that this could work the other way where USI logistics can "push" resources into GC if you provided some sort of hook for us to be able to do that.

Link to comment
Share on other sites

6 hours ago, DoktorKrogg said:

Also, once WOLF is finally released, I think I'm going to try to either start doing some Twitch streams and/or put together a YouTube series that demonstrates everything USI from start to finish in a fresh career-mode save, including WOLF. So that might be a good way to see logistics in action without really having to experiment with it yourself.

Let me be the first to say I would love to see this.

Link to comment
Share on other sites

17 hours ago, allista said:

Do you have any docs to start with?

I mean, I can look at the code, but I have never played with MKS (wrong; I have in KSP-0.24 :cool:) and know nothing about logistics.

So the first question for me is actually not "how do I do IT" but rather "what IS it" :blush:

Should I somehow teach my modules to get resources from other vessels through some API? Or is there something more to it?

And in any case, is there a way to make without referencing USITools?

I applaud your efforts and willingness for architectural code changes for better player experience
that takes a lot of energy especially when you're collaborating with other dev teams

that's what makes this game and player community so awesome.

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