Minecraft-Console-Client/MinecraftClient/Mapping/EntityType.cs
BruceChen df833ae2a8 feat: add palettes and version constants for MC 1.21.2 (protocol 768)
Add item, entity, block, and metadata palettes for Minecraft 1.21.2:
- ItemPalette1212: 1375 items (42 new: pale oak set, colored bundles,
  creaking heart/spawn egg, banner patterns)
- EntityPalette1212: 150 entity types (boats split into per-wood-type
  entries, generic boat/chest_boat removed; added creaking,
  creaking_transient, pale oak boats)
- Palette1212 (blocks): 1084 block types with state IDs generated from
  official 1.21.2 data reports (24 new pale oak blocks, creaking heart,
  pale moss variants)
- EntityMetadataPalette: reuses 1206 (serializers unchanged in 1.21.2)

Updated version infrastructure:
- Protocol18.cs: MC_1_21_2_Version = 768, palette switch routing
- ProtocolHandler.cs: version mapping 1.21.2 <-> 768
- Program.cs: MCHighestVersion bumped to 1.21.2
- ItemType.cs, EntityType.cs, Material.cs: new enum entries

Note: packet palette, structured components, and protocol handler
changes for 1.21.2 are not yet implemented — this commit covers
palette/registry groundwork only.

Made-with: Cursor
2026-03-20 03:02:43 +08:00

170 lines
3.8 KiB
C#

namespace MinecraftClient.Mapping
{
/// <summary>
/// Represents Minecraft Entity Types
/// </summary>
/// <remarks>
/// Generated from registries.json using the --generator flag on the client
/// Typical steps to handle new entity IDs for newer Minecraft versions:
/// 1. Generate registries.json using data reporting on Vanilla Minecraft (https://wiki.vg/Data_Generators) or download it from: https://github.com/PixiGeko/Minecraft-generated-data
/// 2. Generate temporary EntityTypeXXX.cs and EntityPaletteXXX.cs using the --generator flag on the client
/// 3. Perform a diff with existing versions, add missing entries in EntityType.cs and EntityTypeExtensions.cs
/// 4. If existing entity IDs were not randomized by Mojang, simply add missing entries to the latest existing EntityPaletteXXX.cs
/// 5. If existing entity IDs were randomized, add a new palette as EntityPaletteXXX.cs into the codebase (worst case)
/// </remarks>
public enum EntityType
{
AcaciaBoat,
AcaciaChestBoat,
Allay,
AreaEffectCloud,
Armadillo,
ArmorStand,
Arrow,
Axolotl,
BambooChestRaft,
BambooRaft,
Bat,
Bee,
BirchBoat,
BirchChestBoat,
Blaze,
BlockDisplay,
Boat,
Bogged,
Breeze,
BreezeWindCharge,
Camel,
Cat,
CaveSpider,
CherryBoat,
CherryChestBoat,
ChestBoat,
ChestMinecart,
Chicken,
Cod,
CommandBlockMinecart,
Cow,
Creaking,
CreakingTransient,
Creeper,
DarkOakBoat,
DarkOakChestBoat,
Dolphin,
Donkey,
DragonFireball,
Drowned,
Egg,
ElderGuardian,
EndCrystal,
EnderDragon,
EnderPearl,
Enderman,
Endermite,
Evoker,
EvokerFangs,
ExperienceBottle,
ExperienceOrb,
EyeOfEnder,
FallingBlock,
Fireball,
FireworkRocket,
FishingBobber,
Fox,
Frog,
FurnaceMinecart,
Ghast,
Giant,
GlowItemFrame,
GlowSquid,
Goat,
Guardian,
Hoglin,
HopperMinecart,
Horse,
Husk,
Illusioner,
Interaction,
IronGolem,
Item,
ItemDisplay,
ItemFrame,
JungleBoat,
JungleChestBoat,
LeashKnot,
LightningBolt,
Llama,
LlamaSpit,
MagmaCube,
MangroveBoat,
MangroveChestBoat,
Marker,
Minecart,
Mooshroom,
Mule,
OakBoat,
OakChestBoat,
Ocelot,
OminousItemSpawner,
Painting,
PaleOakBoat,
PaleOakChestBoat,
Panda,
Parrot,
Phantom,
Pig,
Piglin,
PiglinBrute,
Pillager,
Player,
PolarBear,
Potion,
Pufferfish,
Rabbit,
Ravager,
Salmon,
Sheep,
Shulker,
ShulkerBullet,
Silverfish,
Skeleton,
SkeletonHorse,
Slime,
SmallFireball,
Sniffer,
SnowGolem,
Snowball,
SpawnerMinecart,
SpectralArrow,
Spider,
SpruceBoat,
SpruceChestBoat,
Squid,
Stray,
Strider,
Tadpole,
TextDisplay,
Tnt,
TntMinecart,
TraderLlama,
Trident,
TropicalFish,
Turtle,
Vex,
Villager,
Vindicator,
WanderingTrader,
Warden,
WindCharge,
Witch,
Wither,
WitherSkeleton,
WitherSkull,
Wolf,
Zoglin,
Zombie,
ZombieHorse,
ZombieVillager,
ZombifiedPiglin,
}
}