#V-SwiFT

1 messages · Page 2 of 1

little sundial
#

Hmm I might have messed something up

#

The patch:

@use "VSwift:*";

:parts #KLSS_storage_0v_radial {
  @include part-switch() {
    +TankType {
      VariantSetLocalizationKey: "KLSS/Variants/TankType";
      +Food {
        VariantLocalizationKey: "Resource/DisplayName/Food";
        +TransformActivator {
          Transforms: [food];
        }
      }
      +Water {
        VariantLocalizationKey: "Resource/DisplayName/Water";
        +TransformActivator {
          Transforms: [water];
        }
        +ResourceContainerAdded {
          Containers: [
            {
              Name: "Water";
              CapacityUnits: 45.0;
              InitialUnits: 45.0;
            },
            {
              Name: "WasteWater";
              CapacityUnits: 45.0;
              InitialUnits: 0.0;
            }
          ];
        }
        +ResourceContainerRemover {
          Containers: [Food, Waste];
        }
      }
      +Oxygen {
        VariantLocalizationKey: "Resource/DisplayName/Oxygen";
        +TransformActivator {
          Transforms: [oxygen];
        }
        +ResourceContainerAdded {
          Containers: [
            {
              Name: "Oxygen";
              CapacityUnits: 0.015;
              InitialUnits: 0.015;
            },
            {
              Name: "CarbonDioxide";
              CapacityUnits: 0.015;
              InitialUnits: 0.0;
            }
          ];
        }
        +ResourceContainerRemover {
          Containers: [Food, Waste];
        }
      }
    }
  }
}
sonic lily
#

Check the logs as per usual, I havent gotten syntax errors into the log

#

But the issue is obvious to me

#

The semicolons after the name/capunits/initunits things

#

Those need to be commas as they are in a value, they are not statements

little sundial
#

(I got no errors in the logs and PM reports 0 errors)

sonic lily
#

I need to make them more transparent

#

But they are somewhat near the top of the log

little sundial
#

nice! I still need to fix some stuff with wrong orientations, the water tank is weirdly dirty and also add the reentry meshes but progress!

sonic lily
#

Progress is good!

amber tiger
#

this has some awesome vibes!

#

Oh, lol, how many messages in one day

sonic lily
#

On the note of the weirdly dirty part

#

That may be a spacewarp bug on top of the disabled mesh

#

I dont think spacewarps color patches looks into disabled renderers thinking about it

little sundial
sonic lily
#

Ill fix the issue later todsy

#

So for now the shaders may be odd, but they will be fixed after I get to class

little sundial
stable mango
#

So how would the hibernation work ?

#

I assume it's not a part that with high EC comsubtion that can store kerbals without needing food ?

#

that would be nice/cool thought

stable mango
little sundial
#

It's just a softer penalty than death

#

And when in hibernation they can't control vessels or perform experiments

stable mango
#

so supplies would have to be brought by docked vessel ?

copper cipher
#

depending on if you have a probe core or not

little sundial
sonic lily
#

@little sundial SW patch should be released momentarilly

#

spacedock uploads are slow

sonic lily
#

Thoughts?

#

(note this is a configurable option in the variant setif you want this popout)

little sundial
# sonic lily Thoughts?

What does "Unlockable" mean in this context?
Also the stats header backgrounds might look better with a blue-ish grey
Also might want to make missing techs red / orange to make it clearer they are missing

sonic lily
little sundial
sonic lily
#

Also true, yeah
I'll implement stuff like that after lunch

#

and what do I need to do to prevent scrolling in the part switch menu from scrolling in the OAB

sonic lily
#

gotcha

#

Here's what it looks like for displaying something with multiple engine modes

#

For another reference

sonic lily
little sundial
#

Also, completely unrelated but here's a Gimp file to make 3-variants parts icons if anyone wants it

sonic lily
copper cipher
#

With support for mods like Kapitalism in mind

sonic lily
#

@little sundial thoughts now?

#

My immediate thought is just to not show unlocked and the techs when it is unlocked

little sundial
#

Looking nice!
Some other small thoughts:

  • Maybe make the red text for the locked techs darker to differentiate them from the "Requirements not met" indicator
  • For the stats body, this looks like the bold font, maybe the regular font would be better
  • The "Currently Selected" button looks a bit weird? Kinda "raw"? Some margins and nice colors would go a long way imo
little sundial
sonic lily
#

Plus theres still another way of seeing that

#

The parts stats window

