Space Engineers
|
Responsible for synchronizing entity physics over network More...
Classes | |
class | PrioritySettings |
Public Member Functions | |
delegate void | MovedDelegate (ref MatrixD oldTransform, ref MatrixD newTransform) |
delegate void | VelocityDelegate (ref Vector3 oldVelocity, ref Vector3 newVelocity) |
MyEntityPhysicsStateGroup (MyEntity entity, IMyReplicable ownerReplicable) | |
void | CreateClientData (MyClientStateBase forClient) |
Called on server new clients starts replicating this group. More... | |
void | DestroyClientData (MyClientStateBase forClient) |
Called on server when client stops replicating this group. More... | |
void | ClientUpdate (uint timestamp) |
virtual void | Destroy () |
Called when state group is being destroyed. More... | |
virtual MyPlayer | GetControllingPlayer () |
virtual bool | Serialize (BitStream stream, EndpointId forClient, uint timestamp, byte packetId, int maxBitPosition) |
void | OnAck (MyClientStateBase forClient, byte packetId, bool delivered) |
Called for each packet id sent to client from this state group. When ACK received, called immediatelly. When several other packets received from client, but some were missing, called for each missing packet. More... | |
void | ForceSend (MyClientStateBase clientData) |
Public Member Functions inherited from VRage.Network.IMyStateGroup | |
void | ClientUpdate (MyTimeSpan clientTimestamp) |
Update method called on client. More... | |
void | Serialize (BitStream stream, EndpointId forClient, MyTimeSpan timestamp, byte packetId, int maxBitPosition) |
(De)serializes group state or it's diff for client. When writing, you can write beyond maxBitPosition, but message won't be sent and ACKs won't be received for it. ReplicationServer will detect, that state group written beyond packet size and revert it. When nothing written, ReplicationServer will detect that and state group won't receive ACK for that packet id. More... | |
void | TimestampReset (MyTimeSpan timestamp) |
bool | IsStillDirty (EndpointId forClient) |
Static Public Member Functions | |
static bool | ResponsibleForUpdate (MyEntity entity, EndpointId endpointId) |
Public Attributes | |
readonly MyEntity | Entity |
readonly IMyReplicable | OwnerReplicable |
const int | NUM_DECIMAL_PRECISION = 3 |
Protected Member Functions | |
virtual bool | IsMoving (MyEntity entity) |
float | GetBasicPhysicsPriority (MyClientInfo client) |
Takes into account: Static body (zero priority for static), ResponsibilityForUpdate by client (zero priority for not responsible), otherwise returns OwnerReplicable priority. More... | |
float | GetMovementScale (PrioritySettings prioritySettings, out float updateOncePer) |
Gets priority scale and update rate based on prioritySettings. More... | |
virtual float | GetGroupPriority (int frameCountWithoutSync, MyClientInfo client, PrioritySettings settings) |
bool | SerializeServerTransform (BitStream stream, MyEntity entity, Vector3D?deltaPosBase, bool movingOnServer, uint timeStamp, bool lowPrecisionOrientation, ref Vector3D outPosition, ref Quaternion outOrientation, ref MatrixD outWorldMartix, Func< MyEntity, Vector3D, bool > posValidation=null) |
void | SerializeServerVelocities (BitStream stream, MyEntity entity, float simulationRatio, bool movingOnServer, ref Vector3 outLinearVelocity, ref Vector3 outAngularVelocity) |
Static Protected Member Functions | |
static bool | SerializeTransform (BitStream stream, MyEntity entity, Vector3D?deltaPosBase, bool lowPrecisionOrientation, bool applyWhenReading, bool movingOnServer, uint timeStamp, Func< MyEntity, Vector3D, bool > posValidation=null, MovedDelegate moveHandler=null) |
Serializes transform into 10 to 30.5 bytes. More... | |
static void | SerializeVelocities (BitStream stream, MyEntity entity, float simulationRatio, bool applyWhenReading, bool movingOnServer, VelocityDelegate velocityHandler=null) |
Serializes velocities into 12 bytes. More... | |
Protected Attributes | |
Func< MyEntity, Vector3D, bool > | m_positionValidation |
readonly PrioritySettings | m_prioritySettings = new PrioritySettings() |
uint | m_lastMovementFrame = 0 |
bool | m_lowPrecisionOrientation |
Static Protected Attributes | |
static float | PRECISION = 1/(float)Math.Pow(10,NUM_DECIMAL_PRECISION) |
Properties | |
bool | IsAccelerating [get] |
virtual bool | IsControlledLocally [get] |
static float | EffectiveSimulationRatio [get] |
MovedDelegate | MoveHandler [get] |
VelocityDelegate | VelocityHandler [get] |
virtual StateGroupEnum | GroupType [get] |
Properties inherited from VRage.Network.IMyStateGroup | |
StateGroupEnum | GroupType [get] |
IMyReplicable | Owner [get] |
Events | |
MovedDelegate | OnMoved |
Event which occurs when entity is moved by network. More... | |
VelocityDelegate | OnVelocityChanged |
Responsible for synchronizing entity physics over network
Definition at line 24 of file MyEntityPhysicsStateGroup.cs.
|
inline |
Definition at line 105 of file MyEntityPhysicsStateGroup.cs.
|
inline |
Definition at line 119 of file MyEntityPhysicsStateGroup.cs.
|
inline |
Called on server new clients starts replicating this group.
Implements VRage.Network.IMyStateGroup.
Definition at line 111 of file MyEntityPhysicsStateGroup.cs.
|
inlinevirtual |
Called when state group is being destroyed.
Implements VRage.Network.IMyStateGroup.
Reimplemented in Sandbox.Game.Replication.MyEntityPhysicsStateGroupWithSupport.
Definition at line 123 of file MyEntityPhysicsStateGroup.cs.
|
inline |
Called on server when client stops replicating this group.
Implements VRage.Network.IMyStateGroup.
Definition at line 115 of file MyEntityPhysicsStateGroup.cs.
|
inline |
Implements VRage.Network.IMyStateGroup.
Definition at line 445 of file MyEntityPhysicsStateGroup.cs.
|
inlineprotected |
Takes into account: Static body (zero priority for static), ResponsibilityForUpdate by client (zero priority for not responsible), otherwise returns OwnerReplicable priority.
Definition at line 133 of file MyEntityPhysicsStateGroup.cs.
|
inlinevirtual |
Reimplemented in Sandbox.Game.Replication.MyCharacterPhysicsStateGroup, and Sandbox.Game.Replication.MyGridPhysicsStateGroup.
Definition at line 225 of file MyEntityPhysicsStateGroup.cs.
|
inlineprotectedvirtual |
Reimplemented in Sandbox.Game.Replication.MyGridPhysicsStateGroup.
Definition at line 213 of file MyEntityPhysicsStateGroup.cs.
|
inlineprotected |
Gets priority scale and update rate based on prioritySettings.
Definition at line 172 of file MyEntityPhysicsStateGroup.cs.
|
inlineprotectedvirtual |
Reimplemented in Sandbox.Game.Replication.MyCharacterPhysicsStateGroup.
Definition at line 60 of file MyEntityPhysicsStateGroup.cs.
delegate void Sandbox.Game.Replication.MyEntityPhysicsStateGroup.MovedDelegate | ( | ref MatrixD | oldTransform, |
ref MatrixD | newTransform | ||
) |
|
inline |
Called for each packet id sent to client from this state group. When ACK received, called immediatelly. When several other packets received from client, but some were missing, called for each missing packet.
forClient | The client. |
packetId | Id of the delivered or lost packet. |
delivered | True when packet was delivered, false when packet is considered lost. |
Implements VRage.Network.IMyStateGroup.
Definition at line 441 of file MyEntityPhysicsStateGroup.cs.
|
inlinestatic |
Definition at line 142 of file MyEntityPhysicsStateGroup.cs.
|
inlinevirtual |
Reimplemented in Sandbox.Game.Replication.MyEntityPhysicsStateGroupWithSupport, Sandbox.Game.Replication.MyGridPhysicsStateGroup, Sandbox.Game.Replication.MyCharacterPhysicsStateGroup, and Sandbox.Game.Replication.MySmallObjectPhysicsStateGroup.
Definition at line 230 of file MyEntityPhysicsStateGroup.cs.
|
inlineprotected |
Definition at line 353 of file MyEntityPhysicsStateGroup.cs.
|
inlineprotected |
Definition at line 404 of file MyEntityPhysicsStateGroup.cs.
|
inlinestaticprotected |
Serializes transform into 10 to 30.5 bytes.
Definition at line 253 of file MyEntityPhysicsStateGroup.cs.
|
inlinestaticprotected |
Serializes velocities into 12 bytes.
Definition at line 370 of file MyEntityPhysicsStateGroup.cs.
delegate void Sandbox.Game.Replication.MyEntityPhysicsStateGroup.VelocityDelegate | ( | ref Vector3 | oldVelocity, |
ref Vector3 | newVelocity | ||
) |
readonly MyEntity Sandbox.Game.Replication.MyEntityPhysicsStateGroup.Entity |
Definition at line 43 of file MyEntityPhysicsStateGroup.cs.
|
protected |
Definition at line 47 of file MyEntityPhysicsStateGroup.cs.
|
protected |
Definition at line 48 of file MyEntityPhysicsStateGroup.cs.
|
protected |
Definition at line 26 of file MyEntityPhysicsStateGroup.cs.
|
protected |
Definition at line 46 of file MyEntityPhysicsStateGroup.cs.
const int Sandbox.Game.Replication.MyEntityPhysicsStateGroup.NUM_DECIMAL_PRECISION = 3 |
Definition at line 56 of file MyEntityPhysicsStateGroup.cs.
readonly IMyReplicable Sandbox.Game.Replication.MyEntityPhysicsStateGroup.OwnerReplicable |
Definition at line 44 of file MyEntityPhysicsStateGroup.cs.
|
staticprotected |
Definition at line 57 of file MyEntityPhysicsStateGroup.cs.
|
staticget |
Definition at line 90 of file MyEntityPhysicsStateGroup.cs.
|
get |
Definition at line 97 of file MyEntityPhysicsStateGroup.cs.
|
getprotected |
Definition at line 69 of file MyEntityPhysicsStateGroup.cs.
|
getprotected |
Definition at line 81 of file MyEntityPhysicsStateGroup.cs.
|
get |
Definition at line 94 of file MyEntityPhysicsStateGroup.cs.
|
getprotected |
Definition at line 95 of file MyEntityPhysicsStateGroup.cs.
MovedDelegate Sandbox.Game.Replication.MyEntityPhysicsStateGroup.OnMoved |
Event which occurs when entity is moved by network.
Definition at line 102 of file MyEntityPhysicsStateGroup.cs.
VelocityDelegate Sandbox.Game.Replication.MyEntityPhysicsStateGroup.OnVelocityChanged |
Definition at line 103 of file MyEntityPhysicsStateGroup.cs.