Aetheria/Assets/Scripts/ServerShared/Behaviors
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 22a54ccbaf Cut 1: belts are evaluated when asked, not simulated every tick
Zone.Update no longer threads a per-belt Task.Run over a double-buffered
Transforms/OrbitPosition pair. AsteroidBelt.Pose/Size are the one place a
chunk pose is computed, a pure function of zone time; Zone.ChunkPose and
Zone.EvaluateBelt read them at the zone's own time. MiningTool,
ResourceScanner and ZoneRenderer (belt matrices and AsteroidBeltUI) all read
through Zone instead of the deleted per-tick buffers; the renderer owns its
own float4[] buffer, filled fresh every frame.

Deleted: System.Threading/.Tasks usings, BeltUpdates, the wait loop, the
per-belt copy+Task.Run, NearestAsteroid (dead/broken reader), the private
UpdateAsteroidTransforms, and AsteroidBelt's four pose fields plus their
allocations. ~65 lines, matching the cut map's estimate.

miningprobe, densest zone of the operator's save (EAC-2265, 809 asteroids,
8 belts), rebuilt against this cut and rerun 10x each side:

before (branch point, 8bd25f6f/e729e6d6):
  Zone.Update wall 541-3654 us/tick, CPU 120-391 us/tick (7 clean runs)
  3/10 runs crashed: InvalidOperationException from Zone.GetOrbitPosition,
  the documented _updatedOrbits/Orbits data race between the main thread's
  Clear() and a belt Task.Run

after (this commit):
  Zone.Update wall 95-185 us/tick, CPU 99-152 us/tick, in line with the
  31-39 us "no belt work" baseline the map recorded -- belts are free per
  tick
  0/10 races
  ChunkPose has no buffer to go stale: ~0.12 u of parent+asteroid motion is
  visible across one 17 ms tick instead of being one tick behind

tests/Aetheria.Shared.Tests/MiningCut1Tests.cs (new, 260/260 suite green):
  ChunkPoseIsTheOrbitAtZoneTime, ChunkPoseDoesNotDependOnUpdateCadence,
  DamagedChunkShrinksAndABrokenOneHasNoSize -- each expected value is the
  closed-form orbit/size rule reimplemented in the test, never a call to
  AsteroidBelt.Pose/Size.

Negative grep (Zone.cs, "Zone Display", ServerShared/Behaviors) for
Task\.Run|System\.Threading|NewTransforms|\.Transforms\b|BeltUpdates|
NearestAsteroid|\.OrbitPosition\b|NewOrbitPosition: one hit, the commented
line in MineAsteroid that Cut 2 deletes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 01:27:16 +02:00
..
AetherDrive.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
AetherDrive.cs.meta Aetheric Drive 2021-04-14 03:29:14 +01:00
AutoWeapon.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
AutoWeapon.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
Behaviors.cs Add targeting subsystem, reveal rule and selection slot (fire control Cut 2) 2026-09-19 13:02:20 +02:00
Behaviors.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Capacitor.cs Cut 3: PowerBus replaces TryConsumeEnergy/CanConsumeEnergy 2026-09-18 21:39:38 +02:00
Capacitor.cs.meta Energy & Heat 2020-12-27 22:18:22 +00:00
ChargedWeapon.cs Cut 4: input capacitors close the last direct capacitor spend 2026-09-18 22:52:15 +02:00
ChargedWeapon.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
Cockpit.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Cockpit.cs.meta Energy & Heat 2020-12-27 22:18:22 +00:00
ConstantWeapon.cs Fire control Cut 5: close the rules that landed on one path and not its twin 2026-09-19 16:56:40 +02:00
ConstantWeapon.cs.meta GUNS GUNS GUNS 2021-01-05 02:56:17 +00:00
Cooldown.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Cooldown.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
EnergyDraw.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
EnergyDraw.cs.meta Mega Placement 2020-05-21 01:53:06 +01:00
Heat.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Heat.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
HeatStorage.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
HeatStorage.cs.meta Wormholes 2021-03-05 14:31:18 +00:00
InputCapacitor.cs Cut 4: input capacitors close the last direct capacitor spend 2026-09-18 22:52:15 +02:00
InputCapacitor.cs.meta Cut 4: input capacitors close the last direct capacitor spend 2026-09-18 22:52:15 +02:00
InstantWeapon.cs Fire control Cut 4, part 1: FireControl gains Splash and a beam roll 2026-09-19 15:16:57 +02:00
InstantWeapon.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
ItemUsage.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
ItemUsage.cs.meta Behavior Canceling & Grouping 2020-05-11 01:17:10 +01:00
Launcher.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Launcher.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
LockWeapon.cs Fire control Cut 3: hit authority moves to FireControl 2026-09-19 14:07:07 +02:00
LockWeapon.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
MiningTool.cs Cut 1: belts are evaluated when asked, not simulated every tick 2026-09-25 01:27:16 +02:00
MiningTool.cs.meta Mining 2020-05-28 04:50:40 +01:00
Radiator.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
Radiator.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Reactor.cs Cut 5: priority tiers replace PowerBus's single shared GrantRatio 2026-09-19 02:58:38 +02:00
Reactor.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Reflector.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Reflector.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
ResourceScanner.cs Cut 1: belts are evaluated when asked, not simulated every tick 2026-09-25 01:27:16 +02:00
ResourceScanner.cs.meta Mega Placement 2020-05-21 01:53:06 +01:00
Sensor.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
Sensor.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Shield.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
Shield.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
StatModifier.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
StatModifier.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
Switch.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Switch.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
TargetingSystem.cs Cut 6d: the dart-throw kernel replaces the coin-flip landing rule 2026-09-19 21:37:39 +02:00
TargetingSystem.cs.meta Add targeting subsystem, reveal rule and selection slot (fire control Cut 2) 2026-09-19 13:02:20 +02:00
Thermotoggle.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Thermotoggle.cs.meta Entity Properties & Thermal Regulation 2020-05-26 01:12:06 +01:00
Thruster.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
Thruster.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Trigger.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Trigger.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
TurretController.cs Fire control Cut 3: hit authority moves to FireControl 2026-09-19 14:07:07 +02:00
TurretController.cs.meta Murder Satellites 2021-01-06 14:56:39 +00:00
VelocityConversion.cs Delete AetheriaMath in favour of CultMath 2026-09-14 18:02:41 +02:00
VelocityConversion.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
VelocityLimit.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
VelocityLimit.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Visibility.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Visibility.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
Weapon.cs Fire control Cut 5: close the rules that landed on one path and not its twin 2026-09-19 16:56:40 +02:00
Weapon.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Wear.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Wear.cs.meta Heat Performance Curves + Wear & Tear 2021-03-04 03:58:46 +00:00