KAS.KASModulePort.OnKISAction C# (CSharp) Method

OnKISAction() public method

public OnKISAction ( BaseEventData baseEventData ) : void
baseEventData BaseEventData
return void
        public void OnKISAction(BaseEventData baseEventData)
        {
            var action = baseEventData.GetString("action");
            var tgtPart = baseEventData.Get<Part>("targetPart");
            var tgtNode = baseEventData.Get<AttachNode>("targetNode");

            if (action == "Store") {
              if (winchConnected) {
            winchConnected.UnplugHead(false);
              }
            }
            if (action == "DropEnd") {
              if (winchConnected) {
            winchConnected.cableJointLength = winchConnected.cableRealLenght;
            winchConnected.PlugHead(this, KASModuleWinch.PlugState.PlugDocked, false, false, true);
              }
            }
            if (action == "AttachStart") {
              if (tgtNode != null) {
            KASModuleWinch moduleWinch = tgtNode.owner.GetComponent<KASModuleWinch>();
            if (moduleWinch && winchConnected
            && moduleWinch.headState == KASModuleWinch.PlugState.Deployed
            && tgtNode.id == moduleWinch.connectedPortNodeName) {
              winchConnected.UnplugHead(false);
              return;
            }
              }
            }
            if (action == "AttachEnd") {
              if (winchConnected) {
            winchConnected.cableJointLength = winchConnected.cableRealLenght;
              }
              if (tgtNode != null) {
            KASModuleWinch moduleWinch = tgtNode.owner.GetComponent<KASModuleWinch>();
            if (moduleWinch && moduleWinch.headState == KASModuleWinch.PlugState.Deployed
              && tgtNode.id == moduleWinch.connectedPortNodeName) {
              moduleWinch.PlugHead(this, KASModuleWinch.PlugState.PlugDocked, alreadyDocked: true);
              StartCoroutine(WaitAndRemoveJoint());
            }
              }
            }
        }