using System.Collections.Generic; using MinecraftClient.Inventory.ItemPalettes; using MinecraftClient.Protocol.Handlers.StructuredComponents.Core; namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_21_11; public class PiercingWeaponComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry) : StructuredComponent(dataTypes, itemPalette, subComponentRegistry) { public bool DealsKnockback { get; set; } public bool Dismounts { get; set; } public override void Parse(Queue data) { DealsKnockback = DataTypes.ReadNextBool(data); Dismounts = DataTypes.ReadNextBool(data); ReadOptionalSoundEventHolder(data); ReadOptionalSoundEventHolder(data); } private void ReadOptionalSoundEventHolder(Queue data) { if (!DataTypes.ReadNextBool(data)) return; var holderId = DataTypes.ReadNextVarInt(data); if (holderId == 0) { DataTypes.ReadNextString(data); if (DataTypes.ReadNextBool(data)) DataTypes.ReadNextFloat(data); } } public override Queue Serialize() { return new Queue(); } }