The 8 drifting timers ([TimerDrift]) change wire format from delta to anchored time, so each class bumps its serialization version with a MigrateFrom that replays the old delta read through the migration schema. The 2 wall-clock timers (Aquarium, FountainOfLife) keep their format via wallClock: true with no bump. Restart methods drop their TimeSpan.MinValue sentinel checks - v4 invokes them only when a timer was actually running at save. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
43 lines
No EOL
802 B
JSON
Generated
43 lines
No EOL
802 B
JSON
Generated
{
|
|
"version": 2,
|
|
"type": "Server.Items.BaseLight",
|
|
"properties": [
|
|
{
|
|
"name": "BurntOut",
|
|
"type": "bool",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": [
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"name": "Burning",
|
|
"type": "bool",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": [
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"name": "Duration",
|
|
"type": "System.TimeSpan",
|
|
"rule": "PrimitiveTypeMigrationRule"
|
|
},
|
|
{
|
|
"name": "Protected",
|
|
"type": "bool",
|
|
"rule": "PrimitiveTypeMigrationRule",
|
|
"ruleArguments": [
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"name": "BurnTimer",
|
|
"type": "Server.Timer",
|
|
"rule": "TimerMigrationRule",
|
|
"ruleArguments": [
|
|
"@AnchoredTimer"
|
|
]
|
|
}
|
|
]
|
|
} |