Vixen
dd8b0a81
csharp
public sealed class SystemAccess

The component types a system reads and the ones it writes — everything the runner needs to decide whether two systems may run at the same time.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Two systems conflict when one writes something the other touches. Read against read is not a conflict, which is what lets a dozen systems that all read WorldTransform run concurrently; write against anything is.

Fields and properties (5)

  • public static SystemAccess None

    Access to nothing, which conflicts with nothing.

  • public IReadOnlyList<ComponentTypeId> Reads

    The component types read, including the ones written.

  • public IReadOnlyList<ComponentTypeId> Writes

    The component types written.

  • public bool IsEmpty

    Whether this declares nothing, and so conflicts with nothing.

  • public JobAccess JobAccess

    The same declaration in the terms the job scheduler's safety system reads.

Methods (5)

  • public SystemAccess(IEnumerable<ComponentTypeId> reads, IEnumerable<ComponentTypeId> writes)

    Builds an access set.

  • public bool ConflictsWith(SystemAccess other)

    Whether two systems may not run at the same time.

  • public static SystemAccess FromAttributes(Type systemType)

    Reads the access a system type declares with attributes.

  • public static SystemAccess.Builder Declare()

    Declares access by naming component types, which registers them as it goes.

  • public override string ToString()

    Renders the two sets, which is what a system-graph dump shows.

Used by (72, showing 40)

  • IntruderSystemAiVillage
  • OrbitSystemEcsStressTest
  • AiOverlaySystemVixen.Ai.Diagnostics
  • AiSystemVixen.Ai
  • AiSystemTestsVixen.Ai.Tests
  • AnimationSystemVixen.Animation
  • AudioSystemVixen.Audio
  • BlendShapeAnimationSystemVixen.Animation
  • BuilderVixen.Ecs
  • BuoyancyDebugSystemVixen.Water.Physics
  • BuoyancySystemVixen.Water.Physics
  • CameraDirectorSystemVixen.Engine
  • CameraExtractionSystemVixen.Rendering
  • CharacterMovementSystemVixen.Physics
  • ConstraintGizmoSystemVixen.Animation
  • DebugDrawSystemVixen.Engine
  • DiagnosticOverlaySystemVixen.Engine
  • IDeclaredAccessVixen.Ecs
  • InferredChunkSystemVixen.Engine.Tests
  • InferredDelegateSystemVixen.Engine.Tests
  • InferredFilteredSystemVixen.Engine.Tests
  • InferredSystemAccessTestsVixen.Engine.Tests
  • LagCompensationSystemVixen.Net.Physics
  • LightExtractionSystemVixen.Rendering
  • LocalPlayerSystemVixen.Net.Engine
  • LodExtractionSystemVixen.Engine.Renderer
  • MeshExtractionSystemVixen.Rendering
  • MorphWeightSystemVixen.Rendering
  • NavigationSystemVixen.Navigation
  • NetworkAnimatorApplySystemVixen.Net.Animation
  • NetworkAnimatorCaptureSystemVixen.Net.Animation
  • NetworkAudioApplySystemVixen.Net.Audio
  • NetworkAudioCaptureSystemVixen.Net.Audio
  • NetworkBoneSelectionSystemVixen.Net.Animation
  • NetworkBonesApplySystemVixen.Net.Animation
  • NetworkBonesCaptureSystemVixen.Net.Animation
  • NetworkRigidBodyCaptureSystemVixen.Net.Physics
  • NetworkRigidBodyCorrectionSystemVixen.Net.Physics
  • NetworkSpawnSystemVixen.Net.Engine
  • NetworkTransformApplySystemVixen.Net.Engine