Jump to content

[WIP][1.8.x] SSTULabs - Low Part Count Solutions (Orbiters, Landers, Lifters) - Dev Thread [11-18-18]


Shadowmage

Recommended Posts

Ah, makes sense it is an artifact of working around the stock code.

Question: could a "service module" be added as a "nose" adapter to the MFT and MUS tanks? Ie: an adapter that has a concave top---like the 1-1-VA adapter on the DOS-TKS?

 

Edited by tater
Link to comment
Share on other sites

Hi! To start, I want to say: This is my favorite mod! GREAT work guys really!

Have you thought about these crafts: Dreamchaser or X-37b, two really cool real life spaceplanes that would fit your mod in the future right?

Best regards! Keep up the awesome work!

Link to comment
Share on other sites

I have shown it in the image above attached to the lower node (so you can see it). As a SM, it must be the upper node, and it works fine, and looks like a proper SM part :) .

Edited by tater
Link to comment
Share on other sites

47 minutes ago, tater said:

Ah, makes sense it is an artifact of working around the stock code.

Question: could a "service module" be added as a "nose" adapter to the MFT and MUS tanks? Ie: an adapter that has a concave top---like the 1-1-VA adapter on the DOS-TKS?

 

As you have found -- yep; simply add it as a 'cap' option (at least on the MFTs... the MUS do not support top cap switching).

However I might need to check on the geometry on that adapter to make sure the concavity is correct/large enough for all of the CM's.

Link to comment
Share on other sites

Just now, RedParadize said:

I have been playing with SSTU for a long time. This never have been a issue for me.

Just saying.

So have I, I just hadn't really thought about what I was doing WRT making my own SMs much before. Honestly, many times in the past I explicitly added a decoupler under the capsule out of KSP habit. My SSTU craft workflow was only different in that I used the nice SSTU decoupler in every, single instance instead of the awful stock choices :D . I recently started forcing myself to use the "decouple SM" feature all the time so that it would become "the new normal" for me (to break the stock habit) and realized quickly what I needed to do it after my first test failed. That test failed because it was, as I said, somewhat counterintuitive given the way the tank tops look (and the fact I'm not one who likes to clip parts).

Adding the 1-1-VA cap allows me to do what I have been doing anyway, but with a little more polish. 

Link to comment
Share on other sites

Just now, tater said:

So have I, I just hadn't really thought about what I was doing WRT making my own SMs much before. Honestly, many times in the past I explicitly added a decoupler under the capsule out of KSP habit. My SSTU craft workflow was only different in that I used the nice SSTU decoupler in every, single instance instead of the awful stock choices :D . I recently started forcing myself to use the "decouple SM" feature all the time so that it would become "the new normal" for me (to break the stock habit) and realized quickly what I needed to do it after my first test failed. That test failed because it was, as I said, somewhat counterintuitive given the way the tank tops look (and the fact I'm not one who likes to clip parts).

Adding the 1-1-VA cap allows me to do what I have been doing anyway, but with a little more polish. 

Hahaha, read above. I got it now. And I want it too!

Link to comment
Share on other sites

12 minutes ago, RedParadize said:

@Shadowmage Can we have a sneak peak of the new toys we will get on next patch? My work is killing me and I need a motivation to survive until the weekend.

 

 

So far..... not much that I haven't already shown (lots of config work though, and a few bug-fixes).  But... there are three new multi-axis solar panels that I finished up today (upper-right of the image, small, medium, and large):

Y8p5Ng0.png

Folded view:

m6jVa2C.png


I think that will be it for the rigid/folding solar panels for now.  All use the same mesh/geometry for the mount, so are easily compatible for the panel-switching setup on the DOS parts (or other parts in the future... modular probe core or service module?).  May well make up a few more variants in the future if I find they are needed (and potentially make replacements for the SC-A and SC-C solar panels).  Will also be making an entire lineup of blanket/cloth style solar panels as well, though those are probably a few weeks out from being started.

Other updates for the next upcoming patch will include textures for the COS parts and HUB-COS (shown earlier in the week).  Still working on figuring out the hand-rails situation on those... may or may not be finished for the next release.

So.. basically... the next release is solar panels.  Lots and lots of solar panels.

 


 

Link to comment
Share on other sites

