feat: Add MC 26.2 palettes, registries and new sulfur/cinnabar content

Generated from the 26.2 server data reports (registries.json / blocks.json):
- ItemPalette262 (1537 items, 31 new; IDs shifted by early sulfur/cinnabar inserts)
- Palette262 blocks (1196 blocks, 32366 states, 28 new)
- EntityPalette262 (158 entities, new sulfur_cube)
- StructuredComponentsRegistry262 with new sulfur_cube_content component
  at ID 78 (shifts IDs 78-109 up by one); wire format is one ItemStackTemplate
- New ItemType/Material/EntityType enum entries for the sulfur and
  cinnabar families, MusicDiscBounce, SulfurSpike and SulfurCube

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Reed Pennock 2026-07-02 16:43:20 -05:00
parent 95031338bf
commit 22685a720c
8 changed files with 4360 additions and 0 deletions

File diff suppressed because it is too large Load diff

View file

@ -250,6 +250,7 @@ namespace MinecraftClient.Inventory
ChickenSpawnEgg,
ChippedAnvil,
ChiseledBookshelf,
ChiseledCinnabar,
ChiseledCopper,
ChiseledDeepslate,
ChiseledNetherBricks,
@ -259,11 +260,20 @@ namespace MinecraftClient.Inventory
ChiseledResinBricks,
ChiseledSandstone,
ChiseledStoneBricks,
ChiseledSulfur,
ChiseledTuff,
ChiseledTuffBricks,
ChorusFlower,
ChorusFruit,
ChorusPlant,
Cinnabar,
CinnabarBrickSlab,
CinnabarBrickStairs,
CinnabarBrickWall,
CinnabarBricks,
CinnabarSlab,
CinnabarStairs,
CinnabarWall,
Clay,
ClayBall,
Clock,
@ -851,6 +861,7 @@ namespace MinecraftClient.Inventory
MusicDisc13,
MusicDisc5,
MusicDiscBlocks,
MusicDiscBounce,
MusicDiscCat,
MusicDiscChirp,
MusicDiscCreator,
@ -1039,6 +1050,10 @@ namespace MinecraftClient.Inventory
PolishedBlackstoneSlab,
PolishedBlackstoneStairs,
PolishedBlackstoneWall,
PolishedCinnabar,
PolishedCinnabarSlab,
PolishedCinnabarStairs,
PolishedCinnabarWall,
PolishedDeepslate,
PolishedDeepslateSlab,
PolishedDeepslateStairs,
@ -1049,6 +1064,10 @@ namespace MinecraftClient.Inventory
PolishedGranite,
PolishedGraniteSlab,
PolishedGraniteStairs,
PolishedSulfur,
PolishedSulfurSlab,
PolishedSulfurStairs,
PolishedSulfurWall,
PolishedTuff,
PolishedTuffSlab,
PolishedTuffStairs,
@ -1057,6 +1076,7 @@ namespace MinecraftClient.Inventory
Poppy,
Porkchop,
Potato,
PotentSulfur,
Potion,
PowderSnowBucket,
PoweredRail,
@ -1310,6 +1330,17 @@ namespace MinecraftClient.Inventory
StructureVoid,
Sugar,
SugarCane,
Sulfur,
SulfurBrickSlab,
SulfurBrickStairs,
SulfurBrickWall,
SulfurBricks,
SulfurCubeBucket,
SulfurCubeSpawnEgg,
SulfurSlab,
SulfurSpike,
SulfurStairs,
SulfurWall,
Sunflower,
SuspiciousGravel,
SuspiciousSand,

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,176 @@
using System.Collections.Generic;
namespace MinecraftClient.Mapping.EntityPalettes
{
public class EntityPalette262 : EntityPalette
{
private static readonly Dictionary<int, EntityType> mappings = new();
static EntityPalette262()
{
mappings[0] = EntityType.AcaciaBoat;
mappings[1] = EntityType.AcaciaChestBoat;
mappings[2] = EntityType.Allay;
mappings[3] = EntityType.AreaEffectCloud;
mappings[4] = EntityType.Armadillo;
mappings[5] = EntityType.ArmorStand;
mappings[6] = EntityType.Arrow;
mappings[7] = EntityType.Axolotl;
mappings[8] = EntityType.BambooChestRaft;
mappings[9] = EntityType.BambooRaft;
mappings[10] = EntityType.Bat;
mappings[11] = EntityType.Bee;
mappings[12] = EntityType.BirchBoat;
mappings[13] = EntityType.BirchChestBoat;
mappings[14] = EntityType.Blaze;
mappings[15] = EntityType.BlockDisplay;
mappings[16] = EntityType.Bogged;
mappings[17] = EntityType.Breeze;
mappings[18] = EntityType.BreezeWindCharge;
mappings[19] = EntityType.Camel;
mappings[20] = EntityType.CamelHusk;
mappings[21] = EntityType.Cat;
mappings[22] = EntityType.CaveSpider;
mappings[23] = EntityType.CherryBoat;
mappings[24] = EntityType.CherryChestBoat;
mappings[25] = EntityType.ChestMinecart;
mappings[26] = EntityType.Chicken;
mappings[27] = EntityType.Cod;
mappings[28] = EntityType.CopperGolem;
mappings[29] = EntityType.CommandBlockMinecart;
mappings[30] = EntityType.Cow;
mappings[31] = EntityType.Creaking;
mappings[32] = EntityType.Creeper;
mappings[33] = EntityType.DarkOakBoat;
mappings[34] = EntityType.DarkOakChestBoat;
mappings[35] = EntityType.Dolphin;
mappings[36] = EntityType.Donkey;
mappings[37] = EntityType.DragonFireball;
mappings[38] = EntityType.Drowned;
mappings[39] = EntityType.Egg;
mappings[40] = EntityType.ElderGuardian;
mappings[41] = EntityType.Enderman;
mappings[42] = EntityType.Endermite;
mappings[43] = EntityType.EnderDragon;
mappings[44] = EntityType.EnderPearl;
mappings[45] = EntityType.EndCrystal;
mappings[46] = EntityType.Evoker;
mappings[47] = EntityType.EvokerFangs;
mappings[48] = EntityType.ExperienceBottle;
mappings[49] = EntityType.ExperienceOrb;
mappings[50] = EntityType.EyeOfEnder;
mappings[51] = EntityType.FallingBlock;
mappings[52] = EntityType.Fireball;
mappings[53] = EntityType.FireworkRocket;
mappings[54] = EntityType.Fox;
mappings[55] = EntityType.Frog;
mappings[56] = EntityType.FurnaceMinecart;
mappings[57] = EntityType.Ghast;
mappings[58] = EntityType.HappyGhast;
mappings[59] = EntityType.Giant;
mappings[60] = EntityType.GlowItemFrame;
mappings[61] = EntityType.GlowSquid;
mappings[62] = EntityType.Goat;
mappings[63] = EntityType.Guardian;
mappings[64] = EntityType.Hoglin;
mappings[65] = EntityType.HopperMinecart;
mappings[66] = EntityType.Horse;
mappings[67] = EntityType.Husk;
mappings[68] = EntityType.Illusioner;
mappings[69] = EntityType.Interaction;
mappings[70] = EntityType.IronGolem;
mappings[71] = EntityType.Item;
mappings[72] = EntityType.ItemDisplay;
mappings[73] = EntityType.ItemFrame;
mappings[74] = EntityType.JungleBoat;
mappings[75] = EntityType.JungleChestBoat;
mappings[76] = EntityType.LeashKnot;
mappings[77] = EntityType.LightningBolt;
mappings[78] = EntityType.Llama;
mappings[79] = EntityType.LlamaSpit;
mappings[80] = EntityType.MagmaCube;
mappings[81] = EntityType.MangroveBoat;
mappings[82] = EntityType.MangroveChestBoat;
mappings[83] = EntityType.Mannequin;
mappings[84] = EntityType.Marker;
mappings[85] = EntityType.Minecart;
mappings[86] = EntityType.Mooshroom;
mappings[87] = EntityType.Mule;
mappings[88] = EntityType.Nautilus;
mappings[89] = EntityType.OakBoat;
mappings[90] = EntityType.OakChestBoat;
mappings[91] = EntityType.Ocelot;
mappings[92] = EntityType.OminousItemSpawner;
mappings[93] = EntityType.Painting;
mappings[94] = EntityType.PaleOakBoat;
mappings[95] = EntityType.PaleOakChestBoat;
mappings[96] = EntityType.Panda;
mappings[97] = EntityType.Parched;
mappings[98] = EntityType.Parrot;
mappings[99] = EntityType.Phantom;
mappings[100] = EntityType.Pig;
mappings[101] = EntityType.Piglin;
mappings[102] = EntityType.PiglinBrute;
mappings[103] = EntityType.Pillager;
mappings[104] = EntityType.PolarBear;
mappings[105] = EntityType.SplashPotion;
mappings[106] = EntityType.LingeringPotion;
mappings[107] = EntityType.Pufferfish;
mappings[108] = EntityType.Rabbit;
mappings[109] = EntityType.Ravager;
mappings[110] = EntityType.Salmon;
mappings[111] = EntityType.Sheep;
mappings[112] = EntityType.Shulker;
mappings[113] = EntityType.ShulkerBullet;
mappings[114] = EntityType.Silverfish;
mappings[115] = EntityType.Skeleton;
mappings[116] = EntityType.SkeletonHorse;
mappings[117] = EntityType.Slime;
mappings[118] = EntityType.SmallFireball;
mappings[119] = EntityType.Sniffer;
mappings[120] = EntityType.Snowball;
mappings[121] = EntityType.SnowGolem;
mappings[122] = EntityType.SpawnerMinecart;
mappings[123] = EntityType.SpectralArrow;
mappings[124] = EntityType.Spider;
mappings[125] = EntityType.SpruceBoat;
mappings[126] = EntityType.SpruceChestBoat;
mappings[127] = EntityType.Squid;
mappings[128] = EntityType.Stray;
mappings[129] = EntityType.Strider;
mappings[130] = EntityType.SulfurCube;
mappings[131] = EntityType.Tadpole;
mappings[132] = EntityType.TextDisplay;
mappings[133] = EntityType.Tnt;
mappings[134] = EntityType.TntMinecart;
mappings[135] = EntityType.TraderLlama;
mappings[136] = EntityType.Trident;
mappings[137] = EntityType.TropicalFish;
mappings[138] = EntityType.Turtle;
mappings[139] = EntityType.Vex;
mappings[140] = EntityType.Villager;
mappings[141] = EntityType.Vindicator;
mappings[142] = EntityType.WanderingTrader;
mappings[143] = EntityType.Warden;
mappings[144] = EntityType.WindCharge;
mappings[145] = EntityType.Witch;
mappings[146] = EntityType.Wither;
mappings[147] = EntityType.WitherSkeleton;
mappings[148] = EntityType.WitherSkull;
mappings[149] = EntityType.Wolf;
mappings[150] = EntityType.Zoglin;
mappings[151] = EntityType.Zombie;
mappings[152] = EntityType.ZombieHorse;
mappings[153] = EntityType.ZombieNautilus;
mappings[154] = EntityType.ZombieVillager;
mappings[155] = EntityType.ZombifiedPiglin;
mappings[156] = EntityType.Player;
mappings[157] = EntityType.FishingBobber;
}
protected override Dictionary<int, EntityType> GetDict()
{
return mappings;
}
}
}

