private void OnPointerState(KISAddonPointer.PointerTarget pTarget, KISAddonPointer.PointerState pState, Part hoverPart, AttachNode hoverNode) { if (pState == KISAddonPointer.PointerState.OnMouseEnterNode) { if (pTarget == KISAddonPointer.PointerTarget.PartMount) { string keyAnchor = "[" + GameSettings.Editor_toggleSymMethod.name + "]"; KISAddonCursor.CursorEnable("KIS/Textures/mount", "Mount", "(Press " + keyAnchor + " to change node, [Escape] to cancel)"); } if (pTarget == KISAddonPointer.PointerTarget.PartNode) { pointerMode = pointerMode; } } if (pState == KISAddonPointer.PointerState.OnMouseExitNode || pState == KISAddonPointer.PointerState.OnChangeAttachNode) { pointerMode = pointerMode; } }
private void OnPointerAction(KISAddonPointer.PointerTarget pointerTarget, Vector3 pos, Quaternion rot, Part tgtPart, string srcAttachNodeID = null, AttachNode tgtAttachNode = null) { if (pointerTarget == KISAddonPointer.PointerTarget.PartMount) { if (movingPart) { MoveAttach(tgtPart, pos, rot, srcAttachNodeID, tgtAttachNode); } else { CreateAttach(tgtPart, pos, rot, srcAttachNodeID, tgtAttachNode); } ModuleKISPartMount pMount = tgtPart.GetComponent <ModuleKISPartMount>(); if (pMount) { pMount.sndFxStore.audio.Play(); } } if (pointerTarget == KISAddonPointer.PointerTarget.Part || pointerTarget == KISAddonPointer.PointerTarget.PartNode || pointerTarget == KISAddonPointer.PointerTarget.Static || pointerTarget == KISAddonPointer.PointerTarget.KerbalEva) { if (pointerMode == PointerMode.Drop) { if (movingPart) { MoveDrop(tgtPart, pos, rot); } else { CreateDrop(tgtPart, pos, rot); } } if (pointerMode == PointerMode.Attach) { if (movingPart) { MoveAttach(tgtPart, pos, rot, srcAttachNodeID, tgtAttachNode); } else { CreateAttach(tgtPart, pos, rot, srcAttachNodeID, tgtAttachNode); } // sound ModuleKISPickup modulePickup = GetActivePickupNearest(pos); if (tgtPart) { if (modulePickup) { AudioSource.PlayClipAtPoint(GameDatabase.Instance.GetAudioClip(modulePickup.attachPartSndPath), pos); } } } } draggedItem = null; draggedPart = null; movingPart = null; KISAddonCursor.CursorDefault(); }
// apply the screw/weld property public override void OnAttachToolUsed(Part srcPart, Part tgtPart, KISAttachType moveType, KISAddonPointer.PointerTarget pointerTarget) { base.OnAttachToolUsed(srcPart, tgtPart, moveType, pointerTarget); //Debug.Log("OnItemMove2 begin" + (srcPart == null ? "null" : srcPart.name) + " => " + // (tgtPart == null ? "null" : tgtPart.name) + ", " + moveType + ", " + pointerTarget); //set welded if needed if ((moveType == KISAttachType.ATTACH) && srcPart.Modules.Contains("ModuleAttachMode") ) { ModuleAttachMode mkpam = srcPart.Modules["ModuleAttachMode"] as ModuleAttachMode; mkpam.isWelded = isWeldingTool; //Debug.Log("OnItemMove2 " + isWeldingTool); } }