コード例 #1
0
        private void OnEditorShipModified(ShipConstruct vesselConstruct)
        {
            if (vesselConstruct.Parts.Count == _editorPartCount)
            {
                return;
            }
            //Debug.Log("Calling RebuildCLSVessel as the part count has changed in the editor");

            if (null != _vessel)
            {
                _vessel.Clear();
                _vessel = null;
            }

            if (null != EditorLogic.RootPart)
            {
                _vessel = new CLSVessel();
                _vessel.Populate(EditorLogic.RootPart);

                // TODO recoupler support
            }

            _editorPartCount = vesselConstruct.Parts.Count;
            // First unhighlight the space that was selected.
            if (-1 != WindowSelectedSpace && WindowSelectedSpace < _vessel.Spaces.Count)
            {
                _vessel.Spaces[WindowSelectedSpace].Highlight(true);
            }
        }
コード例 #2
0
        private void UpdateShipConstruct()
        {
            if (null != _vessel)
            {
                _vessel.Clear();
                _vessel = null;
            }

            if (EditorLogic.RootPart == null)
            {
                return;
            }

            try
            {
                // Build new vessel information
                _vessel = new CLSVessel();
                _vessel.Populate(EditorLogic.RootPart);

                // Recoupler support
                for (int i = requestedConnections.Count - 1; i >= 0; i--)
                {
                    ConnectPair connectPair = requestedConnections[i];
                    if (connectPair.part1.vessel != connectPair.part2.vessel)
                    {
                        requestedConnections.Remove(connectPair);
                    }
                    _vessel.MergeSpaces(connectPair.part1, connectPair.part2);
                }
            }
            catch (Exception ex)
            {
                Log.error(ex, "rebuild Vessel Error");
            }
        }
コード例 #3
0
        private void RebuildCLSVessel()
        {
            if (null != _clsVessel)
            {
                _clsVessel.Clear();
                _clsVessel = null;
            }

            if (vessel.rootPart == null)
            {
                return;
            }

            try
            {
                // Build new vessel information
                _clsVessel = new CLSVessel();
                _clsVessel.Populate(vessel.rootPart);

                // TODO recoupler support
            }
            catch (Exception ex)
            {
                Debug.Log($"CLS rebuild Vessel Error:  { ex}");
            }
        }
コード例 #4
0
 // Git Issue #85.  sometimes spaces are not updating on a vessel.  Deleting a pod does not clear the current vessel.
 private void OnEditorPodPicked(Part part)
 {
     _vessel.Clear();
     _vessel = null;
     if (null != EditorLogic.RootPart)
     {
         _vessel = new CLSVessel();
         _vessel.Populate(EditorLogic.RootPart);
     }
     _editorPartCount = 1;
 }
コード例 #5
0
        private void RebuildCLSVessel()
        {
            dirty = false;

            if (null != _clsVessel)
            {
                _clsVessel.Clear();
                _clsVessel = null;
            }

            if (vessel.rootPart == null)
            {
                return;
            }

            try
            {
                // Build new vessel information
                _clsVessel = new CLSVessel();
                _clsVessel.Populate(vessel.rootPart);

                // Recoupler support
                for (int i = CLSAddon.Instance.requestedConnections.Count - 1; i >= 0; i--)
                {
                    CLSAddon.ConnectPair connectPair = CLSAddon.Instance.requestedConnections[i];
                    if (connectPair.part1.vessel != connectPair.part2.vessel)
                    {
                        CLSAddon.Instance.requestedConnections.Remove(connectPair);
                    }
                    _clsVessel.MergeSpaces(connectPair.part1, connectPair.part2);
                }
            }
            catch (Exception ex)
            {
                Debug.Log($"CLS rebuild Vessel Error:  { ex}");
            }
        }