View file

@ -150,6 +150,7 @@ namespace MinecraftClient.Mapping
Squid,
Stray,
Strider,
SulfurCube,
Tadpole,
TextDisplay,
Tnt,

View file

@ -204,6 +204,7 @@ namespace MinecraftClient.Mapping
Chest,
ChippedAnvil,
ChiseledBookshelf,
ChiseledCinnabar,
ChiseledCopper,
ChiseledDeepslate,
ChiseledNetherBricks,
@ -213,10 +214,19 @@ namespace MinecraftClient.Mapping
ChiseledResinBricks,
ChiseledSandstone,
ChiseledStoneBricks,
ChiseledSulfur,
ChiseledTuff,
ChiseledTuffBricks,
ChorusFlower,
ChorusPlant,
Cinnabar,
CinnabarBrickSlab,
CinnabarBrickStairs,
CinnabarBrickWall,
CinnabarBricks,
CinnabarSlab,
CinnabarStairs,
CinnabarWall,
Clay,
ClosedEyeblossom,
CoalBlock,
@ -765,6 +775,10 @@ namespace MinecraftClient.Mapping
PolishedBlackstoneSlab,
PolishedBlackstoneStairs,
PolishedBlackstoneWall,
PolishedCinnabar,
PolishedCinnabarSlab,
PolishedCinnabarStairs,
PolishedCinnabarWall,
PolishedDeepslate,
PolishedDeepslateSlab,
PolishedDeepslateStairs,
@ -775,12 +789,17 @@ namespace MinecraftClient.Mapping
PolishedGranite,
PolishedGraniteSlab,
PolishedGraniteStairs,
PolishedSulfur,
PolishedSulfurSlab,
PolishedSulfurStairs,
PolishedSulfurWall,
PolishedTuff,
PolishedTuffSlab,
PolishedTuffStairs,
PolishedTuffWall,
Poppy,
Potatoes,
PotentSulfur,
PottedAcaciaSapling,
PottedAllium,
PottedAzaleaBush,
@ -1007,6 +1026,15 @@ namespace MinecraftClient.Mapping
StructureBlock,
StructureVoid,
SugarCane,
Sulfur,
SulfurBrickSlab,
SulfurBrickStairs,
SulfurBrickWall,
SulfurBricks,
SulfurSlab,
SulfurSpike,
SulfurStairs,
SulfurWall,
Sunflower,
SuspiciousGravel,
SuspiciousSand,

