ModernUO/Projects/UOContent.Tests/Tests/Engines/Spawners
Kamron Batman c02909e2c8
feat(spawners): virtual OnTick; SpawnerDto carries the group flag (#2640)
## Summary

Two small additive changes a derived spawner needs.

- **`BaseSpawner.OnTick()` is now `virtual`.** A subclass that gates spawning on external state (time windows, event triggers) must gate *timer* spawns without gating the manual `Spawn()` API, and `OnTick` is the only place the two paths differ: it is the timer callback and `Spawn()` is both what it calls and what commands and scripts call. Cost: one virtual dispatch on the existing timer callback; no change to stock behaviour.
- **`group` in the JSON DTO.** `BaseSpawner.Group` (all dead, then respawn) is binary-persisted but was missing from `SpawnerDto`, so it did not survive export/import. Added to the abstract record after `spawnLocationIsHome`, assigned in `ApplyDto` after `InitSpawn` (which resets it), and exported by the three stock `ToDto` implementations.

## Test plan

- [x] A derived spawner overriding `OnTick` with a closed gate: `OnTick()` spawns nothing; manual `Spawn()` still spawns and does not pass through `OnTick`.
- [x] DTO round trip with `Group = true` carries `group` and restores it on `ToSpawner()`.
- [x] `UOContent.Tests` full suite green.
- [ ] CI
2026-09-12 16:33:57 -07:00
..
Fixtures refactor(spawners): subclass-owned entries, lifecycle hooks, per-entry Disabled flag (#2621) 2026-09-11 17:41:08 -07:00
Json refactor(spawners): subclass-owned entries, lifecycle hooks, per-entry Disabled flag (#2621) 2026-09-11 17:41:08 -07:00
SectorSpawnCacheTests.cs refactor: Add BitMask256 utility for 256-bit bitmask operations (#2300) 2025-12-29 12:54:49 -08:00
SpawnerEntryOwnershipTests.cs refactor(spawners): subclass-owned entries, lifecycle hooks, per-entry Disabled flag (#2621) 2026-09-11 17:41:08 -07:00
SpawnerFixtureCapture.cs refactor(spawners): subclass-owned entries, lifecycle hooks, per-entry Disabled flag (#2621) 2026-09-11 17:41:08 -07:00
SpawnerHookTests.cs refactor(spawners): subclass-owned entries, lifecycle hooks, per-entry Disabled flag (#2621) 2026-09-11 17:41:08 -07:00
SpawnerSaveMigrationTests.cs refactor(spawners): subclass-owned entries, lifecycle hooks, per-entry Disabled flag (#2621) 2026-09-11 17:41:08 -07:00
SpawnerTickAndGroupDtoTests.cs feat(spawners): virtual OnTick; SpawnerDto carries the group flag (#2640) 2026-09-12 16:33:57 -07:00