ModernUO/Projects/UOContent/Engines
Kamron Batman bc6735bd23
feat: Adds grid support for the DynamicGump system (#2306)
### Summary 

- Adds a new grid layout system for DynamicGump with zero heap allocations
 - Migrates SpawnerControllerGump from legacy GumpGrid to DynamicGump
 - Migrates CommandListGump from BaseGridGump to DynamicGump
 - Removes legacy GumpGrid (no longer needed)

 ### New Grid Layout Components

 | Component | Purpose |
 |-----------|---------|
 | `GridCell` | Value type for cell bounds (x, y, width, height) |
 | `GridSizeSpec` | Parses CSS-like sizing specs ("10*", "*", "100") |
 | `GridCalculator` | Computes track positions using stackalloc |
 | `ListViewLayout` | Pagination + column layout for list views |
 | `GridBuilderExtensions` | Extension methods accepting `GridCell` |
 | `GridEntryStyle` | Styling properties for BaseGridGump migration |
 | `GridEntryExtensions` | Entry methods matching BaseGridGump patterns |

 ### Memory Impact

 | Component | Legacy | New |
 |-----------|--------|-----|
 | Grid storage | ~200 bytes heap | 0 bytes (stackalloc) |
 | Column/Row lists | ~400 bytes heap | ~128 bytes stack |
 | ListView | ~300 bytes heap | ~64 bytes stack |
 | **Total per render** | **~900 bytes heap** | **0 bytes heap** |

 ### Test plan

 - [x] All 21 gump tests pass
 - [x] Build succeeds with no warnings
 - [ ] In-game verification of SpawnerControllerGump
 - [ ] In-game verification of CommandListGump (HelpInfo command)
2026-01-03 10:12:22 -08:00
..
Advanced Search chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
BuffIcons feat: Standardizes South/East selection gumps (#1839) 2025-02-14 00:15:14 -08:00
Bulk Orders chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
CannedEvil chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Character Creation chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Chat fix: Fixes thread guard and cleans up incoming packet reader (#1641) 2023-12-19 17:04:09 -08:00
ConPVP chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Craft chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Doom chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Ethics fix: Fixes ethics causing crashes when not used (#1972) 2024-10-15 17:02:11 -07:00
Events fix: Streamlines event scheduler API. Adds months to weekly recurrence (#2178) 2025-05-07 22:42:44 -07:00
Factions chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Harvest chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Help feat: Adds size/style support to gump builders, optimizes EscapeHtml (#2257) 2025-11-23 11:35:31 -08:00
Khaldun fix: Adds missing string interpolation handler for SetStringSlot (#2123) 2025-02-13 19:30:47 -08:00
ML Quests chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Party chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Pathing feat: Refactors A* Movement to use PriorityQueue (#2244) 2025-07-26 15:53:06 -07:00
Plants feat: Add spawn position caching and spiral scan optimization (#2295) 2025-12-28 02:40:21 -08:00
Player Murder System chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Quests chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Spawners feat: Adds grid support for the DynamicGump system (#2306) 2026-01-03 10:12:22 -08:00
Stealables fix: Consolidates Color/Center html (#1762) 2024-05-07 23:56:32 -07:00
Treasures of Tokuno fix: Optimizes items to use default weights. (Part 1) (#2240) 2025-07-24 14:44:39 -07:00
UltimaStore fix: Fixes thread guard and cleans up incoming packet reader (#1641) 2023-12-19 17:04:09 -08:00
Veteran Rewards chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Virtues feat: Add spawn position caching and spiral scan optimization (#2295) 2025-12-28 02:40:21 -08:00