View file

@ -0,0 +1,25 @@
using System.Collections.Generic;
using MinecraftClient.Inventory;
using MinecraftClient.Inventory.ItemPalettes;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Core;
namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components._26_2;
public class SulfurCubeContentComponent262(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry)
: StructuredComponent(dataTypes, itemPalette, subComponentRegistry)
{
public Item? AbsorbedBlockItemStack { get; set; }
public override void Parse(Queue<byte> data)
{
AbsorbedBlockItemStack = DataTypes.ReadNextItemStackTemplate(data, ItemPalette);
}
public override Queue<byte> Serialize()
{
var data = new List<byte>();
if (AbsorbedBlockItemStack is not null && !AbsorbedBlockItemStack.IsEmpty)
data.AddRange(DataTypes.GetItemStackTemplate(AbsorbedBlockItemStack, ItemPalette));
return new Queue<byte>(data);
}
}

View file

@ -0,0 +1,134 @@
using MinecraftClient.Inventory.ItemPalettes;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Components;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_20_6;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_21;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_21_2;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_21_5;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_21_8;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_21_9;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_21_11;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Components._26_1;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Components._26_2;
using MinecraftClient.Protocol.Handlers.StructuredComponents.Core;
namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Registries;
public class StructuredComponentsRegistry262 : StructuredComponentRegistry
{
public StructuredComponentsRegistry262(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry)
: base(dataTypes, itemPalette, subComponentRegistry)
{
RegisterComponent<CustomDataComponent>(0, "minecraft:custom_data");
RegisterComponent<MaxStackSizeComponent>(1, "minecraft:max_stack_size");
RegisterComponent<MaxDamageComponent>(2, "minecraft:max_damage");
RegisterComponent<DamageComponent>(3, "minecraft:damage");
RegisterComponent<EmptyComponent>(4, "minecraft:unbreakable");
RegisterComponent<UseEffectsComponent>(5, "minecraft:use_effects");
RegisterComponent<CustomNameComponent>(6, "minecraft:custom_name");
RegisterComponent<PotionDurationScaleComponent>(7, "minecraft:minimum_attack_charge");
RegisterComponent<VarIntComponent>(8, "minecraft:damage_type");
RegisterComponent<ItemNameComponent>(9, "minecraft:item_name");
RegisterComponent<ItemModelComponent>(10, "minecraft:item_model");
RegisterComponent<LoreNameComponent1206>(11, "minecraft:lore");
RegisterComponent<RarityComponent>(12, "minecraft:rarity");
RegisterComponent<EnchantmentsComponent1215>(13, "minecraft:enchantments");
RegisterComponent<CanPlaceOnComponent1215>(14, "minecraft:can_place_on");
RegisterComponent<CanBreakComponent1215>(15, "minecraft:can_break");
RegisterComponent<AttributeModifiersComponent1218>(16, "minecraft:attribute_modifiers");
RegisterComponent<CustomModelDataComponent>(17, "minecraft:custom_model_data");
RegisterComponent<TooltipDisplayComponent>(18, "minecraft:tooltip_display");
RegisterComponent<RepairCostComponent>(19, "minecraft:repair_cost");
RegisterComponent<CreativeSlotLockComponent>(20, "minecraft:creative_slot_lock");
RegisterComponent<EnchantmentGlintOverrideComponent>(21, "minecraft:enchantment_glint_override");
RegisterComponent<IntangibleProjectileComponent>(22, "minecraft:intangible_projectile");
RegisterComponent<FoodComponent1212>(23, "minecraft:food");
RegisterComponent<ConsumableComponent>(24, "minecraft:consumable");
RegisterComponent<UseRemainderComponent261>(25, "minecraft:use_remainder");
RegisterComponent<UseCooldownComponent>(26, "minecraft:use_cooldown");
RegisterComponent<HolderSetComponent261>(27, "minecraft:damage_resistant");
RegisterComponent<ToolComponent1215>(28, "minecraft:tool");
RegisterComponent<WeaponComponent>(29, "minecraft:weapon");
RegisterComponent<AttackRangeComponent>(30, "minecraft:attack_range");
RegisterComponent<EnchantableComponent>(31, "minecraft:enchantable");
RegisterComponent<EquippableComponent1218>(32, "minecraft:equippable");
RegisterComponent<RepairableComponent>(33, "minecraft:repairable");
RegisterComponent<GliderComponent>(34, "minecraft:glider");
RegisterComponent<TooltipStyleComponent>(35, "minecraft:tooltip_style");
RegisterComponent<DeathProtectionComponent>(36, "minecraft:death_protection");
RegisterComponent<BlocksAttacksComponent>(37, "minecraft:blocks_attacks");
RegisterComponent<PiercingWeaponComponent>(38, "minecraft:piercing_weapon");
RegisterComponent<KineticWeaponComponent>(39, "minecraft:kinetic_weapon");
RegisterComponent<SwingAnimationComponent>(40, "minecraft:swing_animation");
RegisterComponent<VarIntComponent>(41, "minecraft:additional_trade_cost"); // New in 26.1
RegisterComponent<StoredEnchantmentsComponent1215>(42, "minecraft:stored_enchantments");
RegisterComponent<VarIntComponent>(43, "minecraft:dye"); // New in 26.1
RegisterComponent<DyeColorComponent1215>(44, "minecraft:dyed_color");
RegisterComponent<MapColorComponent>(45, "minecraft:map_color");
RegisterComponent<MapIdComponent>(46, "minecraft:map_id");
RegisterComponent<MapDecorationsComponent>(47, "minecraft:map_decorations");
RegisterComponent<MapPostProcessingComponent>(48, "minecraft:map_post_processing");
RegisterComponent<ItemStackTemplateListComponent261>(49, "minecraft:charged_projectiles");
RegisterComponent<ItemStackTemplateListComponent261>(50, "minecraft:bundle_contents");
RegisterComponent<PotionContentsComponent1212>(51, "minecraft:potion_contents");
RegisterComponent<PotionDurationScaleComponent>(52, "minecraft:potion_duration_scale");
RegisterComponent<SuspiciousStewEffectsComponent>(53, "minecraft:suspicious_stew_effects");
RegisterComponent<WritableBookContentComponent>(54, "minecraft:writable_book_content");
RegisterComponent<WrittenBookContentComponent>(55, "minecraft:written_book_content");
RegisterComponent<TrimComponent1215>(56, "minecraft:trim");
RegisterComponent<DebugStickStateComponent>(57, "minecraft:debug_stick_state");
RegisterComponent<TypedEntityDataComponent>(58, "minecraft:entity_data");
RegisterComponent<BucketEntityDataComponent>(59, "minecraft:bucket_entity_data");
RegisterComponent<TypedBlockEntityDataComponent>(60, "minecraft:block_entity_data");
RegisterComponent<InstrumentComponent261>(61, "minecraft:instrument");
RegisterComponent<ProvidesTrimMaterialComponent261>(62, "minecraft:provides_trim_material");
RegisterComponent<OminousBottleAmplifierComponent>(63, "minecraft:ominous_bottle_amplifier");
RegisterComponent<JukeBoxPlayableComponent1215>(64, "minecraft:jukebox_playable");
RegisterComponent<HolderSetComponent261>(65, "minecraft:provides_banner_patterns");
RegisterComponent<NbtTagComponent261>(66, "minecraft:recipes");
RegisterComponent<LodestoneTrackerComponent>(67, "minecraft:lodestone_tracker");
RegisterComponent<FireworkExplosionComponent>(68, "minecraft:firework_explosion");
RegisterComponent<FireworksComponent>(69, "minecraft:fireworks");
RegisterComponent<ProfileComponent>(70, "minecraft:profile");
RegisterComponent<NoteBlockSoundComponent>(71, "minecraft:note_block_sound");
RegisterComponent<BannerPatternsComponent>(72, "minecraft:banner_patterns");
RegisterComponent<BaseColorComponent>(73, "minecraft:base_color");
RegisterComponent<PotDecorationsComponent>(74, "minecraft:pot_decorations");
RegisterComponent<ContainerComponent261>(75, "minecraft:container");
RegisterComponent<BlockStateComponent>(76, "minecraft:block_state");
RegisterComponent<BeesComponent1219>(77, "minecraft:bees");
RegisterComponent<SulfurCubeContentComponent262>(78, "minecraft:sulfur_cube_content"); // New in 26.2
RegisterComponent<LockComponent>(79, "minecraft:lock");
RegisterComponent<ContainerLootComponent>(80, "minecraft:container_loot");
RegisterComponent<SoundEventHolderComponent>(81, "minecraft:break_sound");
RegisterComponent<VarIntComponent>(82, "minecraft:villager/variant");
RegisterComponent<VarIntComponent>(83, "minecraft:wolf/variant");
RegisterComponent<VarIntComponent>(84, "minecraft:wolf/sound_variant");
RegisterComponent<VarIntComponent>(85, "minecraft:wolf/collar");
RegisterComponent<VarIntComponent>(86, "minecraft:fox/variant");
RegisterComponent<VarIntComponent>(87, "minecraft:salmon/size");
RegisterComponent<VarIntComponent>(88, "minecraft:parrot/variant");
RegisterComponent<VarIntComponent>(89, "minecraft:tropical_fish/pattern");
RegisterComponent<VarIntComponent>(90, "minecraft:tropical_fish/base_color");
RegisterComponent<VarIntComponent>(91, "minecraft:tropical_fish/pattern_color");
RegisterComponent<VarIntComponent>(92, "minecraft:mooshroom/variant");
RegisterComponent<VarIntComponent>(93, "minecraft:rabbit/variant");
RegisterComponent<VarIntComponent>(94, "minecraft:pig/variant");
RegisterComponent<VarIntComponent>(95, "minecraft:pig/sound_variant"); // New in 26.1
RegisterComponent<VarIntComponent>(96, "minecraft:cow/variant");
RegisterComponent<VarIntComponent>(97, "minecraft:cow/sound_variant"); // New in 26.1
RegisterComponent<VarIntComponent>(98, "minecraft:chicken/variant");
RegisterComponent<VarIntComponent>(99, "minecraft:chicken/sound_variant"); // New in 26.1
RegisterComponent<VarIntComponent>(100, "minecraft:zombie_nautilus/variant");
RegisterComponent<VarIntComponent>(101, "minecraft:frog/variant");
RegisterComponent<VarIntComponent>(102, "minecraft:horse/variant");
RegisterComponent<PaintingVariantHolderComponent>(103, "minecraft:painting/variant");
RegisterComponent<VarIntComponent>(104, "minecraft:llama/variant");
RegisterComponent<VarIntComponent>(105, "minecraft:axolotl/variant");
RegisterComponent<VarIntComponent>(106, "minecraft:cat/variant");
RegisterComponent<VarIntComponent>(107, "minecraft:cat/sound_variant"); // New in 26.1
RegisterComponent<VarIntComponent>(108, "minecraft:cat/collar");
RegisterComponent<VarIntComponent>(109, "minecraft:sheep/color");
RegisterComponent<VarIntComponent>(110, "minecraft:shulker/color");
}
}