SSTUTools.SSTUModInterop.onPartGeometryUpdate C# (CSharp) Méthode

onPartGeometryUpdate() public static méthode

Updates part highlight renderer list, sends message to SSTUFlagDecal to update its renderer, sends message to FAR to update voxels, or if createDefaultCube==true will re-render the 'default' stock drag cube for the part Should be called anytime the model geometry in a part is changed -- either models added/deleted, procedural meshes updated. Other methods exist for pure drag-cube updating in SSTUStockInterop.
public static onPartGeometryUpdate ( Part part, bool createDefaultCube ) : void
part Part
createDefaultCube bool
Résultat void
        public static void onPartGeometryUpdate(Part part, bool createDefaultCube)
        {
            if (!HighLogic.LoadedSceneIsEditor && !HighLogic.LoadedSceneIsFlight) { return; }//noop on prefabs
            //MonoBehaviour.print(System.Environment.StackTrace);
            SSTUStockInterop.updatePartHighlighting(part);
            part.airlock = locateAirlock(part);
            part.SendMessage("onPartGeometryChanged", part);//used by SSTUFlagDecal and potentially others in the future
            if (isFARInstalled())
            {
                //FARdebug(part);
                part.SendMessage("GeometryPartModuleRebuildMeshData");
            }
            else if (createDefaultCube && (HighLogic.LoadedSceneIsEditor || HighLogic.LoadedSceneIsFlight))
            {
                SSTUStockInterop.addDragUpdatePart(part);
            }
        }

Usage Example

Exemple #1
0
        private void buildFairing()
        {
            fairingBase.clearProfile();

            UVMap uvs = UVMap.GetUVMapGlobal(uvMap);

            fairingBase.outsideUV = uvs.getArea("outside");
            fairingBase.insideUV  = uvs.getArea("inside");
            fairingBase.edgesUV   = uvs.getArea("edges");

            float halfHeight = currentHeight * 0.5f;

            fairingBase.addRing(-halfHeight, currentBottomDiameter * 0.5f);
            if (currentTopDiameter != currentBottomDiameter)
            {
                fairingBase.addRing(-halfHeight + currentTaperHeight, currentBottomDiameter * 0.5f);
            }
            if (currentHeight != currentTaperHeight || currentTopDiameter == currentBottomDiameter)
            {
                fairingBase.addRing(halfHeight, currentTopDiameter * 0.5f);
            }
            fairingBase.generateColliders = this.generateColliders;
            fairingBase.generateFairing();
            fairingBase.setMaterial(fairingMaterial);
            fairingBase.setOpacity(HighLogic.LoadedSceneIsEditor && editorTransparency ? 0.25f : 1.0f);

            updateEnginePositionAndScale();
            SSTUModInterop.onPartGeometryUpdate(part, true);
            SSTUStockInterop.fireEditorUpdate();
        }
All Usage Examples Of SSTUTools.SSTUModInterop::onPartGeometryUpdate