Giter Site home page Giter Site logo

groundconstruction's Introduction

Ground Construction

Introduction

This mod allows you to build any vessel directly on a surface of any planet from a DIY (Do It Yourself) Kit that contains all the high-tech components, needed equipment and blueprints, using only raw materials produced on-site, energy and kerbal workforce.

The major benefit of the Ground Construction is that it allows you to build big, heavy, asymmetrical contraptions that aren't meant to fly at all. Buildings, or even blocks of buildings; heavy rovers; huge rockets held by launch clamps -- all this could be built with Ground Construction anywhere on any planet.

Features

  • Build anything: any ship, spaceplane, or really any construction you come up with in Editor. Even with launch clamps!
  • Build anywhere on the surface: the assembled ship will appear right where you've placed the Kit.
  • No complex logistics, no special production parts required: all you need is a habitable compartment with enough space, raw materials and qualified kerbal personnel.
  • Background operation: fly other missions while construction takes place on a far-away planet. Days, even weeks may be required to build something complex, but you don't have to babysit your workers.
  • Wireless transfers: fill the assembled ship with resources and crew before you launch it using dedicated UI.
  • Centralized UI for progress tracking and fast switching to construction sites.

Requirements

Downloads

  • Spacedock is the main download site for releases
  • GitHub have sources (MIT), assets (CCBY-4.0) and also releases
  • CKAN is supported

How it works

