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 UpdateMachine(SegmentEntity targetEntity) { ExtraStorageHoppers hopper = targetEntity as ExtraStorageHoppers; if (hopper == null) { GenericMachinePanelScript.instance.Hide(); UIManager.RemoveUIRules("Machine"); return; } if (ExtraStorageHopperWindowNew.networkRedraw) { this.Redraw(targetEntity); ExtraStorageHopperWindowNew.networkRedraw = false; } if (targetEntity.mbNetworkUpdated) { ExtraStorageHopperWindowNew.dirty = true; targetEntity.mbNetworkUpdated = false; } if (ExtraStorageHopperWindowNew.dirty) { this.WindowUpdate(hopper); } }
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; } }
public static bool TogglePermissions(Player player, ExtraStorageHoppers hopper) { hopper.TogglePermissions(); if (!WorldScript.mbIsServer) { NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindow", "TogglePermissions", null, null, hopper, 0f); } return(true); }
public static void SetNewExamplar(Player player, ExtraStorageHoppers hopper, ItemBase itemToSet) { hopper.SetExemplar(itemToSet); FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 0.75f, "Set The Type to " + ItemManager.GetItemName(itemToSet), Color.blue, 1.5f); if (!WorldScript.mbIsServer) { NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindow", "SetExemplar", null, itemToSet, hopper, 0f); } }
public static NetworkInterfaceResponse HandleNetworkCommand(Player player, NetworkInterfaceCommand nic) { ExtraStorageHoppers hopper = nic.target as ExtraStorageHoppers; string command = nic.command; if (command != null) { string text = command; switch (text) { case "SetAddRemove": ExtraStorageHopperWindowNew.SetPermissions(player, hopper, eHopperPermissions.AddAndRemove); break; case "SetAddOnly": ExtraStorageHopperWindowNew.SetPermissions(player, hopper, eHopperPermissions.AddOnly); break; case "SetRemoveOnly": ExtraStorageHopperWindowNew.SetPermissions(player, hopper, eHopperPermissions.RemoveOnly); break; case "SetLocked": ExtraStorageHopperWindowNew.SetPermissions(player, hopper, eHopperPermissions.Locked); break; case "ToggleHoover": ExtraStorageHopperWindowNew.ToggleHoover(player, hopper); break; case "ToggleShare": ExtraStorageHopperWindowNew.ToggleShare(player, hopper); break; case "TakeItems": ExtraStorageHopperWindowNew.TakeItems(player, hopper, nic.itemContext); break; case "StoreItems": ExtraStorageHopperWindowNew.StoreItems(player, hopper, nic.itemContext); break; case "DebugMode": ExtraStorageHopperWindowNew.DebugMode(player, hopper); break; case "SetExemplar": ExtraStorageHopperWindowNew.SetNewExamplar(player, hopper, nic.itemContext); break; } } return(new NetworkInterfaceResponse { entity = hopper, inventory = player.mInventory }); }
public static bool ToggleShare(Player player, ExtraStorageHoppers hopper) { hopper.ToggleShareContent(); ExtraStorageHopperWindowNew.dirty = true; if (!WorldScript.mbIsServer) { NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindowNew", "ToggleShare", null, null, hopper, 0f); } return(true); }
public static void DebugMode(Player player, ExtraStorageHoppers hopper) { hopper.ToggleDebugMode(); hopper.PrintAllHopperInfo(); FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 0.75f, "SET DEBUG MODE TO: " + hopper.GetDebugMode(), new Color(0, 2, 0), 1.5f); if (!WorldScript.mbIsServer) { NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindow", "DebugMode", null, null, hopper, 0f); } }
private ItemBase GetItemForSlot(ExtraStorageHoppers hopper, string name) { ItemBase result = null; int num = -1; int.TryParse(name.Replace("ItemSlot", string.Empty), out num); if (num > -1) { result = this.GetNthItemSlot(hopper, num); } return(result); }
public override void SpawnWindow(SegmentEntity targetEntity) { ExtraStorageHoppers hopper = targetEntity as ExtraStorageHoppers; if (hopper == null) { GenericMachinePanelScript.instance.Hide(); UIManager.RemoveUIRules("Machine"); return; } float x = GenericMachinePanelScript.instance.Label_Holder.transform.position.x; float y = GenericMachinePanelScript.instance.Label_Holder.transform.position.y; GenericMachinePanelScript.instance.Label_Holder.transform.position = new Vector3(x, y, 69.3f); string title = "UNKNOWN TYPE"; if (hopper.GetHopperName() != "") { title = hopper.GetHopperName(); } this.manager.SetTitle(title); int num = 0; int num2 = 40; int num3 = 50; int num4 = 60; int num5 = 60; int num6 = 40; int num7 = num2 + num3 + 50 + num6 + 50; this.manager.AddTabButton("AddRemoveButton", "Add and Remove", true, 40, 0); this.manager.AddTabButton("LockedButton", "Locked", true, 160, 0); this.manager.AddTabButton("AddOnlyButton", "Add Only", true, 40, 40); this.manager.AddTabButton("RemoveOnlyButton", "Remove Only", true, 160, 40); this.manager.AddButton("ToggleHoover", "Toggle Vacuum", 30, 90); this.manager.AddBigLabel("HooverStatus", "Vacuum: Off", Color.white, 180, 90); this.manager.AddButton("ToggleShare", "Toggle Share", 30, 140); this.manager.AddBigLabel("ShareStatus", "Share Mode: Off", Color.white, 180, 140); this.manager.AddBigLabel("UsedStorage", "8888/8888", Color.white, 10, 190); this.SlotCount = this.CountUnique(hopper); for (int i = 0; i <= this.SlotCount; i++) { if (hopper.IsFull() && i == this.SlotCount) { break; } int num8 = i / 5; int num9 = i % 5; this.manager.AddIcon("ItemSlot" + i, "empty", Color.white, num9 * num5 + 10, num8 * num4 + num7 + num); this.manager.AddLabel(GenericMachineManager.LabelType.OneLineHalfWidth, "StackSize" + i, string.Empty, Color.white, false, num9 * num5 + 33, num8 * num4 + num7 + 22); } ExtraStorageHopperWindowNew.dirty = true; }
private int CountUnique(ExtraStorageHoppers hopper) { int num = 0; int totalCapacity = hopper.TotalCapacity; for (int i = 0; i < totalCapacity; i++) { if (hopper.maItemInventory[i] != null) { num++; } } return(num); }
public static bool SetPermissions(Player player, ExtraStorageHoppers hopper, eHopperPermissions permissions) { if (hopper.mPermissions != permissions) { hopper.mPermissions = permissions; } if (!WorldScript.mbIsServer) { switch (permissions) { case eHopperPermissions.AddAndRemove: NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindowNew", "SetAddRemove", null, null, hopper, 0f); break; case eHopperPermissions.RemoveOnly: NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindowNew", "SetRemoveOnly", null, null, hopper, 0f); break; case eHopperPermissions.AddOnly: NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindowNew", "SetAddOnly", null, null, hopper, 0f); break; case eHopperPermissions.Locked: NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindowNew", "SetLocked", null, null, hopper, 0f); break; default: NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindowNew", "SetAddRemove", null, null, hopper, 0f); break; } } //AudioHUDManager.instance.HUDIn(); //AudioSpeechManager.instance.UpdateStorageHopper(hopper.mPermissions); hopper.MarkDirtyDelayed(); typeof(ExtraStorageHoppers).GetField("mbForceTextUpdate", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(hopper, true); typeof(ExtraStorageHoppers).GetField("mbForceHoloUpdate", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(hopper, true); hopper.RequestImmediateNetworkUpdate(); FloatingCombatTextQueue floatingCombatTextQueue = FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 1f, hopper.mPermissions.ToString(), Color.green, 1.5f, 64f); ExtraStorageHopperWindowNew.dirty = true; if (floatingCombatTextQueue != null) { floatingCombatTextQueue.mrStartRadiusRand = 0.25f; } return(true); }
private ItemBase GetNthItemSlot(ExtraStorageHoppers hopper, int n) { int num = -1; for (int i = 0; i < hopper.TotalCapacity; i++) { if (hopper.maItemInventory[i] != null) { num++; if (num == n) { return(hopper.maItemInventory[i]); } } } return(null); }
public static NetworkInterfaceResponse HandleNetworkCommand(Player player, NetworkInterfaceCommand nic) { //NIC = NetworkInterfaceCommand ExtraStorageHoppers storageHopper = nic.target as ExtraStorageHoppers; string command = nic.command; switch (command) { case "TogglePermissions": ExtraStorageHopperWindow.TogglePermissions(player, storageHopper); break; case "ToggleHoover": ExtraStorageHopperWindow.ToggleHoover(player, storageHopper); break; case "TakeItems": ExtraStorageHopperWindow.TakeItems(player, storageHopper); break; case "StoreItems": ExtraStorageHopperWindow.StoreItems(player, storageHopper, nic.itemContext); break; case "DebugMode": ExtraStorageHopperWindow.DebugMode(player, storageHopper); break; case "SetExemplar": ExtraStorageHopperWindow.SetNewExamplar(player, storageHopper, nic.itemContext); break; } return(new NetworkInterfaceResponse { entity = storageHopper, inventory = player.mInventory }); }
public static bool TakeItems(Player player, ExtraStorageHoppers hopper) { //ENABLE/DISABLE FEEDING OF HIVEBIND - ONLY FOR VOID HOPPER if (hopper.GetCubeValue() == 0) { if (hopper.FeedHiveMind) { hopper.FeedHiveMind = false; FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 1f, "Not Feeding Hivemind!", Color.green, 2f); } else { hopper.FeedHiveMind = true; FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 1f, "Feeding Hivemind!", Color.red, 2f); } return(true); } //******************** TAKE ITEMS FROM HOPPER AND ADD THEM TO INVENTORY ******************** if (hopper.mnStorageUsed > 0) { ItemBase lItemToAdd = hopper.RemoveFirstInventoryItem(); if (lItemToAdd != null) { Debug.Log("RemovingFirstInventoryItem from for " + player.mUserName); if (!player.mInventory.AddItem(lItemToAdd)) { if (!hopper.AddItem(lItemToAdd)) { ItemManager.instance.DropItem(lItemToAdd, player.mnWorldX, player.mnWorldY, player.mnWorldZ, Vector3.zero); } return(false); } if (player.mbIsLocalPlayer) { Color green = Color.green; if (lItemToAdd.mType == ItemType.ItemCubeStack) { ItemCubeStack stack = lItemToAdd as ItemCubeStack; if (CubeHelper.IsGarbage(stack.mCubeType)) { green = Color.red; } if (CubeHelper.IsSmeltableOre(stack.mCubeType)) { green = Color.green; } } if (lItemToAdd.mType == ItemType.ItemStack) { green = Color.cyan; } if (lItemToAdd.mType == ItemType.ItemSingle) { green = Color.white; } if (lItemToAdd.mType == ItemType.ItemCharge) { green = Color.magenta; } if (lItemToAdd.mType == ItemType.ItemDurability) { green = Color.yellow; } if (lItemToAdd.mType == ItemType.ItemLocation) { green = Color.gray; } FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 1f, player.GetItemName(lItemToAdd), green, 1.5f); } player.mInventory.VerifySuitUpgrades(); if (!WorldScript.mbIsServer) { NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindow", "TakeItems", null, lItemToAdd, hopper, 0f); } return(true); } } return(false); }
public override bool ButtonClicked(string name, SegmentEntity targetEntity) { ExtraStorageHoppers hopper = targetEntity as ExtraStorageHoppers; if (name == "AddRemoveButton") { UIManager.ForceNGUIUpdate = 0.1f; ExtraStorageHopperWindowNew.SetPermissions(WorldScript.mLocalPlayer, hopper, eHopperPermissions.AddAndRemove); return(true); } if (name == "AddOnlyButton") { UIManager.ForceNGUIUpdate = 0.1f; ExtraStorageHopperWindowNew.SetPermissions(WorldScript.mLocalPlayer, hopper, eHopperPermissions.AddOnly); return(true); } if (name == "RemoveOnlyButton") { UIManager.ForceNGUIUpdate = 0.1f; ExtraStorageHopperWindowNew.SetPermissions(WorldScript.mLocalPlayer, hopper, eHopperPermissions.RemoveOnly); return(true); } if (name == "LockedButton") { UIManager.ForceNGUIUpdate = 0.1f; ExtraStorageHopperWindowNew.SetPermissions(WorldScript.mLocalPlayer, hopper, eHopperPermissions.Locked); return(true); } if (name == "ToggleHoover") { UIManager.ForceNGUIUpdate = 0.1f; AudioHUDManager.instance.HUDIn(); ExtraStorageHopperWindowNew.ToggleHoover(WorldScript.mLocalPlayer, hopper); return(true); } if (name == "ToggleShare") { UIManager.ForceNGUIUpdate = 0.1f; AudioHUDManager.instance.HUDIn(); ExtraStorageHopperWindowNew.ToggleShare(WorldScript.mLocalPlayer, hopper); return(true); } if (name.Contains("ItemSlot")) { int num = -1; int.TryParse(name.Replace("ItemSlot", string.Empty), out num); if (num > -1) { int num2 = 100; if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) { num2 = 10; } if (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) { num2 = 1; } ItemBase item = ItemManager.CloneItem(this.GetNthItemSlot(hopper, num)); if (num2 < ItemManager.GetCurrentStackSize(item)) { ItemManager.SetItemCount(item, num2); if (hopper.IsFull()) { ExtraStorageHopperWindowNew.networkRedraw = true; } else { ExtraStorageHopperWindowNew.dirty = true; } } else { ExtraStorageHopperWindowNew.networkRedraw = true; } ExtraStorageHopperWindowNew.TakeItems(WorldScript.mLocalPlayer, hopper, item); UIManager.ForceNGUIUpdate = 0.1f; AudioHUDManager.instance.OrePickup(); if (WorldScript.meGameMode == eGameMode.eSurvival && SurvivalPlayerScript.meTutorialState == SurvivalPlayerScript.eTutorialState.RemoveCoalFromHopper) { SurvivalPlayerScript.TutorialSectionComplete(); } typeof(ExtraStorageHoppers).GetField("mRetakeDebounce", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(hopper, 0.5f); return(true); } } return(false); }
public static void SetNewExamplar_Fail(Player player, ExtraStorageHoppers hopper) { FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 0.75f, "Error: Hopper not empty!", Color.blue, 1.5f); }
public static bool TakeItems(Player player, ExtraStorageHoppers hopper, ItemBase item) { //ENABLE/DISABLE FEEDING OF HIVEBIND - ONLY FOR VOID HOPPER if (hopper.GetCubeValue() == 0) { if (hopper.FeedHiveMind) { hopper.FeedHiveMind = false; FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 1f, "Not Feeding Hivemind!", Color.green, 2f); } else { hopper.FeedHiveMind = true; FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 1f, "Feeding Hivemind!", Color.red, 2f); } return(true); } else if (hopper.mnStorageUsed > 0) { ItemBase itemBase; if (item == null) { itemBase = hopper.RemoveFirstInventoryItem(); } else if (item.mType == ItemType.ItemCubeStack) { hopper.TryPartialExtractItemsOrCubes(null, item.mnItemID, (item as ItemCubeStack).mCubeType, (item as ItemCubeStack).mCubeValue, ItemManager.GetCurrentStackSize(item), out itemBase); } else { hopper.TryPartialExtractItems(null, item.mnItemID, ItemManager.GetCurrentStackSize(item), out itemBase); } if (itemBase != null) { Debug.Log("Removing Item from StorageHopper for " + player.mUserName); if (!player.mInventory.AddItem(itemBase)) { if (!hopper.AddItem(itemBase)) { ItemManager.instance.DropItem(itemBase, player.mnWorldX, player.mnWorldY, player.mnWorldZ, Vector3.zero); } return(false); } if (player.mbIsLocalPlayer) { Color lCol = Color.green; if (itemBase.mType == ItemType.ItemCubeStack) { ItemCubeStack itemCubeStack = itemBase as ItemCubeStack; if (CubeHelper.IsGarbage(itemCubeStack.mCubeType)) { lCol = Color.red; } if (CubeHelper.IsSmeltableOre(itemCubeStack.mCubeType)) { lCol = Color.green; } } if (itemBase.mType == ItemType.ItemStack) { lCol = Color.cyan; } if (itemBase.mType == ItemType.ItemSingle) { lCol = Color.white; } if (itemBase.mType == ItemType.ItemCharge) { lCol = Color.magenta; } if (itemBase.mType == ItemType.ItemDurability) { lCol = Color.yellow; } if (itemBase.mType == ItemType.ItemLocation) { lCol = Color.gray; } FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 1f, player.GetItemName(itemBase), lCol, 1.5f, 64f); } player.mInventory.VerifySuitUpgrades(); if (!WorldScript.mbIsServer) { NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindowNew", "TakeItems", null, itemBase, hopper, 0f); } return(true); } } return(false); }
public static bool StoreItems(Player player, ExtraStorageHoppers hopper, ItemBase itemToStore) { if ((player == WorldScript.mLocalPlayer) && !WorldScript.mLocalPlayer.mInventory.RemoveItemByExample(itemToStore, true)) { Debug.Log(string.Concat(new object[] { "Player ", player.mUserName, " doesnt have ", player.GetItemName(itemToStore) })); return(false); } if (!hopper.AddItem(itemToStore)) { Debug.LogWarning("Bad thing that used to be unhandled! Thread interaccess probably caused this to screw up!"); if (player == WorldScript.mLocalPlayer) { WorldScript.mLocalPlayer.mInventory.AddItem(itemToStore); return(false); } player.mInventory.AddItem(itemToStore); return(false); } if (player.mbIsLocalPlayer) { Color green = Color.green; ItemBase lItem = itemToStore; if (lItem.mType == ItemType.ItemCubeStack) { ItemCubeStack stack = lItem as ItemCubeStack; if (CubeHelper.IsGarbage(stack.mCubeType)) { green = Color.red; } if (CubeHelper.IsSmeltableOre(stack.mCubeType)) { green = Color.green; } } if (lItem.mType == ItemType.ItemStack) { green = Color.cyan; } if (lItem.mType == ItemType.ItemSingle) { green = Color.white; } if (lItem.mType == ItemType.ItemCharge) { green = Color.magenta; } if (lItem.mType == ItemType.ItemDurability) { green = Color.yellow; } if (lItem.mType == ItemType.ItemLocation) { green = Color.gray; } if (hopper.GetCubeValue() == 0) { green = Color.red; FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 0.75f, "Sent " + player.GetItemName(lItem) + " to the void!", green, 1.5f); } else { FloatingCombatTextManager.instance.QueueText(hopper.mnX, hopper.mnY + 1L, hopper.mnZ, 0.75f, "Stored " + player.GetItemName(lItem), green, 1.5f); } } player.mInventory.VerifySuitUpgrades(); if (!WorldScript.mbIsServer) { NetworkManager.instance.SendInterfaceCommand("ExtraStorageHopperWindow", "StoreItems", null, itemToStore, hopper, 0f); } return(true); }
private void WindowUpdate(ExtraStorageHoppers hopper) { switch (hopper.mPermissions) { case eHopperPermissions.AddAndRemove: this.manager.UpdateTabButton("AddRemoveButton", false); this.manager.UpdateTabButton("AddOnlyButton", true); this.manager.UpdateTabButton("RemoveOnlyButton", true); this.manager.UpdateTabButton("LockedButton", true); break; case eHopperPermissions.RemoveOnly: this.manager.UpdateTabButton("AddRemoveButton", true); this.manager.UpdateTabButton("AddOnlyButton", true); this.manager.UpdateTabButton("RemoveOnlyButton", false); this.manager.UpdateTabButton("LockedButton", true); break; case eHopperPermissions.AddOnly: this.manager.UpdateTabButton("AddRemoveButton", true); this.manager.UpdateTabButton("AddOnlyButton", false); this.manager.UpdateTabButton("RemoveOnlyButton", true); this.manager.UpdateTabButton("LockedButton", true); break; case eHopperPermissions.Locked: this.manager.UpdateTabButton("AddRemoveButton", true); this.manager.UpdateTabButton("AddOnlyButton", true); this.manager.UpdateTabButton("RemoveOnlyButton", true); this.manager.UpdateTabButton("LockedButton", false); break; } if (hopper.mbHooverOn) { this.manager.UpdateLabel("HooverStatus", "Vacuum: On", Color.white); } else { this.manager.UpdateLabel("HooverStatus", "Vacuum: Off", Color.white); } if (hopper.ShareContent) { this.manager.UpdateLabel("ShareStatus", "Share Mode: On", Color.white); } else { this.manager.UpdateLabel("ShareStatus", "Share Mode: Off", Color.white); } this.manager.UpdateLabel("UsedStorage", string.Concat(new object[] { "Used ", hopper.UsedCapacity, "/", hopper.TotalCapacity }), Color.white); int num = 0; for (int i = 0; i < hopper.TotalCapacity; i++) { ItemBase itemBase = hopper.maItemInventory[i]; if (itemBase != null) { string itemIcon = ItemManager.GetItemIcon(itemBase); int currentStackSize = ItemManager.GetCurrentStackSize(itemBase); string label = (currentStackSize != 100) ? ((currentStackSize >= 10) ? (" " + currentStackSize.ToString()) : (" " + currentStackSize.ToString())) : currentStackSize.ToString(); this.manager.UpdateIcon("ItemSlot" + num, itemIcon, Color.white); this.manager.UpdateLabel("StackSize" + num, label, Color.white); num++; } } ExtraStorageHopperWindowNew.dirty = false; }