9 hours ago, RedParadize said:

There are a really good module shadowmage implemented that allow you to chose tanks content. SSTU tank have it. What you could do is add one to SC-FSX. When I get back home tonight I will paste you my config for this if you want. Keep in mind that Shadowmage said he will eventualy add it himself.

Ok, sweet. I'll experiment with a few tanks and see which fits best. As I badly want this to do rendezvous with my space station. By the way, will solar panels be added to the shuttle like on the cargo bay doors?

EDIT: I think I might need the config. Fuel ducts going through parts doesn't seem to work. XD

Edited by Duski
Link to comment
Share on other sites

24 minutes ago, Duski said:

Ok, sweet. I'll experiment with a few tanks and see which fits best. As I badly want this to do rendezvous with my space station. By the way, will solar panels be added to the shuttle like on the cargo bay doors?

The Shuttle cargo bay doors never had solar panels. Those were radiators

Link to comment
Share on other sites

I am not sure If I should report this. I have a error when I try to inflate a part. The thing is its on a custom part. I don't know if its me or something in your code. The weird part is that it does not always happen. I an unsure if it happen with SSTU part... anyways, maybe its something that can help you. So here it is:

Here is what I get:

Spoiler

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 64)

NullReferenceException: Object reference not set to an instance of an object
  at SSTUTools.SSTUInflatable.consumeResources () [0x00000] in <filename unknown>:0
  at SSTUTools.SSTUInflatable.inflateEvent () [0x00000] in <filename unknown>:0
  at BaseEvent.Invoke () [0x00000] in <filename unknown>:0
  at UIPartActionButton.OnClick () [0x00000] in <filename unknown>:0
  at UnityEngine.Events.InvokableCall.Invoke (System.Object[] args) [0x00000] in <filename unknown>:0
  at UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0
  at UnityEngine.Events.UnityEventBase.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0
  at UnityEngine.Events.UnityEvent.Invoke () [0x00000] in <filename unknown>:0
  at UnityEngine.UI.Button.Press () [0x00000] in <filename unknown>:0
  at UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) [0x00000] in <filename unknown>:0
  at UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00000] in <filename unknown>:0
  at UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) [0x00000] in <filename unknown>:0 
UnityEngine.Debug:Internal_LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMousePress(MouseButtonEventData)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent(Int32)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent()
UnityEngine.EventSystems.StandaloneInputModule:Process()
UnityEngine.EventSystems.EventSystem:Update()
 

I have 4 custom made parts and they all have the same issue. Here is the config part: (Your module in Bold)

Spoiler

