"""BDS protocol enums ported from bedrock-headers.

Each IntEnum mirrors the corresponding C++ ``enum class`` from the
Bedrock Dedicated Server headers so handler code can reference
symbolic names instead of magic literals.
"""

import enum


class ActorDataIDs(enum.IntEnum):
    """ActorDataIDs."""

    RESERVED_0 = 0
    STRUCTURAL_INTEGRITY = 1
    VARIANT = 2
    COLOR_INDEX = 3
    NAME = 4
    OWNER = 5
    TARGET = 6
    AIR_SUPPLY = 7
    EFFECT_COLOR = 8
    RESERVED_009 = 9
    RESERVED_010 = 10
    HURT = 11
    HURT_DIR = 12
    ROW_TIME_LEFT = 13
    ROW_TIME_RIGHT = 14
    VALUE = 15
    DISPLAY_TILE_RUNTIME_ID = 16
    DISPLAY_OFFSET = 17
    CUSTOM_DISPLAY = 18
    SWELL = 19
    OLD_SWELL = 20
    SWELL_DIR = 21
    CHARGE_AMOUNT = 22
    DEPRECATED_CARRY_BLOCK_RUNTIME_ID = 23
    CLIENT_EVENT = 24
    USING_ITEM = 25
    PLAYER_FLAGS = 26
    PLAYER_INDEX = 27
    BED_POSITION = 28
    X_POWER = 29
    Y_POWER = 30
    Z_POWER = 31
    AUX_POWER = 32
    FISHX = 33
    FISHZ = 34
    FISHANGLE = 35
    AUX_VALUE_DATA = 36
    LEASH_HOLDER = 37
    RESERVED_038 = 38
    HAS_NPC = 39
    NPC_DATA = 40
    ACTIONS = 41
    AIR_SUPPLY_MAX = 42
    MARK_VARIANT = 43
    CONTAINER_TYPE = 44
    CONTAINER_SIZE = 45
    CONTAINER_STRENGTH_MODIFIER = 46
    BLOCK_TARGET = 47
    INV = 48
    TARGET_A = 49
    TARGET_B = 50
    TARGET_C = 51
    AERIAL_ATTACK = 52
    RESERVED_053 = 53
    RESERVED_054 = 54
    FUSE_TIME = 55
    RESERVED_056 = 56
    SEAT_LOCK_PASSENGER_ROTATION = 57
    SEAT_LOCK_PASSENGER_ROTATION_DEGREES = 58
    SEAT_ROTATION_OFFSET = 59
    SEAT_ROTATION_OFFSET_DEGREES = 60
    DATA_RADIUS = 61
    DATA_WAITING = 62
    DATA_PARTICLE = 63
    PEEK_ID = 64
    ATTACH_FACE = 65
    ATTACHED = 66
    ATTACH_POS = 67
    TRADE_TARGET = 68
    CAREER = 69
    HAS_COMMAND_BLOCK = 70
    COMMAND_NAME = 71
    LAST_COMMAND_OUTPUT = 72
    TRACK_COMMAND_OUTPUT = 73
    RESERVED_074 = 74
    STRENGTH = 75
    STRENGTH_MAX = 76
    DATA_SPELL_CASTING_COLOR = 77
    DATA_LIFETIME_TICKS = 78
    POSE_INDEX = 79
    DATA_TICK_OFFSET = 80
    NAMETAG_ALWAYS_SHOW = 81
    COLOR_2_INDEX = 82
    NAME_AUTHOR = 83
    SCORE = 84
    BALLOON_ANCHOR = 85
    PUFFED_STATE = 86
    BUBBLE_TIME = 87
    AGENT = 88
    SITTING_AMOUNT = 89
    SITTING_AMOUNT_PREVIOUS = 90
    EATING_COUNTER = 91
    RESERVED_092 = 92
    LAYING_AMOUNT = 93
    LAYING_AMOUNT_PREVIOUS = 94
    DATA_DURATION = 95
    DATA_SPAWN_TIME_DEPRECATED = 96
    DATA_CHANGE_RATE = 97
    DATA_CHANGE_ON_PICKUP = 98
    DATA_PICKUP_COUNT = 99
    INTERACT_TEXT = 100
    TRADE_TIER = 101
    MAX_TRADE_TIER = 102
    TRADE_EXPERIENCE = 103
    SKIN_ID = 104
    SPAWNING_FRAMES = 105
    COMMAND_BLOCK_TICK_DELAY = 106
    COMMAND_BLOCK_EXECUTE_ON_FIRST_TICK = 107
    AMBIENT_SOUND_INTERVAL = 108
    AMBIENT_SOUND_INTERVAL_RANGE = 109
    AMBIENT_SOUND_EVENT_NAME = 110
    FALL_DAMAGE_MULTIPLIER = 111
    NAME_RAW_TEXT = 112
    CAN_RIDE_TARGET = 113
    LOW_TIER_CURED_TRADE_DISCOUNT = 114
    HIGH_TIER_CURED_TRADE_DISCOUNT = 115
    NEARBY_CURED_TRADE_DISCOUNT = 116
    NEARBY_CURED_DISCOUNT_TIME_STAMP = 117
    HITBOX = 118
    IS_BUOYANT = 119
    FREEZING_EFFECT_STRENGTH = 120
    BUOYANCY_DATA = 121
    GOAT_HORN_COUNT = 122
    BASE_RUNTIME_ID = 123
    MOVEMENT_SOUND_DISTANCE_OFFSET = 124
    HEARTBEAT_INTERVAL_TICKS = 125
    HEARTBEAT_SOUND_EVENT = 126
    PLAYER_LAST_DEATH_POS = 127
    PLAYER_LAST_DEATH_DIMENSION = 128
    PLAYER_HAS_DIED = 129
    COLLISION_BOX = 130
    VISIBLE_MOB_EFFECTS = 131
    FILTERED_NAME = 132
    ENTER_BED_POSITION = 133
    SEAT_THIRD_PERSON_CAMERA_RADIUS = 134
    SEAT_CAMERA_RELAX_DISTANCE_SMOOTHING = 135
    # Since v924
    AIM_ASSIST_PRIORITY_PRESET_ID = 136
    AIM_ASSIST_PRIORITY_CATEGORY_ID = 137
    AIM_ASSIST_PRIORITY_ACTOR_ID = 138
    COUNT = 139


