Vixen
c7401864
csharp
public interface IWaterSurface

Every zone's water, as a simulation asks about it.

Read the guide page for this →

Remarks

The seam that lets the physics join exist at all — [35 § D1](../../docs/plan/35-water.md#d1-three-assemblies-and-the-kernel-touches-no-device). Vixen.Water.Physics is a separate small assembly precisely so that nothing linking Jolt has to link a graphics device, and the thing that folds a world's zones — WaterZoneSystem — lives in the renderer. Without a seam here, a buoyancy solver would have to reference the renderer to find out where the water is, and a dedicated server could not run it.

⚠ The clock is on this interface and it is read-only, which is the whole "one water clock" rule made structural. A solver that reached for its own frame time would be a force that changes when the frame rate does, and a solver a frame behind the vertex stage is a boat that hovers — invisible until the frame rate changes. Whoever implements this owns the number; everybody else reads it.

Fields and properties (1)

  • float WaterTime

    The simulation's water time, in seconds.

Methods (1)

  • WaterQuery? QueryAt(Vector2 position)

    The query covering a place, or where no zone reaches.

Used by (5)

  • BuoyancySystemVixen.Water.Physics
  • LakeVixen.Water.Physics.Tests
  • StillVixen.Water.Physics.Tests
  • SwellVixen.Water.Physics.Tests
  • WaterZoneSystemVixen.Rendering.Water