PART
{
// this is a sample config file, for determining a good file format for defining part parameters
// comment line - ignored by cfg parser
// empty lines, or lines without a '=' sign are also ignored
// all other lines are split at the '=' sign, and the left operand is used to know what parameter we are setting
// diferent parameters require data in different formats (see docs), and each module has it's own parameters (again, see docs)
// each assignment must be in a single line. Lines without assignments will be ignored. (You CAN turn on word wrap, though)
// each keyword here relates to an existing variable in the assigned module. If the keyword isn't found, it is ignored.
// conversely, if a keyword is left unassigned (as in not in the file), it will be initialized with it's default value
// This is done automatically, so any public variable defined in the loaded module can be accessed this way (provided it's value can be parsed)


    // --- general parameters ---
    name = WBI_Hacienda_Kerbalism
    module = Part
    author = Michael Billard (Angel-125)

    // --- asset parameters ---
    rescaleFactor = 1

    MODEL
    {
        model = WildBlueIndustries/Pathfinder/Assets/Hacienda
    }

    // --- node definitions ---
    // definition format is Position X, Position Y, Position Z, Up X, Up Y, Up Z
    node_attach = 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 2
    node_stack_mount = 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 2
    node_stack_back = 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2
    node_stack_front = 0, 0.0, -8.677, 0, 0, -1, 2
    node_stack_left = -2.08, 0.0, -3.533, -1, 0, 0, 2
    node_stack_right = 2.08, 0.0, -3.533, 1, 0, 0, 2
    node_stack_left2 = -2.08, 0.0, -6.704, -1, 0, 0, 2
    node_stack_right2 = 2.08, 0.0, -6.704, 1, 0, 0, 2

    // --- editor parameters ---
    TechRequired = specializedConstruction
    entryCost = 24000
    cost = 15000
    category = Utility
    subcategory = 0
    title = Hacienda IMF Kerbalism
    manufacturer = Wild Blue Industries
    description = The Hacienda Inflatable Multipurpose Factory (IMF) has the works. Specifically, it has the Ironworks Foundry, where you can smelt metals and create RocketParts. Other works are possible with the right upgrades.

    // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
    attachRules = 1,1,0,1,1

    // --- standard part parameters ---
    mass = 7.25
    dragModelType = default
    maximum_drag = 0.25
    minimum_drag = 0.25
    angularDrag = .25
    crashTolerance = 45
    breakingForce = 2800
    breakingTorque = 2800
    maxTemp = 1000
    skinMaxTemp = 2000
    emissiveConstant = 0.5
    CrewCapacity = 4
    vesselType = Base
    fuelCrossFeed = True

    INTERNAL
    {
        name = WBI_HaciendaSpace
    }

    MODULE
    {
        name = ModuleOverheatDisplay
    }

    MODULE
    {
        name = ModuleCommand
        minimumCrew = 0
    }

MODULE
{
    name = SSTUAnimateControlled
    animationID = 0
    animationLayer = 1
    animationName = Deploy
}

MODULE
{
    name = SSTUInflatable
    animationID = 0
    deflationMult = 1.0
    inflatedCrew = 4
    deflatedCrew = 0
    inflationMass = 5
    resourceName = RocketParts
    inflated = false
}

//    MODULE
//    {
//        name = WBILight
//        animationName = HaciendaLights
//        startEventGUIName = Lights On
//        endEventGUIName = Lights Off
//        ecRequired = 0.04
//    }

    MODULE
    {
        name = ModuleAnimateGeneric
        animationName = HaciendaLights
        actionGUIName = Toggle Lights
        startEventGUIName = Lights On
        endEventGUIName = Lights Off
    }

    MODULE
    {
        name = ModuleKISInventory
        maxVolume = 24500
        externalAccess = true
        internalAccess = true
        slotsX = 5
        slotsY = 5
        slotSize = 50
        itemIconResolution = 128
        selfIconResolution = 128
        openSndPath = KIS/Sounds/containerOpen
        closeSndPath = KIS/Sounds/containerClose
        defaultMoveSndPath = KIS/Sounds/itemMove
    }

    MODULE
    {
        name = ModuleResourceConverter
        ConverterName = Oxygen
        StartActionName = Start ISRU [Oxygen]
        StopActionName = Stop ISRU [Oxygen]
        AutoShutdown = true
        TemperatureModifier
        {
            key = 0 50000
            key = 750 25000
            key = 1000 5000
            key = 1250 2500    
            key = 2000 2500    
            key = 4000 0
        }                
        GeneratesHeat = true
        DefaultShutoffTemp = .8
        ThermalEfficiency 
        {
            key = 0 0 0 0
            key = 500 0.9 0 0
            key = 1000 1.0 0 0
            key = 1250 0.9 0 0
            key = 1500 0.5 0 0
            key = 3000 0.0 0 0 
        }

        UseSpecialistBonus = true
        SpecialistEfficiencyFactor = 0.2
        SpecialistBonusBase = 0.05
        Specialty = Engineer
        EfficiencyBonus = 1

         
         INPUT_RESOURCE
         {
            ResourceName = Water
            Ratio = 1.0
            FlowMode = STAGE_PRIORITY_FLOW
           }
         INPUT_RESOURCE
         {
            ResourceName = ElectricCharge
            Ratio = 30
         }

         OUTPUT_RESOURCE
         {
            ResourceName = Oxygen
            Ratio = 5000.0
            DumpExcess = false
            FlowMode = STAGE_PRIORITY_FLOW
         }
    }
    MODULE
    {
        name = ModuleResourceConverter
        ConverterName = Shielding
        StartActionName = Start ISRU [Shielding]
        StopActionName = Stop ISRU [Shielding]
        AutoShutdown = true
        TemperatureModifier
        {
            key = 0 50000
            key = 750 25000
            key = 1000 5000
            key = 1250 2500    
            key = 2000 2500    
            key = 4000 0
        }                
        GeneratesHeat = true
        DefaultShutoffTemp = .8
        ThermalEfficiency 
        {
            key = 0 0 0 0
            key = 500 0.9 0 0
            key = 1000 1.0 0 0
            key = 1250 0.9 0 0
            key = 1500 0.5 0 0
            key = 3000 0.0 0 0 
        }

        UseSpecialistBonus = true
        SpecialistEfficiencyFactor = 0.2
        SpecialistBonusBase = 0.05
        Specialty = Engineer
        EfficiencyBonus = 1

         
         INPUT_RESOURCE
         {
            ResourceName = Ore
            Ratio = 1.00
            FlowMode = STAGE_PRIORITY_FLOW
           }
         INPUT_RESOURCE
         {
            ResourceName = ElectricCharge
            Ratio = 3
         }
         OUTPUT_RESOURCE
         {
            ResourceName = Shielding
            Ratio = 0.50
            DumpExcess = false
            FlowMode = STAGE_PRIORITY_FLOW
         }
    }

    MODULE
    {
        name = ModuleResourceConverter
        ConverterName = RocketParts
        StartActionName = Start ISRU [RocketParts]
        StopActionName = Stop ISRU [RocketParts]
        AutoShutdown = true
        TemperatureModifier
        {
            key = 0 50000
            key = 750 25000
            key = 1000 5000
            key = 1250 2500    
            key = 2000 2500    
            key = 4000 0
        }                
        GeneratesHeat = true
        DefaultShutoffTemp = .8
        ThermalEfficiency 
        {
            key = 0 0 0 0
            key = 500 0.9 0 0
            key = 1000 1.0 0 0
            key = 1250 0.9 0 0
            key = 1500 0.5 0 0
            key = 3000 0.0 0 0 
        }

        UseSpecialistBonus = true
        SpecialistEfficiencyFactor = 0.2
        SpecialistBonusBase = 0.05
        Specialty = Engineer
        EfficiencyBonus = 1

         
         INPUT_RESOURCE
         {
            ResourceName = Ore
            Ratio = 1.00
            FlowMode = STAGE_PRIORITY_FLOW
           }
         INPUT_RESOURCE
         {
            ResourceName = ElectricCharge
            Ratio = 3
         }
         OUTPUT_RESOURCE
         {
            ResourceName = RocketParts
            Ratio = 0.2
            DumpExcess = false
            FlowMode = STAGE_PRIORITY_FLOW
         }
    }

  MODULE
  {
    name = Greenhouse
    resource_name = Food                // name of resource used for food
    waste_name = Crap                   // name of resource used for waste bonus
    ec_rate = 0.5                       // ec consumption at max lamp intensity
    waste_rate = 0.00138888             // waste produced by 3 crew members
    harvest_size = 5000.0               // food produced at harvest time
    growth_rate = 0.00000015432         // 300 days in average light conditions
    animation_name = door               // used to toggle the shutters, optional
    emissive_object = Cylinder001       // object with an emissive texture used for the lamps, optional
  }

  MODULE
  {
    name = Entertainment
    description = The cupola offer a relaxing panoramic view of the void of space.
    rate = 1.0
  }

RESOURCE
{
    name = Water
    amount = 0
    maxAmount = 450
}

RESOURCE
{
    name = Ore
    amount = 0
    maxAmount = 450
}

RESOURCE
{
    name = Food
    amount = 0
    maxAmount = 10000
}

RESOURCE
{
    name = Oxygen
    amount = 0
    maxAmount = 200000
}

    RESOURCE
    {
        name = ElectricCharge
        amount = 20000
        maxAmount = 20000

    }

}
 

 

