Aetheria/Assets/Scripts/ServerShared/Sensing.cs
Meta Vens 1d14edea3a Signatures: every light signature names its channel and item through Entity.SetSignature
VisibilitySources holds Signature (channel, strength, item); the eight direct writes
go through the one writer; Visibility stays the sum; SignatureOn(channel) splits it.
VisibilityData gains Key(3) Channel. No number changes. Not yet built or tested at this
commit (verification follows).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 09:13:24 +02:00

30 lines
947 B
C#

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// Light signatures split by channel (ruling visibility-per-capability-reveal): an observer learns what a ship
// is by which channel carries the light. Append-only: values are serialized in VisibilityData.
public enum SignatureChannel
{
Thermal,
Reflection,
DrivePlume,
LaunchFlash,
Emission
}
public readonly struct Signature
{
public readonly SignatureChannel Channel;
public readonly float Strength;
public readonly EquippedItem Item;
public Signature(SignatureChannel channel, float strength, EquippedItem item)
{
Channel = channel;
Strength = strength;
Item = item;
}
public Signature WithStrength(float strength) => new Signature(Channel, strength, Item);
}