Persist resource scanner state in typed snapshots

This commit is contained in:
Meta Vens 2026-06-14 16:01:36 +01:00
commit 2239d15a38
11 changed files with 138 additions and 8 deletions

View file

@ -500,6 +500,19 @@ try
AetherDriveMaximumRpm = 2400.0,
AetherDriveThrustDirectionX = 1.5,
AetherDriveThrustDirectionY = -0.5
},
new AetheriaRuntimeBehaviorStateCommit
{
OwnerKind = "equipment",
OwnerIndex = 5,
BehaviorIndex = 0,
BehaviorKind = "ResourceScanner",
ResourceScannerTargetBodyId = "smoke:body",
ResourceScannerAsteroidIndex = 2,
ResourceScannerScanTime = 1.25,
ResourceScannerRange = 500.0,
ResourceScannerMinimumDensity = 0.2,
ResourceScannerScanDuration = 3.5
}
},
StatGrids = new[]
@ -620,7 +633,7 @@ try
entity.WeaponStates[3].BehaviorKind == "LockWeapon" &&
entity.WeaponStates[3].LockProgress == 0.65 &&
entity.WeaponStates[3].LockTargetEntityKey == "global:aetheria.run_state.smoke-run.zone.0.entity.0.v1" &&
entity.BehaviorStates.Length == 5 &&
entity.BehaviorStates.Length == 6 &&
entity.BehaviorStates[0].BehaviorKind == "Sensor" &&
entity.BehaviorStates[0].Pinging &&
entity.BehaviorStates[0].PingRadius == 1200.0 &&
@ -637,6 +650,11 @@ try
entity.BehaviorStates[4].AetherDriveRpmY == 900.0 &&
entity.BehaviorStates[4].AetherDriveMaximumRpm == 2400.0 &&
entity.BehaviorStates[4].AetherDriveThrustDirectionY == -0.5 &&
entity.BehaviorStates[5].BehaviorKind == "ResourceScanner" &&
entity.BehaviorStates[5].ResourceScannerTargetBodyId == "smoke:body" &&
entity.BehaviorStates[5].ResourceScannerAsteroidIndex == 2 &&
entity.BehaviorStates[5].ResourceScannerScanTime == 1.25 &&
entity.BehaviorStates[5].ResourceScannerScanDuration == 3.5 &&
entity.WeaponGroups.Length == 1 &&
entity.StatGrids.Length == 2 &&
entity.StatGrids.Any(grid => grid.Name == "temperature" && grid.Values.Length == 2 && grid.Values[1] == 281.0) &&
@ -692,10 +710,12 @@ try
packageEntities[0].WeaponStates[2].AmmoIntervalProgress != 0.6 ||
packageEntities[0].WeaponStates[3].LockProgress != 0.65 ||
packageEntities[0].WeaponStates[3].LockTargetEntityKey != "global:aetheria.run_state.smoke-run.zone.0.entity.0.v1" ||
packageEntities[0].BehaviorStates.Count != 5 ||
packageEntities[0].BehaviorStates.Count != 6 ||
packageEntities[0].BehaviorStates[3].CapacitorCharge != 7.5 ||
packageEntities[0].BehaviorStates[4].AetherDriveRpmY != 900.0 ||
packageEntities[0].BehaviorStates[4].AetherDriveMaximumRpm != 2400.0 ||
packageEntities[0].BehaviorStates[5].ResourceScannerTargetBodyId != "smoke:body" ||
packageEntities[0].BehaviorStates[5].ResourceScannerScanDuration != 3.5 ||
packageEntities[0].StatGrids.Count != 2 ||
packageEntities[0].StatGrids.All(grid => grid.Name != "temperature" || grid.Values.Count != 2 || grid.Values[1] != 281.0))
{