def enum_to_label(e: type[enum.IntEnum]) -> dict[int, str]:
    """Build value -> lowercase label lookup for a v898 string-serialized enum."""
    return {m.value: m.name.replace("_", "").lower() for m in e}


def label_to_enum(e: type[enum.IntEnum]) -> dict[str, int]:
    """Build lowercase label -> value lookup for a v898 string-serialized enum."""
    return {m.name.replace("_", "").lower(): m.value for m in e}


class AnimateAction(enum.IntEnum):
    """AnimatePacketPayload::Action."""

    NO_ACTION = 0
    SWING = 1
    WAKE_UP = 3
    CRITICAL_HIT = 4
    MAGIC_CRITICAL_HIT = 5


class BookEditActionType(enum.IntEnum):
    """BookEditPacketPayload::Operation variant index."""

    REPLACE_PAGE = 0
    ADD_PAGE = 1
    DELETE_PAGE = 2
    SWAP_PAGES = 3
    FINALIZE = 4


class ClientboundMapItemDataType(enum.IntEnum):
    """ClientboundMapItemDataPacket::Type (bitmask flags)."""

    INVALID = 0
    TEXTURE_UPDATE = 2
    DECORATION_UPDATE = 4
    CREATION = 8


class CommandOriginType(enum.IntEnum):
    """CommandOriginData::CommandOriginType."""

    PLAYER = 0
    COMMAND_BLOCK = 1
    MINECART_COMMAND_BLOCK = 2
    DEV_CONSOLE = 3
    TEST = 4
    AUTOMATION_PLAYER = 5
    CLIENT_AUTOMATION = 6
    DEDICATED_SERVER = 7
    ENTITY = 8
    VIRTUAL = 9
    GAME_ARGUMENT = 10
    ENTITY_SERVER = 11
    PRECOMPILED = 12
    GAME_DIRECTOR_ENTITY_SERVER = 13
    SCRIPTING = 14
    EXECUTE_CONTEXT = 15


class CommandPermissionLevel(enum.IntEnum):
    """CommandPermissionLevel."""

    ANY = 0
    GAME_DIRECTORS = 1
    ADMIN = 2
    HOST = 3
    OWNER = 4
    INTERNAL = 5


class CommandOutputType(enum.IntEnum):
    """CommandOutput::CommandOutputType."""

    NONE = 0
    LAST_OUTPUT = 1
    SILENT = 2
    ALL_OUTPUT = 3
    DATA_SET = 4


class CurrentCmdVersion(enum.IntEnum):
    """CommandVersion CurrentCmdVersion."""

    INVALID = -1
    INITIAL = 1
    POST_BLOCK_FLATTENING = 43
    TEST_FOR_BLOCK_DOES_NOT_IGNORE_BLOCK_STATE = 44
    CLONE_EXTRA_BLOCK_FILTER_FIX = 45


