using System.Collections.Generic; using MinecraftClient.Inventory; using MinecraftClient.Inventory.ItemPalettes; using MinecraftClient.Protocol.Handlers.StructuredComponents.Core; namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components._26_1; public class ContainerComponent261(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry) : StructuredComponent(dataTypes, itemPalette, subComponentRegistry) { public List Items { get; set; } = []; public override void Parse(Queue data) { var count = DataTypes.ReadNextVarInt(data); for (var i = 0; i < count; i++) Items.Add(DataTypes.ReadNextBool(data) ? DataTypes.ReadNextItemStackTemplate(data, ItemPalette) : null); } public override Queue Serialize() { var data = new List(); data.AddRange(DataTypes.GetVarInt(Items.Count)); foreach (var item in Items) { var hasItem = item is not null && !item.IsEmpty; data.AddRange(DataTypes.GetBool(hasItem)); if (hasItem) data.AddRange(DataTypes.GetItemStackTemplate(item!, ItemPalette)); } return new Queue(data); } }