Meta Vens
dbb8be39d9
Cut 2: give every entity its own StatResolver, delete the catalog leak
...
PerformanceStat kept two Dictionary<Entity, ...> fields for attached modifiers,
grown by one key per entity that ever evaluated the stat and never trimmed
(docs/stats-and-power-cut.md §0.3). StatResolver.cs is the new sole owner of
every resolved (item, stat) value and every attached modifier, one instance
per Entity and reachable only from it. EquippedItem and ConsumableItemEffect
now read and write through it instead of through the catalog object; the two
dictionaries and their four accessors are deleted outright, not hidden.
StatModifier no longer resolves its (type name, field name) reference by
runtime reflection search on every equip: StatValidation.ResolveStatField
does it once, memoized, and StatValidation.ValidateStatModifiers checks it at
catalog load and at Upsert, naming the record instead of failing with an
opaque NullReferenceException the first time something equips it. A modifier
whose own magnitude stat is (directly or transitively, through another
modifier on the same entity) one of the stats it writes is refused at equip:
resolving it would depend on a value computed from itself one tick late.
A resolved value now caches by the generation of the sources its declared
Terms actually read, invalidated per source by EquippedItem.UpdatePerformance
(Heat, Durability) and ConsumableItemEffect.Update (ConsumableProgress), so a
stat recomputes only when a term it declared moves.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 19:53:59 +02:00
..
AetherDrive.cs
Switch engine asset references from Resources paths to Addressables GUIDs
2026-09-18 05:04:50 +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
Cut 2: give every entity its own StatResolver, delete the catalog leak
2026-09-18 19:53:59 +02:00
Behaviors.cs.meta
Behavior Refactoring
2020-04-09 10:33:16 +01:00
Capacitor.cs
Swap Unity.Mathematics usings for CultMath
2026-09-14 17:39:12 +02:00
Capacitor.cs.meta
Energy & Heat
2020-12-27 22:18:22 +00:00
ChargedWeapon.cs
Swap Unity.Mathematics usings for CultMath
2026-09-14 17:39:12 +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
Gate weapon fire on the shooter's own stance, shared by player and AI
2026-09-17 14:00:59 +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
Move the ServerShared data model onto CultLib's CultCache
2026-09-14 19:00:42 +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
InstantWeapon.cs
Gate weapon fire on the shooter's own stance, shared by player and AI
2026-09-17 14:00:59 +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
Gate weapon fire on the shooter's own stance, shared by player and AI
2026-09-17 14:00:59 +02:00
LockWeapon.cs.meta
Weapon Scripting Overhaul
2021-01-25 05:53:36 +00:00
MiningTool.cs
Move the ServerShared data model onto CultLib's CultCache
2026-09-14 19:00:42 +02:00
MiningTool.cs.meta
Mining
2020-05-28 04:50:40 +01:00
Radiator.cs
Swap Unity.Mathematics usings for CultMath
2026-09-14 17:39:12 +02:00
Radiator.cs.meta
Behavior Refactoring
2020-04-09 10:33:16 +01:00
Reactor.cs
Swap Unity.Mathematics usings for CultMath
2026-09-14 17:39:12 +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
Move the ServerShared data model onto CultLib's CultCache
2026-09-14 19:00:42 +02:00
ResourceScanner.cs.meta
Mega Placement
2020-05-21 01:53:06 +01:00
Sensor.cs
Swap Unity.Mathematics usings for CultMath
2026-09-14 17:39:12 +02:00
Sensor.cs.meta
Behavior Refactoring
2020-04-09 10:33:16 +01:00
Shield.cs
Swap Unity.Mathematics usings for CultMath
2026-09-14 17:39:12 +02:00
Shield.cs.meta
Behavior Refactoring
2020-04-09 10:33:16 +01:00
StatModifier.cs
Cut 2: give every entity its own StatResolver, delete the catalog leak
2026-09-18 19:53:59 +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
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
Switch engine asset references from Resources paths to Addressables GUIDs
2026-09-18 05:04:50 +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
Delete AetheriaMath in favour of CultMath
2026-09-14 18:02:41 +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
Switch engine asset references from Resources paths to Addressables GUIDs
2026-09-18 05:04:50 +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