tools(ace-mods): add @settime ACE mod for same-clock retail/acdream sky comparisons
Sky and weather gates need retail and acdream looking at the SAME Dereth hour and the SAME authored day group; until now the only lever was acdream's ACDREAM_WORLD_TIME/ACDREAM_DAY_GROUP pins, which retail cannot follow, so the user could never judge night-sky differences (aurora, dome edge) side by side. @settime <hour|fraction> [Sunny|Rainy|Clear|Cloudy|<index>] jumps ACE's Timers.PortalYearTicks FORWARD to the next matching instant. Every TimeSync header carries that value, so both clients re-sync within seconds. Forward-only because DelayActions compare against the same clock (a backward jump would stall them). The calendar and day-group roll duplicate acdream's retail ports (DerethCalendar shift 3600, SkyDayGroupSelector LCG from SkyDesc::CalcPresentDayGroup @0x00500E10) and the 20-entry name table was dumped from the installed Region DAT. Install: copy SetTime.dll + Meta.json to C:\ACE\Mods\SetTime and run @mod find (or restart ACE). Dev servers only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
cc42edc8e3
commit
13f685ee94
4 changed files with 238 additions and 0 deletions
31
tools/ace-mods/SetTime/README.md
Normal file
31
tools/ace-mods/SetTime/README.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# SetTime — ACE mod for side-by-side sky/weather comparisons
|
||||
|
||||
`@settime <hour|fraction> [Sunny|Rainy|Clear|Cloudy|<dayGroupIndex>]`
|
||||
|
||||
Jumps the server's Dereth clock **forward** (never back) so retail and
|
||||
acdream — both driven by ACE's TimeSync — show the same hour and the same
|
||||
authored day group:
|
||||
|
||||
- `@settime 3` → the next 3 o'clock (day fraction 0.125);
|
||||
- `@settime 0.125 Rainy` → 3 o'clock on the next day whose roll is a Rainy group;
|
||||
- `@settime 12 16` → noon on the next day that rolls day group 16.
|
||||
|
||||
Dev servers only: a forward jump fires every pending `DelayAction` early.
|
||||
The command needs `AccessLevel.Admin`.
|
||||
|
||||
## Build and install
|
||||
|
||||
```powershell
|
||||
dotnet build tools/ace-mods/SetTime -c Release
|
||||
New-Item -ItemType Directory -Force C:\ACE\Mods\SetTime | Out-Null
|
||||
Copy-Item tools/ace-mods/SetTime/bin/Release/net10.0/SetTime.dll, tools/ace-mods/SetTime/Meta.json C:\ACE\Mods\SetTime\
|
||||
```
|
||||
|
||||
Then restart ACE (the mod loader also hot-reloads when `HotReload` is true).
|
||||
`AceServerDir` (default `C:\ACE\Server`) can be overridden with
|
||||
`-p:AceServerDir=...` if the server lives elsewhere.
|
||||
|
||||
The calendar and day-group roll are the same retail ports acdream uses
|
||||
(`DerethDateTime`, `SkyDayGroupSelector`; retail
|
||||
`SkyDesc::CalcPresentDayGroup @0x00500E10`), so the group the command
|
||||
predicts is the group both clients will render.
|
||||
Loading…
Add table
Add a link
Reference in a new issue