Edit:

Ok, after quicksave/quickload or switching vessel, when the ship load I get this error. But when I load a brand new on the lunchpad it works...

Spoiler

[Error]: Module SSTUInflatable threw during OnLoad: System.NullReferenceException: Object reference not set to an instance of an object
  at SSTUTools.SSTUInflatable.updateCrewCapacity (Int32 capacity) [0x00000] in <filename unknown>:0 
  at SSTUTools.SSTUInflatable.init () [0x00000] in <filename unknown>:0 
  at SSTUTools.SSTUInflatable.OnLoad (.ConfigNode node) [0x00000] in <filename unknown>:0 
  at PartModule.Load (.ConfigNode node) [0x00000] in <filename unknown>:0 

Edit 2
I don't get it, started over again and now it works....

Edited by RedParadize
Link to comment
Share on other sites

57 minutes ago, RedParadize said:

I am not sure If I should report this. I have a error when I try to inflate a part. The thing is its on a custom part. I don't know if its me or something in your code. The weird part is that it does not always happen. I an unsure if it happen with SSTU part... anyways, maybe its something that can help you. So here it is:

Here is what I get:

I have 4 custom made parts and they all have the same issue. Here is the config part: (Your module in Bold)

 

Edit:

Ok, after quicksave/quickload or switching vessel, when the ship load I get this error. But when I load a brand new on the lunchpad it works...

