void Update() { if (mPickupCooldown > 0) { mPickupCooldown -= Time.deltaTime; if (mPickupCooldown < 0) { mPickupCooldown = 0; } } bool invOpen = MenuController.Main.bIsInventoryOpen; // If different state, update visibility if (invOpen != bIsInventoryOpen) { bIsInventoryOpen = invOpen; mItemDisplay.bIsVisible = bIsInventoryOpen; } // Move cursor to mouse position if (bIsInventoryOpen) { transform.position = Input.mousePosition; Entity_Player player = Entity_Player.Main; if (Input.GetKeyDown(KeyCode.Mouse0)) { if (CurrentSlot != null) { CurrentSlot.OnPrimaryClick(this); } // Drop whole stack else { if (mCurrentItem.mType != ItemType.None) { // Throw item Entity_DroppedItem.NewObj( mCurrentItem, player.transform.position, new Vector3(200 * (player.mMovement.bIsFacingRight ? 1 : -1), 100, Random.Range(-50, 50)) ); mCurrentItem = new ItemStack(0); } } } if (Input.GetKey(KeyCode.Mouse1)) { if (mPickupCooldown == 0) { // Increase the pickup speed steadily mPickupCooldown = mPickupCooldownAmount; mPickupCooldownAmount -= 0.7f * Time.deltaTime; if (mPickupCooldownAmount < 0.005f) { mPickupCooldownAmount = 0.005f; } if (CurrentSlot != null) { CurrentSlot.OnSecondaryClick(this); } // Drop 1 item else { ItemStack item = mCurrentItem; if (item.mType != ItemType.None) { // Throw item Entity_DroppedItem.NewObj( new ItemStack(item.mItemID, 1), player.transform.position, new Vector3(200 * (player.mMovement.bIsFacingRight ? 1 : -1), 100, Random.Range(-50, 50)) ); // If empty, replace hand with nothing if (--item.mItemCount == 0) { item = new ItemStack(0); } mCurrentItem = item; } } } } else { mPickupCooldownAmount = 0.15f; } } }