Jump to content

cipherpunks

Members
  • Posts

    255
  • Joined

  • Last visited

Posts posted by cipherpunks

  1. TBH that's the 1st time in my life I've heard about putting mod filders into ActiveTextureManagement folder. I guess that won't work, cause paths in .cfg are relative to GameData. You can not see RAM consumption in log, only using that mod that I gave You the link to earlier, or with standard operating system means (top, ps auxww, taskmgr, whatever). Can't help with MacOS (being certified Apple service engineer, I hate Apple's approach to doing things, and I do not use their (censored), sorry)

  2. my output log-https://www.dropbox.com/s/0e0d85si0z1apc8/output_log.txt?dl=0
    Guess that's unrelated, but You have lots of those:

    d3d: failed to create 2D texture id=4988 w=26 h=26 mips=5 d3dfmt=894720068 [invalid call]

    where I have none, loading the same mods. Maybe that's because You have something called NvidiaTextureTools v1.0.0.0 ?

    Also strange are those lines:

    Non-DLL mods added (:FOR[xxx]):
    [...]
    zRealPlume
    RealPlume
    zzRealPlume

    I have RealPlume too, but no such lines in my log.

    I see quite a few probes say this:

    DragCubeSystem: Creating drag cubes for part 'explorer.6'
    NullReferenceException: Object reference not set to an instance of an object
    at ModuleDeployableSolarPanel.AssumeDragCubePosition (System.String name) [0x00000] in <filename unknown>:0
    at DragCubeSystem+^B.MoveNext () [0x00000] in <filename unknown>:0

    Guess it's harmless, but still, maybe try to start without probe packs and stuff first ?

    Have You tried enabling just the bare minimum of what RO needs, and starting KSP? Cause You have lots of mods in that log...

    Anyway, for whom may wonder, the log ends in:

    [PQS]: PQS already marked as started during Start() method. This is probably wrong! <= line is repeating as always
    [CelestialBody]: Kerbin's solar day length is 3d, 5h, 56m long. sidereal day length is 3d, 5h, 56m long
    HighlightingSystem : Framebuffer depth data is not available and can't be used to occlude highlighting. Highlighting occluders enabled.
    [Kopernicus]: Post-Spawn
    Found max distance 7285326303016.2
    [Kopernicus]: StarLightSwitcher: Set active star => Sun
    [SmokeScreen PersistentEmitterManager] : OnSceneChange
    MissingMethodException: [B]Method not found: 'RDTechTree.GetTreeNodes'.[/B]
    at TechManager.TechManager.OnGameSceneLoadRequested (GameScenes scene) [0x00000] in <filename unknown>:0
    at EventData`1[GameScenes].Fire (GameScenes data) [0x00000] in <filename unknown>:0
    at HighLogic.LoadScene (GameScenes scene) [0x00000] in <filename unknown>:0
    at PSystemSetup+^V^G.MoveNext () [0x00000] in <filename unknown>:0

    So my guess would be try without RP-0 also.

    - - - Updated - - -

    I've been trying latest RO with VenStockRevamp and some parts do look ugly. I do not use non-procedural tanks, but here's what I can say for now:

    [...]

    LM Ascent Engine - model bug (tearing of gimbal rods); suggesting check for FASA and remove if FASA is installed

    VenRO_LMAE.jpg

    Shown next to FASA one. Feel the difference.

    - - - Updated - - -

    That same model is used for Aestus II a.k.a RS-72, but here's the real thing - feel the difference:

    rs-72-rocket-engine.jpg

    - - - Updated - - -

    And, to put a nail in thy coffin's lid, here's Hakari low-quality F-1 vs. RO+Ven's imitation:

    VenRO_F1.jpg

    Worth it?

    Besides, that F-1 is public domain, so maybe just include it in RO?...

  3. Aluminum Oxide : check that You have all the prerequisites described in OP, and then check KSP_Data/output_log.txt - most probably it is looking for some resource, which is undeclared (e.g. you have no CommunityResourcePack, or no RealFuels etc).

    Please check what I've said before, and provide above mentioned log if some prerequisite absence is not the case. Also, installing GCMonitor might show You if You're over 3.5gb RAM limit. If that's the case, use the settings menu and set texture quality = 1/2, etc.
  4. Aluminum Oxide : check that You have all the prerequisites described in OP, and then check KSP_Data/output_log.txt - most probably it is looking for some resource, which is undeclared (no CommunityResourcePack, no RealFuels etc).

    =====8<================================================================

    I've been trying latest RO with VenStockRevamp and some parts do look ugly. I do not use non-procedural tanks, but here's what I can say for now:

    Baby Sergeant SRB - bottom node is not ok (too high)

    LM Ascent Engine - model bug (tearing of gimbal rods); suggesting check for FASA and remove if FASA is installed

    former RLA MPR-45 - model scale is bad

    Aestus II - model bug (tearing of gimbal rods); needs completely other model TBH

    RS-88 - plain ugly

    KVD-1/CE-7.5 Vacuum Engine - model bug

    RD-0210/0213 - strange looking

    AJ10-137 - plain ugly; why not use RLA MPR-45 model instead? Or check for FASA and remove if FASA is installed

    Merlin Family Rocket Engine - model bug, extremely thin, nodes misplaced

    J-2T-200/250K - there are two of them, one from VenStockRevamp and one from RLA, but with identical stats. I like more diversity.

    F-1 from VenStockRevamp - ugly; Hakari one is much, much better; suggesting check for Hakari/FASA and remove if Hakari or FASA is installed

    Pyrios Booster - engine scale is completely wrong (supposed to have 2*F-1B, but engines are tiny). I'll prune this one cause it seems hopeless.

    XLR11 from FASA - model scale is so wrong, it is so thin - makes me laugh :-)

    Egg-Shaped Fairing - US, Egg-Shaped Fairing - STStock, Egg-Shaped Fairing - Stock Tank - they do not look nice; I'll prune them.

    Some RLA model uses are clever indeed, for example their resistojet (for which I'm yet to find real life occurance tbh) is looking good as R-4D, and using their TtK-6A "Albatross" as RL60 does look good, too.

    It doesn't do CryoEngines yet, but I'll provide the simplistic patch that I use myself (beware, O:F ratio isn't realistic, and gimbal range may need some adjustment):


    @title = Vulcain 2 rocket engine
    @manufacturer = Ottobrunn Space Propulsion Centre
    @description = D=2.09m, L=3.44m, TWR=152.4
    @rescaleFactor = 2 // 1.67 gives nozzle D=1.68
    @bulkheadProfiles = size2
    @mass = 0.909
    @MODULE[ModuleEnginesFX] {
    @maxThrust = 1359
    @atmosphereCurve {
    @key,0 = 0 429
    @key,1 = 1 360
    } // atmosphereCurve
    } // ModuleEnginesFX
    } // PART

    @PART[cryoengine-125-2]:FINAL { // CryoEngines Ct10 'Chelyabinsk' Cryogenic Rocket Engine
    @title = RL-10B-2 rocket engine
    @manufacturer = Pratt & Whitney
    @description = D=2.13m (frame 2.5m), L=4.14m, TWR=40.52. Nozzle extends when activated.
    @rescaleFactor = 2 // 1.7 gives nozzle D=1.8m
    @bulkheadProfiles = size2
    @mass = 0.277
    @MODULE[ModuleEnginesFX] {
    @maxThrust = 110.1
    @atmosphereCurve {
    @key = 0 465.5 // 462?
    @key = 1 140
    } // atmosphereCurve
    } // ModuleEnginesFX
    } // PART

    @PART[cryoengine-25-1]:FINAL { // CryoEngines KS-01 'Odin' Cryogenic Rocket Engine
    @title = LE-7A rocket engine
    @manufacturer = Mitsubishi Heavy Industries
    @description = D=3.75m (4m IRL), L=3.67m, TWR=62.18
    @rescaleFactor = 1.5
    @bulkheadProfiles = size3
    @mass = 1.8
    @MODULE[ModuleEnginesFX] {
    @maxThrust = 1098
    @atmosphereCurve {
    @key,0 = 0 438
    @key,1 = 1 338
    } // atmosphereCurve
    } // ModuleEnginesFX
    } // PART

    @PART[cryoengine-25-2]:FINAL { // CryoEngines CT2X 'Tunguska' Cryogenic Rocket Engine
    @title = J-2X rocket engine
    @manufacturer = Rocketdyne
    @description = D=3.05m (frame 5.25m), L=4.7m, TWR=54.95
    @rescaleFactor = 2.11 // 1.22 gives nozzle of D=1.75m and frame D=3.05; 1.5 gives nozzle of D=2.165m
    @bulkheadProfiles = size4
    @mass = 2.43
    @MODULE[ModuleEnginesFX] {
    @maxThrust = 1310
    @atmosphereCurve {
    @key,0 = 0 448
    @key,1 = 1 200
    } // atmosphereCurve
    } // ModuleEnginesFX
    } // PART

    @PART[cryoengine-375-1]:FINAL { // CryoEngines KS-68 'Mars' Cryogenic Rocket Engine
    @title = RS-68A rocket engine
    @manufacturer = Pratt & Whitney / Aerojet Rocketdyne
    @description = D=2.43m (frame 4.225m), L=5.2m, TWR=51.2
    @rescaleFactor = 1.128 // 0.65 gives nozzle D=1.4m
    @bulkheadProfiles = size4
    @mass = 6.74
    @MODULE[ModuleEnginesFX] {
    @maxThrust = 3560 // must be 3140 at SL
    @atmosphereCurve {
    @key,0 = 0 414
    @key,1 = 1 365
    } // atmosphereCurve
    } // ModuleEnginesFX
    } // PART

    @PART[cryoengine-375-2]:FINAL { // CryoEngines Ct65 'Yucatan' Cryogenic Rocket Engine
    @title = RD-0120 rocket engine
    @manufacturer = KBKhA Design Bureau
    @description = D=2.42m (frame 7.07m), L=4.55m, TWR=58
    @rescaleFactor = 1.1 // 0.645 gives nozzle D=1.44m
    @bulkheadProfiles = size5
    @mass = 3.45
    @MODULE[ModuleEnginesFX] {
    @maxThrust = 1961.3 // must be 1526 at SL
    @atmosphereCurve {
    @key,0 = 0 455
    @key,1 = 1 359 // other source 354
    } // atmosphereCurve
    } // ModuleEnginesFX
    } // PART

    @PART[cryoengine-*]:FINAL { @MODULE[ModuleGimbal] { @gimbalRange = 8 } } // all CryoEngines
    @PART[cryoengine-125-1]:FINAL {  // CryoEngines VL-1 'Volcano' Cryogenic Rocket Engine

    The scale in this patch is close to original, and stats are real, but it doesn't have ModuleEngineConfigs nor ModuleEngineIgnitor - feel free to add :-D

    I'd like to know why RO brings TweakScale's "Unknown Mystery Component" along with Procedural Fairings dummy "Upgrade" "parts" to FilterExtensions menu. This is wrong. Also I had to get rid of RealismOverhaul/Filter_Extensions_Configs cause they kinda broke FilterExtensions for me - wasn't able to sort by mod folder for example, and I literally can't play without that.

    Oh, and one more thing: when I first saw Conic Cockpit, I actually LOL'd - it's so naÑ—ve, couldn't stand it :-D

  5. if (x > 5) { for (int y=10; y< 100; y++) { cout << y; if(y % 2 > 0) y--; } }

    Now if that's only one line of this type present, then yes, it is evil.

    Now imagine You have 80 cases of that, only some arg to if or for are different, and there's pattern between args. Imagine there's no better way to express Your task, only using fors and ifs like in Your example.

    It can be indeed better to just form 80 one-liners like that directly below one another, and then the person who'll read this code will see something akin to table, with distinct impression on changing args (human eye is known to be good at that).

    To repeat, forced impossibility to pack some code denser vertically (or horizontally, for that matter) does not immediately mean that the code will be inherently more readable.

    To put it another way, readability of code is not depended on line count in said code.

    I do not really know what else to say - it's kinda obvious.

    As to Google guidelines, I guess that You know that they're controversial in many small places. Nothing utterly fundamental, and I agree that the general vibe is mostly right in 'em, but in almost every organization that I worked for (and I've been working with major players), coding style guidelines - even if based on Google's - were slightly different, and sometimes IMO better.. So, Your implication about that being like golden standard will not work for me, at least.

    What always worked for us, though, is the process of peer code review right before it goes to repo. Unreadable code will not be reviewed, or will be rejected on the premise of its unreadability by peers. That simple.

    Returning to my problem with @MODEL,* { @texture,* ^= : - I've read a few pages back that I'm not alone who stumbled upon that one...

  6. That does not make them a good idea.
    This argument seems purely subjective to me. Don't get me wrong, but please elaborate or retract. Cause if one-liners are bad, then bigger half of I.T. world is doing bad thing many times per day (for example using shell, chaining commands with pipes in shell etc), and it is our duty to warn them, right?

    - - - Updated - - -

    Readability enhances maintainability. Cryptiuc and dense one liners are part of the things that made perl known as a "write only" language.
    Excuse me, but (increasing line count) != (readability will increase linearly). Quite often it's quite the contrary (as screen space is limited and you need to scroll when the code is really sparse, so you can't read entire section in one glimpse, and risk distraction.

    Besides, AFAIK Perl haters hate Perl because of regexps, which are dense; but You do not advocate removing regex support from MM, do You?

  7. Not directly related, but thought You might know: when my ModuleResourceConverter overheats, and the reading in menu says that efficiency is not 100% anymore, Fusebox still says 100% (the part produces ElectricCharge). Is this known issue?

    For the record, the part produces 100 of resource and only has place for 100% of input resource per tick, and 100 of output resource per tick (that is, literally 100, and literally 100 per tick). I have DumpExcess = true (unsure what it does) but I do not have FillAmount (also unsure what it does)

    I got myself a stopwatch and timed it by hand, and it turned out that it's just Fusebox deficiency - in fact, resource-wise, ISRU works good. Sorry for the noise.

  8. This mostly fixes* these legendary parts for me, without the need of overwriting any original files:

    @PART[goodspeed*]:NEEDS[Goodspeed]:FIRST {  // Goodspeed parts
    @title ^= :Goodspeed ::
    @MODULE[GoodspeedTweakScale]:NEEDS[TweakScale] { @name = TweakScale } // they have buggy Scale.dll that needs to be removed too
    } // PART

    @PART[goodspeed*]:HAS[#node_stack_bottom
    [*]]:NEEDS[Goodspeed]:FIRST { // Goodspeed parts have old-style, "wrong" bottom nodes; some need to be overriden later, hence :FIRST
    @node_stack_bottom = #$node_stack_bottom[0]$, $node_stack_bottom[1]$, $node_stack_bottom[2]$, $node_stack_bottom[3]$, -1, $node_stack_bottom[5]$, $node_stack_bottom[6]$
    } // PART

    @PART[goodspeedStackPoint0*] { @MODEL,0 { @model ^= :stackPoint1:radialAttachmentPoint: } } // BZ-0 Mini Radial Attachment Point
    @PART[goodspeedMonoStack3750] { @MODEL,* { @model ^= :RCSTank1-2:RCSFuelTankR1: } } // Goodspeed FL-R5 RCS Fuel Tank

    @PART[goodspeedSweptPylon400] { // Goodspeed SW-400 Pylon & Decoupler
    @MODEL,0 {
    @texture,0 ^= :Aero/advancedCanard:Structural/strutCubicOcto:
    @texture,1 ^= :Aero/advancedCanard:Structural/strutCubicOcto:
    } // MODEL
    } // PART

    @PART[goodspeedRocketPartsTank,goodspeedGold*Ball] { // Goodspeed Rocket Parts Container, FB-G Fuel Tank, XB-G Xenon Tank
    @MODEL,* {
    @texture,0 ^= :crewCabin:hitchhikerStorageContainer:
    @texture,1 ^= :crewCabin:hitchhikerStorageContainer:
    } // MODEL
    } // PART

    @PART[goodspeedSideTank1,goodspeedRoundFuelCap] { // Goodspeed ST-SU Fuel Tank, Rounded Fuel Cap
    @MODEL,* {
    @texture,0 ^= :fuelTank_long:fuelTankT800:
    @texture,1 ^= :fuelTank_long:fuelTankT800:
    } // MODEL
    } // PART

    @PART[goodspeedPartsWarehouse] { // Goodspeed Rocket Parts Warehouse
    @MODEL,* {
    @texture,0 ^= :Utility/roverBody:Command/probeRoverBody:
    @texture,1 ^= :Utility/roverBody:Command/probeRoverBody:
    } // MODEL
    } // PART

    @PART[goodspeedHexFrame*,goodspeedHexSideMount1] { // Goodspeed TR6.1 Structural Frame, TR6.3 Structural Frame, TR-S Side Mount
    @MODEL,* {
    @texture,0 ^= :strutCube:strutCubicOcto:
    @texture,1 ^= :strutCube:strutCubicOcto:
    } // MODEL
    } // PART

    @PART[goodspeedStashBox] { // Goodspeed Experiment Storage Device
    @MODEL,* {
    @texture,0 ^= :mk2LanderCabin:mk2LanderCan:
    @texture,1 ^= :mk2LanderCabin:mk2LanderCan:
    } // MODEL
    } // PART

    @PART[goodspeedOrangeFuel*] { // Goodspeed FB-O Fuel Tank, FP-O Fuel Tank
    @MODEL,* {
    @texture,0 ^= :fuelTank3-2:fuelTankJumbo-64:
    @texture,1 ^= :fuelTank3-2:fuelTankJumbo-64:
    } // MODEL
    } // PART

    @PART[goodspeedNuclearReactor*] { // Goodspeed UNSFE-100 Nuclear Reactor, UNSFE-200 Nuclear Reactor, UNSFE-400 Nuclear Reactor
    @MODEL,* {
    @texture,0 ^= :nuclearEngine:liquidEngineLV-N:
    @texture,1 ^= :nuclearEngine:liquidEngineLV-N:
    } // MODEL
    } // PART

    @PART[goodspeed_zap01] { // Goodspeed ZAP-01 Radioisotope Thermoelectric Generator
    @MODEL,* {
    @texture,0 ^= :ksp_r_largeBatteryPack:z-400Battery:
    @texture,1 ^= :ksp_r_largeBatteryPack:z-400Battery:
    } // MODEL
    } // PART

    @PART[goodspeedSideNose1250] { // Goodspeed SM-1250 Rocket Cap
    @MODEL,* {
    @texture,0 ^= :solidBooster1-1:solidBoosterBACC:
    @texture,1 ^= :solidBooster1-1:solidBoosterBACC:
    } // MODEL
    } // PART

    @PART[goodspeedSideMount1250] { // Goodspeed SMD-250 Side Mount & Decoupler
    @MODEL,* {
    @texture,0 ^= :StackDecoupler:decouplerStackTR-18A:
    @texture,1 ^= :StackDecoupler:decouplerStackTR-18A:
    } // MODEL
    } // PART

    // TODO Goodspeed CMG-5 Robotic Control Unit roll++ sas++ mass--??
    @PART[goodspeedCMG5RCU125] { // Goodspeed CMG-5 Robotic Control Unit
    @MODULE[ModuleReactionWheel] {
    @PitchTorque *= 2 // was 5, needed some boost
    @YawTorque *= 2
    } // ModuleReactionWheel
    } // PART

    @PART[goodspeedCMG5RCU125,goodspeedCMG20RCU250] { // Goodspeed CMG-5 Robotic Control Unit, CMG-20 Robotic Control Unit
    @MODULE[ModuleReactionWheel] { @RollTorque *= 3 } // was 5 and 20, needed some boost
    @MODULE[ModuleSAS] { %SASServiceLevel = 3 } // prograde, retrograde, radial, normal, node, target
    } // PART

    @PART[goodspeedCMG20RCU250] { // Goodspeed CMG-20 Robotic Control Unit
    @node_stack_bottom = 0.0, -0.24, 0.0, 0, -1, 0, 2
    %MODULE[ModuleConnectedLivingSpace]:NEEDS[ConnectedLivingSpace] { %passable = true }
    } // PART

    Beware of lingering Scale.dll - better to prune Goodspeed/Plugins with AutoPruner. Here's mine Goodspeed.prnl:

    Goodspeed/Plugins
    Goodspeed/Parts/FuelTank/monostack3750
    Goodspeed/Parts/FuelTank/orangequad
    Goodspeed/Parts/FuelTank/roundfuelcap
    Goodspeed/Models/roundnose
    Goodspeed/Parts/Command/discovery1
    Goodspeed/Models/discovery1
    Goodspeed/Parts/Utility/dockingPort2i
    Goodspeed/Parts/Utility/weight
    Goodspeed/Parts/Command/dockingSmartSr

    Disclaimer: some otherwise useful parts are removed because I use ProceduralParts, my own Goodspeed-style docking ports (available below; in fact I modified Gaius ones so they got better both from functional and visual PoV IMO) and WildBlueIndustries DSEV Masscon (which has the ability to weight whatever You like)


    // !! you'll also need RLA small RTG model+texture - mirror: https://www.sendspace.com/file/qxwj1g
    PART {
    name = DockingPortOmni
    module = Part
    author = cipherpunks

    TechRequired = metaMaterials
    entryCost = 12200
    cost = 1080
    category = Utility
    subcategory = 0 // ??

    title = Clamp-O-Tron Omni Docking Port

    manufacturer = Goodspeed Aerospace // ??
    description = Omni Docking Port integrates two smaller Clamp-O-Tron docking ports - as You never know what You'll need to dock tomorrow. It even has a light built-in.

    rescaleFactor = 1

    node_stack_top0 = 0.0, 0.2828832, 0.0, 0.0, 1.0, 0.0, 1
    node_stack_top1 = 0.0, 0.2828832, 0.0, 0.0, 1.0, 0.0, 1
    node_stack_bottom = 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 1
    node_attach = 0.0, 0.0, 0.0, 0.0, -1.0, 0.0
    attachRules = 1,1,1,1,0

    mass = 0.06

    dragModelType = default
    maximum_drag = 0.25
    minimum_drag = 0.25
    angularDrag = 0.5

    crashTolerance = 15
    maxTemp = 3400

    MODEL {
    model = Squad/Parts/Utility/dockingPort/model // = dockingPort2
    position = 0.0, 0.0, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/dockingPortJr/model // = dockingPort3
    position = 0.0, 0.145, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }

    MODEL {
    model = Squad/Parts/Utility/spotLightMk2/model // = spotLight2
    position = 0.0, 0.26, 0.0
    scale = 0.4, 0.4, 0.4
    rotation = 15, 0, 180
    }

    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top0
    nodeType = size0
    }
    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top1
    nodeType = size1
    }

    MODULE {
    name = ModuleLight
    lightName = spotlight
    useAnimationDim = true
    lightBrightenSpeed = 2.5
    lightDimSpeed = 5
    animationName = LightAnimation
    resourceAmount = 0.01
    useResources = true
    useAutoDim = true // ?? test this
    }
    } // EOP

    //////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////
    PART {
    name = DockingPortOmniSr
    module = Part
    author = cipherpunks

    title = Clamp-O-Tron Omni Docking Port Sr. // TODO make another w/o RCS; tank is 0.05, thrusters are 0.03*12-casing, so that's 0.23 total, and 0.23 for omni port

    manufacturer = Goodspeed Aerospace // ??
    description = Omni Docking Port Sr. integrates all three Clamp-O-Tron docking ports in one package. This a true all-in-one solution for all Your sane docking needs. Also includes small light to remedy docking on Thy Dark Side.

    TechRequired = metaMaterials // fixme
    entryCost = 0
    cost = 1900
    category = Utility
    subcategory = 0
    // vesselType = Probe
    CrewCapacity = 0

    mass = 0.23

    dragModelType = default
    maximum_drag = 0.25
    minimum_drag = 0.25
    angularDrag = 0.5

    crashTolerance = 20
    maxTemp = 3400
    breakingForce = 800
    breakingTorque = 800

    rescaleFactor = 1
    attachRules = 1,1,1,1,0
    node_stack_top = 0.0, 0.29, 0.0, 0.0, 1.0, 0.0, 2
    node_stack_top0 = 0.0, 0.29, 0.0, 0.0, 1.0, 0.0, 0
    node_stack_top1 = 0.0, 0.29, 0.0, 0.0, 1.0, 0.0, 1
    node_stack_bottom = 0.0, -0.05, 0.0, 0.0, -1.0, 0.0, 2

    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top0
    nodeType = size0
    }
    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top1
    nodeType = size1
    }
    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top
    nodeType = size2
    }

    MODULE {
    name = ModuleLight
    lightName = spotlight
    useAnimationDim = true
    lightBrightenSpeed = 2.5
    lightDimSpeed = 5
    animationName = LightAnimation
    resourceAmount = 0.01
    useResources = true
    useAutoDim = true
    }

    MODEL {
    model = Squad/Parts/Utility/spotLightMk2/model // = spotLight2
    position = 0.0, 0.26, 0.0
    scale = 0.4, 0.4, 0.4
    rotation = 15, 0, 180
    }

    MODEL {
    model = Squad/Parts/Utility/dockingPortSr/model
    position = 0.0, 0.0, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/dockingPort/model
    position = 0.0, 0.0, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/dockingPortJr/model
    position = 0.0, 0.145, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }
    } // EOP

    //////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////
    PART {
    name = SmartDockingPortOmni
    module = Part
    author = cipherpunks

    TechRequired = metaMaterials
    entryCost = 12200
    cost = 6969
    category = Pods
    subcategory = 0
    vesselType = Probe
    CrewCapacity = 0

    title = Clamp-O-Tron Omni SmartPort

    manufacturer = Goodspeed Aerospace // ??
    description = Omni SmartPort integrates two smaller Clamp-O-Tron docking ports with a MicroQBE computer to create a docking port that you can place on a vessel and literally "control from here"! Integrated reaction wheels and small RTG to keep CPU alive top out the feature list, making this a true all-in-one solution.

    rescaleFactor = 1

    node_stack_top0 = 0.0, 0.2828832, 0.0, 0.0, 1.0, 0.0, 1
    node_stack_top1 = 0.0, 0.2828832, 0.0, 0.0, 1.0, 0.0, 1
    node_stack_bottom = 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 1
    node_attach = 0.0, 0.0, 0.0, 0.0, -1.0, 0.0
    attachRules = 1,1,1,1,0

    mass = 0.085

    dragModelType = default
    maximum_drag = 0.25
    minimum_drag = 0.25
    angularDrag = 0.5

    crashTolerance = 15
    maxTemp = 3400

    MODEL {
    model = Squad/Parts/Utility/dockingPort/model // = dockingPort2
    position = 0.0, 0.0, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/dockingPortJr/model // = dockingPort3
    position = 0.0, 0.145, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }

    MODEL {
    model = Squad/Parts/Utility/spotLightMk2/model // = spotLight2
    position = 0.0, 0.26, 0.0
    scale = 0.4, 0.4, 0.4
    rotation = 15, 0, 180
    }

    MODEL {
    model = Squad/Parts/Command/probeCoreCube/model
    position = 0.0, 0.1, -0.45
    scale = 0.3, 0.5, 0.2
    rotation = 110, 180, 90
    }

    MODEL {
    // model = RLA_Stockalike/Parts/Electrical/mmrtg/model
    model = +My/mmrtg/model
    position = 0, 0.13, 0.455
    scale = 0.65, 0.65, 0.65
    rotation = 180, -90, 20
    // rotation = 20, 0, 0 // alternate orientation
    }

    MODEL {
    model = Squad/Parts/Electrical/z-100Battery/model
    position = 0.43, 0.04, 0
    scale = 0.58 0.58 0.58
    rotation = 110, 90, 0
    }
    MODEL {
    model = Squad/Parts/Electrical/z-100Battery/model
    position = -0.43, 0.04, 0
    scale = 0.58 0.58 0.58
    rotation = 110, -90, 0
    }

    MODULE {
    name = ModuleCommand
    minimumCrew = 0
    RESOURCE {
    name = ElectricCharge
    rate = 0.025
    }
    }

    MODULE {
    name = ModuleSAS
    SASServiceLevel = 3
    }

    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top0
    nodeType = size0
    }

    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top1
    nodeType = size1
    }

    RESOURCE {
    name = ElectricCharge
    amount = 50
    maxAmount = 50
    }

    MODULE {
    name = ModuleReactionWheel
    PitchTorque = 0.5
    YawTorque = 0.5
    RollTorque = 1.5
    RESOURCE {
    name = ElectricCharge
    rate = 0.03
    }
    }

    MODULE {
    name = ModuleLight
    lightName = spotlight
    useAnimationDim = true
    lightBrightenSpeed = 2.5
    lightDimSpeed = 5
    animationName = LightAnimation
    resourceAmount = 0.01
    useResources = true
    useAutoDim = true // ?? test this
    }

    MODULE {
    name = ModuleGenerator
    isAlwaysActive = true
    OUTPUT_RESOURCE {
    name = ElectricCharge
    rate = 0.036 // 0.65 scaled RTG is 0.035*2=0.07; 0.5=0.03
    }
    }

    } // EOP

    //////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////
    PART {
    name = SmartDockingPortOmniSrRCS
    module = Part
    author = cipherpunks

    title = Clamp-O-Tron Omni SmartPort Sr. RCS // TODO make another w/o RCS; tank is 0.05, thrusters are 0.03*12-casing, so that's 0.23 total, and 0.23 for omni port

    manufacturer = Goodspeed Aerospace // ??
    description = Omni SmartPort Sr. integrates all three Clamp-O-Tron docking ports with a MicroQBE computer to create a docking port that you can place on a vessel and literally "control from here"! Integrated RCS and reaction wheels top out the feature list, making this a true all-in-one solution for your self-assembling space station modules. Also includes small RTGs to keep CPU alive.

    TechRequired = largeUnmanned
    entryCost = 0
    cost = 980
    category = Pods
    subcategory = 0
    vesselType = Probe
    CrewCapacity = 0

    mass = 0.4 // was 0.35, should be less than 0.46

    dragModelType = default
    maximum_drag = 0.25
    minimum_drag = 0.25
    angularDrag = 0.5

    crashTolerance = 20
    maxTemp = 3400
    breakingForce = 800
    breakingTorque = 800

    rescaleFactor = 1
    attachRules = 1,1,1,1,0
    node_stack_top = 0.0, 0.29, 0.0, 0.0, 1.0, 0.0, 2
    node_stack_top0 = 0.0, 0.29, 0.0, 0.0, 1.0, 0.0, 0
    node_stack_top1 = 0.0, 0.29, 0.0, 0.0, 1.0, 0.0, 1
    node_stack_bottom = 0.0, -0.05, 0.0, 0.0, -1.0, 0.0, 2

    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top0
    nodeType = size0
    }
    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top1
    nodeType = size1
    }
    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top
    nodeType = size2
    }

    MODULE {
    name = ModuleRCS
    thrusterTransformName = RCSthruster
    thrusterPower = 1.0
    resourceName = MonoPropellant
    atmosphereCurve
    {
    key = 0 260
    key = 1 100
    }
    }
    RESOURCE {
    name = MonoPropellant
    amount = 50
    maxAmount = 50
    }
    MODULE {
    name = ModuleCommand
    minimumCrew = 0
    RESOURCE {
    name = ElectricCharge
    rate = 0.025
    }
    }
    RESOURCE {
    name = ElectricCharge
    amount = 100
    maxAmount = 100
    }
    MODULE {
    name = ModuleGenerator
    isAlwaysActive = true
    OUTPUT_RESOURCE {
    name = ElectricCharge
    rate = 0.05
    }
    }
    MODULE {
    name = ModuleReactionWheel
    PitchTorque = 0.5
    YawTorque = 0.5
    RollTorque = 2.5
    RESOURCE {
    name = ElectricCharge
    rate = 0.03
    }
    }
    MODULE {
    name = ModuleSAS
    SASServiceLevel = 4
    }
    MODULE {
    name = ModuleLight
    lightName = spotlight
    useAnimationDim = true
    lightBrightenSpeed = 2.5
    lightDimSpeed = 5
    animationName = LightAnimation
    resourceAmount = 0.01
    useResources = true
    useAutoDim = true
    }

    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = -1.125, 0.19, 0.0
    scale = 0.8, 1.0, 0.8
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = 1.125, 0.19, 0.0
    scale = 0.8, 1.0, 0.8
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = 0.0, 0.19, -1.125
    scale = 0.8, 1.0, 0.8
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = 0.0, 0.19, 1.125
    scale = 0.8, 1.0, 0.8
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = -1.16, 0.088, -0.285
    scale = 0.8, 1.0, 0.8
    rotation = 0, 0, 90
    }
    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = -1.16, 0.088, 0.285
    scale = 0.8, 1.0, 0.8
    rotation = 0, 0, 90
    }
    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = 1.16, 0.088, -0.285
    scale = 0.8, 1.0, 0.8
    rotation = 0, 0, 270
    }
    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = 1.16, 0.088, 0.285
    scale = 0.8, 1.0, 0.8
    rotation = 0, 0, 270
    }
    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = -0.285, 0.088, -1.16
    scale = 0.8, 1.0, 0.8
    rotation = 270, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = 0.285, 0.088, -1.16
    scale = 0.8, 1.0, 0.8
    rotation = 270, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = -0.285, 0.088, 1.16
    scale = 0.8, 1.0, 0.8
    rotation = 90, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/linearRCS/model
    position = 0.285, 0.088, 1.16
    scale = 0.8, 1.0, 0.8
    rotation = 90, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/spotLightMk2/model // = spotLight2
    position = 0.0, 0.26, 0.0
    scale = 0.4, 0.4, 0.4
    rotation = 15, 0, 180
    }

    MODEL {
    model = Squad/Parts/Utility/dockingPortSr/model
    position = 0.0, 0.0, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/dockingPort/model
    position = 0.0, 0.0, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/dockingPortJr/model
    position = 0.0, 0.145, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }

    MODEL {
    model = Squad/Parts/Electrical/z-400Battery/model
    // position = 0.811, 0.089, 0.811 // Y was 0.088
    position = 0.8105, 0.0885, 0.8105
    scale = 0.45, 0.45, 0.45
    rotation = 0, 225, -90
    }
    MODEL {
    model = Squad/Parts/Electrical/z-400Battery/model
    // position = -0.811, 0.089, 0.811
    position = -0.8105, 0.0885, 0.8105
    scale = 0.45, 0.45, 0.45
    rotation = 0, 135, 90
    }

    MODEL {
    model = Squad/Parts/Command/probeCoreCube/model
    position = 0.0, 0.088, -1.2
    scale = 0.3, 0.5, 0.3
    rotation = 0, 0, 90
    }

    MODEL {
    // model = RLA_Stockalike/Parts/Electrical/mmrtg/model
    model = +My/mmrtg/model
    position = -1.24, 0.088, 0.0
    scale = 0.65, 0.65, 0.65
    rotation = 0, 0, 90
    }

    } // EOP

    //////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////
    PART {
    name = SmartDockingPortOmniSr
    module = Part
    author = cipherpunks

    title = Clamp-O-Tron Omni SmartPort Sr. // !! tank is 0.05, thrusters are 0.03*12-casing, so that's 0.23 total, and 0.23 for omni port

    manufacturer = Goodspeed Aerospace // ??
    description = Omni SmartPort Sr. integrates all three Clamp-O-Tron docking ports with a MicroQBE computer to create a docking port that you can place on a vessel and literally "control from here"! Integrated reaction wheels top out the feature list, making this a true all-in-one solution for your space tugs and space tankers. Also includes small RTGs to keep CPU alive.

    TechRequired = largeUnmanned
    entryCost = 0
    cost = 3500
    category = Pods
    subcategory = 0
    vesselType = Probe
    CrewCapacity = 0

    mass = 0.3

    dragModelType = default
    maximum_drag = 0.25
    minimum_drag = 0.25
    angularDrag = 0.5

    crashTolerance = 20
    maxTemp = 3400
    breakingForce = 800
    breakingTorque = 800

    rescaleFactor = 1
    attachRules = 1,1,1,1,0
    node_stack_top = 0.0, 0.29, 0.0, 0.0, 1.0, 0.0, 2
    node_stack_top0 = 0.0, 0.29, 0.0, 0.0, 1.0, 0.0, 0
    node_stack_top1 = 0.0, 0.29, 0.0, 0.0, 1.0, 0.0, 1
    node_stack_bottom = 0.0, -0.05, 0.0, 0.0, -1.0, 0.0, 2

    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top0
    nodeType = size0
    }
    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top1
    nodeType = size1
    }
    MODULE {
    name = ModuleDockingNode
    referenceAttachNode = top
    nodeType = size2
    }

    MODULE {
    name = ModuleCommand
    minimumCrew = 0
    RESOURCE {
    name = ElectricCharge
    rate = 0.025
    }
    }
    RESOURCE {
    name = ElectricCharge
    amount = 100
    maxAmount = 100
    }
    MODULE {
    name = ModuleGenerator
    isAlwaysActive = true
    OUTPUT_RESOURCE {
    name = ElectricCharge
    rate = 0.05
    }
    }
    MODULE {
    name = ModuleReactionWheel
    PitchTorque = 0.5
    YawTorque = 0.5
    RollTorque = 2.5
    RESOURCE {
    name = ElectricCharge
    rate = 0.03
    }
    }
    MODULE {
    name = ModuleSAS
    SASServiceLevel = 4
    }
    MODULE {
    name = ModuleLight
    lightName = spotlight
    useAnimationDim = true
    lightBrightenSpeed = 2.5
    lightDimSpeed = 5
    animationName = LightAnimation
    resourceAmount = 0.01
    useResources = true
    useAutoDim = true
    }

    MODEL {
    model = Squad/Parts/Utility/spotLightMk2/model // = spotLight2
    position = 0.0, 0.26, 0.0
    scale = 0.4, 0.4, 0.4
    rotation = 15, 0, 180
    }

    MODEL {
    model = Squad/Parts/Utility/dockingPortSr/model
    position = 0.0, 0.0, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/dockingPort/model
    position = 0.0, 0.0, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }
    MODEL {
    model = Squad/Parts/Utility/dockingPortJr/model
    position = 0.0, 0.145, 0.0
    scale = 1.0, 1.0, 1.0
    rotation = 0, 0, 0
    }

    MODEL {
    model = Squad/Parts/Electrical/z-400Battery/model
    // position = 0.811, 0.089, 0.811 // Y was 0.088
    position = 0.8105, 0.0885, 0.8105
    scale = 0.45, 0.45, 0.45
    rotation = 0, 225, -90
    }
    MODEL {
    model = Squad/Parts/Electrical/z-400Battery/model
    // position = -0.811, 0.089, 0.811
    position = -0.8105, 0.0885, 0.8105
    scale = 0.45, 0.45, 0.45
    rotation = 0, 135, 90
    }

    MODEL {
    model = Squad/Parts/Command/probeCoreCube/model
    position = 0.0, 0.088, -1.2
    scale = 0.3, 0.5, 0.3
    rotation = 0, 0, 90
    }

    MODEL {
    // model = RLA_Stockalike/Parts/Electrical/mmrtg/model
    model = +My/mmrtg/model
    position = -1.24, 0.088, 0.0
    scale = 0.65, 0.65, 0.65
    rotation = 0, 0, 90
    }

    } // EOP

    //////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////
    @PART[DockingPortOmni,SmartDockingPortOmni] { %MODULE[ModuleAdaptiveDockingNode]:NEEDS[AdaptiveDockingNode] { %ValidSizes = size0,size1 }}
    @PART[DockingPortOmniSr,SmartDockingPortOmniSr,SmartDockingPortOmniSrRCS] { %MODULE[ModuleAdaptiveDockingNode]:NEEDS[AdaptiveDockingNode] { %ValidSizes = size0,size1,size2 }}

    @PART[*DockingPortOmni*] { // 1.0.4 fixes, kinda
    %MODULE[ModuleConnectedLivingSpace]:NEEDS[ConnectedLivingSpace] {
    %passable = true
    %passableWhenSurfaceAttached = true
    }
    %thermalMassModifier = 2 // 1.0 for insulator; Squad uses 4 often; 6 for nose cones
    %heatConductivity = 0.005 // 0.0001 for insulator; default = 0.12; Squad uses 0.04 for panels
    %radiatorMax = 0.35 // ?? dunno what it is; default = 0.25
    // %radiatorHeadroom = 0.75 // ?? I don't give a damn; Squad uses 0.75 or 0.5 for radiators
    %emissiveConstant = 0.7 // ?? dunno what it is; Squad uses 0.9 for radiators
    %skinThicknessFactor = 0.85 // skin:internals proportion; around 1 for panels, around 0.1 or less for tanks
    // %skinInternalConductionMult = 4.0 // skin -> intestines flux
    } // PART

    //////////////////////////////////////////////////////////////////////////////
    // EOF
    // my modifications are public domain ofc

    Goodspeed_docks.jpg


    @PART[goodspeedNuclearReactor*] { // Goodspeed UNSFE-100 Nuclear Reactor, UNSFE-200 Nuclear Reactor, UNSFE-400 Nuclear Reactor
    @rescaleFactor = 0.5 // was 1.25m and 2.5m
    @MODEL,* {
    @texture,0 ^= :nuclearEngine:liquidEngineLV-N:
    @texture,1 ^= :nuclearEngine:liquidEngineLV-N:
    } // MODEL
    @attachRules = 1,1,1,1,0
    @maxTemp *= 1.2 // was 3400, exploded at ~1520
    %emissiveConstant = 0.35 // is ribbed and has 4 panels; 1 for radiators; was 0.35
    %heatConductivity = 0.85 // has heat pipes; 0.0001 for insulator
    %skinInternalConductionMult = 2
    @RESOURCE[ElectricCharge] {
    @amount *= 0.5
    @maxAmount *= 0.5
    } // RESOURCE
    %power_electrical = #$RESOURCE[ElectricCharge]/maxAmount$
    @power_electrical *= 0.5 // it sees the one prior to modification
    @MODULE[ModuleGenerator]::NEEDS[!CommunityResourcePack] { @OUTPUT_RESOURCE[ElectricCharge] { @rate = #$../../power_electrical$ } }
    %MODULE[TweakScale]:NEEDS[TweakScale] { %type = stack }
    } // PART

    @PART[goodspeedNuclearReactor*]:NEEDS[CommunityResourcePack] { // Goodspeed UNSFE-100 Nuclear Reactor, UNSFE-200 Nuclear Reactor, UNSFE-400 Nuclear Reactor
    %power_thermal = #$RESOURCE[ElectricCharge]/maxAmount$
    @power_thermal *= 4
    %RESOURCE[WasteHeat] {
    %amount = #$../power_thermal$
    %maxAmount = #$../power_thermal$
    } // RESOURCE
    @MODULE[ModuleGenerator] { @OUTPUT_RESOURCE[ElectricCharge] {
    @name = WasteHeat
    @rate = #$../../power_thermal$
    } // OUTPUT_RESOURCE
    } // ModuleGenerator
    %MODULE[ModuleResourceConverter] {
    %StartActionName = Startup reactor
    %StopActionName = Shutdown reactor
    //%AlwaysActive = true
    %AutoShutdown = true
    %UseSpecialistBonus = false
    INPUT_RESOURCE {
    ResourceName = WasteHeat
    %Ratio = #$../../power_thermal$
    FlowMode = ALL_VESSEL
    } // INPUT_RESOURCE
    OUTPUT_RESOURCE {
    ResourceName = ElectricCharge
    %Ratio = #$../../power_electrical$
    DumpExcess = true // ??
    } // OUTPUT_RESOURCE
    %GeneratesHeat = true
    %DefaultShutoffTemp = 0.95 // ~36.16% at 0.96
    //%FillAmount = 0.95 // how much it perceives the target resource level to be; only fill to that % and stop
    } // ModuleResourceConverter
    } // PART

    @PART[goodspeedNuclearReactor1]:NEEDS[CommunityResourcePack] { // Goodspeed UNSFE-100 Nuclear Reactor
    @title ^= :100:200:
    @description = Uranium Nitride Safe Fission Engine: 50kWe (200 kWt), 65.2cm diameter version, slim-line.
    @mass = 0.256
    %bulkheadProfiles = size0 // 0.625m
    %MODULE[ModuleResourceConverter] {
    %ConverterName = Heat: 200kWt
    %TemperatureModifier = 39.147 // Int flux must be 200
    } // ModuleResourceConverter
    %MODULE[TweakScale]:NEEDS[TweakScale] { %defaultScale = 0.625 } // TweakScale
    } // PART

    @PART[goodspeedNuclearReactor2]:NEEDS[CommunityResourcePack] { // Goodspeed UNSFE-200 Nuclear Reactor
    @title ^= :200:400:
    @description = Uranium Nitride Safe Fission Engine: 100kWe (400 kWt), 65.2cm diameter version.
    @mass = 0.512
    %bulkheadProfiles = size0 // 0.625m
    %MODULE[ModuleResourceConverter] {
    %ConverterName = Heat: 400kWt
    %TemperatureModifier = 39.1907 // Int flux = 400
    } // ModuleResourceConverter
    %MODULE[TweakScale]:NEEDS[TweakScale] { %defaultScale = 0.625 } // TweakScale
    } // PART

    @PART[goodspeedNuclearReactor3]:NEEDS[CommunityResourcePack] { // Goodspeed UNSFE-400 Nuclear Reactor
    @title ^= :400:800:
    @description = Uranium Nitride Safe Fission Engine: 200kWe (800 kWt), 1.25m diameter version.
    @mass = 1.024
    %bulkheadProfiles = size1 // 1.25m
    %MODULE[ModuleResourceConverter] {
    %ConverterName = Heat: 800kWt
    %TemperatureModifier = 39.063 // Int flux must be 800
    } // ModuleResourceConverter
    %MODULE[TweakScale]:NEEDS[TweakScale] { %defaultScale = 1.25 } // TweakScale
    } // PART
    // TODO clone 2.5m bigger ones

    Koriolis New Parts Preview
    I sniff Elite influence here ;-)

    * textures aren't fixed with full-wildcard approach; currently working on neat way to fix them all in just 1 line per part, but stumbled upon ModuleManager ^= peculiarity...

  9. So, here's what I came with:

    @PART[goodspeed*]:HAS[#node_stack_bottom
    [*]]:NEEDS[Goodspeed]:FIRST { // Goodspeed parts have old-style, "wrong" bottom nodes; some are overrided later, hence :FIRST
    @node_stack_bottom = #$node_stack_bottom[0]$, $node_stack_bottom[1]$, $node_stack_bottom[2]$, $node_stack_bottom[3]$, -1, $node_stack_bottom[5]$, $node_stack_bottom[6]$
    } // PART

    Still need to solve @MODEL,* { @texture,* ^= problem. Sarbian?...

    And can You please add ; as statement separator, so I could neatly @oneline { @var1 = val1; @var2 = somethingelse } ? Screen real estate is precious.

  10. One more question. I'm trying to fix old Goodspeed parts, and I do this:

    @PART[goodspeedRocketPartsTank,goodspeedGoldFuelBall,goodspeedGoldXenonBall] { @MODEL,* { @texture,* ^= :crewCabin:hitchhikerStorageContainer: } }  // Goodspeed Rocket Parts Container, FB-G Fuel Tank, XB-G Xenon Tank
    @PART[goodspeedPartsWarehouse] { @MODEL,* { @texture,* ^= :Utility/roverBody:Command/probeRoverBody: } } // Goodspeed Rocket Parts Warehouse
    @PART[goodspeedHexFrame*,goodspeedHexSideMount1] { @MODEL,* { @texture,* ^= :strutCube:strutCubicOcto: } } // Goodspeed TR6.1 Structural Frame, TR6.3 Structural Frame, TR-S Side Mount
    @PART[goodspeedStashBox] { @MODEL,* { @texture,* ^= :mk2LanderCabin:mk2LanderCan: } } // Goodspeed Experiment Storage Device
    @PART[goodspeedOrangeFuelBall] { @MODEL,* { @texture,* ^= :fuelTank3-2:fuelTankJumbo-64: } } // Goodspeed FB-O Fuel Tank, FP-O Fuel Tank
    @PART[goodspeedRoundFuelCap] { @MODEL,* { @texture,* ^= :fuelTank_long:fuelTankT800: } } // Goodspeed Rounded Fuel Cap
    @PART[goodspeedNuclearReactor*] { @MODEL,* { @texture,* ^= :nuclearEngine:liquidEngineLV-N: } } // Goodspeed UNSFE-100 Nuclear Reactor, UNSFE-200 Nuclear Reactor, UNSFE-400 Nuclear Reactor
    @PART[goodspeed_zap01] { @MODEL,* { @texture,* ^= :ksp_r_largeBatteryPack:z-400Battery: } } // Goodspeed ZAP-01 Radioisotope Thermoelectric Generator
    @PART[goodspeedSideNose1250] { @MODEL,* { @texture,* ^= :solidBooster1-1:solidBoosterBACC: } } // Goodspeed SM-1250 Rocket Cap
    @PART[goodspeedSideMount1250] { @MODEL,* { @texture,* ^= :StackDecoupler:decouplerStackTR-18A: } } // Goodspeed SMD-250 Side Mount & Decoupler

    and it doesn't work; in ModuleManager.ConfigCache I see:

            MODEL        {
    [B] texture = :StackDecoupler:decouplerStackTR-18A:[/B]
    texture = model001, Squad/Parts/Utility/StackDecoupler/model001

    I also do this:

    @PART[goodspeedMonoStack3750] { @MODEL,* { @model ^= :RCSTank1-2:RCSFuelTankR1: } }  // Goodspeed FL-R5 RCS Fuel Tank

    @PART[goodspeedSweptPylon400] { // Goodspeed SW-400 Pylon & Decoupler
    @MODEL,0 {
    @texture,0 ^= :Aero/advancedCanard:Structural/strutCubicOcto:
    @texture,1 ^= :Aero/advancedCanard:Structural/strutCubicOcto:
    } // MODEL
    } // PART

    and this works fine (both ways).

    What gives?..

    - - - Updated - - -

    the fifth would be node_stack_bottom,4 (the first being node_stack_bottom,0)
    Yeah, forgot that, 10x. But... Using
    @node_stack_bottom,4 = -1

    just breaks the nodes, giving

    node_stack_bottom = -1

    :-( So there must be some other method of accessing that.

  11. After a very long time, I decided to give MFT a 2nd try (1st try was nasty - it didn't played well even with TweakScale back then).

    Haven't tested in depth yet, but the good thing is that at least it now works well with IFS, or so it seems.

    Bad thing is that MFT removes TankContentSwitcher from Procedural Parts* and replaces it with ModuleFuelTanks that only has Default and Cryogenic in available TANK_DEFINITION.

    But I like PP TankContentSwitcher a whole lot (actually I prefer it to IFS on PP).

    So, how to make it so MFT will leave TankContentSwitcher alone?

    Aha, so it's ProceduralParts/ModuleManager/ModularFuelTanks.cfg to blame!... Now I need to figure out how to befriend them.

    * well, technicaly not from all of them, as SRB, Structural element, Ore tank and Battery still has it...

  12. adding more buttons and controls onto the SM right-click panel (which I was trying to avoid).
    I'm sure that I'm mistaken and You (and everyone else) know it, but nevertheless there were times when I didn't and bloated menus made me curse.

    The solution turned out to be sooo simple:

    If part right-click menu is too big, press mouse3 (a.k.a press mousewheel) and drag the mouse down, and slightly to the left.

    To restore, press V (or even C if You still have the crew) a couple of times.

    This should be in some major FAQ I guess.

  13. CM Re-entry angle - you can try tweaking the COP / COL offsets that are in the config; lower the value closer to zero and it should reduce the re-entry stability enough that you can re-enter at a different angle.
    Tried that yesterday (CoM/CoL actually, no CoP changes attempted) but so far no luck; will play with it some more and will report later if something good emerges.
  14. Whoa, with newest RSS, RealHeat and some fixes the reentry is indeed survivable! Just "splashed down hard" (at 17.5 m/s cause the parachute/docking combo doesn't do the right thing in FAR/RSS yet) with my slightly modified 1.0.2 tweaks, and still had 69.7 out of 420 ablator left! Will un-tweak, tweak the parachute (namely @MODULE[RealChuteFAR] cause tweaking ModuleParachute & ModuleDragModifier nas no effect), and re-test.

    Edit: un-tweaked, aside from ICPS compatibility, CM barely eats ablator at all (on shallow LEO reentry, though) :-) Last time it was left with 350/420 of it. Tweaking RealChuteFAR also does nothing; I need to come up with RealChute config. SM now overheats real quick while main engine is running, though. I wonder how to make it so the smaller eight nozzles can be staged separately, prior to main nozzle (like the real thing).

    Wasn't able to maintain Apollo-like 25 degree pitch angle (needed for lifting reentry), though - at ~80km with realistic RCS thrusters only and w/o RWs it went to 8, then at 70 to 4, and then stayed at around 5 thru most 50s, dropping to 2.3 degrees while at max Q.

    Edit 2: that might be because Aerojet PR said in 2010 that the real thing will use 12 Aerojet RCS engines of unspecified model, of 0.71 kN thrust each (and maybe it does), but I had config for 16 Airbus 0.27 kN ones - one credible source said that those must be 200N from AD&S... Hm. Finding up-to-date info on Orion is not easy, given that program stutters for how many years now?... I only know fresh photo, but I don't know for sure which engine this is:

    orion_rcs_pod-full.jpg

    source

    right-roll thruster pod with two rocket engines [snip]

    two pitch-up thruster pods with a single rocket engine;

    two pitch-down thruster pods, each with a single rocket engine;

    two right- and left-yaw pods, each with a single rocket engine,

    and a left roll thruster pod with two rocket engines.

    that indeed makes for 8 pods (and 10 engines; and that means that Bacon Labs Auriga CM has a couple RCS ports too much). Go figure.

    Edit 3: must be AJ MR-104G

    source

    Also, interesting fact there:

    Orion’s solar arrays include a canting function in addition to the rotation of the arrays. This feature is exercised during the operation of the main engine to reduce loads on the arrays. During posigrade maneuvers (acceleration, positive delta-v), the arrays enter a –60-degree position to the inner axis which would be the case for Trans-Lunar Injection. For retrograde burns (deceleration, negative delta-v), the arrays are canted +55 degrees to the opposite direction (e.g. Lunar Orbit Insertion).
  15. Had no time for KSP lately, besides, while fiddling with 1.0.4/FAR/RSS, I had the gut feeling that something's wrong with stock reentry physics, and from what I see now (RealHeat released, latest RSS changelog, latest RO_Physics.cfg) that was indeed the case. So I do plan to return to my fiddling with RSS Orion direct reentry some time later.

    'Service Module'? It would be intended for use on the descent stage (or re-usable lander), and would include larger folding solar panels, all science experiments that are currently unlocked in the tech tree, and KAS/KIS storage for inclusion of a small payload (on-lander rover delivery, such as the later Apollo LM missions). Would likely also include a secondary set of RCS ports in the SM for help in balancing the RCS while the descent stage is attached.
    Yes, I, for one, do want that.
    This is something that could be added later
    That's fair. :-)

    Also saw peculiar (old?) Orion model on the Gerstenmaier's table in today's SpaceNews article:

    Note the nozzle:

    Orion_old_model.jpg

    I for some reason thought they'll go pump-fed and use Aestus II / RS-72 but it turned out that EM-1 will use safer, pressure-fed OME a.k.a AJ10-190.

    As a side note I also thought that smaller engines will be R-4D-15 HiPAT, and credible source says that those I guessed right:

    The Auxiliary engines are 110-pound-thrust bipropellant thrusters, designated as R-4D with a 164:1 area ratio.

    Z322.jpg

    I also see this similar thing here ( "20111200 Orion Quick Facts--JSC.pdf" ).

    Or is it not ESM?...

    p.s. lander parts look great ! TBH they look really promising as to be really useful IME (incl. 5m concept - hope it'll have jettisonable side fairings to cover those tanks while still on LV, and maybe (just maybe) even top docking port under retractable nose cover... ;-)

    I think that the point deploying such panels is solar tracker should be active only on deployed panels, and undeployed panels shouldn't have solar tracker (but should still produce electricity). Is this possible? Maybe deploying animation itself can be bound to "enable solar tracking" instead?... (unsure)

    p.p.s. what's "AO bakes" ? Any link/video?

    p.p.p.s . I wonder just where this one came from...

×
×
  • Create New...