using System.Collections.Generic; using MinecraftClient.Inventory.ItemPalettes; using MinecraftClient.Mapping; using MinecraftClient.Protocol.Handlers.StructuredComponents.Core; namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_20_6; public class LodestoneTrackerComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry) : StructuredComponent(dataTypes, itemPalette, subComponentRegistry) { public bool HasGlobalPosition { get; set; } public string Dimension { get; set; } = null!; public Location Position { get; set; } public bool Tracked { get; set; } public override void Parse(Queue data) { HasGlobalPosition = DataTypes.ReadNextBool(data); if (HasGlobalPosition) { Dimension = DataTypes.ReadNextString(data); Position = DataTypes.ReadNextLocation(data); } Tracked = DataTypes.ReadNextBool(data); } public override Queue Serialize() { var data = new List(); data.AddRange(DataTypes.GetBool(HasGlobalPosition)); if (HasGlobalPosition) { data.AddRange(DataTypes.GetString(Dimension)); data.AddRange(DataTypes.GetLocation(Position)); } data.AddRange(DataTypes.GetBool(Tracked)); return new Queue(data); } }