Aetheria/Assets/Scripts/ServerShared/Sensing.cs

30 lines
947 B
C#
Raw Normal View History

/* 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);
}