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>
This commit is contained in:
parent
e0b123a98d
commit
1d14edea3a
13 changed files with 431 additions and 16 deletions
30
Assets/Scripts/ServerShared/Sensing.cs
Normal file
30
Assets/Scripts/ServerShared/Sensing.cs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
/* 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);
|
||||
}
|
||||
Loading…
Reference in a new issue