class ComplexInventoryTransactionType(enum.IntEnum):
    """ComplexInventoryTransaction::Type."""

    NORMAL_TRANSACTION = 0
    INVENTORY_MISMATCH = 1
    ITEM_USE_TRANSACTION = 2
    ITEM_USE_ON_ENTITY_TRANSACTION = 3
    ITEM_RELEASE_TRANSACTION = 4


class DataItemType(enum.IntEnum):
    """SynchedActorData DataItemType."""

    BYTE = 0
    SHORT = 1
    INT = 2
    FLOAT = 3
    STRING = 4
    COMPOUND_TAG = 5
    POS = 6
    INT64 = 7
    VEC3 = 8
    UNKNOWN = 9


class GameRuleType(enum.IntEnum):
    """GameRules::Type."""

    INVALID = 0
    BOOL = 1
    INT = 2
    FLOAT = 3


class InventorySourceType(enum.IntEnum):
    """InventorySource InventorySourceType."""

    CONTAINER_INVENTORY = 0
    GLOBAL_INVENTORY = 1
    WORLD_INTERACTION = 2
    CREATIVE_INVENTORY = 3
    NON_IMPLEMENTED_FEATURE_TODO = 99999


class InteractAction(enum.IntEnum):
    """InteractPacket::Action."""

    INVALID = 0
    STOP_RIDING = 3
    INTERACT_UPDATE = 4
    NPC_OPEN = 5
    OPEN_INVENTORY = 6


class TextPacketBodyType(enum.IntEnum):
    """TextPacketPayload::mBody variant index."""

    MESSAGE_ONLY = 0
    AUTHOR_AND_MESSAGE = 1
    MESSAGE_AND_PARAMS = 2


class TextPacketType(enum.IntEnum):
    """TextPacketType."""

    RAW = 0
    CHAT = 1
    TRANSLATE = 2
    POPUP = 3
    JUKEBOX_POPUP = 4
    TIP = 5
    SYSTEM_MESSAGE = 6
    WHISPER = 7
    ANNOUNCEMENT = 8
    TEXT_OBJECT_WHISPER = 9
    TEXT_OBJECT = 10
    TEXT_OBJECT_ANNOUNCEMENT = 11