First, you need a simple mining operation already running near the spot where you want to build something. So you need: a Drill, an ISRU, some storage tanks for Ore, Metals and any other stuff that you want/need to supply the newly built ship with; some space to work in (hitch-hikers can, science lab or a big passenger compartment will do; we'll call it the Workshop) and, last but not least, kerbal engineers that will build things.

Second, you need to assemble the DIY Kit with required materials (good luck with finding enough Blutonium for RTG on Minmus), tools and components. This is, fortunately, the simplest thing: in Editor you have a special part, namely the DIY Kit Container, which allows you to "load" any previously created and saved ship inside of it. The container is automatically resized to fit its contents, which are much more compact and weight much less than the original ship.

Third, you need to attach this container to a carrier or store it in a hold of a cargo ship and fly it across the Void to the construction site.

Then, all that's left is to summon the control UI of the Workshop, deploy the DIY Kit, add it to the construction queue and order the kerbals to work (day and night, no holidays, no weekends!).

Getting technical

How a ship is converted into a DIY Kit

In Editor, you add the DIY Kit Container part to the carrier you're building. In its part menu select "Select Vessel" to open the standard vessel selection dialog. Once selected, the ship is loaded into the Kit as follows:

For each part of a ship, its complexity is calculated as a function of dry mass, cost and number of modules the part carries. The complexity determines the fraction of part's dry mass that could be manufactured from Metals. Most resources are stripped away. The exceptions are: Solid Fuel, Ablator, all non-tweakable resources (cannot be transfered) and resources with zero density (EC, for one). Everything that's left is packed into the Kit. Thus, a set of Part Kits is produced, which (along with the blueprint of the ship) constitutes the contents of a DIY Kit.

A DIY Kit usually weights much less than a ship that is constructed from it, but, except for the resources, costs almost the same.

How a DIY Kit is converted back into the (new) ship

First of all, you need to land the kit somewhere on a flat surface, and, preferably, detach it from the carrier. For that DIY Kit Containers are equipped with their own simple decoupling mechanism, which is located on the top side, marked with yellow arrows.

Then you need to Deploy the Kit. This could be done by a kerbal in an EVA suit or remotely from a nearby Workshop. A deploying kit detaches any part that is still attached to it, then gradually "grows" (imagine that kerbals assemble working scaffolds inside the box) until it have the size of the ship that will be constructed; then it is attached to the surface, so it cannot be moved any more.

It doesn't matter how the Kit was oriented. As far as it lies on one of its sides, the deployment dimensions and the orientation of the launched vessel will be automatically chosen to correspond to the surface.

A deployed Kit can be processed by a nearby workshop with kerbals, but there are some limitations:

  1. The workshop should be at most 300m away.
  2. The kerbals that will be working on the Kit should be inside the Workshop, not in other parts of the same vessel.
  3. These kerbals should be engineers. Scientists or pilots don't count.
  4. The skill level and number of workers do count: a 5-star engineer works literally as much as five 1-star ones. And five 5-star engineers perform spontaneous miracles.
  5. The distance from the Workshop to the Kit affects construction efficiency and, consequently, the time needed. So it's best to make Workshops mobile and get as close to the Kit as possible.
  6. The amount of free space per kerbal inside the Workshop also affects efficiency: a small compartment with a place for a single kerbal may be more efficient than a big one packed with two dozen passenger chairs.
    • Note 1: the crewable parts that have Workshop capability have the "Ground Workshop" module (could be seen in part's extended tooltip in Editor), which shows the efficiency of that part.
    • Note 2: the efficiency of any generic habitat is capped at 50%. To be more efficient you need to use the provided Mobile Workshop part and build a rover with it.
  7. If you want to benefit from background construction, you need to make sure you have enough power and Metals to work with, as resources are not generated in the background.

When the Kit is complete, you can "wirelessly" transfer resources and crew to it from the Workshop using dedicated UI. Then you can Launch the assembled ship, which will appear at the exact place where the Kit was.

groundconstruction's People

Contributors

allista avatar hebarusan avatar kerbas-ad-astra avatar llinard avatar zerox7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

groundconstruction's Issues

No inflatable parts have workshop functionality, even when inflated

No inflatable parts have workshop functionality, even when inflated(old vessel, but the same vessel had workshop functionality on other parts)

Tundra assembly plant is only 50% workshop functionality.

I would expect the Ranger workshop and Tundra assembly plant to be around 100% as they are already workshops (although it may need to be a different configuration than making material kits or machinery, I did not check to see if that was an option).

The smallest 50% workshop I found was the tundra hub, so I will probably throw a couple of those on either my crew transport or the cargo hauler carrying the packaged base.(unless my final base package needs more than ~600 skill hours, at that point it makes sense to send up a ~250skh workshop rover kit as well)

I was kind of hoping I could use an inflatable workshop as my initial assembly facility(even if it was at 50%), might even design a base with a missing workshop so that I can then transfer it over after the base is built.

Box hint and deploy too big for Flex Clamp-O-Tron

I finally tracked this down to a part.
I have the Flexible Docking mod installed, and it looks like the expandable docking clamps are doing the same thing the drills were doing.
I tracked it down to the Flex-O-Clamp-O-Tron docking port. I replaced it with a normal Clamp-O-Tron and the box returned to it's correct size.
I was thinking that if you had some way of adding parts that did this to a cfg patch file, with a size setting that it should use as an override, the users could, as we find them, just give you updates to these files.
I'm not sure how you figure this, but as an example... (and my 2 cents)
something like
@part[somebadpart]:NEEDS[moditcamefrom]
{
@module{
name = gc_size_override
x = 45
y = 45
z = 20
}
}

gc-boxtoobig
gc-boxrightsize

Consider either physics easing or tethering when launching a base.

What it says on the tin. I see some bases 'pop' due to high speed colliders from animation modules. A few ways of fixing this, including dampening any velocity and rotation for a time period after load (a frame or two should cover it I think). Fixing animations to disable colliders during load is another option, but that would require code changes in stock or mod animation modules.

Transfer GC construction from Metals to MaterialKits.

For that:

  • Change single StructuralResource option into a list of StructuralResources
  • Write some kind of converter that will switch parts near construction site from Metals to StructuralResources (only if a user pushes a button).

Add ConstructionSkill experience effect.

Instead of using stock effects we need to add the effect class and an MM patch to add this effect to the Engineer. So that this effect could then be added to some MKS professions.

Add support for USITools when not using MKS

@allista I've gotten some time back to play/work on 1.5.1 kerbal stuff, and have found some things that are missing from GC when using USITools, but not using the full MKS.

  1. Parts can't be recycled back into MaterialKits.
  2. Recycled MaterialKits can't be put into your parts with storage.
  3. USITools ResourceWarehouse isn't supported.
  4. I also added support for StationPartsExpansionRedux containers compatibility with GC+USITools & no MKS (it already supports MKS)
    You may not want to add the last, but it's one of the best space station mods out there at the moment.
    I'm attaching my patch file, and you can do with it as you wish. I'd at least rename the file to something better. I'm currently using this on my system under 1.5.1 with no known issues.
    GC-NoMKS-Recycle.zip

On full build container explodes.

After trying to deploy a very large vehicle, I've had problems with it exploding after coming out of timewarp.

I've tried it on minnimus's great plains and the same problem happens.

I've been fiddling, it seems to be based on the width of the ship, that's all i have to report.

Autosave before launch doesn't save the launched vessel.

Still using KSP 1.3.0, so Hangar 3.3.2 - I find that if I load the automatically-created quicksaves (with names of the form "-before_launch") from immediately before launching a vessel, the vessel that was to be launched just... disappears. It's gone from the hangar, but it's not spawned in the world.

This does not happen with manual quicksaves, and any other hangared vessels, whether in the same hangar or another one on the same craft, are unaffected.  That's something of a mitigating factor. Nevertheless, it makes those automatic saves worse than useless. I have thus far observed this phenomenon with a fairing hangar and with an inline hangar, the latter while testing in a sandbox game on the launchpad.

My guess (and come to think of it I should really read the code rather than just conjecturing like this) would be that the hangar plugin is triggering the quicksave and immediately proceeding with the remove-from-hangar-spawn-into-world dance, so that by the time the quicksave actually occurs the first of those steps has already finished.  Is there a way to wait until the quicksave is finished before continuing? Some blocking variant of whatever call it is you use to save the game, perhaps?

Hopefully-final edit: I was partially wrong.  The bug exists, but it's not a race condition; the code as it stands just removes the vessel before firing off the save. My best guess for a fix (bearing in mind that I don't know your code and this may be horribly wrong) would be to move the save from Source/HangarMachinery.cs line 753 up a few lines, to the top of the function (or at least to immediately after "if(!can_restore(stored_vessel)) return;").  You're removing the vessel in an if-test on line 742, before the save is fired off.

Paying loaded price for empty containers?

When designing a vessel to be constructed by GC, emptying containers of expensive resources(I have tested Enriched Uranium, Rare Metals and Exoitc Minerals), the price of the kit generated from the saved vessel does not reflect that the storage was emptied.

In one example, the only difference between the kits for a probe core+empty EU pod and probe core+full EU pod was the weight and number of material kits required, the cost of the kit was the same.

In another example, a MKS cargo module was set to Commodities(Rare metals and exotic minerals), and the cost of the kit was roughly the same as if the cargo module was full, then when I repainted it to dirt, the cost of the kit generated was much less(both cargo modules were empty)

This seems like a pricing error.

Alternate DIY Kit Shapes

The current and only DIY kit is a box which seems to simply grow/shrink on all axes. This can result in the "square peg in a round container" problem trying to fit the box in a round fairing, structural tube, cargo hold, or whatever.

A cylindrical DIY kit might better fit in many such scenarios. Some additional options to help fit the DIY container to a specific size might be:

  • Setting exact sizes for one or more dimensions. The kit must be allowed to grow/shrink on at least one of the kits dimensions.
  • Setting minimum/maximum sizes for one or more dimensions. The kit must have at least one dimension with an unrestricted size.
  • Box kits have three dimensions: length, width, and height.
  • Cylindrical kits have two dimensions: diameter, and height.

So for example, say I want to fit the kit into a 2.5m fairing. I could choose the cylindrical DIY kit and fix its diameter at 2.25m and let only the height grow.

Or say I wanted a box that would fit on a rover bed of a specific size without overhanging or being excessively tall. I could choose a box DIY kit and set the desired maximum length and maximum width to match the size of the rover bed and leave the height unrestricted.

Build a kit in a box docked to a station, then spawn a vessel docked to the same node, instead of the box.

Since it sounds like this may be within the scope of the changes you're making, I'd like to re-suggest an idea that someone posted in one of RoverDude's threads (MKS or Konstruction) awhile back: ability to extend existing vessels with GC instead of creating new ones. Imagine a DIYKit that holds a subassembly and docks onto something like a Konstruction port before being built, and when construction is completed, it spawns the subassembly onto existing vessel.

Multiple workshops

When multiple parts on one vessel are being used to construct a kit, each part needs to be individually associated with the kit in question and started.
Then once they are all activated they each calculate time remaining based only on the productivity of that one part and the work remaining.

Could there be a way to either combine multiple parts on a vessel into a larger 'virtual' workshop or to allow workshops to recognize that a given kit is being worked on by other workshops?

Kit Mass and Kit Res do not add up to vessel full mass

I know the topic of materials needed for construction of the DIY kits has been brought up before, but some extreme numbers has brought it to my attention lately. I wanted to construct a bsae on Duna, which is more unwieldy than it is heavy:

https://drive.google.com/open?id=1GqTlW6xh-Azz9A7jHqBROovWR01V4NGV

It is ~90 tons dry mass, with some machinery.

Now, if I put that into a DIY-kit, the mass ratio is sensible, as is the build cost for the kit itself from EL:

https://drive.google.com/open?id=1HkoJCv3G5o0pfFWDtD6jqaFVWEpo5E9B

Again, the masses add up and the Mkits and SP costs are reasonable. However, the kit reports it needs just above 700k of material kits to unpack! The mass difference should be around 40-50 tons in material kits, if you include the machinery already stored in the DIY kit.

Unable to close any assembly space.

I am using the most recent KSP version.

When you press "Create Empty Container" on any assembly space, it tells me i have to close the space first.
I am pressing close on the UI, but no effect.

Empty ground kit vanishes (mod conflict)

If you make an empty ground kit container and set it to a craft that use fuel tanks from KSI-E the kit with vanish and unable to be constructed. I found no other conflicts from KSI-E just the fuel tanks. My best guess is it doesn't like how the tanks are configurable and gives up when trying to figure out what should be in the tanks.

Deploying ship causes other ships with launch clamps to explode. (Possible but unlikely mod conflict?)

Built a Mun base/factory held up by launch clamps using your mod. Delivered, deployed, and built the mining truck to go with it. But during the launch "cut scene" the base vaporized with bits of it suspended in mid air. err... void. Spending the past... hour? or so testing and cross referencing stuff I concluded that there shouldn't be mod conflicts as I've made vehicles with this mod that have the same modded parts before (as in this week but here they are any way (KSPI-E, KAS, and Kerbal Foundries)). Almost giving up I noticed a green outline of something if my cursor was in just the right place. A little funny business and clipped the camera through the ground and found the launch clamps under the side of a cliff. Some more experiments and a little estimated math later I believe for what ever reason for a split second during the "cut scene" the base stops moving with the rotation of the Mun shoving it into the cliff. How the surviving parts are floating I have no idea. This btw does not effect ships not clamped to the ground even if the base goes through them when it moves. Edit: realizing an error in my measurements the base is not moving against the Muns rotation it actually moves northish.

Deploying docked container destroys construction vessel

This tends to happen when weight of container and vessel are comparable. If container is big enough, fast mass shift cause it to undock/crash or even send vessel out of the solar system.
Fought it with cheats + undockig after deploy starts and redocking again (it was quite a quest).
Masses and sizes were about 100+100 tons and 150m - length of constructed vessel.

The solution I see - manage speed of deployment manually or shift mass some other way.

GC should only report landed vessels as workshops

Currently the "Ground Workshops" dialog shows pretty much any vessel with crew capacity as workshops, even derelict capsules. Since this mods purpose is constructing on ground, only vessels with the status "landed" and ideally also crew aboard should be visible here.

Workshops don't realize they have engineers.

Workshops seem to only check to see if they have an engineer at physics load, not at construction start. This makes moving an engineer into a workshop a bit awkward, as you have to leave the scene and come back before changes take effect.

Diy kit container not selecting any vessel

Greetings, i need some help regarding ground construction. Specifically diy kit containers,

When i am trying to select any vessel as blueprint, nothing happens.

My ksp is 1.4.2 and the ground construction that i am using is the latest.
I am also using kis and kas respectively, please help
no vessel

Add reusable construction space module

One thing I'll miss from EPL (which was a nightmare, I'm not super sad it's gone) is being able to make tiny things, like an one-man shuttle pod, or a KIS box with a small part in it, without having to orchestrate a shipyard. Would be cool if things like that could be completed inside the assembly space. I should probably post this in your thread but I'm lazy and stupid. Anyway, thanks.

With the current architecture this could be done in principle, but I need to make another special container module that will not be resizable and be destroyed when the resulting vessel is spawned inside.

Big kits deploy too slow and there's no way to timewarp.

I don't know if this counts as a double post, but I found a seperate thing. Maybe a bug.

I had this colossal base packed up and started to deploy it on the Mün. Deployment was rather slow, so I set warp to 1000x and when it reached 100% the whole thing just poofed off. The Construction Window said that the package didn't have ground contact so I looked up and behold, a giant floating box. 

So I tried again, warping by 1000x, but this time stopping at 90-ish%. Poof. The box went up again. Not as high this time, so I figured I'd wait it out, but the return velocity became too high and the box crashed and exploded. Tried one more time, stopping at 50%, same thing happened. 

So, manually warping while deploying willend in tears. I don't know what it's gonna do unwarped, as that will take a while. 

Ignore certain modules from the complexity calculation

It would be nice to have the option to ignore a list of part modules from the complexity calculation.

Some mods add modules to all parts that amount to basically just metadata, not functionality that would require additional SpecializedParts.

These are the stock part modules that I'd like to exclude:

  • ModuleTestSubject
  • ModulePartVariants
  • FlagDecal
  • ModuleOverheatDisplay

These are some modules added by mods that I'd like to exclude:

  • KOSNameTag
  • ModuleB9PropagateCopyEvents
  • ModuleB9PartSwitch
  • ModuleB9PartInfo
  • ModuleConnectedLivingSpace
  • ModuleKISItem
  • ModuleKISInventory (this one is rather special and would warrant handling of its own as it can contain other parts with resources)

I currently don't have a compiler for C# 6.0. I'll try to add some code to it when I get to update the development setup.

Thanks for this great mod! I already built bases, rovers and ships on Minmus with just a few resources shipped from Kerbin.

Add part and vessel recycling

Since USI seems lagging behind, need to implement standalone recycling framework.

The idea is that if engineers in a construction workshop can build a vessel from specialized parts and material kits, than surely that can salvage some of it from existing parts and vessels.

Add ability to make single-part kits directly.

Along with making kits from ship constructs and subassemblies we need to be able to make kits from any single part available in editor by creating the appropriate ship construct on the fly (like with the kit containers themselves).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.