mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
Replace lowercase primary constructor parameter references (dataTypes., subComponentRegistry., itemPalette.) with PascalCase base class property references (DataTypes., SubComponentRegistry., ItemPalette.) in method bodies of all StructuredComponent and SubComponent subclasses. This eliminates CS9107 warnings where subclass primary constructor parameters shadow the base class properties they are assigned to. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
111 lines
No EOL
4.5 KiB
C#
111 lines
No EOL
4.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using MinecraftClient.Inventory;
|
|
using MinecraftClient.Inventory.ItemPalettes;
|
|
using MinecraftClient.Protocol.Handlers.StructuredComponents.Core;
|
|
using MinecraftClient.Protocol.Message;
|
|
|
|
namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_20_6;
|
|
|
|
public class TrimComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry) : StructuredComponent(dataTypes, itemPalette, subComponentRegistry)
|
|
{
|
|
public int TrimMaterialType { get; set; }
|
|
public string AssetName { get; set; } = null!;
|
|
public int Ingredient { get; set; }
|
|
public float ItemModelIndex { get; set; }
|
|
public int NumberOfOverrides { get; set; }
|
|
public List<TrimAssetOverride>? Overrides { get; set; }
|
|
public Dictionary<string, object>? DescriptionNbt { get; set; }
|
|
public string Description { get; set; } = null!;
|
|
public int TrimPatternType { get; set; }
|
|
public string TrimPatternTypeAssetName { get; set; } = null!;
|
|
public int TemplateItem { get; set; }
|
|
public Dictionary<string, object>? TrimPatternTypeDescriptionNbt { get; set; }
|
|
public string TrimPatternTypeDescription { get; set; } = null!;
|
|
public bool Decal { get; set; }
|
|
public bool ShowInTooltip { get; set; }
|
|
|
|
public override void Parse(Queue<byte> data)
|
|
{
|
|
TrimMaterialType = DataTypes.ReadNextVarInt(data);
|
|
|
|
if (TrimMaterialType == 0)
|
|
{
|
|
AssetName = DataTypes.ReadNextString(data);
|
|
Ingredient = DataTypes.ReadNextVarInt(data);
|
|
ItemModelIndex = DataTypes.ReadNextFloat(data);
|
|
NumberOfOverrides = DataTypes.ReadNextVarInt(data);
|
|
|
|
if (NumberOfOverrides > 0)
|
|
{
|
|
Overrides = [];
|
|
|
|
for (var i = 0; i < NumberOfOverrides; i++)
|
|
Overrides.Add(new TrimAssetOverride(DataTypes.ReadNextVarInt(data),
|
|
DataTypes.ReadNextString(data)));
|
|
}
|
|
|
|
DescriptionNbt = DataTypes.ReadNextNbt(data);
|
|
Description = ChatParser.ParseText(DescriptionNbt);
|
|
}
|
|
|
|
TrimPatternType = DataTypes.ReadNextVarInt(data);
|
|
|
|
if (TrimPatternType == 0)
|
|
{
|
|
TrimPatternTypeAssetName = DataTypes.ReadNextString(data);
|
|
TemplateItem = DataTypes.ReadNextVarInt(data);
|
|
TrimPatternTypeDescriptionNbt = DataTypes.ReadNextNbt(data);
|
|
TrimPatternTypeDescription = ChatParser.ParseText(TrimPatternTypeDescriptionNbt);
|
|
Decal = DataTypes.ReadNextBool(data);
|
|
}
|
|
|
|
ShowInTooltip = DataTypes.ReadNextBool(data);
|
|
}
|
|
|
|
public override Queue<byte> Serialize()
|
|
{
|
|
var data = new List<byte>();
|
|
|
|
data.AddRange(DataTypes.GetVarInt(TrimMaterialType));
|
|
|
|
if (TrimMaterialType == 0)
|
|
{
|
|
if (string.IsNullOrEmpty(AssetName))
|
|
throw new NullReferenceException("Can't serialize the TrimComponent because the Asset Name is null!");
|
|
|
|
data.AddRange(DataTypes.GetString(AssetName));
|
|
data.AddRange(DataTypes.GetVarInt(Ingredient));
|
|
data.AddRange(DataTypes.GetFloat(ItemModelIndex));
|
|
data.AddRange(DataTypes.GetVarInt(NumberOfOverrides));
|
|
if (NumberOfOverrides > 0)
|
|
{
|
|
if(NumberOfOverrides != Overrides?.Count)
|
|
throw new NullReferenceException("Can't serialize the TrimComponent because value of NumberOfOverrides and the size of Overrides don't match!");
|
|
|
|
foreach (var (armorMaterialType, assetName) in Overrides)
|
|
{
|
|
data.AddRange(DataTypes.GetVarInt(armorMaterialType));
|
|
data.AddRange(DataTypes.GetString(assetName));
|
|
}
|
|
}
|
|
data.AddRange(DataTypes.GetNbt(DescriptionNbt));
|
|
}
|
|
|
|
data.AddRange(DataTypes.GetVarInt(TrimPatternType));
|
|
if (TrimPatternType == 0)
|
|
{
|
|
if (string.IsNullOrEmpty(TrimPatternTypeAssetName))
|
|
throw new NullReferenceException("Can't serialize the TrimComponent because the TrimPatternTypeAssetName is null!");
|
|
|
|
data.AddRange(DataTypes.GetString(TrimPatternTypeAssetName));
|
|
data.AddRange(DataTypes.GetVarInt(TemplateItem));
|
|
data.AddRange(DataTypes.GetNbt(TrimPatternTypeDescriptionNbt));
|
|
data.AddRange(DataTypes.GetBool(Decal));
|
|
}
|
|
|
|
data.AddRange(DataTypes.GetBool(ShowInTooltip));
|
|
|
|
return new Queue<byte>(data);
|
|
}
|
|
} |