/// <summary> /// シリアライズ /// </summary> /// <param name="Stream">ストリーム</param> /// <returns>成功したらtrueを返す</returns> public bool Serialize(IMemoryStream Stream) { int Len = Count; if (!Stream.Serialize(ref Len)) { return(false); } if (Len > Count) { T[] InsertArray = new T[Len - Count]; for (int i = 0; i < Len - Count; i++) { InsertArray[i] = new T(); } AddRange(InsertArray); } for (int i = 0; i < Len; i++) { this[i].Serialize(Stream); } return(true); }
/// <summary> /// プレイヤー参加を受信した /// </summary> /// <param name="Stream">ストリーム</param> private void OnRecvPlayerEntry(IMemoryStream Stream) { PacketPlayerEntry Packet = new PacketPlayerEntry(); Packet.Serialize(Stream); Spawn(Packet.Data); }
public override bool Serialize(IMemoryStream Stream) { if (!List.Serialize(Stream)) { return(false); } return(true); }
public override bool Serialize(IMemoryStream Stream) { if (!Stream.Serialize(ref AreaId)) { return(false); } return(true); }
/// <summary> /// プレイヤーリストを受信した /// </summary> /// <param name="Stream">ストリーム</param> private void OnRecvPlayerList(IMemoryStream Stream) { PacketPlayerList Packet = new PacketPlayerList(); Packet.Serialize(Stream); foreach (var Data in Packet.List) { Spawn(Data); } }
/// <summary> /// 他プレイヤーの移動を受信した /// </summary> /// <param name="Stream">ストリーム</param> private void OnRecvPlayerMoved(IMemoryStream Stream) { PacketPlayerMoved Packet = new PacketPlayerMoved(); Packet.Serialize(Stream); uint Id = Packet.Id; Vector3 Destination = new Vector3(Packet.Position.X, Packet.Position.Y, Packet.Position.Z); // TODO:回転 PlayerDic[Id].SetMove(Destination, 1.0f); // TODO:移動時間がマジックナンバーになっているので後程解消 }
/// <summary> /// シリアライズ /// </summary> /// <param name="Stream">ストリーム</param> /// <returns>成功したらtrueを返す</returns> public bool Serialize(IMemoryStream Stream) { if (!Stream.Serialize(ref Uuid)) { return(false); } if (!Stream.Serialize(ref Message)) { return(false); } return(true); }
public override bool Serialize(IMemoryStream Stream) { if (!Stream.Serialize(ref Id)) { return(false); } if (!Position.Serialize(Stream)) { return(false); } return(true); }
public override bool Serialize(IMemoryStream Stream) { if (!Stream.Serialize(ref Result)) { return(false); } if (!Stream.Serialize(ref CharacterId)) { return(false); } return(true); }
/// <summary> /// シリアライズ /// </summary> /// <param name="Stream">ストリーム</param> /// <returns>成功したらtrueを返す</returns> public bool Serialize(IMemoryStream Stream) { byte Data = 0; if (!Stream.Serialize(ref Data)) { return(false); } PacketId = Data; if (!Stream.Serialize(ref Data)) { return(false); } Size = Data; return(true); }
/// <summary> /// プレイヤーの座標強制変更を受信した /// </summary> /// <param name="Stream">ストリーム</param> private void OnRecvPlayerPositionChange(IMemoryStream Stream) { PacketPlayerPositionChange Packet = new PacketPlayerPositionChange(); Packet.Serialize(Stream); if (PlayerPrefab == null) { PlayerPrefab = Resources.Load <GameObject>(PlayerPrefabPath); Debug.Assert(PlayerPrefab != null); } Vector3 Position = new Vector3(Packet.Position.X, Packet.Position.Y, Packet.Position.Z); float Rotation = Packet.Position.Rotation; var PlayerObj = Instantiate <GameObject>(PlayerPrefab, Position, Quaternion.Euler(0.0f, Rotation, 0.0f)); var PlayerCmp = PlayerObj.GetComponent <Player>(); PlayerCmp.InitializeAsPlayerCharacter(); PlayerDic.Add(PlayerData.PlayerId, PlayerCmp); }
public bool Serialize(IMemoryStream Stream) { if (!Stream.Serialize(ref X)) { return(false); } if (!Stream.Serialize(ref Y)) { return(false); } if (!Stream.Serialize(ref Z)) { return(false); } if (!Stream.Serialize(ref Rotation)) { return(false); } return(true); }
public override bool Serialize(IMemoryStream Stream) { return true; }
public IDeflateStream Create(IMemoryStream memoryStream, CompressionMode compressionMode) { return(new DeflateStreamWrap(memoryStream, compressionMode)); }
/// <summary> /// Converts provided <see cref="IMemoryStream"/> info to <see cref="MemoryStream"/>. /// </summary> /// <param name="abstraction">Instance of <see cref="IMemoryStream"/> to convert.</param> /// <returns>An instance of <see cref="MemoryStream"/>.</returns> public static MemoryStream ToImplementation(this IMemoryStream abstraction) { return(((IAbstraction <MemoryStream>)abstraction)?.UnsafeConvert()); }
/// <summary> /// シリアライズ /// </summary> /// <param name="Stream">ストリーム</param> /// <returns>成功したらtrueを返す</returns> public abstract bool Serialize(IMemoryStream Stream);