/// <summary> /// Used on the server to switch the pickup mode of this InteractableStorage /// </summary> public void ServerSwitchPickupMode(GameObject player) { pickupMode = pickupMode.Next(); string msg = "Nothing happens."; switch (pickupMode) { case PickupMode.Single: msg = $"The {gameObject.ExpensiveName()} now picks up one item at a time."; break; case PickupMode.Same: msg = $"The {gameObject.ExpensiveName()} now picks up all items of a single type at once."; break; case PickupMode.All: msg = $"The {gameObject.ExpensiveName()} now picks up all items in a tile at once."; break; case PickupMode.DropClick: msg = $"The {gameObject.ExpensiveName()} now drops all items on the tile at once"; break; default: Logger.LogError($"Unknown pickup mode set! Found: {pickupMode}", Category.Inventory); break; } Chat.AddExamineMsgFromServer(player, msg); }
private void HandlePickup(PickupMode newPickupMode) { Logger.logInfo("Start pickup in mode {0} from part: {1}", newPickupMode, draggedPart); grabbedPart = null; pickupMode = newPickupMode; cursorMode = CursorMode.Nothing; icon = new KIS_IconViewer(draggedPart, draggedIconResolution); KISAddonCursor.AbortPartDetection(); grabActive = false; KISAddonCursor.CursorDisable(); if (HighLogic.LoadedSceneIsFlight) { InputLockManager.SetControlLock(ControlTypes.VESSEL_SWITCHING, "KISpickup"); // Disable jetpack mouse control (workaround as SetControlLock didn't have any effect on this) KerbalEVA kEva = FlightGlobals.ActiveVessel.rootPart.GetComponent<KerbalEVA>(); if (kEva && kEva.JetpackDeployed) { kEva.JetpackDeployed = false; jetpackLock = true; Logger.logInfo("Jetpack mouse input disabled"); } } }