little sundial
sonic lily
#

I'm trying to think of how I will handle multitech things in the OAB window, but maybe that will be some form of 1/n display next to the + and when hovering over it will show the other tech names

#

Research window

#

aaaa

#

Here is the currently selected with a basically invisible border instead

#

Too dark

little sundial
# sonic lily Too dark

Yeah, also another idea: only show the tech requirements when the variant is selected in this window. When unselected maybe add a small red icon with like a crossed over erlenmeyer flask / science icon?

sonic lily
#

Something I'm not particularly great about

#

Yeah, I will switch away from the bold font first

sonic lily
#

Alright, I must go to class but I am going to work on engine switching stuff, then node switching, then scalar switching, then world domination

#

btw @little sundial if you find any breaking bugs in your testing, please tell me

little sundial
little sundial
sonic lily
little sundial
sonic lily
#

I think my only solution here is to work earlier

#

Right as the prefab is loaded

#

Luckily I know exactly what method that is

#

The internals of this mod are quite interesting I shall say lol

little sundial
#

I still haven't dared looking at the code, a lot of IL wizardry I presume?

sonic lily
#

Yep

#

Plus a preload patch to add another field to the serialized part stuff

#

And I suppose im going to have to add one more

sonic lily
#

I am quite tired
This will be pushed to tomorrow

#

Maybe

sonic lily
#

I really don't understand

#

Hmm, I could try one thing

#

can you describe the behaviour though?

#

@little sundial could you actually record what you are referencing
As there is zero reason they shouldnt' work

little sundial
sonic lily
#

Because if they weren't working then it'd fall through the ground
But like also the part hover code goes through all those colliders, no?

little sundial
sonic lily
#

but I'll look into it more

#

How do you have your colliders set up in unity

sonic lily
#
                foreach (PartComponent part in vesselComponent.SimulationObject.PartOwner.Parts)
                {
                    if (!part.IsValidInSim || !spaceSimulation.TryGetViewObjectComponent<PartBehavior>(part.SimulationObject, out var viewObjectComponent) || viewObjectComponent.Colliders == null || (viewObjectComponent.transform.position - _mouseOverRayCastCamera.transform.position).magnitude > mouseOverRaycastDistance)
                    {
                        continue;
                    }
                    Collider[] colliders = viewObjectComponent.Colliders;
                    foreach (Collider collider in colliders)
                    {
                        if (collider != null && !collider.isTrigger && collider.Raycast(ray, out var hitInfo, mouseOverRaycastDistance))
                        {
                            _partsUnderMouseRay.Add(new KeyValuePair<PartBehavior, float>(viewObjectComponent, hitInfo.distance));
                            if (hitInfo.distance < num)
                            {
                                _partUnderMouse = viewObjectComponent;
                                num = hitInfo.distance;
                            }
                            break;
                        }
                    }
                }

This is the code where it does that logic

#

the colliders are set including inactive ones

little sundial
sonic lily
#

looking at your screenshots

little sundial
#

Oh yeah just saw it's a editor set thingy

sonic lily
#

This is how the Colliders are set as well

#

wait

#

@little sundial your issue is the naming of your transforms

#

You have multiple model transforms

#

so its looking for the first one

#

and stuff is breaking due to that

little sundial
#

Hmmm I'll try putting all three variant transforms under a single model transform?

sonic lily
#

You technically don't need a model transform

little sundial
#

ah

#

Simpler even

sonic lily
#

Because if it doesn't have a model transform, it'll just use the top level transform

#

though

#

using a single model transform is required for stuff like wheells

little sundial
#

This system feels a bit "rigid" lol

sonic lily
#

I don't like magically named game objects

copper cipher
#

oh god

sonic lily
#

This should be what fixes it though

#

but aaaa
the pitfalls

#

This should definitely be documented on the wiki

little sundial
#

this works

sonic lily
#

Glad to have figured this out

#

this is some arcane stuff

tropic ingot
#

someone knows what class is used for PAM ?

little sundial
tropic ingot
#

i'd like to refresh windows

#

i found how to do that for engineer stats windows (height, width, mass, ...) with Game.OAB.Current.ActivePartTracker.stats.engineerReport

#

but not found for PAM windows

tropic ingot
#

Ok, found it : Game.OAB.Current.Game.PartsManager

sonic lily
#

Okay finally, an actual use for goto

