public static async Task <bool> PickItemToCursor(this InventoryControlWrapper inventory, bool rightClick = false) { var item = inventory.CustomTabItem; if (item == null) { GlobalLog.Error("[PickItemToCursor] Custom inventory control is empty."); return(false); } GlobalLog.Debug($"[PickItemToCursor] Now going to pick \"{item.Name}\" to cursor."); if (rightClick) { var err = inventory.UseItem(); if (err != UseItemResult.None) { GlobalLog.Error($"[PickItemToCursor] Fail to pick item to cursor. Error: \"{err}\"."); return(false); } } else { var err = inventory.Pickup(); if (err != PickupResult.None) { GlobalLog.Error($"[PickItemToCursor] Fail to pick item to cursor. Error: \"{err}\"."); return(false); } } return(await Wait.For(() => Cursor.Item != null, "item appear under cursor")); }
public static async Task <bool> PickItemToCursor(this InventoryControlWrapper inventory, Vector2i itemPos, bool rightClick = false) { var item = inventory.Inventory.FindItemByPos(itemPos); if (item == null) { GlobalLog.Error($"[PickItemToCursor] Cannot find item at {itemPos}"); return(false); } GlobalLog.Debug($"[PickItemToCursor] Now going to pick \"{item.Name}\" at {itemPos} to cursor."); int id = item.LocalId; if (rightClick) { var err = inventory.UseItem(id); if (err != UseItemResult.None) { GlobalLog.Error($"[PickItemToCursor] Fail to pick item to cursor. Error: \"{err}\"."); return(false); } } else { var err = inventory.Pickup(id); if (err != PickupResult.None) { GlobalLog.Error($"[PickItemToCursor] Fail to pick item to cursor. Error: \"{err}\"."); return(false); } } return(await Wait.For(() => Cursor.Item != null, "item appear under cursor")); }