Edit 2
I don't get it, started over again and now it works....

The first null-ref, regarding the 'consumeResources' points towards an incorrect resource-name being specified in the part (resource is undefined in that game, name is miss-spelled, etc).  This points to a config error that needs to be corrected;  make sure there is a valid resource specified.  RocketParts should be valid as long as you have CRP installed (comes with the SSTU download), so I'm not really sure what is going on there.  Maybe try clearing the module-manager cache and re-starting... has cleaned up many a strange error for me before.

 

The second null-ref, regarding 'updateCrewCapacity' -- is a bug in the code.  Noted and fixed, will be available with this weekends update.  I was running some editor only code (to update the crew roster GUI), but failed to make it actually run in only the editor (was running in flight scene and promptly throwing an exception).

Link to comment
Share on other sites

@blowfish

Been doing some thinking on the custom shader setup, and I'm pretty sure I've figured out a few new shaders that I could make use of.  Not 100% set on their setup (channels per texture/etc, single UV map or multiple UV maps), but this is what I've come up with so far:

1.) Diffuse (RGB) - Specular (RBG) AO (A) - Bump/NRM   (AO in alpha channel of spec texture; full color specular texture)
2.) Diffuse (RGB) alpha (A) - Specular (RBG) AO (A) - Bump/NRM    (Alpha in A channel of diffuse, AO in alpha channel of spec texture; full color specular texture)
3.) Diffuse (RGB) alpha (A) - Emissive (RGB)  (Full-color emissive with alpha support - for 'glow in the dark' decals or whatnot)

Mostly the features that I'm needing are a separate channel for AO (can be a single channel), full-color specular, and some sort of emissive-shader-with-alpha support.

Do you think there would be any desire to have these released as a stand-alone 'shader pack'?  The lineup could easily be expanded to include alternates to the other KSP shaders (non-bump-mapped types, etc)

Link to comment
Share on other sites

Screenshot from another day of messing with station parts. Doing approach and docking tests, but the docking went...weird. MechJeb was being stoopid around docking ports/these station parts and didn't want to move the spaceplane any closer than about 30m to the station. 

ArfAu32.png

-

And here's a gif of a later docking test, this time MJ actually worked.

 

Link to comment
Share on other sites

23 hours ago, Teobald said:

Hi! To start, I want to say: This is my favorite mod! GREAT work guys really!

Have you thought about these crafts: Dreamchaser or X-37b, two really cool real life spaceplanes that would fit your mod in the future right?

Best regards! Keep up the awesome work!

Thanks, and welcome to the forums :)


Spaceplanes -- thanks for the suggestions.  I'm not personally very interested in doing any spaceplane type parts for KSP due to its inability to handle complex/welded part setups for aero.  The shuttle/SC-E was a bit of an experiment to see if it would work out well... and it failed pretty terribly (should have been a single part, ended up being 10....).  Perhaps in the future if stock ever incorporates FAR type functionality I'll take another look at the spaceplanes and aero end of things.

Link to comment
Share on other sites

@Shadowmage Would it be possible to make a radially attachable, multi-RCS-port ring that sort of wraps around fuel tanks when placed, to cut down on parts further? Imagine the modular command probe core but with 4 RCS ports evenly spaced around the outside, but it is placed radially rather than on a node.

Jeez, this is difficult to convey through text.

Here's a sweet MSPaint gif that hopefully gets what i'm thinking about across alightly better

 

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