mirror of
https://github.com/Steffo99/lihzahrd.git
synced 2024-11-21 23:54:23 +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
|
import typing
|
||||||
|
from .entitytype import EntityType
|
||||||
from ..fileutils import Coordinates
|
from ..fileutils import Coordinates
|
||||||
|
|
||||||
|
|
||||||
class NPC:
|
class NPC:
|
||||||
"""A NPC somewhere in the world."""
|
"""A NPC somewhere in the world."""
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
sprite_id: int,
|
type_: EntityType,
|
||||||
name: str,
|
name: str,
|
||||||
position: Coordinates,
|
position: Coordinates,
|
||||||
home: typing.Optional[Coordinates] = None):
|
home: typing.Optional[Coordinates] = None):
|
||||||
self.sprite_id: int = sprite_id
|
self.type: EntityType = type_
|
||||||
|
"""The NPC this object represents."""
|
||||||
|
|
||||||
self.name: str = name
|
self.name: str = name
|
||||||
|
"""The name of this NPC."""
|
||||||
|
|
||||||
self.position: Coordinates = position
|
self.position: Coordinates = position
|
||||||
|
"""The position of the mob in the game world."""
|
||||||
|
|
||||||
self.home: typing.Optional[Coordinates] = home
|
self.home: typing.Optional[Coordinates] = home
|
||||||
|
"""The coordinates of the home of this NPC, or None if the NPC is homeless."""
|
||||||
|
|
||||||
def __repr__(self):
|
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,
|
chests: int,
|
||||||
signs: int,
|
signs: int,
|
||||||
npcs: int,
|
npcs: int,
|
||||||
entities: int,
|
tile_entities: int,
|
||||||
|
pressure_plates: int,
|
||||||
|
town_manager: int,
|
||||||
footer: int,
|
footer: int,
|
||||||
*unknown):
|
*unknown):
|
||||||
self.file_format: int = 0
|
self.file_format: int = 0
|
||||||
|
@ -17,6 +19,8 @@ class Pointers:
|
||||||
self.chests: int = chests
|
self.chests: int = chests
|
||||||
self.signs: int = signs
|
self.signs: int = signs
|
||||||
self.npcs: int = npcs
|
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.footer: int = footer
|
||||||
self.unknown: typing.List[int] = list(unknown)
|
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
|
CONTAINERS2 = 467
|
||||||
FAKE_CONTAINERS2 = 468
|
FAKE_CONTAINERS2 = 468
|
||||||
TABLES2 = 469
|
TABLES2 = 469
|
||||||
COUNT = 470
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"{self.__class__.__name__}.{self.name}"
|
return f"{self.__class__.__name__}.{self.name}"
|
||||||
|
|
|
@ -6,7 +6,7 @@ from .header import *
|
||||||
from .tiles import *
|
from .tiles import *
|
||||||
from .chests import *
|
from .chests import *
|
||||||
from .signs import *
|
from .signs import *
|
||||||
from .npcs import *
|
from .entities import *
|
||||||
from .timer import Timer
|
from .timer import Timer
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,6 +45,9 @@ class World:
|
||||||
cultist_delay: int,
|
cultist_delay: int,
|
||||||
tiles: typing.List[typing.List[Tile]],
|
tiles: typing.List[typing.List[Tile]],
|
||||||
chests: typing.List[Chest],
|
chests: typing.List[Chest],
|
||||||
|
signs: typing.List[Sign],
|
||||||
|
npcs: typing.List[NPC],
|
||||||
|
mobs: typing.List[Mob],
|
||||||
unknown_file_format_data: bytearray,
|
unknown_file_format_data: bytearray,
|
||||||
unknown_world_header_data: bytearray,
|
unknown_world_header_data: bytearray,
|
||||||
unknown_world_tiles_data: bytearray,
|
unknown_world_tiles_data: bytearray,
|
||||||
|
@ -131,9 +134,19 @@ class World:
|
||||||
self.anglers_quest: AnglerQuest = anglers_quest
|
self.anglers_quest: AnglerQuest = anglers_quest
|
||||||
"""Information about today's Angler's Quest."""
|
"""Information about today's Angler's Quest."""
|
||||||
|
|
||||||
self.chests: typing.List[Chest] = chests
|
|
||||||
|
|
||||||
self.tiles: typing.List[typing.List[Tile]] = tiles
|
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.clouds: Clouds = clouds
|
||||||
self.cultist_delay: int = cultist_delay
|
self.cultist_delay: int = cultist_delay
|
||||||
|
@ -528,11 +541,12 @@ class World:
|
||||||
|
|
||||||
unknown_signs_data = f.read_until(pointers.npcs)
|
unknown_signs_data = f.read_until(pointers.npcs)
|
||||||
|
|
||||||
with Timer("NPCs", display=True):
|
with Timer("Entities", display=True):
|
||||||
npcs = []
|
npcs = []
|
||||||
|
mobs = []
|
||||||
|
|
||||||
while f.bool():
|
while f.bool():
|
||||||
npc_sprite_id = f.int4()
|
npc_type = EntityType(f.int4())
|
||||||
npc_name = f.string()
|
npc_name = f.string()
|
||||||
npc_position = Coordinates(f.single(), f.single())
|
npc_position = Coordinates(f.single(), f.single())
|
||||||
is_homeless = f.bool()
|
is_homeless = f.bool()
|
||||||
|
@ -540,12 +554,22 @@ class World:
|
||||||
if is_homeless:
|
if is_homeless:
|
||||||
npc_home = None
|
npc_home = None
|
||||||
|
|
||||||
npc = NPC(sprite_id=npc_sprite_id,
|
npc = NPC(type_=npc_type,
|
||||||
name=npc_name,
|
name=npc_name,
|
||||||
position=npc_position,
|
position=npc_position,
|
||||||
home=npc_home)
|
home=npc_home)
|
||||||
npcs.append(npc)
|
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,
|
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,
|
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,
|
is_expert=is_expert, created_on=created_on, styles=world_styles, backgrounds=backgrounds,
|
||||||
|
|
Loading…
Reference in a new issue