EU-Utility-V3/IMPLEMENTATION_PLAN.md

258 lines
8.1 KiB
Markdown

# EU-Utility V3 Implementation Plan
Based on original Python/PyQt6 EU-Utility analysis.
---
## Original Features Analysis
### 1. Architecture
- **Original:** Python 3.11 + PyQt6
- **New:** Rust + Tauri + React + TypeScript
- **Plugin System:** 25+ built-in plugins
### 2. UI Structure
```
Main Overlay (Semi-transparent, always on top)
├── Left Sidebar: Plugin tabs/icons
├── Center: Active plugin content
└── Bottom: Quick actions bar
Floating Icon (Screen overlay)
├── Double-click: Toggle main overlay
├── Right-click: Context menu
└── Draggable position
```
### 3. Plugin Categories
#### Dashboard & Utility
- [ ] Dashboard - Customizable start page with stats
- [ ] Calculator - Standard calculator
- [ ] Settings - Preferences configuration
- [ ] Plugin Store - Community marketplace
#### Search & Information
- [ ] Universal Search - Nexus entities (items, mobs, locations)
- [ ] Nexus Search - Items and market data
- [ ] TP Runner - Teleporter route planner
#### Calculators
- [ ] DPP Calculator - Damage Per PEC, weapon efficiency
- [ ] Crafting Calc - Blueprint calculator with success rates
- [ ] Enhancer Calc - Break rates and costs
#### Trackers
- [ ] Loot Tracker - Hunting loot with ROI analysis
- [ ] Skill Scanner - OCR-based skill tracking
- [ ] Codex Tracker - Creature challenge progress
- [ ] Mission Tracker - Mission and objective tracking
- [ ] Global Tracker - Globals, HOFs, ATHs tracking
- [ ] Mining Helper - Claims and hotspot tracking
- [ ] Auction Tracker - Price and markup tracking
- [ ] Inventory Manager - TT value and item management
- [ ] Profession Scanner - Profession rank tracking
#### Game Integration
- [ ] Game Reader - OCR for in-game menus/text
- [ ] Chat Logger - Log, search, filter chat
#### External Integration
- [ ] Spotify Controller - Control playback
---
## Hotkey Mapping
| Hotkey | Action | Plugin |
|--------|--------|--------|
| Ctrl+Shift+U | Toggle main overlay | Global |
| Ctrl+Shift+H | Hide all overlays | Global |
| Ctrl+Shift+F | Universal Search | Search |
| Ctrl+Shift+N | Nexus Search | Search |
| Ctrl+Shift+C | Calculator | Utility |
| Ctrl+Shift+D | DPP Calculator | Calculator |
| Ctrl+Shift+E | Enhancer Calc | Calculator |
| Ctrl+Shift+B | Crafting Calc | Calculator |
| Ctrl+Shift+L | Loot Tracker | Tracker |
| Ctrl+Shift+S | Skill Scanner | Tracker |
| Ctrl+Shift+X | Codex Tracker | Tracker |
| Ctrl+Shift+R | Game Reader | Scanner |
| Ctrl+Shift+M | Spotify Controller | Media |
| Ctrl+Shift+Home | Dashboard | Overview |
| Ctrl+Shift+, | Settings | Configuration |
---
## New UI Design (Windows Start Menu Style)
### Main Overlay (Bottom Center)
```
┌─────────────────────────────────────────────────────────┐
│ [Logo] Search plugins, items... [Timer] [Expand] │
├─────────────────────────────────────────────────────────┤
│ │
│ Quick Access [Session: 02:34:12] │
│ ┌────┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │
│ │Calc│ │Loot│ │Skill│ │Price│ │Search│ │Settings│ │
│ └────┘ └────┘ └────┘ └────┘ └────┘ └────┘ │
│ │
│ Pinned Plugins │
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
│ [Icon] Loot Tracker [On] [Pin] │
│ [Icon] Skill Scanner [On] [Pin] │
│ [Icon] DPP Calculator [Off] [Pin] │
│ │
│ All Plugins │
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
│ [Icon] Codex Tracker [Off] [Pin] │
│ [Icon] Game Reader [Off] [Pin] │
│ [Icon] Mining Helper [Off] [Pin] │
│ │
├─────────────────────────────────────────────────────────┤
│ [Status: Online] Ctrl+Shift+U to toggle │
└─────────────────────────────────────────────────────────┘
```
### Design Elements
- **Background:** Dark glassmorphism (rgba(32, 32, 32, 0.95))
- **Blur:** 32px backdrop blur
- **Border:** 1px rgba(255, 255, 255, 0.08)
- **Shadow:** 0 8px 32px rgba(0, 0, 0, 0.4)
- **Border Radius:** 32px (collapsed), 12px (expanded)
- **Position:** Bottom center of screen
- **Width:** 640px (compact), 720px (expanded)
### Features
1. **Collapsible** - Click logo to expand/collapse
2. **Search** - Type to filter plugins instantly
3. **Pin System** - Pin favorite plugins to top
4. **Quick Access** - 6 shortcut icons always visible
5. **Plugin List** - All plugins with toggle switches
6. **Session Timer** - Live hunt duration
7. **Status Bar** - Online/offline indicator
---
## Implementation Phases
### Phase 1: Core Framework (COMPLETE)
- [x] Rust + Tauri setup
- [x] React + TypeScript frontend
- [x] Plugin system architecture
- [x] Event bus
- [x] Settings persistence
- [x] Hotkey system
- [x] Window management
### Phase 2: UI Redesign (IN PROGRESS)
- [ ] Windows Start Menu overlay
- [ ] Collapsible search bar
- [ ] Plugin grid/list view
- [ ] Pin/unpin functionality
- [ ] Quick access icons
- [ ] Session timer display
### Phase 3: Essential Plugins
- [ ] Dashboard
- [ ] Universal Search
- [ ] Calculator
- [ ] Loot Tracker
- [ ] Settings
### Phase 4: Advanced Plugins
- [ ] DPP Calculator
- [ ] Skill Scanner (OCR)
- [ ] Codex Tracker
- [ ] Game Reader (OCR)
### Phase 5: Full Feature Set
- [ ] All 25+ plugins
- [ ] Spotify integration
- [ ] Chat logger
- [ ] Plugin marketplace
---
## Technical Decisions
### Plugin System
```typescript
interface Plugin {
id: string;
name: string;
description: string;
category: 'dashboard' | 'search' | 'calculator' | 'tracker' | 'game' | 'media';
icon: string;
version: string;
author: string;
hotkey?: string;
pinned: boolean;
active: boolean;
component: React.ComponentType;
}
```
### Data Storage
- SQLite for local data
- Tauri settings API
- Plugin data isolation
### OCR Integration
- Tesseract for Windows (static link)
- EasyOCR fallback
- Screen region capture
- Text recognition pipeline
### Screen Reading
- Window capture (game window)
- Region selection (drag to define)
- OCR text extraction
- HP bar detection
- Coordinate reading
- Mob name recognition
---
## File Structure
```
src/
├── components/
│ ├── Layout.tsx
│ ├── Sidebar.tsx
│ ├── PluginGrid.tsx
│ ├── PluginList.tsx
│ ├── SearchBar.tsx
│ ├── QuickAccess.tsx
│ └── PinnedPlugins.tsx
├── plugins/
│ ├── dashboard/
│ ├── search/
│ ├── calculator/
│ ├── tracker/
│ └── game/
├── pages/
│ ├── Dashboard.tsx
│ ├── Plugins.tsx
│ ├── Settings.tsx
│ └── Overlay.tsx
└── store/
├── appStore.ts
└── pluginStore.ts
```
---
## Next Steps
1. **Implement new overlay UI** (Windows Start Menu style)
2. **Add pin/unpin functionality**
3. **Create plugin grid component**
4. **Build essential plugins** (Dashboard, Search, Calculator)
5. **Add OCR integration** for Game Reader
---
*Implementation Plan - EU-Utility V3*