ClientFocusHintMsg
Client -> gateway: where the player is looking, as a hint for interest (a sniper scope, an RTS camera).
Nebula · Packages/com.1by3.nebula/Runtime/Protocol/Messages.cspublic struct ClientFocusHintMsgClient -> gateway: where the player is looking, as a hint for interest (a sniper scope, an RTS camera). The gateway validates it (FocusHintFilter) before any policy sees it: a hint is an input, never authority, so it cannot be used to see the whole map.
Fields
X, Y, Z
public double X, Y, Z;The hinted point in absolute world coordinates, in double — the same space region keys, container boxes and the gateway's own positions are in, and the only space both ends agree on. A client sends its floating-origin frame position plus its origin (NebulaClient does the sum), so a shift under the camera changes the frame position and the origin together and the point the gateway sees does not move. Floats would lose meters out at the edge of an unbounded world, which is exactly where a strategy camera is pointed, so this is three doubles and not a Vector3.
Generation
public byte Generation;Bumped by the client every time it clears its hint. Hints travel Delivery.Sequenced and the clear travels reliably, so a hint already in flight can arrive after the clear; without a generation it would quietly re-establish the focus the game just gave up.
Clear
public bool Clear;The client withdraws its hint: interest returns to the pawn. The position is unused.
Methods
Write
public void Write(NetworkWriter w);Read
public static ClientFocusHintMsg Read(NetworkReader r);IsStale
public static bool IsStale(byte generation, byte current);True when generation is older than current (wrapping).