te
This commit is contained in:
parent
01151e679b
commit
57b2f0400e
265 changed files with 22828 additions and 6 deletions
78
CLAUDE.md
Normal file
78
CLAUDE.md
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
- when we porting flagtracker there mus be no simplification or trunkation of the code
|
||||
- you can use utility belt for references about how to check views and create them perhaps also for quests. Same with the folder Mag-Tools
|
||||
|
||||
# Icon Implementation Discoveries
|
||||
|
||||
## DECAL Icon System - CRITICAL DIFFERENCES
|
||||
|
||||
### Spell Icons vs Item Icons
|
||||
**SPELL ICONS**: Use RAW icon values from DECAL FileService SpellTable
|
||||
- Access via: `fileService.SpellTable.GetById(spellId)` then reflection to find icon property
|
||||
- **NO OFFSET REQUIRED** - Use raw icon value directly
|
||||
- Matches original Lua: `game.Character.SpellBook.Get(spellID).Icon` (no offset)
|
||||
|
||||
**ITEM ICONS**: Require MagTools-style offset
|
||||
- Format: `itemIcon + 0x6000000`
|
||||
- Used for inventory items, weapons, armor, etc.
|
||||
|
||||
### Working Implementation
|
||||
```csharp
|
||||
// For SPELL icons - NO offset
|
||||
private int GetRealSpellIcon(int spellId)
|
||||
{
|
||||
var fileService = CoreManager.Current.Filter<Decal.Filters.FileService>();
|
||||
var spell = fileService.SpellTable.GetById(spellId);
|
||||
// Use reflection to find icon property
|
||||
return iconValue; // RAW value, no offset
|
||||
}
|
||||
|
||||
// For ITEM icons - WITH offset
|
||||
int itemIconId = worldObject.Icon + 0x6000000;
|
||||
```
|
||||
|
||||
### VVS Icon Display
|
||||
- Use `DecalControls.IconColumn` in XML (NOT PictureColumn)
|
||||
- IconColumn creates HudPictureBox controls automatically
|
||||
- Set icon via: `((HudPictureBox)control).Image = iconId;`
|
||||
|
||||
### Successful Applications
|
||||
✅ **Flag Tracker Recalls Tab**: Real spell icons working perfectly
|
||||
✅ **MagTools Reference**: Item icons with 0x6000000 offset
|
||||
✅ **Original Lua Compatibility**: Exact replication of flagtracker behavior
|
||||
|
||||
### Implemented Icon Applications
|
||||
✅ **Flag Tracker Recalls Tab**: Real spell icons working perfectly
|
||||
✅ **Flag Tracker Cantrips Tab**: Multi-layered icon system implemented
|
||||
- **Attributes**: Spell icons (Strength, Endurance, etc.) with background support
|
||||
- **Protection Auras**: Spell icons (Armor, Flame Ward, etc.)
|
||||
- **Skills**: Dynamic skill icons from character training data
|
||||
|
||||
### Cantrips Tab Icon System (Advanced Implementation)
|
||||
Based on original Lua flagtracker's sophisticated 3-icon approach:
|
||||
|
||||
```csharp
|
||||
// Attributes: Background + Spell Icon overlay
|
||||
["Strength"] = new CantripInfo {
|
||||
SpellIconId = 1354, // StrengthSelf8 spell icon
|
||||
BackgroundIconId = 0x060013F9 // UI background icon
|
||||
};
|
||||
|
||||
// Protection Auras: Spell icons only
|
||||
["Armor"] = new CantripInfo {
|
||||
SpellIconId = 1397 // ArmorSelf8 spell icon
|
||||
};
|
||||
|
||||
// Skills: Dynamic skill icons from character data
|
||||
IconId = GetSkillIconId(skillId) // Real skill icon + 0x6000000 offset
|
||||
```
|
||||
|
||||
### Icon Priority System
|
||||
1. **Background + Spell Overlay**: For attributes (complex layering)
|
||||
2. **Spell Icons Only**: For protection auras
|
||||
3. **Skill Icons**: From character skill data (item-style offset)
|
||||
4. **Fallback**: Default portal icon (0x6002D14)
|
||||
|
||||
### Future Icon Usage
|
||||
- **Weapons Tab**: 3-layer system (underlay + icon + overlay) from original Lua
|
||||
- **Luminance Auras**: Could use custom UI icons
|
||||
- **Society Items**: Could use item icons with proper offset
|
||||
Loading…
Add table
Add a link
Reference in a new issue