SerializedModuleData FilterData(SerializedModuleData moduleData)
{
    if (moduleData.DataObject is not Data_Engine dataEngine) return moduleData;
    List<Data_Engine.EngineMode> engineModes = [];
    foreach (var engineMode in dataEngine.engineModes)
    {
            
        foreach (var engineModeTwo in modes)
        {
            if (engineMode.engineID != engineModeTwo.engineID) continue;
            engineModes.Add(engineModeTwo);
            goto found;
        }
        engineModes.Add(engineMode);
        found: ;
    }
    dataEngine.engineModes = engineModes.ToArray();
    return moduleData;
}
sonic lily
#
public static T JsonClone<T>(this T obj) => IOProvider.FromJson<T>(IOProvider.ToJson(obj));
#

If you ever need an extension method to clone just about anything

#

Also aaaaa
I am definitely going to provide a very complex patch manager library for this once I'm done

sonic lily
#

alright, testing engine mode swiching

#

Gods

#

I kind of want to make a command to add an argument for KSP2 to load into a save on launch

#

y'know?

copper cipher
#

doesn't Falki's mod allow you to do that?

sonic lily
#

huh

copper cipher
#

yup

#

it's in Skip Splash Screen settings

sonic lily
#

hmm

#

I'd prefer passing the name of the save

#

as a command line argument

#

or the save file location

#

I seem to have caught a case of dumbass-itis

#

aaaaaaaaaaaaa
I broke something

#

I forgot to harmony patch stuff again

#

after switching between project types

#

and btw, you can definitely change the thrust transform between engine modes, the main issue there will be having to duplicate the old engine mode

#

hmmmm

#

somethings wrong here

#

Now im actually confused

#

I dont ever replace the part data in flight

#

Except at the point of deserialization

#

So why is ISP not changing

sonic lily
#

aaaaaaaaaaaaaaaaaaaa

#

there's another method that gets data

#

and this will be a bit more complex of a place to add stuff

#

but I think I have an idea

#

It's going to involve using the part provider for more than I bargained for

#

I'm going to have to add each used variant to the part provider

#

With IDs like
KLSS_Triple+VariantID1+VariantID2

#

This may actually be a better idea

#

but it involves ... yet another patch

sonic lily
sonic lily
#

This will either be legendary or completely broken

#

no in between

#

well

#

apparently there was an inbetween

#

of just nothing

#

I really need to prep for dnd

#

aaaaaaaaaa

#

but I'm so close

#

