3 KiB
3 KiB
- 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
// 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.IconColumnin 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:
// 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
- Background + Spell Overlay: For attributes (complex layering)
- Spell Icons Only: For protection auras
- Skill Icons: From character skill data (item-style offset)
- 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