class LevelSoundEvent(enum.IntEnum):
    """SharedTypes::Legacy::LevelSoundEvent."""

    ITEM_USE_ON = 0
    HIT = 1
    STEP = 2
    FLY = 3
    JUMP = 4
    BREAK = 5
    PLACE = 6
    HEAVY_STEP = 7
    GALLOP = 8
    FALL = 9
    AMBIENT = 10
    AMBIENT_BABY = 11
    AMBIENT_IN_WATER = 12
    BREATHE = 13
    DEATH = 14
    DEATH_IN_WATER = 15
    DEATH_TO_ZOMBIE = 16
    HURT = 17
    HURT_IN_WATER = 18
    MAD = 19
    BOOST = 20
    BOW = 21
    SQUISH_BIG = 22
    SQUISH_SMALL = 23
    FALL_BIG = 24
    FALL_SMALL = 25
    SPLASH = 26
    FIZZ = 27
    FLAP = 28
    SWIM = 29
    DRINK = 30
    EAT = 31
    TAKEOFF = 32
    SHAKE = 33
    PLOP = 34
    LAND = 35
    SADDLE = 36
    ARMOR = 37
    ARMOR_PLACE = 38
    ADD_CHEST = 39
    THROW = 40
    ATTACK = 41
    ATTACK_NO_DAMAGE = 42
    ATTACK_STRONG = 43
    WARN = 44
    SHEAR = 45
    MILK = 46
    THUNDER = 47
    EXPLODE = 48
    FIRE = 49
    IGNITE = 50
    FUSE = 51
    STARE = 52
    SPAWN = 53
    SHOOT = 54
    BREAK_BLOCK = 55
    LAUNCH = 56
    BLAST = 57
    LARGE_BLAST = 58
    TWINKLE = 59
    REMEDY = 60
    UNFECT = 61
    LEVEL_UP = 62
    BOW_HIT = 63
    BULLET_HIT = 64
    EXTINGUISH_FIRE = 65
    ITEM_FIZZ = 66
    CHEST_OPEN = 67
    CHEST_CLOSED = 68
    SHULKER_BOX_OPEN = 69
    SHULKER_BOX_CLOSED = 70
    ENDER_CHEST_OPEN = 71
    ENDER_CHEST_CLOSED = 72
    POWER_ON = 73
    POWER_OFF = 74
    ATTACH = 75
    DETACH = 76
    DENY = 77
    TRIPOD = 78
    POP = 79
    DROP_SLOT = 80
    NOTE = 81
    THORNS = 82
    PISTON_IN = 83
    PISTON_OUT = 84
    PORTAL = 85
    WATER = 86
    LAVA_POP = 87
    LAVA = 88
    BURP = 89
    BUCKET_FILL_WATER = 90
    BUCKET_FILL_LAVA = 91
    BUCKET_EMPTY_WATER = 92
    BUCKET_EMPTY_LAVA = 93
    EQUIP_CHAIN = 94
    EQUIP_DIAMOND = 95
    EQUIP_GENERIC = 96
    EQUIP_GOLD = 97
    EQUIP_IRON = 98
    EQUIP_LEATHER = 99
    EQUIP_ELYTRA = 100
    RECORD13 = 101
    RECORD_CAT = 102
    RECORD_BLOCKS = 103
    RECORD_CHIRP = 104
    RECORD_FAR = 105
    RECORD_MALL = 106
    RECORD_MELLOHI = 107
    RECORD_STAL = 108
    RECORD_STRAD = 109
    RECORD_WARD = 110
    RECORD11 = 111
    RECORD_WAIT = 112
    RECORD_NULL = 113
    FLOP = 114
    GUARDIAN_CURSE = 115
    MOB_WARNING = 116
    MOB_WARNING_BABY = 117
    TELEPORT = 118
    SHULKER_OPEN = 119
    SHULKER_CLOSE = 120
    HAGGLE = 121
    HAGGLE_YES = 122
    HAGGLE_NO = 123
    HAGGLE_IDLE = 124
    CHORUS_GROW = 125
    CHORUS_DEATH = 126
    GLASS = 127
    POTION_BREWED = 128
    CAST_SPELL = 129
    PREPARE_ATTACK_SPELL = 130
    PREPARE_SUMMON = 131
    PREPARE_WOLOLO = 132
    FANG = 133
    CHARGE = 134
    TAKE_PICTURE = 135
    PLACE_LEASH_KNOT = 136
    BREAK_LEASH_KNOT = 137
    AMBIENT_GROWL = 138
    AMBIENT_WHINE = 139
    AMBIENT_PANT = 140
    AMBIENT_PURR = 141
    AMBIENT_PURREOW = 142
    DEATH_MIN_VOLUME = 143
    DEATH_MID_VOLUME = 144
    IMITATE_BLAZE = 145
    IMITATE_CAVE_SPIDER = 146
    IMITATE_CREEPER = 147
    IMITATE_ELDER_GUARDIAN = 148
    IMITATE_ENDER_DRAGON = 149
    IMITATE_ENDERMAN = 150
    IMITATE_ENDERMITE = 151
    IMITATE_EVOCATION_ILLAGER = 152
    IMITATE_GHAST = 153
    IMITATE_HUSK = 154
    IMITATE_MAGMA_CUBE = 156
    IMITATE_POLAR_BEAR = 157
    IMITATE_SHULKER = 158
    IMITATE_SILVERFISH = 159
    IMITATE_SKELETON = 160
    IMITATE_SLIME = 161
    IMITATE_SPIDER = 162
    IMITATE_STRAY = 163
    IMITATE_VEX = 164
    IMITATE_VINDICATION_ILLAGER = 165
    IMITATE_WITCH = 166
    IMITATE_WITHER = 167
    IMITATE_WITHER_SKELETON = 168
    IMITATE_WOLF = 169
    IMITATE_ZOMBIE = 170
    IMITATE_ZOMBIE_PIGMAN = 171
    IMITATE_ZOMBIE_VILLAGER = 172
    ENDER_EYE_PLACED = 173
    END_PORTAL_CREATED = 174
    ANVIL_USE = 175
    BOTTLE_DRAGON_BREATH = 176
    PORTAL_TRAVEL = 177
    TRIDENT_HIT = 178
    TRIDENT_RETURN = 179
    TRIDENT_RIPTIDE_1 = 180
    TRIDENT_RIPTIDE_2 = 181
    TRIDENT_RIPTIDE_3 = 182
    TRIDENT_THROW = 183
    TRIDENT_THUNDER = 184
    TRIDENT_HIT_GROUND = 185
    DEFAULT = 186
    FLETCHING_TABLE_USE = 187
    ELEM_CONSTRUCT_OPEN = 188
    ICE_BOMB_HIT = 189
    BALLOON_POP = 190
    LT_REACTION_ICE_BOMB = 191
    LT_REACTION_BLEACH = 192
    LT_REACTION_ELEPHANT_TOOTHPASTE = 193
    LT_REACTION_ELEPHANT_TOOTHPASTE2 = 194
    LT_REACTION_GLOW_STICK = 195
    LT_REACTION_GLOW_STICK2 = 196
    LT_REACTION_LUMINOL = 197
    LT_REACTION_SALT = 198
    LT_REACTION_FERTILIZER = 199
    LT_REACTION_FIREBALL = 200
    LT_REACTION_MAGNESIUM_SALT = 201
    LT_REACTION_MISC_FIRE = 202
    LT_REACTION_FIRE = 203
    LT_REACTION_MISC_EXPLOSION = 204
    LT_REACTION_MISC_MYSTICAL = 205
    LT_REACTION_MISC_MYSTICAL2 = 206
    LT_REACTION_PRODUCT = 207
    SPARKLER_USE = 208
    GLOW_STICK_USE = 209
    SPARKLER_ACTIVE = 210
    CONVERT_TO_DROWNED = 211
    BUCKET_FILL_FISH = 212
    BUCKET_EMPTY_FISH = 213
    BUBBLE_COLUMN_UPWARDS = 214
    BUBBLE_COLUMN_DOWNWARDS = 215
    BUBBLE_POP = 216
    BUBBLE_UP_INSIDE = 217
    BUBBLE_DOWN_INSIDE = 218
    HURT_BABY = 219
    DEATH_BABY = 220
    STEP_BABY = 221
    SPAWN_BABY = 222
    BORN = 223
    TURTLE_EGG_BREAK = 224
    TURTLE_EGG_CRACK = 225
    TURTLE_EGG_HATCHED = 226
    LAY_EGG = 227
    TURTLE_EGG_ATTACKED = 228
    BEACON_ACTIVATE = 229
    BEACON_AMBIENT = 230
    BEACON_DEACTIVATE = 231
    BEACON_POWER = 232
    CONDUIT_ACTIVATE = 233
    CONDUIT_AMBIENT = 234
    CONDUIT_ATTACK = 235
    CONDUIT_DEACTIVATE = 236
    CONDUIT_SHORT = 237
    SWOOP = 238
    BAMBOO_SAPLING_PLACE = 239
    PRE_SNEEZE = 240
    SNEEZE = 241
    AMBIENT_TAME = 242
    SCARED = 243
    SCAFFOLDING_CLIMB = 244
    CROSSBOW_LOADING_START = 245
    CROSSBOW_LOADING_MIDDLE = 246
    CROSSBOW_LOADING_END = 247
    CROSSBOW_SHOOT = 248
    CROSSBOW_QUICK_CHARGE_START = 249
    CROSSBOW_QUICK_CHARGE_MIDDLE = 250
    CROSSBOW_QUICK_CHARGE_END = 251
    AMBIENT_AGGRESSIVE = 252
    AMBIENT_WORRIED = 253
    CANT_BREED = 254
    SHIELD_BLOCK = 255
    LECTERN_BOOK_PLACE = 256
    GRINDSTONE_USE = 257
    BELL = 258
    CAMPFIRE_CRACKLE = 259
    ROAR = 260
    STUN = 261
    SWEET_BERRY_BUSH_HURT = 262
    SWEET_BERRY_BUSH_PICK = 263
    CARTOGRAPHY_TABLE_USE = 264
    STONECUTTER_USE = 265
    COMPOSTER_EMPTY = 266
    COMPOSTER_FILL = 267
    COMPOSTER_FILL_LAYER = 268
    COMPOSTER_READY = 269
    BARREL_OPEN = 270
    BARREL_CLOSE = 271
    RAID_HORN = 272
    LOOM_USE = 273
    AMBIENT_IN_RAID = 274
    UI_CARTOGRAPHY_TABLE_USE = 275
    UI_STONECUTTER_USE = 276
    UI_LOOM_USE = 277
    SMOKER_USE = 278
    BLAST_FURNACE_USE = 279
    SMITHING_TABLE_USE = 280
    SCREECH = 281
    SLEEP = 282
    FURNACE_USE = 283
    MOOSHROOM_CONVERT = 284
    MILK_SUSPICIOUSLY = 285
    CELEBRATE = 286
    JUMP_PREVENT = 287
    AMBIENT_POLLINATE = 288
    BEEHIVE_DRIP = 289
    BEEHIVE_ENTER = 290
    BEEHIVE_EXIT = 291
    BEEHIVE_WORK = 292
    BEEHIVE_SHEAR = 293
    HONEYBOTTLE_DRINK = 294
    AMBIENT_CAVE = 295
    RETREAT = 296
    CONVERT_TO_ZOMBIFIED = 297
    ADMIRE = 298
    STEP_LAVA = 299
    TEMPT = 300
    PANIC = 301
    ANGRY = 302
    AMBIENT_MOOD_WARPED_FOREST = 303
    AMBIENT_MOOD_SOULSAND_VALLEY = 304
    AMBIENT_MOOD_NETHER_WASTES = 305
    AMBIENT_MOOD_BASALT_DELTAS = 306
    AMBIENT_MOOD_CRIMSON_FOREST = 307
    RESPAWN_ANCHOR_CHARGE = 308
    RESPAWN_ANCHOR_DEPLETE = 309
    RESPAWN_ANCHOR_SET_SPAWN = 310
    RESPAWN_ANCHOR_AMBIENT = 311
    SOUL_ESCAPE_QUIET = 312
    SOUL_ESCAPE_LOUD = 313
    RECORD_PIGSTEP = 314
    LINK_COMPASS_TO_LODESTONE = 315
    USE_SMITHING_TABLE = 316
    EQUIP_NETHERITE = 317
    AMBIENT_LOOP_WARPED_FOREST = 318
    AMBIENT_LOOP_SOULSAND_VALLEY = 319
    AMBIENT_LOOP_NETHER_WASTES = 320
    AMBIENT_LOOP_BASALT_DELTAS = 321
    AMBIENT_LOOP_CRIMSON_FOREST = 322
    AMBIENT_ADDITION_WARPED_FOREST = 323
    AMBIENT_ADDITION_SOULSAND_VALLEY = 324
    AMBIENT_ADDITION_NETHER_WASTES = 325
    AMBIENT_ADDITION_BASALT_DELTAS = 326
    AMBIENT_ADDITION_CRIMSON_FOREST = 327
    SCULK_SENSOR_POWER_ON = 328
    SCULK_SENSOR_POWER_OFF = 329
    BUCKET_FILL_POWDER_SNOW = 330
    BUCKET_EMPTY_POWDER_SNOW = 331
    POINTED_DRIPSTONE_CAULDRON_DRIP_WATER = 332
    POINTED_DRIPSTONE_CAULDRON_DRIP_LAVA = 333
    POINTED_DRIPSTONE_DRIP_WATER = 334
    POINTED_DRIPSTONE_DRIP_LAVA = 335
    CAVE_VINES_PICK_BERRIES = 336
    BIG_DRIPLEAF_TILT_DOWN = 337
    BIG_DRIPLEAF_TILT_UP = 338
    COPPER_WAX_ON = 339
    COPPER_WAX_OFF = 340
    SCRAPE = 341
    PLAYER_HURT_DROWN = 342
    PLAYER_HURT_ON_FIRE = 343
    PLAYER_HURT_FREEZE = 344
    USE_SPYGLASS = 345
    STOP_USING_SPYGLASS = 346
    AMETHYST_BLOCK_CHIME = 347
    AMBIENT_SCREAMER = 348
    HURT_SCREAMER = 349
    DEATH_SCREAMER = 350
    MILK_SCREAMER = 351
    JUMP_TO_BLOCK = 352
    PRE_RAM = 353
    PRE_RAM_SCREAMER = 354
    RAM_IMPACT = 355
    RAM_IMPACT_SCREAMER = 356
    SQUID_INK_SQUIRT = 357
    GLOW_SQUID_INK_SQUIRT = 358
    CONVERT_TO_STRAY = 359
    CAKE_ADD_CANDLE = 360
    EXTINGUISH_CANDLE = 361
    AMBIENT_CANDLE = 362
    BLOCK_CLICK = 363
    BLOCK_CLICK_FAIL = 364
    SCULK_CATALYST_BLOOM = 365
    SCULK_SHRIEKER_SHRIEK = 366
    NEARBY_CLOSE = 367
    NEARBY_CLOSER = 368
    NEARBY_CLOSEST = 369
    AGITATED = 370
    RECORD_OTHERSIDE = 371
    TONGUE = 372
    CRACK_IRON_GOLEM = 373
    REPAIR_IRON_GOLEM = 374
    LISTENING = 375
    HEARTBEAT = 376
    HORN_BREAK = 377
    SCULK_SPREAD = 379
    SCULK_CHARGE = 380
    SCULK_SENSOR_PLACE = 381
    SCULK_SHRIEKER_PLACE = 382
    GOAT_CALL0 = 383
    GOAT_CALL1 = 384
    GOAT_CALL2 = 385
    GOAT_CALL3 = 386
    GOAT_CALL4 = 387
    GOAT_CALL5 = 388
    GOAT_CALL6 = 389
    GOAT_CALL7 = 390
    IMITATE_WARDEN = 426
    LISTENING_ANGRY = 427
    ITEM_GIVEN = 428
    ITEM_TAKEN = 429
    DISAPPEARED = 430
    REAPPEARED = 431
    DRINK_MILK = 432
    FROGSPAWN_HATCHED = 433
    LAY_SPAWN = 434
    FROGSPAWN_BREAK = 435
    SONIC_BOOM = 436
    SONIC_CHARGE = 437
    ITEM_THROWN = 438
    RECORD5 = 439
    CONVERT_TO_FROG = 440
    RECORD_PLAYING = 441
    ENCHANTING_TABLE_USE = 442
    STEP_SAND = 443
    DASH_READY = 444
    BUNDLE_DROP_CONTENTS = 445
    BUNDLE_INSERT = 446
    BUNDLE_REMOVE_ONE = 447
    PRESSURE_PLATE_CLICK_OFF = 448
    PRESSURE_PLATE_CLICK_ON = 449
    BUTTON_CLICK_OFF = 450
    BUTTON_CLICK_ON = 451
    DOOR_OPEN = 452
    DOOR_CLOSE = 453
    TRAPDOOR_OPEN = 454
    TRAPDOOR_CLOSE = 455
    FENCE_GATE_OPEN = 456
    FENCE_GATE_CLOSE = 457
    INSERT = 458
    PICKUP = 459
    INSERT_ENCHANTED = 460
    PICKUP_ENCHANTED = 461
    BRUSH = 462
    BRUSH_COMPLETED = 463
    SHATTER_DECORATED_POT = 464
    BREAK_DECORATED_POT = 465
    SNIFFER_EGG_CRACK = 466
    SNIFFER_EGG_HATCHED = 467
    WAXED_SIGN_INTERACT_FAIL = 468
    RECORD_RELIC = 469
    BUMP = 470
    PUMPKIN_CARVE = 471
    CONVERT_HUSK_TO_ZOMBIE = 472
    PIG_DEATH = 473
    HOGLIN_CONVERT_TO_ZOMBIFIED = 474
    AMBIENT_UNDERWATER_ENTER = 475
    AMBIENT_UNDERWATER_EXIT = 476
    BOTTLE_FILL = 477
    BOTTLE_EMPTY = 478
    CRAFTER_CRAFT = 479
    CRAFTER_FAIL = 480
    DECORATED_POT_INSERT = 481
    DECORATED_POT_INSERT_FAIL = 482
    CRAFTER_DISABLE_SLOT = 483
    TRIAL_SPAWNER_OPEN_SHUTTER = 484
    TRIAL_SPAWNER_EJECT_ITEM = 485
    TRIAL_SPAWNER_DETECT_PLAYER = 486
    TRIAL_SPAWNER_SPAWN_MOB = 487
    TRIAL_SPAWNER_CLOSE_SHUTTER = 488
    TRIAL_SPAWNER_AMBIENT = 489
    COPPER_BULB_TURN_ON = 490
    COPPER_BULB_TURN_OFF = 491
    AMBIENT_IN_AIR = 492
    BREEZE_WIND_CHARGE_BURST = 493
    IMITATE_BREEZE = 494
    ARMADILLO_BRUSH = 495
    ARMADILLO_SCUTE_DROP = 496
    EQUIP_WOLF = 497
    UNEQUIP_WOLF = 498
    REFLECT = 499
    VAULT_OPEN_SHUTTER = 500
    VAULT_CLOSE_SHUTTER = 501
    VAULT_EJECT_ITEM = 502
    VAULT_INSERT_ITEM = 503
    VAULT_INSERT_ITEM_FAIL = 504
    VAULT_AMBIENT = 505
    VAULT_ACTIVATE = 506
    VAULT_DEACTIVATE = 507
    HURT_REDUCED = 508
    WIND_CHARGE_BURST = 509
    IMITATE_BOGGED = 510
    WOLF_ARMOR_CRACK = 511
    WOLF_ARMOR_BREAK = 512
    WOLF_ARMOR_REPAIR = 513
    MACE_SMASH_AIR = 514
    MACE_SMASH_GROUND = 515
    TRIAL_SPAWNER_CHARGE_ACTIVATE = 516
    TRIAL_SPAWNER_AMBIENT_OMINOUS = 517
    OMINOUS_ITEM_SPAWNER_SPAWN_ITEM = 518
    OMINOUS_BOTTLE_END_USE = 519
    MACE_HEAVY_SMASH_GROUND = 520
    OMINOUS_ITEM_SPAWNER_SPAWN_ITEM_BEGIN = 521
    APPLY_EFFECT_BAD_OMEN = 523
    APPLY_EFFECT_RAID_OMEN = 524
    APPLY_EFFECT_TRIAL_OMEN = 525
    OMINOUS_ITEM_SPAWNER_ABOUT_TO_SPAWN_ITEM = 526
    RECORD_CREATOR = 527
    RECORD_CREATOR_MUSIC_BOX = 528
    RECORD_PRECIPICE = 529
    VAULT_REJECT_REWARDED_PLAYER = 530
    IMITATE_DROWNED = 531
    IMITATE_CREAKING = 532
    BUNDLE_INSERT_FAIL = 533
    SPONGE_ABSORB = 534
    CREAKING_HEART_TRAIL = 536
    CREAKING_HEART_SPAWN = 537
    ACTIVATE = 538
    DEACTIVATE = 539
    FREEZE = 540
    UNFREEZE = 541
    OPEN = 542
    OPEN_LONG = 543
    CLOSE = 544
    CLOSE_LONG = 545
    IMITATE_PHANTOM = 546
    IMITATE_ZOGLIN = 547
    IMITATE_GUARDIAN = 548
    IMITATE_RAVAGER = 549
    IMITATE_PILLAGER = 550
    PLACE_IN_WATER = 551
    STATE_CHANGE = 552
    IMITATE_HAPPY_GHAST = 553
    UNEQUIP_GENERIC = 554
    RECORD_TEARS = 555
    THE_END_LIGHT_FLASH = 556
    LEAD_LEASH = 557
    LEAD_UNLEASH = 558
    LEAD_BREAK = 559
    UNSADDLE = 560
    EQUIP_COPPER = 561
    RECORD_LAVA_CHICKEN = 562
    PLACE_ITEM = 563
    SINGLE_ITEM_SWAP = 564
    MULTI_ITEM_SWAP = 565
    UNDEFINED_V860 = 566
    # Since v898
    LUNGE1 = 566
    LUNGE2 = 567
    LUNGE3 = 568
    ATTACK_CRITICAL = 569
    SPEAR_ATTACK_HIT = 570
    SPEAR_ATTACK_MISS = 571
    WOODEN_SPEAR_ATTACK_HIT = 572
    WOODEN_SPEAR_ATTACK_MISS = 573
    IMITATE_PARCHED = 574
    IMITATE_CAMEL_HUSK = 575
    SPEAR_USE = 576
    WOODEN_SPEAR_USE = 577
    UNDEFINED_V898 = 578
    # Since v924
    SADDLE_IN_WATER = 578
    STONE_SPEAR_ATTACK_HIT = 579
    IRON_SPEAR_ATTACK_HIT = 580
    COPPER_SPEAR_ATTACK_HIT = 581
    GOLDEN_SPEAR_ATTACK_HIT = 582
    DIAMOND_SPEAR_ATTACK_HIT = 583
    NETHERITE_SPEAR_ATTACK_HIT = 584
    STONE_SPEAR_ATTACK_MISS = 585
    IRON_SPEAR_ATTACK_MISS = 586
    COPPER_SPEAR_ATTACK_MISS = 587
    GOLDEN_SPEAR_ATTACK_MISS = 588
    DIAMOND_SPEAR_ATTACK_MISS = 589
    NETHERITE_SPEAR_ATTACK_MISS = 590
    STONE_SPEAR_USE = 591
    IRON_SPEAR_USE = 592
    COPPER_SPEAR_USE = 593
    GOLDEN_SPEAR_USE = 594
    DIAMOND_SPEAR_USE = 595
    NETHERITE_SPEAR_USE = 596
    UNDEFINED_V924 = 597
    # Since v944
    PAUSE_GROWTH = 597
    RESET_GROWTH = 598
    UNDEFINED = 599
    UNDEFINED_V944 = 599


class MapItemTrackedActorType(enum.IntEnum):
    """MapItemTrackedActor::Type."""

    ENTITY = 0
    BLOCK_ENTITY = 1
    OTHER = 2
