poe2-bot/src/Automata.Inventory/IInventoryManager.cs
2026-02-28 15:13:31 -05:00

29 lines
1.2 KiB
C#

using Automata.Core;
using Automata.Screen;
namespace Automata.Inventory;
public interface IInventoryManager
{
event Action? Updated;
InventoryTracker Tracker { get; }
byte[]? LastScreenshot { get; }
bool IsAtOwnHideout { get; }
string SellerAccount { get; }
void SetLocation(bool atHome, string? seller = null);
Task ScanInventory(PostAction defaultAction = PostAction.Stash);
Task<ScanResult> SnapshotInventory();
Task ClearToStash();
Task<bool> EnsureAtOwnHideout();
Task ProcessInventory();
Task<bool> WaitForAreaTransition(int timeoutMs, Func<Task>? triggerAction = null);
Task<(int X, int Y)?> FindAndClickNameplate(string name, int maxRetries = 3, int retryDelayMs = 1000, System.Drawing.Rectangle? scanRegion = null, string? savePath = null);
Task DepositItemsToStash(List<PlacedItem> items);
Task DepositAllToOpenStash();
Task<bool> SalvageItems(List<PlacedItem> items);
Task<bool> IdentifyItems();
(bool[,] Grid, List<PlacedItem> Items, int Free) GetInventoryState();
Task ClickStashTab(StashTabInfo tab, StashTabInfo? parentFolder = null);
void ResetStashTabState();
Task GrabItemsFromStash(string layoutName, int maxItems, string? templatePath = null);
}