本文整理汇总了C#中Pdelvo.Minecraft.Network.BigEndianStream类的典型用法代码示例。如果您正苦于以下问题:C# BigEndianStream类的具体用法?C# BigEndianStream怎么用?C# BigEndianStream使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
BigEndianStream类属于Pdelvo.Minecraft.Network命名空间,在下文中一共展示了BigEndianStream类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnSend
/// <summary>
/// Sends the specified writer.
/// </summary>
/// <param name="writer">The writer.</param>
/// <param name="version">The version.</param>
/// <remarks></remarks>
protected override void OnSend(BigEndianStream writer, int version)
{
if (writer == null)
throw new System.ArgumentNullException("writer");
writer.Write(Code);
if (version >= 32)
return;
if (ProtocolVersion != 0)
version = ProtocolVersion;
#pragma warning restore 618
writer.Write(version);
writer.Write(UserName);
//Not used
if (version <= 27)
writer.Write((long) 0);
if (version >= 23 && version <= 30)
writer.Write(Unknown);
writer.Write(0);
if (version >= 27)
writer.Write(0);
else
writer.Write((byte) 0);
writer.Write((Byte) 0);
writer.Write((byte) 0);
writer.Write((byte) 0);
}
示例2: OnReceive
/// <summary>
/// Receives the specified reader.
/// </summary>
/// <param name="reader"> The reader. </param>
/// <param name="version"> The version. </param>
/// <remarks>
/// </remarks>
protected override void OnReceive(BigEndianStream reader, int version)
{
if (reader == null)
throw new ArgumentNullException("reader");
UserType = reader.ReadByte ();
}
示例3: OnReceive
/// <summary>
/// Receives the specified reader.
/// </summary>
/// <param name="reader"> The reader. </param>
/// <param name="version"> The version. </param>
/// <remarks>
/// </remarks>
protected override void OnReceive(BigEndianStream reader, int version)
{
if (reader == null)
throw new ArgumentNullException("reader");
TeamName = reader.ReadString16();
Mode = reader.ReadByte();
if (Mode == 2 || Mode == 0)
{
TeamDisplayName = reader.ReadString16();
TeamPrefix = reader.ReadString16();
TeamSufix = reader.ReadString16();
if (version >= 60)
FriendlyFire = reader.ReadByte();
else
FriendlyFire = (byte) (reader.ReadBoolean() ? 1 : 0);
}
if (Mode == 0 || Mode == 3 || Mode == 4)
{
PlayerCount = reader.ReadInt16();
var collection = new List<string>();
for (int i = 0; i < PlayerCount; i++)
{
collection.Add(reader.ReadString16());
}
Players = collection.ToArray();
}
}
示例4: StringTestAsync
public async Task StringTestAsync()
{
MemoryStream memStream = new MemoryStream();
BigEndianStream bigEndianStream = new BigEndianStream(memStream);
string testString = "Hello, World!";
await bigEndianStream.WriteAsync(testString);
memStream.Seek(0, SeekOrigin.Begin);
var result = await bigEndianStream.ReadString16Async();
Assert.AreEqual(testString, result);
Assert.AreEqual(memStream.Position, memStream.Length);
memStream.SetLength(0);
bigEndianStream.Write8(testString);
memStream.Seek(0, SeekOrigin.Begin);
result = await bigEndianStream.ReadString8Async();
Assert.AreEqual(testString, result);
Assert.AreEqual(memStream.Position, memStream.Length);
}
示例5: OnSendAsync
protected virtual Task OnSendAsync(BigEndianStream writer, int version)
{
return Task.Run(() =>
{
OnSend(writer, version);
});
}
示例6: OnSend
/// <summary>
/// Sends the specified writer.
/// </summary>
/// <param name="writer">The writer.</param>
/// <param name="version">The version.</param>
/// <remarks></remarks>
protected override void OnSend(BigEndianStream writer, int version)
{
if (writer == null)
throw new ArgumentNullException("writer");
writer.Write(Code);
if (version >= 32)
{
byte d = 0;
d |= (byte)((Flying ? 1 : 0) << 0);
d |= (byte)((InstantBuild ? 1 : 0) << 1);
d |= (byte)((MayFly ? 1 : 0) << 2);
d |= (byte)((Invulnerable ? 1 : 0) << 3);
writer.Write(d);
writer.Write(FlyingSpeed);
writer.Write(WalkSpeed);
}
else
{
writer.Write(Flying);
writer.Write(InstantBuild);
writer.Write(MayFly);
writer.Write(Invulnerable);
}
}
示例7: StringTest
public void StringTest()
{
MemoryStream memStream = new MemoryStream();
BigEndianStream bigEndianStream = new BigEndianStream(memStream);
string testString = "Hello, World!";
bigEndianStream.Write(testString);
memStream.Seek(0, SeekOrigin.Begin);
var result = bigEndianStream.ReadString16();
Assert.AreEqual(testString, result);
Assert.AreEqual(memStream.Position, memStream.Length);
memStream.SetLength(0);
bigEndianStream.Write8(testString);
memStream.Seek(0, SeekOrigin.Begin);
result = bigEndianStream.ReadString8();
Assert.AreEqual(testString, result);
Assert.AreEqual(memStream.Position, memStream.Length);
}
示例8: OnReceive
/// <summary>
/// Receives the specified reader.
/// </summary>
/// <param name="reader"> The reader. </param>
/// <param name="version"> The version. </param>
/// <remarks>
/// </remarks>
protected override void OnReceive(BigEndianStream reader, int version)
{
if (reader == null)
throw new ArgumentNullException("reader");
Slot = reader.ReadInt16 ();
Item = ItemStack.Read(reader);
}
示例9: OnReceive
/// <summary>
/// Receives the specified reader.
/// </summary>
/// <param name="reader">The reader.</param>
/// <param name="version">The version.</param>
/// <remarks></remarks>
protected override void OnReceive(BigEndianStream reader, int version)
{
if (reader == null)
throw new ArgumentNullException("reader");
if (version >= 32)
{
byte dataByte = reader.ReadByte();
Flying = (dataByte & 0x1) != 0;
InstantBuild = (dataByte & 0x2) != 0;
MayFly = (dataByte & 0x4) != 0;
Invulnerable = (dataByte & 0x8) != 0;
FlyingSpeed = reader.ReadByte();
WalkSpeed = reader.ReadByte();
}
else
{
Flying = reader.ReadBoolean();
InstantBuild = reader.ReadBoolean();
MayFly = reader.ReadBoolean();
Invulnerable = reader.ReadBoolean();
FlyingSpeed = 15;
WalkSpeed = 25;
}
}
示例10: OnReceive
/// <summary>
/// Receives the specified reader.
/// </summary>
/// <param name="reader"> The reader. </param>
/// <param name="version"> The version. </param>
/// <remarks>
/// </remarks>
protected override void OnReceive(BigEndianStream reader, int version)
{
if (reader == null)
throw new ArgumentNullException("reader");
if (version >= 32)
return;
#pragma warning disable 618
ProtocolVersion = reader.ReadInt32 ();
UserName = reader.ReadString16 ();
if (ProtocolVersion != 0)
version = ProtocolVersion;
//Not used
if (version <= 27)
reader.ReadInt64 ();
if (version >= 23 && version <= 30)
Unknown = reader.ReadString16 ();
reader.ReadInt32 ();
if (version >= 27)
reader.ReadInt32 ();
else
reader.ReadByte ();
reader.ReadByte ();
reader.ReadByte ();
reader.ReadByte ();
}
示例11: OnSend
/// <summary>
/// Sends the specified writer.
/// </summary>
/// <param name="writer">The writer.</param>
/// <param name="version">The version.</param>
/// <remarks></remarks>
protected override void OnSend(BigEndianStream writer, int version)
{
if (writer == null)
throw new ArgumentNullException("writer");
if (version >= 38)
{
writer.Write(Code);
writer.Write((byte)EntityIds.Count());
foreach (var item in EntityIds)
{
writer.Write(item);
}
}
else
{
if (EntityIds == null || EntityIds.Count() == 0)
{
writer.Write(Code);
writer.Write(0);
}
else
foreach (var item in EntityIds)
{
writer.Write(Code);
writer.Write(item);
}
}
}
示例12: OnReceive
/// <summary>
/// Receives the specified reader.
/// </summary>
/// <param name="reader">The reader.</param>
/// <param name="version">The version.</param>
/// <remarks></remarks>
protected override void OnReceive(BigEndianStream reader, int version)
{
if (reader == null)
throw new System.ArgumentNullException("reader");
EntityId = reader.ReadInt32();
Name = reader.ReadString16();
PositionX = reader.ReadInt32();
PositionY = reader.ReadInt32();
PositionZ = reader.ReadInt32();
Rotation = reader.ReadByte();
Pitch = reader.ReadByte();
CurrentItem = reader.ReadInt16();
if (version >= 38)
MetaData = reader.ReadMetaData(version);
else
{
MetaData = new MetadataInfo();
MetaData.Data = new System.Collections.Generic.Dictionary<byte, object>
{
{17,(byte)0},
{0,(byte)0},
{16,(byte)0},
{33,(short)300},
{72,(int)0}
};
}
}
示例13: OnReceive
/// <summary>
/// Receives the specified reader.
/// </summary>
/// <param name="reader"> The reader. </param>
/// <param name="version"> The version. </param>
/// <remarks>
/// </remarks>
protected override void OnReceive(BigEndianStream reader, int version)
{
if (reader == null)
throw new ArgumentNullException("reader");
EntityId = reader.ReadInt32 ();
InnerData = MetadataInfo.Read(reader, version);
}
示例14: OnReceive
/// <summary>
/// Receives the specified reader.
/// </summary>
/// <param name="reader"> The reader. </param>
/// <param name="version"> The version. </param>
/// <remarks>
/// </remarks>
protected override void OnReceive(BigEndianStream reader, int version)
{
if (reader == null)
throw new ArgumentNullException("reader");
PositionX = reader.ReadDouble ();
PositionY = reader.ReadDouble ();
PositionZ = reader.ReadDouble ();
Radius = reader.ReadSingle ();
var records = new ExplosionRecord[RecordCount = reader.ReadInt32 ()];
for (int i = 0; i < RecordCount; i++)
{
var record = new ExplosionRecord ();
record.OffsetX = reader.ReadByte ();
record.OffsetY = reader.ReadByte ();
record.OffsetZ = reader.ReadByte ();
records[i] = record;
}
Records = records;
if (version >= 36)
{
VelocityX = reader.ReadSingle ();
VelocityY = reader.ReadSingle ();
VelocityZ = reader.ReadSingle ();
}
}
示例15: OnReceive
/// <summary>
/// Receives the specified reader.
/// </summary>
/// <param name="reader">The reader.</param>
/// <param name="version">The version.</param>
/// <remarks></remarks>
protected override void OnReceive(BigEndianStream reader, int version)
{
if (reader == null)
throw new System.ArgumentNullException("reader");
Channel = reader.ReadString16();
InternalData = reader.ReadBytes(reader.ReadInt16());
}