Restore daemon energy and thermal network
This commit is contained in:
parent
22dae9adbe
commit
7fdfdff99a
11 changed files with 905 additions and 77 deletions
|
|
@ -1937,6 +1937,15 @@ First Aetheria surfaces to publish:
|
|||
|
||||
- `rg "Newtonsoft|JsonObject|JsonProperty|JsonConvert|JsonKnownTypes|RethinkDb|RethinkTable|DatabaseCache"` is zero outside migration quarantine and docs.
|
||||
- `rg "DatabaseEntry|DatabaseLink|InspectableDatabaseLink|ServerShared\\\\CultCache" Assets Economy.*` shows no live runtime ownership path.
|
||||
- `AetheriaRuntimeEnergySimulation` owns the equipped capacitor/reactor/radiator
|
||||
network. `AetheriaRuntimeThermalSimulation` owns catalog-derived cell topology,
|
||||
equipment-local temperature/performance, shutdown, wear, conduction, and
|
||||
radiation. The daemon orders radiator pumping before reactor settlement and
|
||||
thermal conduction; client operations have no direct energy, heat, wear, or
|
||||
equipment-online writer. The Eve game surface publishes the resulting power,
|
||||
radiator, temperature, wear, and offline-equipment facts. Cockpit medical
|
||||
consequences, rotated equipment footprints, and parent/child radiation remain
|
||||
migration work rather than presentation authority.
|
||||
- `dotnet list package --vulnerable --include-transitive` is clean for active
|
||||
maintained projects.
|
||||
- CultCache smoke proves write, flush, reopen, query, and typed reference
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ validation proves contract shape, not wiring, exclusivity, lowering, or parity.
|
|||
| Targeting/contacts | sensors + `ActionGameManager` | daemon | contact/target semantics | target HUD and indicators | simplified owner wired/projected; daemon weapon lock now acquires and decays from facing, elapsed time, and observer-local contact confidence instead of granting an immediate perfect lock | target-switch reset, angular decay, visibility/nearest/explicit cases, and runtime lock feedback |
|
||||
| Projectile flight | weapon/projectile classes | Eve presentation for ordinary tracers; Ymir for persistent physical payloads | receipt trajectory/effect facts or persistent payload state | native projectile visual | ordinary instant, charged, and constant execution creates no projectile body; each weapon state owns a stable shot sequence and receipts carry origin, endpoint, nominal duration, and effect identity for Eve presentation; `SpawnProjectile` and its alternate writer are deleted; Ymir projectile contacts are feedback-only for explicitly persisted payload rows and cannot write damage; Ymir.Core remains embedded for world integration, radial fields, circle contacts, pickups, and genuinely persistent/interceptable payloads | split/rename the remaining physical-payload interface and remove ordinary projectile terminology from runtime contracts |
|
||||
| Shield/armor/equipment/hull damage | energy-funded shield, schematic armor cells, equipment and scalar hull | daemon canonical damage transaction | aggregate/exact armor grid, entity status, and layer-aware shot/damage receipts | schematic, meters, impacts, damage VFX | owner-exists; wired; exclusive; projected: daemon initializes armor/maximum-armor grids from hull plus hardpoint catalog topology; direct and deployable damage share one `shield -> armor cell -> equipment -> scalar hull` transaction; direct impacts select a cell or complete hardpoint footprint before orthogonal spread and 0.5-cell penetration, while splash payloads select the source-facing hull half; the fossil penetration infinite-loop defect is fixed; damage type is typed/pass-through without resistances because the fossil never applied them; Eve exposes aggregate and exact armor state and receipts identify reached/applied layers; fake Ymir contacts and presentation cannot decide damage | fossil parity fixtures for topology, edge impacts, orthogonal spread, multi-cell penetration, equipment interception, and generic shield/equipment effect lifecycle |
|
||||
| Thermal/energy | cell conduction and capacitor/reactor/radiator network | daemon | ship/equipment status and warnings | schematic/post effects | cell conduction/radiation wired; energy network and medical thresholds remain reference | capacitor/reactor/radiator ordering, shared energy and medical timelines |
|
||||
| Thermal/energy | cell conduction and capacitor/reactor/radiator network | daemon | ship/equipment state, power/temperature facts and warnings | schematic/post effects | owner-exists; wired; exclusive; projected: catalog hull and installed-item shapes derive cell mass/conductivity/topology; local temperature derives thermal performance, wear potential and online state; all consumers share capacitor-first/reactor-residual transactions; powered radiators pump before reactor settlement; reactor heat then enters the same cell network before conduction/radiation; Eve exposes capacitor, reactor, radiator, temperature, wear and offline-equipment facts; cockpit medical thresholds, rotated equipment topology and parent/child radiation remain incomplete | multi-consumer ordering, multi-radiator visibility, rotated topology, cockpit injury/death timelines and generic schematic/post-effect lowering |
|
||||
| Weapons | ServerShared behaviors + Unity effects | daemon plus Ymir geometry/kinematics | action capability, weapon state, shot/damage receipts | effects/audio/HUD | instant and constant resource/timing lifecycles are daemon-owned; charged weapons accept one semantic request, spool without requiring a solution, hold at full charge, commit automatically when a solution appears, and perform deterministic once-per-second malfunction hazard checks after the authored safe hold interval with increasing persisted risk; generic Eve `weapon.state` exposes charge hold/risk and feedback exposes readiness, commit, refusal, and malfunction chronology; committed direct damage now enters the shared daemon armor-cell transaction | guided persistent payloads, visibility/wear, remaining impact-distribution parity, and Unity effect reconciliation |
|
||||
| Destruction/drops | hull death, 25% equipment rolls, unconditional cargo drops, 25-unit launch, 30-second pickups | daemon | destruction identity, death/drop events, typed pickups | provider-advertised destruction effect and pickups | owner-exists; wired; exclusive; projected: direct and deployable lethal damage commit one deterministic destruction transaction, clear live references, retain only a non-rendered identity tombstone, and emit exact pickups/events; the reserved client `DestroyEntity` command is rejected; Aetheria advertises its original big explosion as `effect.feedback.entity.destroyed`, lowered generically by EveUnity | equipment-destruction-before-hull parity and multiplayer reconnect chronology |
|
||||
| Tractor/scoop | analog tractor and physical timed pickups | daemon + Ymir | tractor power, pickup body and receipt | beam/interaction feedback | fossil 2/s power ramp and authored forward radius/traction/distance feed pickup bodies into the shared Ymir world; shield contact collects exactly once when capacity permits or applies the fossil 25-unit rejection kick; 30s daemon lifetime; instant cargo teleport deleted | prove generic runtime beam, contact, success and rejection feedback |
|
||||
|
|
|
|||
|
|
@ -42,6 +42,14 @@ performance and online state derive from local temperature.
|
|||
Cockpit temperature advances heatstroke/hypothermia accumulation and recovery.
|
||||
Threshold crossings and death are authoritative events.
|
||||
|
||||
The daemon derives the grid from the equipped catalog, rather than accepting a
|
||||
renderer-authored heat scalar. Hull mass and specific heat are distributed over
|
||||
the hull shape; installed equipment contributes thermal mass and replaces the
|
||||
conductivity of its occupied cells. Equipment temperature is the mean of those
|
||||
cells. Authored thermal-performance curves and durability derive each item's
|
||||
current performance and online state. Generic wear and weapon-triggered wear
|
||||
consume the same temperature-derived wear potential.
|
||||
|
||||
## Energy Network
|
||||
|
||||
Capacitors store charge. A demand drains charged capacitors evenly first, then
|
||||
|
|
@ -49,6 +57,14 @@ divides unmet demand among online reactors. Behaviors succeed or fail according
|
|||
to the actual transaction. Radiators consume energy to pump heat and produce
|
||||
waste heat. Shields consume energy per intercepted damage.
|
||||
|
||||
Per daemon tick, equipment performance is derived before behavior execution and
|
||||
all energy consumers transact against the same equipped network. Radiators then
|
||||
pump heat and add their demand, reactors settle baseline output, overload,
|
||||
capacitor refill, throttling and equipment heat, and finally the thermal grid
|
||||
conducts and radiates. Thermal and radiator radiation are independently replaced
|
||||
visibility contributions; they are not cumulative scalar drift. A client may
|
||||
request semantic controls, but cannot set charge, heat, wear, or online state.
|
||||
|
||||
## Behavior Execution
|
||||
|
||||
Required behavior families:
|
||||
|
|
|
|||
Loading…
Reference in a new issue