iuohpgftsrpuoighfewgijo;lhpgbsvfedalhkp;jfewqaklhoj;ufgqwaerkljbbnjk;ghrfeqop[irjgheyq3w

#

I fucking did it

#

I got the ISP doubled variant to load

#

holy shit

#

holy fucking shit

little sundial
#

Real Fuels incoming 👀

sonic lily
#

This will be a great mod to release an update on tomorrow for the 1 year anniversery of ksp2 and this server

sonic lily
#

I need some good art for V-SwiFT

#

to put on spacedock/the forums

sonic lily
#

ah pog

#

attach nodes might be quite easy

#

The game has a concept of Dynamic Attach Nodes already

#

So I can likely just hook into that

coral condor
#

This also makes me wonder if there's a way to make fairings with interstage nodes! Not my next project - but with all that's happening in CommNext it could be really useful.

#

That said, it's probably time for me to go back to TNO and see what I need to do to V-SwiFT it. I'd like to get that ready and join the team for modders actively using V-SwiFT.

sonic lily
#

Well that's a new bug

little sundial
sonic lily
#

I need to do some patching of the part provider rq

coral condor
#

Is this all I need to do to make my parts V-SwiFT ready? They're already split into separate prefabs for the base and top, where the _open configuration omits the _top prefab

#

I'm thinking maybe these need to be addressables though.

#

I'd like to take a shot at making a dev build for TNO that (for now) has both nodes but makes having or not having the top framework a part selectable option in the VAB.

sonic lily
coral condor
sonic lily
#

yep

coral condor
#

How does one disable a prefab in part. I've not done that before

#

Is it Toggle Active State?

sonic lily
#

you see that check mark

#

yeah, its the toggle active

coral condor
#

Ah ha!

#

OK, so toggle the active state to off (un check it) and then save and make the bundle, then add a V-SwiFT patch?

sonic lily
#

yep

coral condor
#

This may be kinda easy then!

sonic lily
#

Very much so

#

And if you are willing, can you send me a version of your mod with the top attach node removed and the original json for that top attach node

#

(Along with the variant patch)

coral condor
#

I believe I can do that. I'm a bit rusty on making my own parts pack, so I'm working through the buildthedamnthing step right now.

#

I've got jsons for it with the nodes, those should already be available, so then the next step would be take that node off, build a version without the top node and send that to you.

sonic lily
#

yep

coral condor
#

There's one. Do you need more than one or just a sample?

#

Screw it, take your pick!

sonic lily
#

just a sample

#

fps60

sonic lily
#

Damnn the dart is exactly 1 ton

coral condor
#

I've always thought it was a bit heavy for the performance. Needs to go on a diet.

copper cipher
#

brüh

sonic lily
#

But most of that is from adding the UI stuff

#

Version 0.3.0 has been released!

sonic lily
#

@little sundial i forgot to test if klss still worked with this update btw

sonic lily
#

I really need to make a forum post now

#

Now that multiple mods are going to be depending on this

sonic lily
#

There is a way to make parts with these, not really the purview of v-swift I think tho

amber tiger
#

Sure

coral condor
#

I was giving this some more thought. I agree, this may not be a V-SwiFT thing. My possibly even simpler idea is to build what amounts to an inner fairing decoupler part. Grab your ordinary everyday procedural fairing. Start stacking as many interstage decoupler parts as you need. Attach your parts to the interstage decoupbler's nodes. Close your fairing.

sonic lily
#

Anyways, what should I work on next

#

modules, or general scalar changing

copper cipher
#

I would say the latter would probably be more useful

sonic lily
#

I'm trying to think what I can actually change

#

Cost is likely easy enough

#

but only matters for like #1189139111206993950

#

I can actually change a lot of scalars, but I can't guarentee the changes will show up in the OAB

#

only in flight

#

That might be what I do

#

like sure I can change CoM

#

but it would be very complex to do in the OAB

#

and have the indicators be correct

#

temperature isn't even shown in the OAB

#

Anyways, now just need to set up the stuff for popouts with scalar transformers

coral condor
#

For scalars that can change mass is obvious, but what about ISP? Or thrust?

#

Heat will one day be a part of it.

#

Resource capacity? How about an option that adds a battery and so you need to store EC?

sonic lily
sonic lily
coral condor
#

OK, some other crazy adds for scalar changes: Crew Capacity, Crash Tolerance, Heat Conductivity, Max Temp, Maximum Drag, Minimum Drag, Angular Drag, Breaking Force, Breaking Torque?

sonic lily
#

I have the stuff for each of those except crew cap

coral condor
#

Oh, and of course Buoyancy!

sonic lily
#

I can't really change crew cap in the oab

sonic lily
#

I have a generic solution

sonic lily
copper cipher
#

Oh and another idea, though this one is probably slightly more complicated?

#

It would be really cool if you could specify in the patch whether the switcher should also be available in flight

sonic lily
#

Thats basically impossible

copper cipher
#

For example for the use case of the RCS/engine switcher

sonic lily
#

In flight is a very complex and different environment than in the oab

copper cipher
#

Could it be possible maybe at least for the module enabling/disabling switcher? I feel like that one could work by just having both versions on the part and one being enabled and the other disabled, no?

#

Of course, this would be a pretty niche edge case, I imagine, but I do know that it was a thing in KSP1 to some extent

#

Like, some mods allowed switching of engine/RCS propellant type in flight, or the switching of plumes

sonic lily
#

Alright
I'll think on this
Dont know if I can guarentee anything

copper cipher
#

Of course, just some food for thought 😆

sonic lily
#

hmm, how should I test the module property changing

#

Like what module has a property that can be easily visible when changed?

copper cipher
#

how about RCS thrust?

sonic lily
#

Yeah, that's fair

#

it'd be quite obvious if I turn it up to like 300 kN

copper cipher
#

though, I'm kinda thinking RCS might deserve the same treatment as engines

#

with the window

sonic lily
#

Fair enough

#

That window is fully customizable and not necessarily for engines

#

there are other things that show when that window is set to show

#

like mass modification for example

#

it will show +/- x tons

sonic lily
#

Anyways, now time to finally test using RCS thrust

#
:parts #rcs_0v_block_monoprop {
    @include part-switch() {
        +EngineType {
            VariantSetLocalizationKey: "VSwiftTest/EngineType";
            +Default {
                VariantLocalizationKey: "VSwiftTest/Default";
            }
            +Better {
                VariantLocalizationKey: "VSwiftTest/Better";
                +ModuleDefinitionTransformer {
                    BehaviourType: Module_RCS;
                    DataType: Data_RCS;
                    Key: maxThrust;
                    Value: 10000.0;
                }
            }
        }
    }
}

