Ejemplo n.º 1
0
 public Task EntityMetadata(uint entityId, Game.Entities.EntityMetadata.Entity metadata)
 {
     return(Sink.SendPacket(CreateEntityMetadata(entityId, metadata, bw =>
     {
         WriteEntityMetadata(bw, metadata);
     })));
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 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);
     })));
 }