Jump to content

Symmetry & Tweakables


Recommended Posts

Anyone know of a way to force parts that are symmetry mode to NOT share the same values when you adjust the teakables? It's forced while in the editor but once you get to the launchpad they are all individually set. I'd like to be able to toggle this on or off when dealing with IR parts. I'm close to giving this idea up and suggest users to use the wonderful PartWizard plugin for their non-symmetrical needs. :)

Link to comment
Share on other sites

I'm not sure if I have an answer for you, but here is what I know:

In Editor:

Symmetrically set parts all refer to each other via the List<Part> symmetryCounterparts property.

For four way symmetry, each part in the symmetry has the other 3 parts in that list, there is no 'parent' part to the symmetry as far as I am aware.

Because of that, I speculate that under the hood in code, there is an event that fires every time any value on the part (including in it's partModules) changes that updates all other parts in the symmetryCounterparts list to match. I am not aware of any way to stop this update from happening or that any of this is exposed where a mod can access it. Note that this updating of symmetryCounterparts does not seem to carry down past the partModule level, this is why actions assigned to action groups do not update correctly when you change the symmetry on a part you have assigned actions on.

The other possibility is that under the hood there is only a single part and that the symmetryCounterparts list acts as a "clone-location' type thing where the same part is displayed multiple times in the Editor. I consider this unlikely however based on my own experiences with symmetry for my Action Groups mod.

I have not checked out any of the mods that remove symmetry (StripSymmetry is the one I remember) to see how they handle the situation.

In Flight:

In flight each part is its own self-contained part regardless of the symmetry settings as you have noted.

The interesting bit however is that symmetryCounterparts is still populated, if you want you can affect all parts in symmetry with the selected part by referencing this list.

TL;DR: In answer to your question, I do not believe it is possible to affect data stored in a partModule for a single part in a symmetry placement in the Editior without removing the symmetry via StripSymmetry or similar.

D.

edit: It looks like all PartWizard does in terms of symmetry is add/remove parts from the symmetryCounterparts list. That supports the theory that each part in symmetry is its own part and the data across all parts in the symmetry update any time data on one of the parts changes.

Edited by Diazo
Link to comment
Share on other sites

I figured as much Diazo but I just wanted a second opinion/view on the matter. I'm going to just accept the limitation and suggest users to use PartWizard for a solution rather than trying to copy what it does to create that functionality. Thanks!

Link to comment
Share on other sites

I've played a bit with symmetry stuff for my mirror symmetry plugin, though I've only tried reading values rather than writing them. Just musing about the possibility of over-writing the partner list and setting some of the Boolean values to false, though I suspect you've tried that already. I'll have a play when in front of the pc again, see if I can find anything useful.

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