FEATURE: Add Infrastructure Hub Upgrade Tracking System#204
Merged
Slazanger merged 11 commits intoSlazanger:masterfrom Dec 7, 2025
Merged
FEATURE: Add Infrastructure Hub Upgrade Tracking System#204Slazanger merged 11 commits intoSlazanger:masterfrom
Slazanger merged 11 commits intoSlazanger:masterfrom
Conversation
This commit implements a comprehensive system for tracking and displaying Infrastructure Hub upgrades in null-sec systems. Features: - New InfrastructureUpgrade class to store upgrade data (name, level, status) - Extended System class with InfrastructureUpgrades list - Load/Save functionality in EveManager for importing upgrade data from text files - UI integration in RegionControl to display upgrades in system info panel - Menu items in MainWindow for loading and saving upgrade data - Example data file showing the expected format The system supports all infrastructure upgrade types including: - Major/Minor Threat Detection Arrays - Prospecting Arrays (Nocxium, Pyerite, etc.) - Advanced Logistics Network - Cynosural Navigation - Power Monitoring Division - Supercapital Construction Facilities Upgrades are displayed with their slot number, name, level (if applicable), and online/offline status in the system information panel.
- Fixed reference to EVEManager property (was incorrectly using EM) - Fixes build error 'EM does not exist in the current context'
Major improvements to the Infrastructure Hub Upgrade tracking system: **Data Format Improvements:** - Simplified file format: now just "SYSTEMNAME" instead of "Sovereignty Hub SYSTEMNAME" - Backward compatible with old format - Updated example file with new simpler format **Visual Enhancements:** - Added green circle indicator on map for systems with upgrades - Positioned left of system (6x6px LimeGreen ellipse) - Always visible, similar to Cyno Beacon indicator **New Management UI:** - Added "Manage Infrastructure Upgrades" menu item - Full-featured upgrade manager window with: - System selection dropdown (all null-sec systems) - DataGrid showing current upgrades for selected system - Add/Edit form with dropdown for upgrade types - Delete functionality for existing upgrades - Support for all upgrade types (Threat Detection, Prospecting, Logistics, etc.) - Online/Offline status toggle - Slot number and level configuration (0-3) **Supported Upgrade Types:** - Major/Minor Threat Detection Arrays - Power Monitoring Division - All Prospecting Arrays (Pyerite, Nocxium, Mexallon, Isogen, Zydrine, Megacyte, Morphite) - Advanced Logistics Network - Cynosural Navigation/Suppression - Supercapital Construction Facilities - Clone Vat Bay Map automatically refreshes after changes to show updated indicators.
**Fixes:** 1. Auto-load upgrades on startup - Automatically loads InfrastructureUpgrades.txt from storage folder on startup - No need to manually load file each time SMT starts - File location: %APPDATA%/SMT/InfrastructureUpgrades.txt 2. Improved Management Window UI - Reorganized form layout to be more compact and user-friendly - Slot and Upgrade Type now on same row - Level and Online checkbox on same row - Better use of horizontal space - Cleaner, more professional appearance 3. Better default file paths - Load dialog defaults to auto-load file location - Save dialog defaults to auto-load file location - Easier workflow for users **How to use:** - Save your upgrades using "Save Infrastructure Upgrades" - Save to default location (InfrastructureUpgrades.txt) - Upgrades will automatically load on next startup - Green circle indicator will appear on map for systems with upgrades
**Fixed Issues:**
1. Green upgrade indicators appearing in wrong location
- Added check to skip out-of-region systems (!isSystemOOR)
- Added indicators to DynamicMapElements for proper cleanup
- Ensures indicators only appear on systems actually in the region view
2. Management window using white theme
- Applied SMT dark theme: Background="{DynamicResource ListBackground}"
- Window now matches the rest of SMT's dark interface
- Consistent look and feel across the application
**Technical Details:**
- Indicators are now properly added to DynamicMapElements collection
- This ensures they're removed when the map is redrawn
- Out-of-region systems (like border systems) no longer show indicators
- Theme resources are inherited from SMT's global theme
**Fixed Issues:** 1. Upgrades not persisting after adding them - Upgrades were only stored in RAM, not saved to disk - Closing the window or restarting SMT would lose all data 2. Green indicators disappearing after map refresh - Map redraws would reload from disk, but nothing was saved - Indicators would appear briefly then vanish **Solution - Automatic Persistence:** - Auto-save after EVERY change: - After adding an upgrade → AutoSave() - After deleting an upgrade → AutoSave() - When closing the window → AutoSave() - Saves to: %APPDATA%\SMT\InfrastructureUpgrades.txt - This is the same file that auto-loads on startup - Changes are now immediately persistent **Workflow:** 1. Add upgrade via manager → Automatically saved 2. Close window → Map refreshes with saved data 3. Green indicators appear and STAY 4. Restart SMT → Upgrades still there No more manual "Save" step required!
After saving infrastructure upgrades, immediately trigger a map redraw to ensure green indicators persist visibly on the map. This fixes the issue where indicators would appear briefly then disappear.
PROBLEM: Green indicators were only drawn in AddSystemsToMap(), which is only called during full map redraws (ReDrawMap(true)). When the map refreshes every 2 seconds via timer (ReDrawMap(false)), AddSystemsToMap() is not called, causing indicators to be cleared from DynamicMapElements but never redrawn. SOLUTION: Moved infrastructure upgrade indicator drawing logic from AddSystemsToMap() to AddDataToMap(). AddDataToMap() is called on every map redraw, ensuring green indicators persist correctly. This fixes the issue where green circles would appear briefly when adding an upgrade, then disappear after the next timer tick despite the upgrade data still being present in memory.
Enhanced visibility and readability while maintaining SMT theme: - Added visible borders to all GroupBoxes (#555555) - Set GroupBox headers to LightGray for better contrast - Made all Labels white (Foreground="White") for clarity - Improved DataGrid visibility: - Dark background (#2A2A2A) with alternating rows (#333333) - White foreground for all text columns - Proper margins for better spacing - Horizontal gridlines for easier row reading - Set CheckBox foreground to white The window now has much better contrast and readability while staying consistent with SMT's dark theme aesthetic.
Applied consistent dark theme styling to both ComboBoxes: - System selection ComboBox - Upgrade Type ComboBox Changes: - Created DarkComboBoxStyle with #2A2A2A background (matching DataGrid) - White foreground text for better readability - #555555 border to match GroupBoxes - Created DarkComboBoxItemStyle for dropdown items - Hover effect (#404040) for highlighted items - Selected item background (#505050) Now all dropdowns match the DataGrid theme and have excellent contrast and readability while staying consistent with SMT's dark theme.
Slazanger
approved these changes
Dec 7, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Infrastructure Hub Upgrade Tracking System
Summary
This PR introduces a comprehensive system for tracking Sovereignty Infrastructure Hub upgrades in EVE Online systems. Players can now manage, view, and track IHub upgrades with visual indicators on the map and a dedicated management interface.
Features Added
Core Data Model
InfrastructureUpgradeclass - New data structure for storing upgrade informationSystemclass - AddedInfrastructureUpgradeslist property to track upgrades per systemInfrastructureUpgrades.txtVisual Map Indicators
Management UI (
InfrastructureUpgradeWindow)UI/UX Improvements
File Operations
Technical Details
Files Modified
EVEData/InfrastructureUpgrade.cs- New class (created)EVEData/System.cs- Added InfrastructureUpgrades propertyEVEData/EveManager.cs- Added load/save/set/remove methodsSMT/RegionControl.xaml.cs- Added visual indicators and system info displaySMT/MainWindow.xaml- Added menu itemsSMT/MainWindow.xaml.cs- Added event handlersSMT/InfrastructureUpgradeWindow.xaml- New management UI (created)SMT/InfrastructureUpgradeWindow.xaml.cs- New management logic (created)Bug Fixes
AddSystemsToMap()toAddDataToMap()to ensure indicators persist during timer-based redraws!isSystemOORcheck to prevent indicators from appearing at wrong locationsEMtoEVEManagerfor consistencySupported Upgrade Types
Major Threat Detection Array, Minor Threat Detection Array, Power Monitoring Division, Pyerite/Nocxium/Mexallon/Isogen/Zydrine/Megacyte/Morphite Prospecting Arrays, Advanced Logistics Network, Cynosural Navigation, Cynosural Suppression, Supercapital Construction Facilities, Clone Vat Bay