35 lines
1.9 KiB
Markdown
35 lines
1.9 KiB
Markdown
## Definitions
|
||
|
||
- Synchronous Models and Connections have a one-to-one mapping. The terms are used interchangeably.
|
||
- Sprites are objects in the 3D world. Each has a primary table associated with it.
|
||
- Tables are Lua Tables. The runtime assigns each a two-part ID consisting of a Sprite ID and a Table Index that starts at 1 for a Sprite’s Primary Table.
|
||
|
||
**Synchronous Models** - Each has a few values within it, which are not directly accessible from Lua:
|
||
|
||
- Position (Plane, X, Y, Z)
|
||
- SpriteID - If present, the connection’s Position gets updated periodically based on the Position of the Sprite
|
||
|
||
**Sprites** - These also have a few values which are not directly accessible from Lua:
|
||
|
||
- Position (Plane, X, Y, Z)
|
||
- Sprite ID
|
||
- NextTableID
|
||
|
||
**Tables** - Each table has a mode with hints to the difference transmitter when it’s OK to suppress it from a synchronous model. Each Table contains a two part ID consisting of a Sprite ID and a Table Index. A Table has an inferred position based on it’s Sprite ID. Some modes are:
|
||
|
||
- A: Never Suppress (A Global Table)
|
||
- B: Always Suppress (A Secret Table)
|
||
- C: Suppress from SM’s that are far away (A Sprite’s Primary Table, a Player’s publicly viewable data)
|
||
- D: Suppress when a connection’s SpriteID differs from the Table’s Sprite ID (A player’s sensitive data)
|
||
- E: Call the Table.Transmit(OtherSpriteID) to determine whether to transmit. (Does Lua have a way to make a const call that prohibits storing data in any table fields?)
|
||
|
||
**Table Creation** - I am assuming that whichever version of GUI->MethodCall we use there will be the notion of “Actor” and “Place” as in our old engine. The default mode of a table is:
|
||
|
||
- When Place is the same as Actor: D
|
||
- When Place is different from Actor: C
|
||
|
||
**Difference Transmitter Manipulation** - Designers can explicitly override the default mode of a Table with an intrinsic function:
|
||
|
||
- SetDiffMode(Table,Mode)
|
||
- SetOwner(Table,Sprite)
|