//You can also get a call when the player's cursor hovers over an icon/button so that you can display info about it //Example code below for displaying item info in the hotbar public override void ButtonEnter(string name, SegmentEntity targetEntity) { MyModMachine machine = targetEntity as MyModMachine; if (name == "itemicon") { ItemBase itemForSlot = ItemManager.SpawnItem(100); int count = itemForSlot.GetAmount(); if (itemForSlot == null) { return; } if (HotBarManager.mbInited) { HotBarManager.SetCurrentBlockLabel(ItemManager.GetItemName(itemForSlot)); } else { if (!SurvivalHotBarManager.mbInited) { return; } string name1 = !WorldScript.mLocalPlayer.mResearch.IsKnown(itemForSlot) ? "Unknown Material" : ItemManager.GetItemName(itemForSlot); if (count > 1) { SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}", count, name1)); } else { SurvivalHotBarManager.SetCurrentBlockLabel(name1); } } } }
public override void ButtonEnter(string name, SegmentEntity targetEntity) { ExtraStorageHoppers hopper = targetEntity as ExtraStorageHoppers; string empty = string.Empty; ItemBase itemForSlot = this.GetItemForSlot(hopper, name); if (itemForSlot == null) { return; } if (HotBarManager.mbInited) { HotBarManager.SetCurrentBlockLabel(ItemManager.GetItemName(itemForSlot)); } else { if (!SurvivalHotBarManager.mbInited) { return; } string text = WorldScript.mLocalPlayer.mResearch.IsKnown(itemForSlot) ? ItemManager.GetItemName(itemForSlot) : "Unknown Material"; int currentStackSize = ItemManager.GetCurrentStackSize(itemForSlot); if (currentStackSize > 1) { SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}", currentStackSize, text)); } else { SurvivalHotBarManager.SetCurrentBlockLabel(text); } } }
public override void HandleItemDrag(string name, ItemBase draggedItem, DragAndDropManager.DragRemoveItem dragDelegate, SegmentEntity targetEntity) { ExtraStorageHoppers hopper = targetEntity as ExtraStorageHoppers; ItemBase itemForSlot = this.GetItemForSlot(hopper, name); bool flag = true; if (itemForSlot != null) { flag = (draggedItem.mnItemID == itemForSlot.mnItemID); } if (hopper.OT && hopper.IsEmpty() && !hopper.ExemplarSet) { hopper.SetExemplar(draggedItem); } if (name == "ItemSlot" + this.SlotCount && flag && hopper.IsNotFull() && hopper.CheckExemplar(draggedItem)) { ItemBase itemBase = ItemManager.CloneItem(draggedItem); int currentStackSize = ItemManager.GetCurrentStackSize(itemBase); if (hopper.RemainingCapacity < currentStackSize) { ItemManager.SetItemCount(itemBase, hopper.RemainingCapacity); } ExtraStorageHopperWindowNew.StoreItems(WorldScript.mLocalPlayer, hopper, itemBase); InventoryPanelScript.mbDirty = true; SurvivalHotBarManager.MarkAsDirty(); SurvivalHotBarManager.MarkContentDirty(); ExtraStorageHopperWindowNew.networkRedraw = true; } }
private void PlayerExtractRequest() { Player player = WorldScript.mLocalPlayer; int lensCount = 0; if (player == null) { return; } if (mStoredLenses != null) { lensCount = mStoredLenses.GetAmount(); } if (lensCount > 0) { Debug.Log("[Auto Lens Swapper] Removing " + lensCount + " lenses from machine, placing into " + player.mUserName); if (!player.mInventory.AddItem(mStoredLenses)) { ItemManager.instance.DropItem(mStoredLenses, player.mnWorldX, player.mnWorldY, player.mnWorldZ, Vector3.zero); Debug.Log("[Auto Lens Swapper] Player's inventory did not accept lenses. Dropping at player's feet."); } } mStoredLenses = null; mTargetLens = null; if (mStatus == eStatuses.Running) { mbHaltedEarly = true; mStatus = eStatuses.Done; } else if (mStatus == eStatuses.Done) { mnTrackLPTs = 0; mnTrackSwaps = 0; mnSegmentEIndex1 = 0; mnSegmentEIndex2 = 0; mnSegmentID = 0; mbHaltedEarly = false; mStatus = eStatuses.Stopped; } MarkDirtyDelayed(); RequestImmediateNetworkUpdate(); player.mInventory.VerifySuitUpgrades(); //Shouldn't be needed, but lets be safe. SurvivalHotBarManager.MarkAsDirty(); SurvivalHotBarManager.MarkContentDirty(); UIManager.ForceNGUIUpdate = 0.1f; RequestImmediateNetworkUpdate(); AudioHUDManager.instance.OrePickup(); }
public override void ButtonEnter(string name, SegmentEntity targetEntity) { var quantumIoPort = targetEntity as QuantumIoPortMachine; var controller = quantumIoPort.GetController(); if (controller == null || !controller.IsOperating()) { return; } if (name.Contains("iconItem")) { int.TryParse(name.Replace("iconItem", string.Empty), out var slot); if (slot > -1 && slot < SlotCount) { var item = controller.GetItem(slot); if (item == null) { return; } if (HotBarManager.mbInited) { HotBarManager.SetCurrentBlockLabel(ItemManager.GetItemName(item)); } else { if (!SurvivalHotBarManager.mbInited) { return; } var name1 = WorldScript.mLocalPlayer.mResearch.IsKnown(item) ? ItemManager.GetItemName(item) : PersistentSettings.GetString("Unknown_Material"); var currentStackSize = ItemManager.GetCurrentStackSize(item); if (currentStackSize > 1) { SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}", currentStackSize, name1)); } else { SurvivalHotBarManager.SetCurrentBlockLabel(name1); } } } } }
public void ButtonEnter(string name) { this.mHoverButton = name; if (name.StartsWith("Suit_Slot")) { int num = int.Parse(name.Substring("Suit_Slot".Length, name.Length - "Suit_Slot".Length - "_Collider".Length)) - 1; int x = num % 10; int y = num / 10; string text = string.Empty; ItemBase itemAt = this.SuitInventory.GetItemAt(x, y); if (itemAt != null) { if (HotBarManager.mbInited) { text = ItemManager.GetItemName(itemAt); HotBarManager.SetCurrentBlockLabel(text); } else if (SurvivalHotBarManager.mbInited) { if (WorldScript.mLocalPlayer.mResearch.IsKnown(itemAt)) { text = ItemManager.GetItemName(itemAt); } else { text = "Unknown Material"; } int currentStackSize = ItemManager.GetCurrentStackSize(itemAt); if (currentStackSize > 1) { SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}", currentStackSize, text)); } else { SurvivalHotBarManager.SetCurrentBlockLabel(text); } } } } }
public override void ButtonEnter(string name, SegmentEntity targetEntity) { FreightSystemMonitor monitor = targetEntity as FreightSystemMonitor; if (this.CurrentWindow != WindowTypes.GlobalInventory) { return; } string str = string.Empty; int count; ItemBase itemForSlot = this.GetItemForSlot(name, out count); if (itemForSlot == null) { return; } if (HotBarManager.mbInited) { HotBarManager.SetCurrentBlockLabel(ItemManager.GetItemName(itemForSlot)); } else { if (!SurvivalHotBarManager.mbInited) { return; } string name1 = !WorldScript.mLocalPlayer.mResearch.IsKnown(itemForSlot) ? "Unknown Material" : ItemManager.GetItemName(itemForSlot); if (count > 1) { SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}", count, name1)); } else { SurvivalHotBarManager.SetCurrentBlockLabel(name1); } } }
public override void ButtonEnter(string name, SegmentEntity targetEntity) { MSAccessPort port = targetEntity as MSAccessPort; if (!name.Contains("itemicon")) { return; } string str = string.Empty; int count; ItemBase itemForSlot = this.GetItemForSlot(name, out count, port); if (itemForSlot == null) { return; } if (HotBarManager.mbInited) { HotBarManager.SetCurrentBlockLabel(ItemManager.GetItemName(itemForSlot)); } else { if (!SurvivalHotBarManager.mbInited) { return; } string name1 = !WorldScript.mLocalPlayer.mResearch.IsKnown(itemForSlot) ? "Unknown Material" : ItemManager.GetItemName(itemForSlot); if (count > 1) { SurvivalHotBarManager.SetCurrentBlockLabel(string.Format("{0} {1}", count, name1)); } else { SurvivalHotBarManager.SetCurrentBlockLabel(name1); } } }
private void PlayerStoreRequest() { int lnAvailable = 0; ItemBase itemToStore = UIManager.instance.GetCurrentHotBarItemOrCubeAsItem(out lnAvailable, true); Player player = WorldScript.mLocalPlayer; if (player == null) { return; } if (lnAvailable < 0) { return; } if (itemToStore == null) { return; } if (!isValidLensID(itemToStore.mnItemID)) { Debug.Log("[Auto Lens Swapper] Player " + player.mUserName + " tried inserting a non-lens, but was denied!"); Debug.Log("[Auto Lens Swapper] itemID: " + itemToStore.mnItemID + " itemName: " + itemToStore.GetName()); return; } if (mTargetLens != null) { if (itemToStore.mnItemID != mTargetLens.mnItemID && getStorageAvailable() < mnStorageMax) { Debug.Log("[Auto Lens Swapper][info] Player " + player.mUserName + " tried inserting a differing lens than what was still in the machine!"); return; } } //Easy case, only setting target, not modifying storage. //(User didn't have any lenses on them, but they had the target in their hotbar) if (lnAvailable == 0) { Debug.Log("[Auto Lens Swapper][info] Player " + player.mUserName + " set target (new) lens without depositing any."); mTargetLens = ItemManager.SpawnItem(itemToStore.mnItemID); if (player.mbIsLocalPlayer) { Color lCol = Color.red; FloatingCombatTextManager.instance.QueueText(mnX, mnY + 1L, mnZ, 0.75f, string.Format("Lens Swapper set to: \n", (object)player.GetItemName(itemToStore)), lCol, 1.5f, 64f); } return; } int amount = lnAvailable; int storageAvailable = getStorageAvailable(); int maxStackSize = ItemManager.GetMaxStackSize(itemToStore); //Determine amount that can be transfered. if (itemToStore.mnItemID == -1) { return; } if (amount > 10 && Input.GetKey(KeyCode.LeftShift)) { amount = 10; } if (amount > 1 && Input.GetKey(KeyCode.LeftControl)) { amount = 1; } if (amount > getStorageAvailable()) { amount = getStorageAvailable(); } if (amount > ItemManager.GetMaxStackSize(itemToStore)) { amount = ItemManager.GetMaxStackSize(itemToStore); } ItemManager.SetItemCount(itemToStore, amount); if (!player.mInventory.RemoveItemByExample(itemToStore, true)) { Debug.Log("[Auto Lens Swapper][info] Player " + player.mUserName + " doesnt have " + itemToStore.GetName()); return; } mTargetLens = ItemManager.SpawnItem(itemToStore.mnItemID); if (mStoredLenses == null || mStoredLenses.mnItemID != mTargetLens.mnItemID) { mStoredLenses = ItemManager.SpawnItem(itemToStore.mnItemID); AddLenses(-1);// SpawnItem starts with the amount as 1. } AddLenses(amount); player.mInventory.VerifySuitUpgrades(); //Shouldn't be needed, but lets be safe. Debug.Log("[Auto Lens Swapper][info] Player " + player.mUserName + " stored lenses manually!"); //render in-world pop-up text. if (player.mbIsLocalPlayer) { Color lCol = Color.cyan; FloatingCombatTextManager.instance.QueueText(mnX, mnY + 1L, mnZ, 0.75f, string.Format(PersistentSettings.GetString("Stored_X"), (object)player.GetItemName(itemToStore)), lCol, 1.5f, 64f); } //else //StorageHopperWindowNew.networkRedraw = true; player.mInventory.VerifySuitUpgrades(); /* * if (!WorldScript.mbIsServer) * NetworkManager.instance.SendInterfaceCommand(nameof(StorageHopperWindowNew), nameof(StoreItems), (string)null, itemToStore, (SegmentEntity)hopper, 0.0f); */ // ^^^ Reimplement? MarkDirtyDelayed(); RequestImmediateNetworkUpdate(); UIManager.ForceNGUIUpdate = 0.1f; AudioHUDManager.instance.HUDOut(); SurvivalHotBarManager.MarkAsDirty(); SurvivalHotBarManager.MarkContentDirty(); }