public static onPartGeometryUpdate ( Part part, bool createDefaultCube ) : void | ||
part | Part | |
createDefaultCube | bool | |
return | 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);
}
}
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(); }