mirror of
https://github.com/Steffo99/lihzahrd.git
synced 2024-11-21 15:44:24 +00:00
Parse mob data
This commit is contained in:
parent
d9f7afe199
commit
7fac0d3be5
8 changed files with 724 additions and 15 deletions
5
lihzahrd/entities/__init__.py
Normal file
5
lihzahrd/entities/__init__.py
Normal file
|
@ -0,0 +1,5 @@
|
|||
from .npc import NPC
|
||||
from .mob import Mob
|
||||
from .entitytype import EntityType
|
||||
|
||||
__all__ = ["NPC", "Mob", "EntityType"]
|
654
lihzahrd/entities/entitytype.py
Normal file
654
lihzahrd/entities/entitytype.py
Normal file
|
@ -0,0 +1,654 @@
|
|||
import enum
|
||||
|
||||
|
||||
class EntityType(enum.IntEnum):
|
||||
"""An enumeration of all entity types.
|
||||
|
||||
From https://github.com/tModLoader/tModLoader/wiki/Vanilla-NPC-IDs ."""
|
||||
BIG_HORNET_STINGY = -65
|
||||
LITTLE_HORNET_STINGY = -64
|
||||
BIG_HORNET_SPIKEY = -63
|
||||
LITTLE_HORNET_SPIKEY = -62
|
||||
BIG_HORNET_LEAFY = -61
|
||||
LITTLE_HORNET_LEAFY = -60
|
||||
BIG_HORNET_HONEY = -59
|
||||
LITTLE_HORNET_HONEY = -58
|
||||
BIG_HORNET_FATTY = -57
|
||||
LITTLE_HORNET_FATTY = -56
|
||||
BIG_RAIN_ZOMBIE = -55
|
||||
SMALL_RAIN_ZOMBIE = -54
|
||||
BIG_PANTLESS_SKELETON = -53
|
||||
SMALL_PANTLESS_SKELETON = -52
|
||||
BIG_MISASSEMBLED_SKELETON = -51
|
||||
SMALL_MISASSEMBLED_SKELETON = -50
|
||||
BIG_HEADACHE_SKELETON = -49
|
||||
SMALL_HEADACHE_SKELETON = -48
|
||||
BIG_SKELETON = -47
|
||||
SMALL_SKELETON = -46
|
||||
BIG_FEMALE_ZOMBIE = -45
|
||||
SMALL_FEMALE_ZOMBIE = -44
|
||||
DEMON_EYE2 = -43
|
||||
PURPLE_EYE2 = -42
|
||||
GREEN_EYE2 = -41
|
||||
DIALATED_EYE2 = -40
|
||||
SLEEPY_EYE2 = -39
|
||||
CATARACT_EYE2 = -38
|
||||
BIG_TWIGGY_ZOMBIE = -37
|
||||
SMALL_TWIGGY_ZOMBIE = -36
|
||||
BIG_SWAMP_ZOMBIE = -35
|
||||
SMALL_SWAMP_ZOMBIE = -34
|
||||
BIG_SLIMED_ZOMBIE = -33
|
||||
SMALL_SLIMED_ZOMBIE = -32
|
||||
BIG_PINCUSHION_ZOMBIE = -31
|
||||
SMALL_PINCUSHION_ZOMBIE = -30
|
||||
BIG_BALD_ZOMBIE = -29
|
||||
SMALL_BALD_ZOMBIE = -28
|
||||
BIG_ZOMBIE = -27
|
||||
SMALL_ZOMBIE = -26
|
||||
BIG_CRIMSLIME = -25
|
||||
LITTLE_CRIMSLIME = -24
|
||||
BIG_CRIMERA = -23
|
||||
LITTLE_CRIMERA = -22
|
||||
GIANT_MOSS_HORNET = -21
|
||||
BIG_MOSS_HORNET = -20
|
||||
LITTLE_MOSS_HORNET = -19
|
||||
TINY_MOSS_HORNET = -18
|
||||
BIG_STINGER = -17
|
||||
LITTLE_STINGER = -16
|
||||
HEAVY_SKELETON = -15
|
||||
BIG_BONED = -14
|
||||
SHORT_BONES = -13
|
||||
BIG_EATER = -12
|
||||
LITTLE_EATER = -11
|
||||
JUNGLE_SLIME = -10
|
||||
YELLOW_SLIME = -9
|
||||
RED_SLIME = -8
|
||||
PURPLE_SLIME = -7
|
||||
BLACK_SLIME = -6
|
||||
BABY_SLIME = -5
|
||||
PINKY = -4
|
||||
GREEN_SLIME = -3
|
||||
SLIMER2 = -2
|
||||
SLIMELING = -1
|
||||
BLUE_SLIME = 1
|
||||
DEMON_EYE = 2
|
||||
ZOMBIE = 3
|
||||
EYEOF_CTHULHU = 4
|
||||
SERVANTOF_CTHULHU = 5
|
||||
EATEROF_SOULS = 6
|
||||
DEVOURER_HEAD = 7
|
||||
DEVOURER_BODY = 8
|
||||
DEVOURER_TAIL = 9
|
||||
GIANT_WORM_HEAD = 10
|
||||
GIANT_WORM_BODY = 11
|
||||
GIANT_WORM_TAIL = 12
|
||||
EATEROF_WORLDS_HEAD = 13
|
||||
EATEROF_WORLDS_BODY = 14
|
||||
EATEROF_WORLDS_TAIL = 15
|
||||
MOTHER_SLIME = 16
|
||||
MERCHANT = 17
|
||||
NURSE = 18
|
||||
ARMS_DEALER = 19
|
||||
DRYAD = 20
|
||||
SKELETON = 21
|
||||
GUIDE = 22
|
||||
METEOR_HEAD = 23
|
||||
FIRE_IMP = 24
|
||||
BURNING_SPHERE = 25
|
||||
GOBLIN_PEON = 26
|
||||
GOBLIN_THIEF = 27
|
||||
GOBLIN_WARRIOR = 28
|
||||
GOBLIN_SORCERER = 29
|
||||
CHAOS_BALL = 30
|
||||
ANGRY_BONES = 31
|
||||
DARK_CASTER = 32
|
||||
WATER_SPHERE = 33
|
||||
CURSED_SKULL = 34
|
||||
SKELETRON_HEAD = 35
|
||||
SKELETRON_HAND = 36
|
||||
OLD_MAN = 37
|
||||
DEMOLITIONIST = 38
|
||||
BONE_SERPENT_HEAD = 39
|
||||
BONE_SERPENT_BODY = 40
|
||||
BONE_SERPENT_TAIL = 41
|
||||
HORNET = 42
|
||||
MAN_EATER = 43
|
||||
UNDEAD_MINER = 44
|
||||
TIM = 45
|
||||
BUNNY = 46
|
||||
CORRUPT_BUNNY = 47
|
||||
HARPY = 48
|
||||
CAVE_BAT = 49
|
||||
KING_SLIME = 50
|
||||
JUNGLE_BAT = 51
|
||||
DOCTOR_BONES = 52
|
||||
THE_GROOM = 53
|
||||
CLOTHIER = 54
|
||||
GOLDFISH = 55
|
||||
SNATCHER = 56
|
||||
CORRUPT_GOLDFISH = 57
|
||||
PIRANHA = 58
|
||||
LAVA_SLIME = 59
|
||||
HELLBAT = 60
|
||||
VULTURE = 61
|
||||
DEMON = 62
|
||||
BLUE_JELLYFISH = 63
|
||||
PINK_JELLYFISH = 64
|
||||
SHARK = 65
|
||||
VOODOO_DEMON = 66
|
||||
CRAB = 67
|
||||
DUNGEON_GUARDIAN = 68
|
||||
ANTLION = 69
|
||||
SPIKE_BALL = 70
|
||||
DUNGEON_SLIME = 71
|
||||
BLAZING_WHEEL = 72
|
||||
GOBLIN_SCOUT = 73
|
||||
BIRD = 74
|
||||
PIXIE = 75
|
||||
NONE2 = 76
|
||||
ARMORED_SKELETON = 77
|
||||
MUMMY = 78
|
||||
DARK_MUMMY = 79
|
||||
LIGHT_MUMMY = 80
|
||||
CORRUPT_SLIME = 81
|
||||
WRAITH = 82
|
||||
CURSED_HAMMER = 83
|
||||
ENCHANTED_SWORD = 84
|
||||
MIMIC = 85
|
||||
UNICORN = 86
|
||||
WYVERN_HEAD = 87
|
||||
WYVERN_LEGS = 88
|
||||
WYVERN_BODY = 89
|
||||
WYVERN_BODY2 = 90
|
||||
WYVERN_BODY3 = 91
|
||||
WYVERN_TAIL = 92
|
||||
GIANT_BAT = 93
|
||||
CORRUPTOR = 94
|
||||
DIGGER_HEAD = 95
|
||||
DIGGER_BODY = 96
|
||||
DIGGER_TAIL = 97
|
||||
SEEKER_HEAD = 98
|
||||
SEEKER_BODY = 99
|
||||
SEEKER_TAIL = 100
|
||||
CLINGER = 101
|
||||
ANGLER_FISH = 102
|
||||
GREEN_JELLYFISH = 103
|
||||
WEREWOLF = 104
|
||||
BOUND_GOBLIN = 105
|
||||
BOUND_WIZARD = 106
|
||||
GOBLIN_TINKERER = 107
|
||||
WIZARD = 108
|
||||
CLOWN = 109
|
||||
SKELETON_ARCHER = 110
|
||||
GOBLIN_ARCHER = 111
|
||||
VILE_SPIT = 112
|
||||
WALLOF_FLESH = 113
|
||||
WALLOF_FLESH_EYE = 114
|
||||
THE_HUNGRY = 115
|
||||
THE_HUNGRY_II = 116
|
||||
LEECH_HEAD = 117
|
||||
LEECH_BODY = 118
|
||||
LEECH_TAIL = 119
|
||||
CHAOS_ELEMENTAL = 120
|
||||
SLIMER = 121
|
||||
GASTROPOD = 122
|
||||
BOUND_MECHANIC = 123
|
||||
MECHANIC = 124
|
||||
RETINAZER = 125
|
||||
SPAZMATISM = 126
|
||||
SKELETRON_PRIME = 127
|
||||
PRIME_CANNON = 128
|
||||
PRIME_SAW = 129
|
||||
PRIME_VICE = 130
|
||||
PRIME_LASER = 131
|
||||
BALD_ZOMBIE = 132
|
||||
WANDERING_EYE = 133
|
||||
THE_DESTROYER = 134
|
||||
THE_DESTROYER_BODY = 135
|
||||
THE_DESTROYER_TAIL = 136
|
||||
ILLUMINANT_BAT = 137
|
||||
ILLUMINANT_SLIME = 138
|
||||
PROBE = 139
|
||||
POSSESSED_ARMOR = 140
|
||||
TOXIC_SLUDGE = 141
|
||||
SANTA_CLAUS = 142
|
||||
SNOWMAN_GANGSTA = 143
|
||||
MISTER_STABBY = 144
|
||||
SNOW_BALLA = 145
|
||||
NONE3 = 146
|
||||
ICE_SLIME = 147
|
||||
PENGUIN = 148
|
||||
PENGUIN_BLACK = 149
|
||||
ICE_BAT = 150
|
||||
LAVABAT = 151
|
||||
GIANT_FLYING_FOX = 152
|
||||
GIANT_TORTOISE = 153
|
||||
ICE_TORTOISE = 154
|
||||
WOLF = 155
|
||||
RED_DEVIL = 156
|
||||
ARAPAIMA = 157
|
||||
VAMPIRE_BAT = 158
|
||||
VAMPIRE = 159
|
||||
TRUFFLE = 160
|
||||
ZOMBIE_ESKIMO = 161
|
||||
FRANKENSTEIN = 162
|
||||
BLACK_RECLUSE = 163
|
||||
WALL_CREEPER = 164
|
||||
WALL_CREEPER_WALL = 165
|
||||
SWAMP_THING = 166
|
||||
UNDEAD_VIKING = 167
|
||||
CORRUPT_PENGUIN = 168
|
||||
ICE_ELEMENTAL = 169
|
||||
PIGRON_CORRUPTION = 170
|
||||
PIGRON_HALLOW = 171
|
||||
RUNE_WIZARD = 172
|
||||
CRIMERA = 173
|
||||
HERPLING = 174
|
||||
ANGRY_TRAPPER = 175
|
||||
MOSS_HORNET = 176
|
||||
DERPLING = 177
|
||||
STEAMPUNKER = 178
|
||||
CRIMSON_AXE = 179
|
||||
PIGRON_CRIMSON = 180
|
||||
FACE_MONSTER = 181
|
||||
FLOATY_GROSS = 182
|
||||
CRIMSLIME = 183
|
||||
SPIKED_ICE_SLIME = 184
|
||||
SNOW_FLINX = 185
|
||||
PINCUSHION_ZOMBIE = 186
|
||||
SLIMED_ZOMBIE = 187
|
||||
SWAMP_ZOMBIE = 188
|
||||
TWIGGY_ZOMBIE = 189
|
||||
CATARACT_EYE = 190
|
||||
SLEEPY_EYE = 191
|
||||
DIALATED_EYE = 192
|
||||
GREEN_EYE = 193
|
||||
PURPLE_EYE = 194
|
||||
LOST_GIRL = 195
|
||||
NYMPH = 196
|
||||
ARMORED_VIKING = 197
|
||||
LIHZAHRD = 198
|
||||
LIHZAHRD_CRAWLER = 199
|
||||
FEMALE_ZOMBIE = 200
|
||||
HEADACHE_SKELETON = 201
|
||||
MISASSEMBLED_SKELETON = 202
|
||||
PANTLESS_SKELETON = 203
|
||||
SPIKED_JUNGLE_SLIME = 204
|
||||
MOTH = 205
|
||||
ICY_MERMAN = 206
|
||||
DYE_TRADER = 207
|
||||
PARTY_GIRL = 208
|
||||
CYBORG = 209
|
||||
BEE = 210
|
||||
BEE_SMALL = 211
|
||||
PIRATE_DECKHAND = 212
|
||||
PIRATE_CORSAIR = 213
|
||||
PIRATE_DEADEYE = 214
|
||||
PIRATE_CROSSBOWER = 215
|
||||
PIRATE_CAPTAIN = 216
|
||||
COCHINEAL_BEETLE = 217
|
||||
CYAN_BEETLE = 218
|
||||
LAC_BEETLE = 219
|
||||
SEA_SNAIL = 220
|
||||
SQUID = 221
|
||||
QUEEN_BEE = 222
|
||||
ZOMBIE_RAINCOAT = 223
|
||||
FLYING_FISH = 224
|
||||
UMBRELLA_SLIME = 225
|
||||
FLYING_SNAKE = 226
|
||||
PAINTER = 227
|
||||
WITCH_DOCTOR = 228
|
||||
PIRATE = 229
|
||||
GOLDFISH_WALKER = 230
|
||||
HORNET_FATTY = 231
|
||||
HORNET_HONEY = 232
|
||||
HORNET_LEAFY = 233
|
||||
HORNET_SPIKEY = 234
|
||||
HORNET_STINGY = 235
|
||||
JUNGLE_CREEPER = 236
|
||||
JUNGLE_CREEPER_WALL = 237
|
||||
BLACK_RECLUSE_WALL = 238
|
||||
BLOOD_CRAWLER = 239
|
||||
BLOOD_CRAWLER_WALL = 240
|
||||
BLOOD_FEEDER = 241
|
||||
BLOOD_JELLY = 242
|
||||
ICE_GOLEM = 243
|
||||
RAINBOW_SLIME = 244
|
||||
GOLEM = 245
|
||||
GOLEM_HEAD = 246
|
||||
GOLEM_FIST_LEFT = 247
|
||||
GOLEM_FIST_RIGHT = 248
|
||||
GOLEM_HEAD_FREE = 249
|
||||
ANGRY_NIMBUS = 250
|
||||
EYEZOR = 251
|
||||
PARROT = 252
|
||||
REAPER = 253
|
||||
ZOMBIE_MUSHROOM = 254
|
||||
ZOMBIE_MUSHROOM_HAT = 255
|
||||
FUNGO_FISH = 256
|
||||
ANOMURA_FUNGUS = 257
|
||||
MUSHI_LADYBUG = 258
|
||||
FUNGI_BULB = 259
|
||||
GIANT_FUNGI_BULB = 260
|
||||
FUNGI_SPORE = 261
|
||||
PLANTERA = 262
|
||||
PLANTERAS_HOOK = 263
|
||||
PLANTERAS_TENTACLE = 264
|
||||
SPORE = 265
|
||||
BRAINOF_CTHULHU = 266
|
||||
CREEPER = 267
|
||||
ICHOR_STICKER = 268
|
||||
RUSTY_ARMORED_BONES_AXE = 269
|
||||
RUSTY_ARMORED_BONES_FLAIL = 270
|
||||
RUSTY_ARMORED_BONES_SWORD = 271
|
||||
RUSTY_ARMORED_BONES_SWORD_NO_ARMOR = 272
|
||||
BLUE_ARMORED_BONES = 273
|
||||
BLUE_ARMORED_BONES_MACE = 274
|
||||
BLUE_ARMORED_BONES_NO_PANTS = 275
|
||||
BLUE_ARMORED_BONES_SWORD = 276
|
||||
HELL_ARMORED_BONES = 277
|
||||
HELL_ARMORED_BONES_SPIKE_SHIELD = 278
|
||||
HELL_ARMORED_BONES_MACE = 279
|
||||
HELL_ARMORED_BONES_SWORD = 280
|
||||
RAGGED_CASTER = 281
|
||||
RAGGED_CASTER_OPEN_COAT = 282
|
||||
NECROMANCER = 283
|
||||
NECROMANCER_ARMORED = 284
|
||||
DIABOLIST_RED = 285
|
||||
DIABOLIST_WHITE = 286
|
||||
BONE_LEE = 287
|
||||
DUNGEON_SPIRIT = 288
|
||||
GIANT_CURSED_SKULL = 289
|
||||
PALADIN = 290
|
||||
SKELETON_SNIPER = 291
|
||||
TACTICAL_SKELETON = 292
|
||||
SKELETON_COMMANDO = 293
|
||||
ANGRY_BONES_BIG = 294
|
||||
ANGRY_BONES_BIG_MUSCLE = 295
|
||||
ANGRY_BONES_BIG_HELMET = 296
|
||||
BIRD_BLUE = 297
|
||||
BIRD_RED = 298
|
||||
SQUIRREL = 299
|
||||
MOUSE = 300
|
||||
RAVEN = 301
|
||||
SLIME_MASKED = 302
|
||||
BUNNY_SLIMED = 303
|
||||
HOPPIN_JACK = 304
|
||||
SCARECROW1 = 305
|
||||
SCARECROW2 = 306
|
||||
SCARECROW3 = 307
|
||||
SCARECROW4 = 308
|
||||
SCARECROW5 = 309
|
||||
SCARECROW6 = 310
|
||||
SCARECROW7 = 311
|
||||
SCARECROW8 = 312
|
||||
SCARECROW9 = 313
|
||||
SCARECROW10 = 314
|
||||
HEADLESS_HORSEMAN = 315
|
||||
GHOST = 316
|
||||
DEMON_EYE_OWL = 317
|
||||
DEMON_EYE_SPACESHIP = 318
|
||||
ZOMBIE_DOCTOR = 319
|
||||
ZOMBIE_SUPERMAN = 320
|
||||
ZOMBIE_PIXIE = 321
|
||||
SKELETON_TOP_HAT = 322
|
||||
SKELETON_ASTONAUT = 323
|
||||
SKELETON_ALIEN = 324
|
||||
MOURNING_WOOD = 325
|
||||
SPLINTERLING = 326
|
||||
PUMPKING = 327
|
||||
PUMPKING_BLADE = 328
|
||||
HELLHOUND = 329
|
||||
POLTERGEIST = 330
|
||||
ZOMBIE_XMAS = 331
|
||||
ZOMBIE_SWEATER = 332
|
||||
SLIME_RIBBON_WHITE = 333
|
||||
SLIME_RIBBON_YELLOW = 334
|
||||
SLIME_RIBBON_GREEN = 335
|
||||
SLIME_RIBBON_RED = 336
|
||||
BUNNY_XMAS = 337
|
||||
ZOMBIE_ELF = 338
|
||||
ZOMBIE_ELF_BEARD = 339
|
||||
ZOMBIE_ELF_GIRL = 340
|
||||
PRESENT_MIMIC = 341
|
||||
GINGERBREAD_MAN = 342
|
||||
YETI = 343
|
||||
EVERSCREAM = 344
|
||||
ICE_QUEEN = 345
|
||||
SANTA_NK1 = 346
|
||||
ELF_COPTER = 347
|
||||
NUTCRACKER = 348
|
||||
NUTCRACKER_SPINNING = 349
|
||||
ELF_ARCHER = 350
|
||||
KRAMPUS = 351
|
||||
FLOCKO = 352
|
||||
STYLIST = 353
|
||||
WEBBED_STYLIST = 354
|
||||
FIREFLY = 355
|
||||
BUTTERFLY = 356
|
||||
WORM = 357
|
||||
LIGHTNING_BUG = 358
|
||||
SNAIL = 359
|
||||
GLOWING_SNAIL = 360
|
||||
FROG = 361
|
||||
DUCK = 362
|
||||
DUCK2 = 363
|
||||
DUCK_WHITE = 364
|
||||
DUCK_WHITE2 = 365
|
||||
SCORPION_BLACK = 366
|
||||
SCORPION = 367
|
||||
TRAVELLING_MERCHANT = 368
|
||||
ANGLER = 369
|
||||
DUKE_FISHRON = 370
|
||||
DETONATING_BUBBLE = 371
|
||||
SHARKRON = 372
|
||||
SHARKRON2 = 373
|
||||
TRUFFLE_WORM = 374
|
||||
TRUFFLE_WORM_DIGGER = 375
|
||||
SLEEPING_ANGLER = 376
|
||||
GRASSHOPPER = 377
|
||||
CHATTERING_TEETH_BOMB = 378
|
||||
CULTIST_ARCHER_BLUE = 379
|
||||
CULTIST_ARCHER_WHITE = 380
|
||||
BRAIN_SCRAMBLER = 381
|
||||
RAY_GUNNER = 382
|
||||
MARTIAN_OFFICER = 383
|
||||
FORCE_BUBBLE = 384
|
||||
GRAY_GRUNT = 385
|
||||
MARTIAN_ENGINEER = 386
|
||||
MARTIAN_TURRET = 387
|
||||
MARTIAN_DRONE = 388
|
||||
GIGA_ZAPPER = 389
|
||||
SCUTLIX_RIDER = 390
|
||||
SCUTLIX = 391
|
||||
MARTIAN_SAUCER = 392
|
||||
MARTIAN_SAUCER_TURRET = 393
|
||||
MARTIAN_SAUCER_CANNON = 394
|
||||
MARTIAN_SAUCER_CORE = 395
|
||||
MOON_LORD_HEAD = 396
|
||||
MOON_LORD_HAND = 397
|
||||
MOON_LORD_CORE = 398
|
||||
MARTIAN_PROBE = 399
|
||||
MOON_LORD_FREE_EYE = 400
|
||||
MOON_LORD_LEECH_BLOB = 401
|
||||
STARDUST_WORM_HEAD = 402
|
||||
STARDUST_WORM_BODY = 403
|
||||
STARDUST_WORM_TAIL = 404
|
||||
STARDUST_CELL_BIG = 405
|
||||
STARDUST_CELL_SMALL = 406
|
||||
STARDUST_JELLYFISH_BIG = 407
|
||||
STARDUST_JELLYFISH_SMALL = 408
|
||||
STARDUST_SPIDER_BIG = 409
|
||||
STARDUST_SPIDER_SMALL = 410
|
||||
STARDUST_SOLDIER = 411
|
||||
SOLAR_CRAWLTIPEDE_HEAD = 412
|
||||
SOLAR_CRAWLTIPEDE_BODY = 413
|
||||
SOLAR_CRAWLTIPEDE_TAIL = 414
|
||||
SOLAR_DRAKOMIRE = 415
|
||||
SOLAR_DRAKOMIRE_RIDER = 416
|
||||
SOLAR_SROLLER = 417
|
||||
SOLAR_CORITE = 418
|
||||
SOLAR_SOLENIAN = 419
|
||||
NEBULA_BRAIN = 420
|
||||
NEBULA_HEADCRAB = 421
|
||||
NEBULA_BEAST = 423
|
||||
NEBULA_SOLDIER = 424
|
||||
VORTEX_RIFLEMAN = 425
|
||||
VORTEX_HORNET_QUEEN = 426
|
||||
VORTEX_HORNET = 427
|
||||
VORTEX_LARVA = 428
|
||||
VORTEX_SOLDIER = 429
|
||||
ARMED_ZOMBIE = 430
|
||||
ARMED_ZOMBIE_ESKIMO = 431
|
||||
ARMED_ZOMBIE_PINCUSSION = 432
|
||||
ARMED_ZOMBIE_SLIMED = 433
|
||||
ARMED_ZOMBIE_SWAMP = 434
|
||||
ARMED_ZOMBIE_TWIGGY = 435
|
||||
ARMED_ZOMBIE_CENX = 436
|
||||
CULTIST_TABLET = 437
|
||||
CULTIST_DEVOTE = 438
|
||||
CULTIST_BOSS = 439
|
||||
CULTIST_BOSS_CLONE = 440
|
||||
GOLD_BIRD = 442
|
||||
GOLD_BUNNY = 443
|
||||
GOLD_BUTTERFLY = 444
|
||||
GOLD_FROG = 445
|
||||
GOLD_GRASSHOPPER = 446
|
||||
GOLD_MOUSE = 447
|
||||
GOLD_WORM = 448
|
||||
BONE_THROWING_SKELETON = 449
|
||||
BONE_THROWING_SKELETON2 = 450
|
||||
BONE_THROWING_SKELETON3 = 451
|
||||
BONE_THROWING_SKELETON4 = 452
|
||||
SKELETON_MERCHANT = 453
|
||||
CULTIST_DRAGON_HEAD = 454
|
||||
CULTIST_DRAGON_BODY1 = 455
|
||||
CULTIST_DRAGON_BODY2 = 456
|
||||
CULTIST_DRAGON_BODY3 = 457
|
||||
CULTIST_DRAGON_BODY4 = 458
|
||||
CULTIST_DRAGON_TAIL = 459
|
||||
BUTCHER = 460
|
||||
CREATURE_FROM_THE_DEEP = 461
|
||||
FRITZ = 462
|
||||
NAILHEAD = 463
|
||||
CRIMSON_BUNNY = 464
|
||||
CRIMSON_GOLDFISH = 465
|
||||
PSYCHO = 466
|
||||
DEADLY_SPHERE = 467
|
||||
DR_MAN_FLY = 468
|
||||
THE_POSSESSED = 469
|
||||
CRIMSON_PENGUIN = 470
|
||||
GOBLIN_SUMMONER = 471
|
||||
SHADOW_FLAME_APPARITION = 472
|
||||
BIG_MIMIC_CORRUPTION = 473
|
||||
BIG_MIMIC_CRIMSON = 474
|
||||
BIG_MIMIC_HALLOW = 475
|
||||
BIG_MIMIC_JUNGLE = 476
|
||||
MOTHRON = 477
|
||||
MOTHRON_EGG = 478
|
||||
MOTHRON_SPAWN = 479
|
||||
MEDUSA = 480
|
||||
GREEK_SKELETON = 481
|
||||
GRANITE_GOLEM = 482
|
||||
GRANITE_FLYER = 483
|
||||
ENCHANTED_NIGHTCRAWLER = 484
|
||||
GRUBBY = 485
|
||||
SLUGGY = 486
|
||||
BUGGY = 487
|
||||
TARGET_DUMMY = 488
|
||||
BLOOD_ZOMBIE = 489
|
||||
DRIPPLER = 490
|
||||
PIRATE_SHIP = 491
|
||||
PIRATE_SHIP_CANNON = 492
|
||||
LUNAR_TOWER_STARDUST = 493
|
||||
CRAWDAD = 494
|
||||
CRAWDAD2 = 495
|
||||
GIANT_SHELLY = 496
|
||||
GIANT_SHELLY2 = 497
|
||||
SALAMANDER = 498
|
||||
SALAMANDER2 = 499
|
||||
SALAMANDER3 = 500
|
||||
SALAMANDER4 = 501
|
||||
SALAMANDER5 = 502
|
||||
SALAMANDER6 = 503
|
||||
SALAMANDER7 = 504
|
||||
SALAMANDER8 = 505
|
||||
SALAMANDER9 = 506
|
||||
LUNAR_TOWER_NEBULA = 507
|
||||
LUNAR_TOWER_VORTEX = 422
|
||||
TAX_COLLECTOR = 441
|
||||
WALKING_ANTLION = 508
|
||||
FLYING_ANTLION = 509
|
||||
DUNE_SPLICER_HEAD = 510
|
||||
DUNE_SPLICER_BODY = 511
|
||||
DUNE_SPLICER_TAIL = 512
|
||||
TOMB_CRAWLER_HEAD = 513
|
||||
TOMB_CRAWLER_BODY = 514
|
||||
TOMB_CRAWLER_TAIL = 515
|
||||
SOLAR_FLARE = 516
|
||||
LUNAR_TOWER_SOLAR = 517
|
||||
SOLAR_SPEARMAN = 518
|
||||
SOLAR_GOOP = 519
|
||||
MARTIAN_WALKER = 520
|
||||
ANCIENT_CULTIST_SQUIDHEAD = 521
|
||||
ANCIENT_LIGHT = 522
|
||||
ANCIENT_DOOM = 523
|
||||
DESERT_GHOUL = 524
|
||||
DESERT_GHOUL_CORRUPTION = 525
|
||||
DESERT_GHOUL_CRIMSON = 526
|
||||
DESERT_GHOUL_HALLOW = 527
|
||||
DESERT_LAMIA_LIGHT = 528
|
||||
DESERT_LAMIA_DARK = 529
|
||||
DESERT_SCORPION_WALK = 530
|
||||
DESERT_SCORPION_WALL = 531
|
||||
DESERT_BEAST = 532
|
||||
DESERT_DJINN = 533
|
||||
DEMON_TAX_COLLECTOR = 534
|
||||
SLIME_SPIKED = 535
|
||||
THE_BRIDE = 536
|
||||
SAND_SLIME = 537
|
||||
SQUIRREL_RED = 538
|
||||
SQUIRREL_GOLD = 539
|
||||
PARTY_BUNNY = 540
|
||||
SAND_ELEMENTAL = 541
|
||||
SAND_SHARK = 542
|
||||
SANDSHARK_CORRUPT = 543
|
||||
SANDSHARK_CRIMSON = 544
|
||||
SANDSHARK_HALLOW = 545
|
||||
TUMBLEWEED = 546
|
||||
DD2ATTACKER_TEST = 547
|
||||
DD2ETERNIA_CRYSTAL = 548
|
||||
DD2LANE_PORTAL = 549
|
||||
DD2BARTENDER = 550
|
||||
DD2BETSY = 551
|
||||
DD2GOBLIN_T1 = 552
|
||||
DD2GOBLIN_T2 = 553
|
||||
DD2GOBLIN_T3 = 554
|
||||
DD2GOBLIN_BOMBER_T1 = 555
|
||||
DD2GOBLIN_BOMBER_T2 = 556
|
||||
DD2GOBLIN_BOMBER_T3 = 557
|
||||
DD2WYVERN_T1 = 558
|
||||
DD2WYVERN_T2 = 559
|
||||
DD2WYVERN_T3 = 560
|
||||
DD2JAVELINST_T1 = 561
|
||||
DD2JAVELINST_T2 = 562
|
||||
DD2JAVELINST_T3 = 563
|
||||
DD2DARK_MAGE_T1 = 564
|
||||
DD2DARK_MAGE_T3 = 565
|
||||
DD2SKELETON_T1 = 566
|
||||
DD2SKELETON_T3 = 567
|
||||
DD2WITHER_BEAST_T2 = 568
|
||||
DD2WITHER_BEAST_T3 = 569
|
||||
DD2DRAKIN_T2 = 570
|
||||
DD2DRAKIN_T3 = 571
|
||||
DD2KOBOLD_WALKER_T2 = 572
|
||||
DD2KOBOLD_WALKER_T3 = 573
|
||||
DD2KOBOLD_FLYER_T2 = 574
|
||||
DD2KOBOLD_FLYER_T3 = 575
|
||||
DD2OGRE_T2 = 576
|
||||
DD2OGRE_T3 = 577
|
||||
DD2LIGHTNING_BUG_T3 = 578
|
||||
BARTENDER_UNCONSCIOUS = 579
|
||||
|
||||
def __repr__(self):
|
||||
return f"{self.__class__.__name__}.{self.name}"
|
18
lihzahrd/entities/mob.py
Normal file
18
lihzahrd/entities/mob.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
import typing
|
||||
from .entitytype import EntityType
|
||||
from ..fileutils import Coordinates
|
||||
|
||||
|
||||
class Mob:
|
||||
"""A Mob somewhere in the world."""
|
||||
def __init__(self,
|
||||
type_: int,
|
||||
position: Coordinates, ):
|
||||
self.type: int = type_
|
||||
"""The type of mob this object represents."""
|
||||
|
||||
self.position: Coordinates = position
|
||||
"""The position of the mob in the game world."""
|
||||
|
||||
def __repr__(self):
|
||||
return f"<Mob {repr(self.type)} at {self.position}>"
|
|
@ -1,18 +1,26 @@
|
|||
import typing
|
||||
from .entitytype import EntityType
|
||||
from ..fileutils import Coordinates
|
||||
|
||||
|
||||
class NPC:
|
||||
"""A NPC somewhere in the world."""
|
||||
def __init__(self,
|
||||
sprite_id: int,
|
||||
type_: EntityType,
|
||||
name: str,
|
||||
position: Coordinates,
|
||||
home: typing.Optional[Coordinates] = None):
|
||||
self.sprite_id: int = sprite_id
|
||||
self.type: EntityType = type_
|
||||
"""The NPC this object represents."""
|
||||
|
||||
self.name: str = name
|
||||
"""The name of this NPC."""
|
||||
|
||||
self.position: Coordinates = position
|
||||
"""The position of the mob in the game world."""
|
||||
|
||||
self.home: typing.Optional[Coordinates] = home
|
||||
"""The coordinates of the home of this NPC, or None if the NPC is homeless."""
|
||||
|
||||
def __repr__(self):
|
||||
return f"<NPC {self.name if self.name else '_'} at {self.position}>"
|
||||
return f"<NPC {repr(self.type)} at {self.position}>"
|
|
@ -8,7 +8,9 @@ class Pointers:
|
|||
chests: int,
|
||||
signs: int,
|
||||
npcs: int,
|
||||
entities: int,
|
||||
tile_entities: int,
|
||||
pressure_plates: int,
|
||||
town_manager: int,
|
||||
footer: int,
|
||||
*unknown):
|
||||
self.file_format: int = 0
|
||||
|
@ -17,6 +19,8 @@ class Pointers:
|
|||
self.chests: int = chests
|
||||
self.signs: int = signs
|
||||
self.npcs: int = npcs
|
||||
self.entities: int = entities
|
||||
self.tile_entities: int = tile_entities
|
||||
self.pressure_plates: int = pressure_plates
|
||||
self.town_manager: int = town_manager
|
||||
self.footer: int = footer
|
||||
self.unknown: typing.List[int] = list(unknown)
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
from .npc import NPC
|
||||
|
||||
__all__ = ["NPC"]
|
|
@ -475,7 +475,6 @@ class BlockType(enum.IntEnum):
|
|||
CONTAINERS2 = 467
|
||||
FAKE_CONTAINERS2 = 468
|
||||
TABLES2 = 469
|
||||
COUNT = 470
|
||||
|
||||
def __repr__(self):
|
||||
return f"{self.__class__.__name__}.{self.name}"
|
||||
|
|
|
@ -6,7 +6,7 @@ from .header import *
|
|||
from .tiles import *
|
||||
from .chests import *
|
||||
from .signs import *
|
||||
from .npcs import *
|
||||
from .entities import *
|
||||
from .timer import Timer
|
||||
|
||||
|
||||
|
@ -45,6 +45,9 @@ class World:
|
|||
cultist_delay: int,
|
||||
tiles: typing.List[typing.List[Tile]],
|
||||
chests: typing.List[Chest],
|
||||
signs: typing.List[Sign],
|
||||
npcs: typing.List[NPC],
|
||||
mobs: typing.List[Mob],
|
||||
unknown_file_format_data: bytearray,
|
||||
unknown_world_header_data: bytearray,
|
||||
unknown_world_tiles_data: bytearray,
|
||||
|
@ -131,9 +134,19 @@ class World:
|
|||
self.anglers_quest: AnglerQuest = anglers_quest
|
||||
"""Information about today's Angler's Quest."""
|
||||
|
||||
self.chests: typing.List[Chest] = chests
|
||||
|
||||
self.tiles: typing.List[typing.List[Tile]] = tiles
|
||||
"""A matrix of all the tiles present in the world."""
|
||||
|
||||
self.chests: typing.List[Chest] = chests
|
||||
"""A list of all the containers (chests, barrels) in the world."""
|
||||
|
||||
self.signs: typing.List[Sign] = signs
|
||||
"""A list of all non-empty signs in the world."""
|
||||
|
||||
self.npcs: typing.List[NPC] = npcs
|
||||
"""A list of all the NPCs currently living in the world, including the Old Man."""
|
||||
|
||||
self.mobs: typing.List[Mob] = mobs
|
||||
|
||||
self.clouds: Clouds = clouds
|
||||
self.cultist_delay: int = cultist_delay
|
||||
|
@ -528,11 +541,12 @@ class World:
|
|||
|
||||
unknown_signs_data = f.read_until(pointers.npcs)
|
||||
|
||||
with Timer("NPCs", display=True):
|
||||
with Timer("Entities", display=True):
|
||||
npcs = []
|
||||
mobs = []
|
||||
|
||||
while f.bool():
|
||||
npc_sprite_id = f.int4()
|
||||
npc_type = EntityType(f.int4())
|
||||
npc_name = f.string()
|
||||
npc_position = Coordinates(f.single(), f.single())
|
||||
is_homeless = f.bool()
|
||||
|
@ -540,12 +554,22 @@ class World:
|
|||
if is_homeless:
|
||||
npc_home = None
|
||||
|
||||
npc = NPC(sprite_id=npc_sprite_id,
|
||||
npc = NPC(type_=npc_type,
|
||||
name=npc_name,
|
||||
position=npc_position,
|
||||
home=npc_home)
|
||||
npcs.append(npc)
|
||||
|
||||
while f.bool():
|
||||
mob_type = EntityType(f.int4())
|
||||
mob_position = Coordinates(f.single(), f.single())
|
||||
|
||||
mob = Mob(type_=npc_type,
|
||||
position=npc_position)
|
||||
mobs.append(mob)
|
||||
|
||||
unknown_npcs_data = f.read_until(pointers)
|
||||
|
||||
world = World(version=version, savefile_type=savefile_type, revision=revision, is_favorite=is_favorite,
|
||||
name=name, generator=generator, uuid_=uuid_, id_=id_, bounds=bounds, size=world_size,
|
||||
is_expert=is_expert, created_on=created_on, styles=world_styles, backgrounds=backgrounds,
|
||||
|
|
Loading…
Reference in a new issue