This can only go well

sonic lily
#

Hmmmm

little sundial
#

It did not go well?

sonic lily
#

No

#

well

#

it worked there

#

but there are still some bugs

sonic lily
#

Its the stock module pattern

#

Or wait

#

Maybe

#

But the bug im referring to is in the oab

#

Where the advanced controls toggle for rcs stops working

sonic lily
#

This is the bug I'm having

#

I'm thinking I know why

#

spoiler: she did not know whyyy

#

but the way the issue manifests, makes me think this is a game buggg

#

also I need to do symmetry stuff

#

so hmmm

sonic lily
stable mango
#

and also the part manager is accesible even when no com , this would basically allow you to do anything even when no comm

#

that bug should be fixed

sonic lily
#

what

#

this bug only exists in the OAB

stable mango
#

OAB = VAB ?

sonic lily
#

Yes

#

This bug seems to be something to do with the UI rebuilding or something, idk

stable mango
#

no it doesnt

sonic lily
#

...

#

yes it does.

stable mango
#

Go on a vessel that have no comm

#

and go in part managrt

sonic lily
#

Okay, but the bug I'm speaking about

stable mango
#

oh

sonic lily
#

is that the advanced controls are always visible after switching the variant

stable mango
sonic lily
#

It allows you to do some things

#

But you aren't landing a probe with just the parts manager alon

#

Fixed it!

#

Now the thing I really want to do is sync variants in a symmetry group

stable mango
#

so not like control surfaces parts

little sundial
#

@sonic lily would it be possible to "re-open" the part in PAM after switching variant? Having it unfocus the part makes it a bit annoying cycling through variants

sonic lily
copper cipher
#

You could try to open it from a coroutine after WaitForUpdate

sonic lily
#

Fair

#

I'll try WaitForLateUpdate

little sundial
#

How does the MaterialSwapper know which MeshRenderer it should apply to?

sonic lily
#

It applies to all mesh renderers on the part with that material

little sundial
#

Ah it's a map

#

I see thank you

#

so something like that:

+MaterialSwapper {
  Swaps: {
    KeepOnTruckin_truck_tank_methalox_mat: "addressables://KeepOnTruckin_truck_tank_monopropellant_mat"
  };
}

And I need to add that mat to the addressable bundle right?

copper cipher
#

yeah that should be it

little sundial
#

I think something might be wrong with the material switching, it' using the colors defined in Unity for the paint instead of the ones defined in VAB. Some stuff from the Colors patch might need to be applied on, mat switching

sonic lily
#

but I just copy properties from/to

#

I think I know what I should do

#

it'll be fixed by the next release

little sundial
#

Is there an AttachNodeRemover?

#

(Or even better an AttachNodeModifier?)

sonic lily
#

No, for your purposes you want to generate all attach modes dynamically

#

because

#

you need all the nodes to be dynamic for this to work

#

though I do have some ideas

#

to make this easier

little sundial
sonic lily
#

Insofar as being able to predefine nodes in the module part switch and have constructs to move them

sonic lily
#

the issue is that you currently won't be able to switch with stuff attached without having to unnattach and reattach

sonic lily
sonic lily
#

That capability should now at least be in dev

#

I'll explain how when I make this next release (likely tomorrow)

#

@little sundial can you send me a build of this such that I can do testing with both the module color stuff and attach node moving for this use case

little sundial
#

A build of KeepOnTruckin?

sonic lily
#

Yeah, if you don't want to publicly share it just yet, just dm it to me

little sundial
#

Yup give me 2s fixing some stuff

sonic lily
#

Take your time, gonna be busy for a bit

sonic lily
#

Note btw with this system, you wont be able to rotate nodes that are predefined (or hide them)

sonic lily
#

First gonna test the color fixing issue

#

then the attach node moving

sonic lily
#

I did get PAM reloading to work

#

I want to see if I can make it quicker

sonic lily
#
@use "VSwift:*";

