public static ChunkData Deserialize(ref SpanReader br, bool isOverworld) { var result = new ChunkData { ChunkX = br.ReadAsInt(), ChunkZ = br.ReadAsInt(), GroundUpContinuous = br.ReadAsBoolean(), PrimaryBitMask = br.ReadAsVarInt(out _) }; var hasBioms = result.GroundUpContinuous; result.Size = br.ReadAsVarInt(out _); var dataReader = br.ReadAsSubReader((int)result.Size - (hasBioms ? 256 : 0)); var data = new List <ChunkSection>(); while (!dataReader.IsCosumed) { data.Add(ChunkSection.Deserialize(ref dataReader, isOverworld)); } result.Data = data.ToArray(); if (hasBioms) { result.Biomes = br.ReadAsByteArray(256); } result.NumberOfBlockEntities = br.ReadAsVarInt(out _); return(result); }
public static PlayerOnGround Deserialize(ref SpanReader br) { return(new PlayerOnGround { OnGround = br.ReadAsBoolean(), }); }
public static ChunkData Deserialize(ref SpanReader br, bool isOverworld) { var result = new ChunkData { ChunkX = br.ReadAsInt(), ChunkZ = br.ReadAsInt(), FullChunk = br.ReadAsBoolean(), PrimaryBitMask = br.ReadAsVarInt(out _), Heightmaps = br.ReadAsNbtTag(), }; var hasBioms = result.FullChunk; if (hasBioms) { result.Biomes = br.ReadAsIntArray(1024); } result.Size = br.ReadAsVarInt(out _); var dataReader = br.ReadAsSubReader((int)result.Size); var data = new List <ChunkSection>(); while (!dataReader.IsCosumed) { data.Add(ChunkSection.Deserialize(ref dataReader, isOverworld)); } result.Data = data.ToArray(); result.NumberOfBlockEntities = br.ReadAsVarInt(out _); result.BlockEntities = br.ReadAsNbtTagArray((int)result.NumberOfBlockEntities); return(result); }
public static PlayerLook Deserialize(ref SpanReader br) { return(new PlayerLook { Yaw = br.ReadAsFloat(), Pitch = br.ReadAsFloat(), OnGround = br.ReadAsBoolean() }); }
public static ServerboundConfirmTransaction Deserialize(ref SpanReader br) { return(new ServerboundConfirmTransaction { WindowId = br.ReadAsByte(), ActionNumber = br.ReadAsShort(), Accepted = br.ReadAsBoolean() }); }
public static PlayerPosition Deserialize(ref SpanReader br) { return(new PlayerPosition { X = br.ReadAsDouble(), FeetY = br.ReadAsDouble(), Z = br.ReadAsDouble(), OnGround = br.ReadAsBoolean() }); }
public static ClientSettings Deserialize(ref SpanReader br) { return(new ClientSettings { Locale = br.ReadAsString(), ViewDistance = br.ReadAsByte(), ChatMode = br.ReadAsVarInt(out _), ChatColors = br.ReadAsBoolean(), DisplayedSkinParts = br.ReadAsByte(), MainHand = br.ReadAsVarInt(out _) }); }
public static ServerboundPositionAndLook Deserialize(ref SpanReader br) { return(new ServerboundPositionAndLook { X = br.ReadAsDouble(), FeetY = br.ReadAsDouble(), Z = br.ReadAsDouble(), Yaw = br.ReadAsFloat(), Pitch = br.ReadAsFloat(), OnGround = br.ReadAsBoolean() }); }
public static EntityLookAndRelativeMove Deserialize(ref SpanReader br) { return(new EntityLookAndRelativeMove { EID = br.ReadAsVarInt(out _), DeltaX = br.ReadAsShort(), DeltaY = br.ReadAsShort(), DeltaZ = br.ReadAsShort(), Yaw = br.ReadAsByte(), Pitch = br.ReadAsByte(), OnGround = br.ReadAsBoolean() }); }