该项目的目的是同时测试和演示来自 Unity DOTS 技术堆栈的多个新包。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

740 行
35 KiB

using Unity.Networking.Transport;
using Unity.NetCode;
using Unity.Mathematics;
using Unity.Collections;
public struct PlayerStateSnapshotData : ISnapshotData<PlayerStateSnapshotData>
{
public uint tick;
private int PlayerStateplayerId;
private NativeString64 PlayerStateplayerName;
private int PlayerStateteamIndex;
private int PlayerStatescore;
private uint PlayerStategameModeSystemInitialized;
private uint PlayerStatedisplayCountDown;
private int PlayerStatecountDown;
private uint PlayerStatedisplayScoreBoard;
private uint PlayerStatedisplayGameScore;
private uint PlayerStatedisplayGameResult;
private NativeString64 PlayerStategameResult;
private uint PlayerStatedisplayGoal;
private int PlayerStategoalPositionX;
private int PlayerStategoalPositionY;
private int PlayerStategoalPositionZ;
private uint PlayerStategoalDefendersColor;
private uint PlayerStategoalAttackersColor;
private uint PlayerStategoalAttackers;
private uint PlayerStategoalDefenders;
private NativeString64 PlayerStategoalString;
private NativeString64 PlayerStateactionString;
private int PlayerStategoalCompletion;
uint changeMask0;
public uint Tick => tick;
public int GetPlayerStateplayerId(GhostDeserializerState deserializerState)
{
return (int)PlayerStateplayerId;
}
public int GetPlayerStateplayerId()
{
return (int)PlayerStateplayerId;
}
public void SetPlayerStateplayerId(int val, GhostSerializerState serializerState)
{
PlayerStateplayerId = (int)val;
}
public void SetPlayerStateplayerId(int val)
{
PlayerStateplayerId = (int)val;
}
public NativeString64 GetPlayerStateplayerName(GhostDeserializerState deserializerState)
{
return PlayerStateplayerName;
}
public NativeString64 GetPlayerStateplayerName()
{
return PlayerStateplayerName;
}
public void SetPlayerStateplayerName(NativeString64 val, GhostSerializerState serializerState)
{
PlayerStateplayerName = val;
}
public void SetPlayerStateplayerName(NativeString64 val)
{
PlayerStateplayerName = val;
}
public int GetPlayerStateteamIndex(GhostDeserializerState deserializerState)
{
return (int)PlayerStateteamIndex;
}
public int GetPlayerStateteamIndex()
{
return (int)PlayerStateteamIndex;
}
public void SetPlayerStateteamIndex(int val, GhostSerializerState serializerState)
{
PlayerStateteamIndex = (int)val;
}
public void SetPlayerStateteamIndex(int val)
{
PlayerStateteamIndex = (int)val;
}
public int GetPlayerStatescore(GhostDeserializerState deserializerState)
{
return (int)PlayerStatescore;
}
public int GetPlayerStatescore()
{
return (int)PlayerStatescore;
}
public void SetPlayerStatescore(int val, GhostSerializerState serializerState)
{
PlayerStatescore = (int)val;
}
public void SetPlayerStatescore(int val)
{
PlayerStatescore = (int)val;
}
public bool GetPlayerStategameModeSystemInitialized(GhostDeserializerState deserializerState)
{
return PlayerStategameModeSystemInitialized!=0;
}
public bool GetPlayerStategameModeSystemInitialized()
{
return PlayerStategameModeSystemInitialized!=0;
}
public void SetPlayerStategameModeSystemInitialized(bool val, GhostSerializerState serializerState)
{
PlayerStategameModeSystemInitialized = val?1u:0;
}
public void SetPlayerStategameModeSystemInitialized(bool val)
{
PlayerStategameModeSystemInitialized = val?1u:0;
}
public bool GetPlayerStatedisplayCountDown(GhostDeserializerState deserializerState)
{
return PlayerStatedisplayCountDown!=0;
}
public bool GetPlayerStatedisplayCountDown()
{
return PlayerStatedisplayCountDown!=0;
}
public void SetPlayerStatedisplayCountDown(bool val, GhostSerializerState serializerState)
{
PlayerStatedisplayCountDown = val?1u:0;
}
public void SetPlayerStatedisplayCountDown(bool val)
{
PlayerStatedisplayCountDown = val?1u:0;
}
public int GetPlayerStatecountDown(GhostDeserializerState deserializerState)
{
return (int)PlayerStatecountDown;
}
public int GetPlayerStatecountDown()
{
return (int)PlayerStatecountDown;
}
public void SetPlayerStatecountDown(int val, GhostSerializerState serializerState)
{
PlayerStatecountDown = (int)val;
}
public void SetPlayerStatecountDown(int val)
{
PlayerStatecountDown = (int)val;
}
public bool GetPlayerStatedisplayScoreBoard(GhostDeserializerState deserializerState)
{
return PlayerStatedisplayScoreBoard!=0;
}
public bool GetPlayerStatedisplayScoreBoard()
{
return PlayerStatedisplayScoreBoard!=0;
}
public void SetPlayerStatedisplayScoreBoard(bool val, GhostSerializerState serializerState)
{
PlayerStatedisplayScoreBoard = val?1u:0;
}
public void SetPlayerStatedisplayScoreBoard(bool val)
{
PlayerStatedisplayScoreBoard = val?1u:0;
}
public bool GetPlayerStatedisplayGameScore(GhostDeserializerState deserializerState)
{
return PlayerStatedisplayGameScore!=0;
}
public bool GetPlayerStatedisplayGameScore()
{
return PlayerStatedisplayGameScore!=0;
}
public void SetPlayerStatedisplayGameScore(bool val, GhostSerializerState serializerState)
{
PlayerStatedisplayGameScore = val?1u:0;
}
public void SetPlayerStatedisplayGameScore(bool val)
{
PlayerStatedisplayGameScore = val?1u:0;
}
public bool GetPlayerStatedisplayGameResult(GhostDeserializerState deserializerState)
{
return PlayerStatedisplayGameResult!=0;
}
public bool GetPlayerStatedisplayGameResult()
{
return PlayerStatedisplayGameResult!=0;
}
public void SetPlayerStatedisplayGameResult(bool val, GhostSerializerState serializerState)
{
PlayerStatedisplayGameResult = val?1u:0;
}
public void SetPlayerStatedisplayGameResult(bool val)
{
PlayerStatedisplayGameResult = val?1u:0;
}
public NativeString64 GetPlayerStategameResult(GhostDeserializerState deserializerState)
{
return PlayerStategameResult;
}
public NativeString64 GetPlayerStategameResult()
{
return PlayerStategameResult;
}
public void SetPlayerStategameResult(NativeString64 val, GhostSerializerState serializerState)
{
PlayerStategameResult = val;
}
public void SetPlayerStategameResult(NativeString64 val)
{
PlayerStategameResult = val;
}
public bool GetPlayerStatedisplayGoal(GhostDeserializerState deserializerState)
{
return PlayerStatedisplayGoal!=0;
}
public bool GetPlayerStatedisplayGoal()
{
return PlayerStatedisplayGoal!=0;
}
public void SetPlayerStatedisplayGoal(bool val, GhostSerializerState serializerState)
{
PlayerStatedisplayGoal = val?1u:0;
}
public void SetPlayerStatedisplayGoal(bool val)
{
PlayerStatedisplayGoal = val?1u:0;
}
public float3 GetPlayerStategoalPosition(GhostDeserializerState deserializerState)
{
return GetPlayerStategoalPosition();
}
public float3 GetPlayerStategoalPosition()
{
return new float3(PlayerStategoalPositionX * 0.01f, PlayerStategoalPositionY * 0.01f, PlayerStategoalPositionZ * 0.01f);
}
public void SetPlayerStategoalPosition(float3 val, GhostSerializerState serializerState)
{
SetPlayerStategoalPosition(val);
}
public void SetPlayerStategoalPosition(float3 val)
{
PlayerStategoalPositionX = (int)(val.x * 100);
PlayerStategoalPositionY = (int)(val.y * 100);
PlayerStategoalPositionZ = (int)(val.z * 100);
}
public uint GetPlayerStategoalDefendersColor(GhostDeserializerState deserializerState)
{
return (uint)PlayerStategoalDefendersColor;
}
public uint GetPlayerStategoalDefendersColor()
{
return (uint)PlayerStategoalDefendersColor;
}
public void SetPlayerStategoalDefendersColor(uint val, GhostSerializerState serializerState)
{
PlayerStategoalDefendersColor = (uint)val;
}
public void SetPlayerStategoalDefendersColor(uint val)
{
PlayerStategoalDefendersColor = (uint)val;
}
public uint GetPlayerStategoalAttackersColor(GhostDeserializerState deserializerState)
{
return (uint)PlayerStategoalAttackersColor;
}
public uint GetPlayerStategoalAttackersColor()
{
return (uint)PlayerStategoalAttackersColor;
}
public void SetPlayerStategoalAttackersColor(uint val, GhostSerializerState serializerState)
{
PlayerStategoalAttackersColor = (uint)val;
}
public void SetPlayerStategoalAttackersColor(uint val)
{
PlayerStategoalAttackersColor = (uint)val;
}
public uint GetPlayerStategoalAttackers(GhostDeserializerState deserializerState)
{
return (uint)PlayerStategoalAttackers;
}
public uint GetPlayerStategoalAttackers()
{
return (uint)PlayerStategoalAttackers;
}
public void SetPlayerStategoalAttackers(uint val, GhostSerializerState serializerState)
{
PlayerStategoalAttackers = (uint)val;
}
public void SetPlayerStategoalAttackers(uint val)
{
PlayerStategoalAttackers = (uint)val;
}
public uint GetPlayerStategoalDefenders(GhostDeserializerState deserializerState)
{
return (uint)PlayerStategoalDefenders;
}
public uint GetPlayerStategoalDefenders()
{
return (uint)PlayerStategoalDefenders;
}
public void SetPlayerStategoalDefenders(uint val, GhostSerializerState serializerState)
{
PlayerStategoalDefenders = (uint)val;
}
public void SetPlayerStategoalDefenders(uint val)
{
PlayerStategoalDefenders = (uint)val;
}
public NativeString64 GetPlayerStategoalString(GhostDeserializerState deserializerState)
{
return PlayerStategoalString;
}
public NativeString64 GetPlayerStategoalString()
{
return PlayerStategoalString;
}
public void SetPlayerStategoalString(NativeString64 val, GhostSerializerState serializerState)
{
PlayerStategoalString = val;
}
public void SetPlayerStategoalString(NativeString64 val)
{
PlayerStategoalString = val;
}
public NativeString64 GetPlayerStateactionString(GhostDeserializerState deserializerState)
{
return PlayerStateactionString;
}
public NativeString64 GetPlayerStateactionString()
{
return PlayerStateactionString;
}
public void SetPlayerStateactionString(NativeString64 val, GhostSerializerState serializerState)
{
PlayerStateactionString = val;
}
public void SetPlayerStateactionString(NativeString64 val)
{
PlayerStateactionString = val;
}
public float GetPlayerStategoalCompletion(GhostDeserializerState deserializerState)
{
return PlayerStategoalCompletion * 0.01f;
}
public float GetPlayerStategoalCompletion()
{
return PlayerStategoalCompletion * 0.01f;
}
public void SetPlayerStategoalCompletion(float val, GhostSerializerState serializerState)
{
PlayerStategoalCompletion = (int)(val * 100);
}
public void SetPlayerStategoalCompletion(float val)
{
PlayerStategoalCompletion = (int)(val * 100);
}
public void PredictDelta(uint tick, ref PlayerStateSnapshotData baseline1, ref PlayerStateSnapshotData baseline2)
{
var predictor = new GhostDeltaPredictor(tick, this.tick, baseline1.tick, baseline2.tick);
PlayerStateplayerId = predictor.PredictInt(PlayerStateplayerId, baseline1.PlayerStateplayerId, baseline2.PlayerStateplayerId);
PlayerStateteamIndex = predictor.PredictInt(PlayerStateteamIndex, baseline1.PlayerStateteamIndex, baseline2.PlayerStateteamIndex);
PlayerStatescore = predictor.PredictInt(PlayerStatescore, baseline1.PlayerStatescore, baseline2.PlayerStatescore);
PlayerStategameModeSystemInitialized = (uint)predictor.PredictInt((int)PlayerStategameModeSystemInitialized, (int)baseline1.PlayerStategameModeSystemInitialized, (int)baseline2.PlayerStategameModeSystemInitialized);
PlayerStatedisplayCountDown = (uint)predictor.PredictInt((int)PlayerStatedisplayCountDown, (int)baseline1.PlayerStatedisplayCountDown, (int)baseline2.PlayerStatedisplayCountDown);
PlayerStatecountDown = predictor.PredictInt(PlayerStatecountDown, baseline1.PlayerStatecountDown, baseline2.PlayerStatecountDown);
PlayerStatedisplayScoreBoard = (uint)predictor.PredictInt((int)PlayerStatedisplayScoreBoard, (int)baseline1.PlayerStatedisplayScoreBoard, (int)baseline2.PlayerStatedisplayScoreBoard);
PlayerStatedisplayGameScore = (uint)predictor.PredictInt((int)PlayerStatedisplayGameScore, (int)baseline1.PlayerStatedisplayGameScore, (int)baseline2.PlayerStatedisplayGameScore);
PlayerStatedisplayGameResult = (uint)predictor.PredictInt((int)PlayerStatedisplayGameResult, (int)baseline1.PlayerStatedisplayGameResult, (int)baseline2.PlayerStatedisplayGameResult);
PlayerStatedisplayGoal = (uint)predictor.PredictInt((int)PlayerStatedisplayGoal, (int)baseline1.PlayerStatedisplayGoal, (int)baseline2.PlayerStatedisplayGoal);
PlayerStategoalPositionX = predictor.PredictInt(PlayerStategoalPositionX, baseline1.PlayerStategoalPositionX, baseline2.PlayerStategoalPositionX);
PlayerStategoalPositionY = predictor.PredictInt(PlayerStategoalPositionY, baseline1.PlayerStategoalPositionY, baseline2.PlayerStategoalPositionY);
PlayerStategoalPositionZ = predictor.PredictInt(PlayerStategoalPositionZ, baseline1.PlayerStategoalPositionZ, baseline2.PlayerStategoalPositionZ);
PlayerStategoalDefendersColor = (uint)predictor.PredictInt((int)PlayerStategoalDefendersColor, (int)baseline1.PlayerStategoalDefendersColor, (int)baseline2.PlayerStategoalDefendersColor);
PlayerStategoalAttackersColor = (uint)predictor.PredictInt((int)PlayerStategoalAttackersColor, (int)baseline1.PlayerStategoalAttackersColor, (int)baseline2.PlayerStategoalAttackersColor);
PlayerStategoalAttackers = (uint)predictor.PredictInt((int)PlayerStategoalAttackers, (int)baseline1.PlayerStategoalAttackers, (int)baseline2.PlayerStategoalAttackers);
PlayerStategoalDefenders = (uint)predictor.PredictInt((int)PlayerStategoalDefenders, (int)baseline1.PlayerStategoalDefenders, (int)baseline2.PlayerStategoalDefenders);
PlayerStategoalCompletion = predictor.PredictInt(PlayerStategoalCompletion, baseline1.PlayerStategoalCompletion, baseline2.PlayerStategoalCompletion);
}
public void Serialize(int networkId, ref PlayerStateSnapshotData baseline, DataStreamWriter writer, NetworkCompressionModel compressionModel)
{
changeMask0 = (PlayerStateplayerId != baseline.PlayerStateplayerId) ? 1u : 0;
changeMask0 |= PlayerStateplayerName.Equals(baseline.PlayerStateplayerName) ? 0 : (1u<<1);
changeMask0 |= (PlayerStateteamIndex != baseline.PlayerStateteamIndex) ? (1u<<2) : 0;
changeMask0 |= (PlayerStatescore != baseline.PlayerStatescore) ? (1u<<3) : 0;
changeMask0 |= (PlayerStategameModeSystemInitialized != baseline.PlayerStategameModeSystemInitialized) ? (1u<<4) : 0;
changeMask0 |= (PlayerStatedisplayCountDown != baseline.PlayerStatedisplayCountDown) ? (1u<<5) : 0;
changeMask0 |= (PlayerStatecountDown != baseline.PlayerStatecountDown) ? (1u<<6) : 0;
changeMask0 |= (PlayerStatedisplayScoreBoard != baseline.PlayerStatedisplayScoreBoard) ? (1u<<7) : 0;
changeMask0 |= (PlayerStatedisplayGameScore != baseline.PlayerStatedisplayGameScore) ? (1u<<8) : 0;
changeMask0 |= (PlayerStatedisplayGameResult != baseline.PlayerStatedisplayGameResult) ? (1u<<9) : 0;
changeMask0 |= PlayerStategameResult.Equals(baseline.PlayerStategameResult) ? 0 : (1u<<10);
changeMask0 |= (PlayerStatedisplayGoal != baseline.PlayerStatedisplayGoal) ? (1u<<11) : 0;
changeMask0 |= (PlayerStategoalPositionX != baseline.PlayerStategoalPositionX ||
PlayerStategoalPositionY != baseline.PlayerStategoalPositionY ||
PlayerStategoalPositionZ != baseline.PlayerStategoalPositionZ) ? (1u<<12) : 0;
changeMask0 |= (PlayerStategoalDefendersColor != baseline.PlayerStategoalDefendersColor) ? (1u<<13) : 0;
changeMask0 |= (PlayerStategoalAttackersColor != baseline.PlayerStategoalAttackersColor) ? (1u<<14) : 0;
changeMask0 |= (PlayerStategoalAttackers != baseline.PlayerStategoalAttackers) ? (1u<<15) : 0;
changeMask0 |= (PlayerStategoalDefenders != baseline.PlayerStategoalDefenders) ? (1u<<16) : 0;
changeMask0 |= PlayerStategoalString.Equals(baseline.PlayerStategoalString) ? 0 : (1u<<17);
changeMask0 |= PlayerStateactionString.Equals(baseline.PlayerStateactionString) ? 0 : (1u<<18);
changeMask0 |= (PlayerStategoalCompletion != baseline.PlayerStategoalCompletion) ? (1u<<19) : 0;
writer.WritePackedUIntDelta(changeMask0, baseline.changeMask0, compressionModel);
if ((changeMask0 & (1 << 0)) != 0)
writer.WritePackedIntDelta(PlayerStateplayerId, baseline.PlayerStateplayerId, compressionModel);
if ((changeMask0 & (1 << 1)) != 0)
{
writer.WritePackedUIntDelta(PlayerStateplayerName.LengthInBytes, baseline.PlayerStateplayerName.LengthInBytes, compressionModel);
var PlayerStateplayerNameBaselineLength = (ushort)math.min((uint)PlayerStateplayerName.LengthInBytes, baseline.PlayerStateplayerName.LengthInBytes);
for (int sb = 0; sb < PlayerStateplayerNameBaselineLength; ++sb)
{
unsafe
{
fixed (byte* b1 = &PlayerStateplayerName.buffer.byte0000)
fixed (byte* b2 = &baseline.PlayerStateplayerName.buffer.byte0000)
{
writer.WritePackedUIntDelta(b1[sb], b2[sb], compressionModel);
}
}
}
for (int sb = PlayerStateplayerNameBaselineLength; sb < PlayerStateplayerName.LengthInBytes; ++sb)
{
unsafe
{
fixed (byte* b = &PlayerStateplayerName.buffer.byte0000)
{
writer.WritePackedUIntDelta(b[sb], 0, compressionModel);
}
}
}
}
if ((changeMask0 & (1 << 2)) != 0)
writer.WritePackedIntDelta(PlayerStateteamIndex, baseline.PlayerStateteamIndex, compressionModel);
if ((changeMask0 & (1 << 3)) != 0)
writer.WritePackedIntDelta(PlayerStatescore, baseline.PlayerStatescore, compressionModel);
if ((changeMask0 & (1 << 4)) != 0)
writer.WritePackedUIntDelta(PlayerStategameModeSystemInitialized, baseline.PlayerStategameModeSystemInitialized, compressionModel);
if ((changeMask0 & (1 << 5)) != 0)
writer.WritePackedUIntDelta(PlayerStatedisplayCountDown, baseline.PlayerStatedisplayCountDown, compressionModel);
if ((changeMask0 & (1 << 6)) != 0)
writer.WritePackedIntDelta(PlayerStatecountDown, baseline.PlayerStatecountDown, compressionModel);
if ((changeMask0 & (1 << 7)) != 0)
writer.WritePackedUIntDelta(PlayerStatedisplayScoreBoard, baseline.PlayerStatedisplayScoreBoard, compressionModel);
if ((changeMask0 & (1 << 8)) != 0)
writer.WritePackedUIntDelta(PlayerStatedisplayGameScore, baseline.PlayerStatedisplayGameScore, compressionModel);
if ((changeMask0 & (1 << 9)) != 0)
writer.WritePackedUIntDelta(PlayerStatedisplayGameResult, baseline.PlayerStatedisplayGameResult, compressionModel);
if ((changeMask0 & (1 << 10)) != 0)
{
writer.WritePackedUIntDelta(PlayerStategameResult.LengthInBytes, baseline.PlayerStategameResult.LengthInBytes, compressionModel);
var PlayerStategameResultBaselineLength = (ushort)math.min((uint)PlayerStategameResult.LengthInBytes, baseline.PlayerStategameResult.LengthInBytes);
for (int sb = 0; sb < PlayerStategameResultBaselineLength; ++sb)
{
unsafe
{
fixed (byte* b1 = &PlayerStategameResult.buffer.byte0000)
fixed (byte* b2 = &baseline.PlayerStategameResult.buffer.byte0000)
{
writer.WritePackedUIntDelta(b1[sb], b2[sb], compressionModel);
}
}
}
for (int sb = PlayerStategameResultBaselineLength; sb < PlayerStategameResult.LengthInBytes; ++sb)
{
unsafe
{
fixed (byte* b = &PlayerStategameResult.buffer.byte0000)
{
writer.WritePackedUIntDelta(b[sb], 0, compressionModel);
}
}
}
}
if ((changeMask0 & (1 << 11)) != 0)
writer.WritePackedUIntDelta(PlayerStatedisplayGoal, baseline.PlayerStatedisplayGoal, compressionModel);
if ((changeMask0 & (1 << 12)) != 0)
{
writer.WritePackedIntDelta(PlayerStategoalPositionX, baseline.PlayerStategoalPositionX, compressionModel);
writer.WritePackedIntDelta(PlayerStategoalPositionY, baseline.PlayerStategoalPositionY, compressionModel);
writer.WritePackedIntDelta(PlayerStategoalPositionZ, baseline.PlayerStategoalPositionZ, compressionModel);
}
if ((changeMask0 & (1 << 13)) != 0)
writer.WritePackedUIntDelta(PlayerStategoalDefendersColor, baseline.PlayerStategoalDefendersColor, compressionModel);
if ((changeMask0 & (1 << 14)) != 0)
writer.WritePackedUIntDelta(PlayerStategoalAttackersColor, baseline.PlayerStategoalAttackersColor, compressionModel);
if ((changeMask0 & (1 << 15)) != 0)
writer.WritePackedUIntDelta(PlayerStategoalAttackers, baseline.PlayerStategoalAttackers, compressionModel);
if ((changeMask0 & (1 << 16)) != 0)
writer.WritePackedUIntDelta(PlayerStategoalDefenders, baseline.PlayerStategoalDefenders, compressionModel);
if ((changeMask0 & (1 << 17)) != 0)
{
writer.WritePackedUIntDelta(PlayerStategoalString.LengthInBytes, baseline.PlayerStategoalString.LengthInBytes, compressionModel);
var PlayerStategoalStringBaselineLength = (ushort)math.min((uint)PlayerStategoalString.LengthInBytes, baseline.PlayerStategoalString.LengthInBytes);
for (int sb = 0; sb < PlayerStategoalStringBaselineLength; ++sb)
{
unsafe
{
fixed (byte* b1 = &PlayerStategoalString.buffer.byte0000)
fixed (byte* b2 = &baseline.PlayerStategoalString.buffer.byte0000)
{
writer.WritePackedUIntDelta(b1[sb], b2[sb], compressionModel);
}
}
}
for (int sb = PlayerStategoalStringBaselineLength; sb < PlayerStategoalString.LengthInBytes; ++sb)
{
unsafe
{
fixed (byte* b = &PlayerStategoalString.buffer.byte0000)
{
writer.WritePackedUIntDelta(b[sb], 0, compressionModel);
}
}
}
}
if ((changeMask0 & (1 << 18)) != 0)
{
writer.WritePackedUIntDelta(PlayerStateactionString.LengthInBytes, baseline.PlayerStateactionString.LengthInBytes, compressionModel);
var PlayerStateactionStringBaselineLength = (ushort)math.min((uint)PlayerStateactionString.LengthInBytes, baseline.PlayerStateactionString.LengthInBytes);
for (int sb = 0; sb < PlayerStateactionStringBaselineLength; ++sb)
{
unsafe
{
fixed (byte* b1 = &PlayerStateactionString.buffer.byte0000)
fixed (byte* b2 = &baseline.PlayerStateactionString.buffer.byte0000)
{
writer.WritePackedUIntDelta(b1[sb], b2[sb], compressionModel);
}
}
}
for (int sb = PlayerStateactionStringBaselineLength; sb < PlayerStateactionString.LengthInBytes; ++sb)
{
unsafe
{
fixed (byte* b = &PlayerStateactionString.buffer.byte0000)
{
writer.WritePackedUIntDelta(b[sb], 0, compressionModel);
}
}
}
}
if ((changeMask0 & (1 << 19)) != 0)
writer.WritePackedIntDelta(PlayerStategoalCompletion, baseline.PlayerStategoalCompletion, compressionModel);
}
public void Deserialize(uint tick, ref PlayerStateSnapshotData baseline, DataStreamReader reader, ref DataStreamReader.Context ctx,
NetworkCompressionModel compressionModel)
{
this.tick = tick;
changeMask0 = reader.ReadPackedUIntDelta(ref ctx, baseline.changeMask0, compressionModel);
if ((changeMask0 & (1 << 0)) != 0)
PlayerStateplayerId = reader.ReadPackedIntDelta(ref ctx, baseline.PlayerStateplayerId, compressionModel);
else
PlayerStateplayerId = baseline.PlayerStateplayerId;
if ((changeMask0 & (1 << 1)) != 0)
{
PlayerStateplayerName.LengthInBytes = (ushort)reader.ReadPackedUIntDelta(ref ctx, (uint)baseline.PlayerStateplayerName.LengthInBytes, compressionModel);
var PlayerStateplayerNameBaselineLength = (ushort)math.min((uint)PlayerStateplayerName.LengthInBytes, baseline.PlayerStateplayerName.LengthInBytes);
for (int sb = 0; sb < PlayerStateplayerNameBaselineLength; ++sb)
{
unsafe
{
fixed (byte* b1 = &PlayerStateplayerName.buffer.byte0000)
fixed (byte* b2 = &baseline.PlayerStateplayerName.buffer.byte0000)
{
b1[sb] = (byte)reader.ReadPackedUIntDelta(ref ctx, b2[sb], compressionModel);
}
}
}
for (int sb = PlayerStateplayerNameBaselineLength; sb < PlayerStateplayerName.LengthInBytes; ++sb)
{
unsafe
{
fixed (byte* b = &PlayerStateplayerName.buffer.byte0000)
{
b[sb] = (byte)reader.ReadPackedUIntDelta(ref ctx, 0, compressionModel);
}
}
}
}
else
PlayerStateplayerName = baseline.PlayerStateplayerName;
if ((changeMask0 & (1 << 2)) != 0)
PlayerStateteamIndex = reader.ReadPackedIntDelta(ref ctx, baseline.PlayerStateteamIndex, compressionModel);
else
PlayerStateteamIndex = baseline.PlayerStateteamIndex;
if ((changeMask0 & (1 << 3)) != 0)
PlayerStatescore = reader.ReadPackedIntDelta(ref ctx, baseline.PlayerStatescore, compressionModel);
else
PlayerStatescore = baseline.PlayerStatescore;
if ((changeMask0 & (1 << 4)) != 0)
PlayerStategameModeSystemInitialized = reader.ReadPackedUIntDelta(ref ctx, baseline.PlayerStategameModeSystemInitialized, compressionModel);
else
PlayerStategameModeSystemInitialized = baseline.PlayerStategameModeSystemInitialized;
if ((changeMask0 & (1 << 5)) != 0)
PlayerStatedisplayCountDown = reader.ReadPackedUIntDelta(ref ctx, baseline.PlayerStatedisplayCountDown, compressionModel);
else
PlayerStatedisplayCountDown = baseline.PlayerStatedisplayCountDown;
if ((changeMask0 & (1 << 6)) != 0)
PlayerStatecountDown = reader.ReadPackedIntDelta(ref ctx, baseline.PlayerStatecountDown, compressionModel);
else
PlayerStatecountDown = baseline.PlayerStatecountDown;
if ((changeMask0 & (1 << 7)) != 0)
PlayerStatedisplayScoreBoard = reader.ReadPackedUIntDelta(ref ctx, baseline.PlayerStatedisplayScoreBoard, compressionModel);
else
PlayerStatedisplayScoreBoard = baseline.PlayerStatedisplayScoreBoard;
if ((changeMask0 & (1 << 8)) != 0)
PlayerStatedisplayGameScore = reader.ReadPackedUIntDelta(ref ctx, baseline.PlayerStatedisplayGameScore, compressionModel);
else
PlayerStatedisplayGameScore = baseline.PlayerStatedisplayGameScore;
if ((changeMask0 & (1 << 9)) != 0)
PlayerStatedisplayGameResult = reader.ReadPackedUIntDelta(ref ctx, baseline.PlayerStatedisplayGameResult, compressionModel);
else
PlayerStatedisplayGameResult = baseline.PlayerStatedisplayGameResult;
if ((changeMask0 & (1 << 10)) != 0)
{
PlayerStategameResult.LengthInBytes = (ushort)reader.ReadPackedUIntDelta(ref ctx, (uint)baseline.PlayerStategameResult.LengthInBytes, compressionModel);
var PlayerStategameResultBaselineLength = (ushort)math.min((uint)PlayerStategameResult.LengthInBytes, baseline.PlayerStategameResult.LengthInBytes);
for (int sb = 0; sb < PlayerStategameResultBaselineLength; ++sb)
{
unsafe
{
fixed (byte* b1 = &PlayerStategameResult.buffer.byte0000)
fixed (byte* b2 = &baseline.PlayerStategameResult.buffer.byte0000)
{
b1[sb] = (byte)reader.ReadPackedUIntDelta(ref ctx, b2[sb], compressionModel);
}
}
}
for (int sb = PlayerStategameResultBaselineLength; sb < PlayerStategameResult.LengthInBytes; ++sb)
{
unsafe
{
fixed (byte* b = &PlayerStategameResult.buffer.byte0000)
{
b[sb] = (byte)reader.ReadPackedUIntDelta(ref ctx, 0, compressionModel);
}
}
}
}
else
PlayerStategameResult = baseline.PlayerStategameResult;
if ((changeMask0 & (1 << 11)) != 0)
PlayerStatedisplayGoal = reader.ReadPackedUIntDelta(ref ctx, baseline.PlayerStatedisplayGoal, compressionModel);
else
PlayerStatedisplayGoal = baseline.PlayerStatedisplayGoal;
if ((changeMask0 & (1 << 12)) != 0)
{
PlayerStategoalPositionX = reader.ReadPackedIntDelta(ref ctx, baseline.PlayerStategoalPositionX, compressionModel);
PlayerStategoalPositionY = reader.ReadPackedIntDelta(ref ctx, baseline.PlayerStategoalPositionY, compressionModel);
PlayerStategoalPositionZ = reader.ReadPackedIntDelta(ref ctx, baseline.PlayerStategoalPositionZ, compressionModel);
}
else
{
PlayerStategoalPositionX = baseline.PlayerStategoalPositionX;
PlayerStategoalPositionY = baseline.PlayerStategoalPositionY;
PlayerStategoalPositionZ = baseline.PlayerStategoalPositionZ;
}
if ((changeMask0 & (1 << 13)) != 0)
PlayerStategoalDefendersColor = reader.ReadPackedUIntDelta(ref ctx, baseline.PlayerStategoalDefendersColor, compressionModel);
else
PlayerStategoalDefendersColor = baseline.PlayerStategoalDefendersColor;
if ((changeMask0 & (1 << 14)) != 0)
PlayerStategoalAttackersColor = reader.ReadPackedUIntDelta(ref ctx, baseline.PlayerStategoalAttackersColor, compressionModel);
else
PlayerStategoalAttackersColor = baseline.PlayerStategoalAttackersColor;
if ((changeMask0 & (1 << 15)) != 0)
PlayerStategoalAttackers = reader.ReadPackedUIntDelta(ref ctx, baseline.PlayerStategoalAttackers, compressionModel);
else
PlayerStategoalAttackers = baseline.PlayerStategoalAttackers;
if ((changeMask0 & (1 << 16)) != 0)
PlayerStategoalDefenders = reader.ReadPackedUIntDelta(ref ctx, baseline.PlayerStategoalDefenders, compressionModel);
else
PlayerStategoalDefenders = baseline.PlayerStategoalDefenders;
if ((changeMask0 & (1 << 17)) != 0)
{
PlayerStategoalString.LengthInBytes = (ushort)reader.ReadPackedUIntDelta(ref ctx, (uint)baseline.PlayerStategoalString.LengthInBytes, compressionModel);
var PlayerStategoalStringBaselineLength = (ushort)math.min((uint)PlayerStategoalString.LengthInBytes, baseline.PlayerStategoalString.LengthInBytes);
for (int sb = 0; sb < PlayerStategoalStringBaselineLength; ++sb)
{
unsafe
{
fixed (byte* b1 = &PlayerStategoalString.buffer.byte0000)
fixed (byte* b2 = &baseline.PlayerStategoalString.buffer.byte0000)
{
b1[sb] = (byte)reader.ReadPackedUIntDelta(ref ctx, b2[sb], compressionModel);
}
}
}
for (int sb = PlayerStategoalStringBaselineLength; sb < PlayerStategoalString.LengthInBytes; ++sb)
{
unsafe
{
fixed (byte* b = &PlayerStategoalString.buffer.byte0000)
{
b[sb] = (byte)reader.ReadPackedUIntDelta(ref ctx, 0, compressionModel);
}
}
}
}
else
PlayerStategoalString = baseline.PlayerStategoalString;
if ((changeMask0 & (1 << 18)) != 0)
{
PlayerStateactionString.LengthInBytes = (ushort)reader.ReadPackedUIntDelta(ref ctx, (uint)baseline.PlayerStateactionString.LengthInBytes, compressionModel);
var PlayerStateactionStringBaselineLength = (ushort)math.min((uint)PlayerStateactionString.LengthInBytes, baseline.PlayerStateactionString.LengthInBytes);
for (int sb = 0; sb < PlayerStateactionStringBaselineLength; ++sb)
{
unsafe
{
fixed (byte* b1 = &PlayerStateactionString.buffer.byte0000)
fixed (byte* b2 = &baseline.PlayerStateactionString.buffer.byte0000)
{
b1[sb] = (byte)reader.ReadPackedUIntDelta(ref ctx, b2[sb], compressionModel);
}
}
}
for (int sb = PlayerStateactionStringBaselineLength; sb < PlayerStateactionString.LengthInBytes; ++sb)
{
unsafe
{
fixed (byte* b = &PlayerStateactionString.buffer.byte0000)
{
b[sb] = (byte)reader.ReadPackedUIntDelta(ref ctx, 0, compressionModel);
}
}
}
}
else
PlayerStateactionString = baseline.PlayerStateactionString;
if ((changeMask0 & (1 << 19)) != 0)
PlayerStategoalCompletion = reader.ReadPackedIntDelta(ref ctx, baseline.PlayerStategoalCompletion, compressionModel);
else
PlayerStategoalCompletion = baseline.PlayerStategoalCompletion;
}
public void Interpolate(ref PlayerStateSnapshotData target, float factor)
{
}
}