:parts #KeepOnTruckin_truck_tank {
  @include part-switch() {
    PredefinedDynamicNodes: [
      {
        nodeID: front,
        Size: 1,
        VisualSize: 1,
        Position: {
          X: 0.0,
          Y: 1.395,
          Z: 0.0
        },
        Orientation: {
          X: 0.0,
          Y: 1.0,
          Z: 0.0
        },
      },
      {
        nodeID: back,
        Size: 1,
        VisualSize: 1,
        Position: {
          X: 0.0,
          Y: -1.395,
          Z: 0.0
        },
        Orientation: {
          X: 0.0,
          Y: -1.0,
          Z: 0.0
        }
      }
    ];
    +TankType {
      VariantSetLocalizationKey: "KeepOnTruckin/Variants/TankType";
      +Methalox {
        VariantLocalizationKey: "Resource/DisplayName/Methalox";
      }
      +MonoPropellant {
        VariantLocalizationKey: "Resource/DisplayName/MonoPropellant";
        +MaterialSwapper {
          Swaps: {
            KeepOnTruckin_truck_tank_methalox_mat: "addressables://KeepOnTruckin_truck_tank_monopropellant_mat"
          };
        }
        +ResourceContainerAdder {
          Containers: [
            {
              Name: "MonoPropellant",
              CapacityUnits: 2.0,
              InitialUnits: 2.0
            }
          ];
        }
        +ResourceContainerRemover {
          Containers: [Methane, Oxidizer];
        }
      }
      +Hydrogen {
        VariantLocalizationKey: "Resource/DisplayName/Hydrogen";
        +MaterialSwapper {
          Swaps: {
            KeepOnTruckin_truck_tank_methalox_mat: "addressables://KeepOnTruckin_truck_tank_hydrogen_mat"
          };
        }
        +ResourceContainerAdder {
          Containers: [
            {
              Name: "Hydrogen",
              CapacityUnits: 1.2,
              InitialUnits: 1.2
            }
          ];
        }
        +ResourceContainerRemover {
          Containers: [Methane, Oxidizer];
        }
      }
    }
    +ForeTube {
      VariantSetLocalizationKey: "KeepOnTruckin/Variants/ForeTube";
      +Long {
        VariantLocalizationKey: "KeepOnTruckin/Variants/Long";
        +TransformActivator {
          Transforms: [
            "col_tube_fore",
            "Fore Long Tube"
          ];
        }
      }
      +Short {
        VariantLocalizationKey: "KeepOnTruckin/Variants/Short";
        +TransformActivator {
          Transforms: [
            "Fore Short Tube"
          ];
        }
        +AttachNodeMover {
          MovedNodes: {
            front: {
              x: 0.0,
              y: 1.23,
              z: 0.0
            }
          };
        }
      }
    }
    +AftTube {
      VariantSetLocalizationKey: "KeepOnTruckin/Variants/AftTube";
      +Long {
        VariantLocalizationKey: "KeepOnTruckin/Variants/Long";
        +TransformActivator {
          Transforms: [
            "col_tube_aft",
            "Aft Long Tube"
          ];
        }
      }
      +Short {
        VariantLocalizationKey: "KeepOnTruckin/Variants/Short";
        +TransformActivator {
          Transforms: [
            "Aft Short Tube"
          ];
        }
        +AttachNodeMover {
          MovedNodes: {
            back: {
              x: 0.0,
              y: -1.23,
              z: 0.0
            }
          };
        }
      }
    }
  }
}
#

(This is the patch I used on my dev version, I think I'm about ready to release it)

little sundial
sonic lily
#

Silly little creature

native pivot
#

I can't wait to see it in KKY colors! (KKY are the initials of the character I use for pretty much everything)

little sundial
#

@sonic lily when alt-click duplicating parts they do not have the correctly moved attach node

sonic lily
#

You can for now just toggle it

little sundial
#

ah also the base/accent colors seem to switch sometimes

sonic lily
#

Not in flight tho

#

I should

sonic lily
#

@little sundial so the first issue is just me being an idiot and messing up the order of 2 lines of code, the other issue, can you tell me how to repro?

little sundial
sonic lily
#

I have a fix for the attach nodes

#

and a tentative fix for the colors

#

I can't reliably repro but I did have some bugs with colors I fixed

#

Gonna put this into a 0.4.1 and wait for munix to approve

sonic lily
#

So now I only have conditional switchers and adding/removing modules on my todo list

#

One of those sounds easier than the others...

tropic ingot
#

hy. You spoke about dynamic node. What are dynamic nodes ?

sonic lily
#

Nodes that are dynamically created by a part module

#

that can be moved

#

An example is the module_fairing

tropic ingot
#

ok

#

i can not change a "normal" node to dynamicly ?

sonic lily
#

no

#

you need to make the node