private void BuildFairing() { //MonoBehaviour.print("Building Fairing "+guiTopDiameter+" : "+guiBottomDiameter); needsRebuilt = false; fairingCreated = true; int len = fairingParts.Length; if (HighLogic.LoadedSceneIsEditor)//only enforce editor sizing while in the editor; { for (int i = 0; i < len; i++) { //MonoBehaviour.print("pt t/b " + fairingParts[i].topRadius + " : " + fairingParts[i].bottomRadius); if (fairingParts[i].canAdjustTop && canAdjustTop) { fairingParts[i].topRadius = guiTopDiameter * 0.5f; } if (fairingParts[i].canAdjustBottom && canAdjustBottom) { fairingParts[i].bottomRadius = guiBottomDiameter * 0.5f; } //MonoBehaviour.print("pt t/b 2" + fairingParts[i].topRadius + " : " + fairingParts[i].bottomRadius); } } for (int i = 0; i < len; i++) { fairingParts[i].generateColliders = this.generateColliders; fairingParts[i].facesPerCollider = 1; fairingParts[i].numOfSections = (int)Math.Round(numOfSections); fairingParts[i].CreateFairing(editorTransparency ? 0.25f : 1f); } ROLModInterop.OnPartGeometryUpdate(part, true); }
public void DestroyFairing() { //MonoBehaviour.print("Destroying Fairing"); int len = fairingParts.Length; for (int i = 0; i < len; i++) { fairingParts[i].DestroyFairing(); } if (fairingCreated) { ROLModInterop.OnPartGeometryUpdate(part, true); } fairingCreated = false; }
private void JettisonFairing() { //MonoBehaviour.print("Jettisoning fairing - prev: "+prevAttachedPart); if (numOfSections == 1 && prevAttachedPart != null) { //MonoBehaviour.print("Reparenting fairing to: " + prevAttachedPart); ReparentFairing(prevAttachedPart); ROLModInterop.OnPartGeometryUpdate(prevAttachedPart, true);//update other parts highlight renderers, to add the new fairing bits to it. } else { //MonoBehaviour.print("Jettisoning Panels: " + fairingParts.Length); foreach (ROLNodeFairingData data in fairingParts) { data.JettisonPanels(part); } } prevAttachedPart = null; fairingJettisoned = true; fairingEnabled = false; DestroyFairing();//cleanup any leftover bits in fairing containers }
/// <summary> /// Calls the generic ROT procedural drag-cube updating routines. Will update the drag cubes for whatever the current model state is. /// </summary> private void UpdateDragCubes() { ROLModInterop.OnPartGeometryUpdate(part, true); }