Querying a vessel’s parts¶
This is a quick list to get the idea across fast. The actual details of the meaning of these things is complex enough to warrant its own topic.
To get the parts of a vessel (such as your current vessel, called SHIP), you can do the following things:
These are equivalent. They get the full list of all the parts:
LIST PARTS IN MyPartList.
SET MyPartlist TO SHIP:PARTS.
This gets all the parts that have the name given, as either a nametag (Part:TAG), a title (Part:TITLE), or a name, (Part:NAME):
SET MyPartList to SHIP:PARTSDUBBED("something").
These are other ways to get parts that are more specific about what exact nomenclature system is being used:
SET MyPartList to SHIP:PARTSTAGGED("something"). // only gets parts with Part:TAG = "something".
SET MyPartList to SHIP:PARTSTITLED("something"). // only gets parts with Part:TITLE = "something".
SET MyPartList to SHIP:PARTSNAMED("something"). // only gets parts with Part:NAME = "something".
This gets all the PartModules on a ship that have the same module name:
SET MyModList to SHIP:MODULESNAMED("something").
This gets all the parts that have been defined to have some sort of activity occur from a particular action group:
SET MyPartList to SHIP:PARTSINGROUP( AG1 ). // all the parts in action group 1.
This gets all the modules that have been defined to have some sort of activity occur from a particular action group:
SET MyModList to SHIP:MODULESINGROUP( AG1 ). // all the parts in action group 1.
This gets the primary root part of a vessel (the command core that you placed FIRST when building the ship in the VAB or SPH):
SET firstPart to SHIP:ROOTPART.
This lets you query all the parts that are immediate children of the current part in the tree:
SET firstPart to SHIP:ROOTPART.
FOR P IN firstPart:CHILDREN {
print "The root part as an immediately attached part called " + P:NAME.
}.
You could keep walking down the tree this way, or go upward with PARENT and HASPARENT:
TODO - NEED TO MAKE A GOOD EXAMPLE OF WALKING THE PARTS TREE HERE WITH RECURSION ONCE THE SYNTAX IS NAILED DOWN FOR THAT.
IF thisPart:HASPARENT {
print "This part's parent part is "+ thisPart:PARENT:NAME.
}.