/// <summary> /// Triggers the selected slot's move method /// </summary> public virtual void Move() { CurrentlySelectedInventorySlot.Move(); }
/// <summary> /// Handles the inventory related inputs and acts on them. /// </summary> protected virtual void HandleInventoryInput() { // if we don't have a current inventory display, we do nothing and exit if (_currentInventoryDisplay == null) { return; } // if the user presses the 'toggle inventory' key if (Input.GetKeyDown(ToggleInventoryKey) || Input.GetKeyDown(ToggleInventoryAltKey)) { // if the inventory is not open if (!InventoryOpen) { OpenInventory(); } // if it's open else { CloseInventory(); } } if (Input.GetKeyDown(CancelKey)) { if (InventoryOpen) { CloseInventory(); } } // if we've only authorized input when open, and if the inventory is currently closed, we do nothing and exit if (InputOnlyWhenOpen && !InventoryOpen) { return; } // previous inventory panel if (Input.GetKeyDown(PrevInvKey) || Input.GetKeyDown(PrevInvAltKey)) { if (_currentInventoryDisplay.GoToInventory(-1) != null) { _currentInventoryDisplay = _currentInventoryDisplay.GoToInventory(-1); } } // next inventory panel if (Input.GetKeyDown(NextInvKey) || Input.GetKeyDown(NextInvAltKey)) { if (_currentInventoryDisplay.GoToInventory(1) != null) { _currentInventoryDisplay = _currentInventoryDisplay.GoToInventory(1); } } // move if (Input.GetKeyDown(MoveKey) || Input.GetKeyDown(MoveAltKey)) { if (CurrentlySelectedInventorySlot != null) { CurrentlySelectedInventorySlot.Move(); } } // equip or use if (Input.GetKeyDown(EquipOrUseKey) || Input.GetKeyDown(EquipOrUseAltKey)) { EquipOrUse(); } // equip if (Input.GetKeyDown(EquipKey) || Input.GetKeyDown(EquipAltKey)) { if (CurrentlySelectedInventorySlot != null) { CurrentlySelectedInventorySlot.Equip(); } } // use if (Input.GetKeyDown(UseKey) || Input.GetKeyDown(UseAltKey)) { if (CurrentlySelectedInventorySlot != null) { CurrentlySelectedInventorySlot.Use(); } } // drop if (Input.GetKeyDown(DropKey) || Input.GetKeyDown(DropAltKey)) { if (CurrentlySelectedInventorySlot != null) { CurrentlySelectedInventorySlot.Drop(); } } }