public Task EntityMetadata(uint entityId, Game.Entities.EntityMetadata.Entity metadata) { return(Sink.SendPacket(CreateEntityMetadata(entityId, metadata, bw => { WriteEntityMetadata(bw, metadata); }))); }
private static void WriteEntityMetadata(BinaryWriter bw, Game.Entities.EntityMetadata.Entity metadata) { byte flag = 0; { if (metadata.OnFire) { flag |= 0x01; } if (metadata.Crouched) { flag |= 0x02; } if (metadata.Sprinting) { flag |= 0x08; } if (metadata.Invisible) { flag |= 0x20; } if (metadata.GlowingEffect) { flag |= 0x40; } if (metadata.FlyingWithElytra) { flag |= 0x80; } } // Flag bw.WriteAsEntityMetadata(0, EntityMetadataType.Byte).WriteAsByte(flag); // Air bw.WriteAsEntityMetadata(1, EntityMetadataType.VarInt).WriteAsVarInt(metadata.Air, out _); // Custom name bw.WriteAsEntityMetadata(2, EntityMetadataType.String).WriteAsString(metadata.CustomName); // Is custom name visible bw.WriteAsEntityMetadata(3, EntityMetadataType.Boolean).WriteAsBoolean(metadata.IsCustomNameVisible); // Is silent bw.WriteAsEntityMetadata(4, EntityMetadataType.Boolean).WriteAsBoolean(metadata.IsSilent); // No gravity bw.WriteAsEntityMetadata(5, EntityMetadataType.Boolean).WriteAsBoolean(metadata.NoGravity); }
public Task SpawnMob(uint entityId, Guid uuid, byte entityType, Vector3 position, float pitch, float yaw, Game.Entities.EntityMetadata.Entity metadata) { return(Sink.SendPacket(CreateSpawnMob(entityId, uuid, entityType, position, pitch, yaw, metadata, bw => { WriteEntityMetadata(bw, metadata); }))); }