using System.Collections.Generic; using MinecraftClient.Inventory.ItemPalettes; using MinecraftClient.Protocol.Handlers.StructuredComponents.Core; namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_21_2; public class RepairableComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry) : StructuredComponent(dataTypes, itemPalette, subComponentRegistry) { public int Type { get; set; } public string? TagName { get; set; } public List? ItemIds { get; set; } public override void Parse(Queue data) { Type = dataTypes.ReadNextVarInt(data); if (Type == 0) { TagName = dataTypes.ReadNextString(data); } else { ItemIds = new List(); for (var i = 0; i < Type - 1; i++) ItemIds.Add(dataTypes.ReadNextVarInt(data)); } } public override Queue Serialize() { var data = new List(); data.AddRange(DataTypes.GetVarInt(Type)); if (Type == 0 && TagName != null) { data.AddRange(DataTypes.GetString(TagName)); } else if (ItemIds != null) { foreach (var id in ItemIds) data.AddRange(DataTypes.GetVarInt(id)); } return new Queue(data); } }