1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
#pragma once
using namespace std;
class InputStream;
// This file aims to provide functionality to mimic the subset of java's Class class that we require. Classes that require this
// functionality derive from BaseObject, and each contain a unique nested class definition Class. There are #defines here to
// simplify declaring classes with this added functionality.
// 4J Stu - This Enum can be used as a more lightweight version of the above, without having do dynamic casts
// 4J-PB - for replacement of instanceof
enum eINSTANCEOF
{
eTYPE_NOTSET=0,
// 4J-RR arranging these pathfinder types in a bitfield fashion so that a single and can determine whether they are derived from
// the 3 subclasses of pathfinders (water animals, animals, and monsters) that the mob spawner uses
eTYPE_WATERANIMAL = 0x100,
eTYPE_SQUID = 0x101,
eTYPE_ANIMAL = 0x200,
// 4J Stu - These have the ANIMAL, AGABLE_MOB and ANIMALS_SPAWN_LIMIT_CHECK bits set
eTYPE_COW = 0x82201,
eTYPE_SHEEP = 0x82202,
eTYPE_PIG = 0x82203,
eTYPE_SNOWMAN = 0x82204,
eTYPE_OZELOT = 0x82205,
// 4J Stu - When adding new categories, please also update ConsoleSchematicFile::generateSchematicFile so these can be saved out to schematics
// 4J Stu- These have the ANIMAL and AGABLE_MOB bits set, but NOT ANIMALS_SPAWN_LIMIT_CHECK
eTYPE_CHICKEN = 0x2206,
eTYPE_WOLF = 0x2207,
eTYPE_MUSHROOMCOW = 0x2208,
// 4J Stu - If you add new hostile mobs here you should also update the string lookup function at CConsoleMinecraftApp::getEntityName
eTYPE_MONSTER = 0x400,
eTYPE_ENEMY = 0x800,
eTYPE_CREEPER = 0xC01,
eTYPE_GIANT = 0xC02,
eTYPE_SKELETON = 0xC03,
eTYPE_SPIDER = 0xC04,
eTYPE_ZOMBIE = 0xC05,
eTYPE_PIGZOMBIE = 0xC06,
eTYPE_ENDERMAN = 0xC07,
eTYPE_SILVERFISH = 0xC08,
eTYPE_CAVESPIDER = 0xC09,
eTYPE_BLAZE = 0xC0A,
eTYPE_GHAST = 0xC0B, // Now considering as a monster even though class inheritance doesn't work like this - but otherwise breaks mob spawning
eTYPE_SLIME = 0xC0C, // Now considering as a monster even though class inheritance doesn't work like this - but otherwise breaks mob spawning
eTYPE_LAVASLIME = 0xC0D,
eTYPE_VILLAGERGOLEM = 0x1000,
eTYPE_AGABLE_MOB = 0x2000,
eTYPE_PLAYER = 0x8000,
eTYPE_SERVERPLAYER= 0x8001,
// Include AGABLE_MOB
eTYPE_VILLAGER = 0x12000,
eTYPE_PROJECTILE = 0x40000,
eTYPE_ARROW = 0x40001,
eTYPE_FIREBALL = 0x40002,
eTYPE_FISHINGHOOK = 0x40003,
eTYPE_SNOWBALL = 0x40004,
eTYPE_THROWNEGG = 0x40005,
eTYPE_EYEOFENDERSIGNAL = 0x40006,
eTYPE_SMALL_FIREBALL = 0x40007,
eTYPE_THROWNENDERPEARL = 0x40008,
eTYPE_THROWNPOTION = 0x40009,
eTYPE_THROWNEXPBOTTLE = 0x4000A,
eTYPE_ANIMALS_SPAWN_LIMIT_CHECK = 0x80000,
// Never used, exists to ensure all later entities don't match the bitmasks above
eTYPE_OTHERS = 0x100000,
eTYPE_NETHER_SPHERE,
eTYPE_ENDER_CRYSTAL,
eTYPE_ENDERDRAGON,
eTYPE_BOSS_MOB_PART,
eTYPE_ENTITY,
eTYPE_MOB,
eTYPE_LIGHTNINGBOLT,
eTYPE_PAINTING,
eTYPE_ITEMENTITY,
eTYPE_FALLINGTILE,
eTYPE_BOAT,
eTYPE_MINECART,
eTYPE_PRIMEDTNT,
eTYPE_TILEENTITY,
eTYPE_CHESTTILEENTITY,
eTYPE_DISPENSERTILEENTITY,
eTYPE_MOBSPAWNERTILEENTITY,
eTYPE_FURNACETILEENTITY,
eTYPE_SIGNTILEENTITY,
eTYPE_MUSICTILEENTITY,
eTYPE_RECORDPLAYERTILE,
eTYPE_PISTONPIECEENTITY,
eTYPE_BREWINGSTANDTILEENTITY,
eTYPE_ENCHANTMENTTABLEENTITY,
eTYPE_THEENDPORTALTILEENTITY,
eTYPE_SKULLTILEENTITY,
eTYPE_ENDERCHESTTILEENTITY,
eType_NODE,
eType_ITEM,
eType_ITEMINSTANCE,
eType_MAPITEM,
eType_TILE,
eType_FIRETILE,
eType_BREAKINGITEMPARTICLE,
eType_BUBBLEPARTICLE,
eType_EXPLODEPARTICLE,
eType_FLAMEPARTICLE,
eType_FOOTSTEPPARTICLE,
eType_HEARTPARTICLE,
eType_LAVAPARTICLE,
eType_NOTEPARTICLE,
eType_NETHERPORTALPARTICLE,
eType_REDDUSTPARTICLE,
eType_SMOKEPARTICLE,
eType_SNOWSHOVELPARTICLE,
eType_SPLASHPARTICLE,
eType_TAKEANIMATIONPARTICLE,
eType_TERRAINPARTICLE,
eType_WATERDROPPARTICLE,
// 1.8.2
eTYPE_DELAYEDRELEASE,
eTYPE_EXPERIENCEORB,
eType_CRITPARTICLE,
eType_CRITPARTICLE2,
eType_HUGEEXPLOSIONPARTICLE,
eType_HUGEEXPLOSIONSEEDPARTICLE,
eType_PLAYERCLOUDPARTICLEPARTICLE,
eType_SUSPENDEDPARTICLE,
eType_SUSPENDEDTOWNPARTICLE,
//1.0.1
eTYPE_DRIPPARTICLE,
eTYPE_ENCHANTMENTTABLEPARTICLE,
eTYPE_SPELLPARTICLE,
//TU9
eTYPE_HANGING_ENTITY,
eTYPE_ITEM_FRAME,
eTYPE_DRAGONBREATHPARTICLE,
eTYPE_DRAGON_FIREBALL,
eType_ENDERPARTICLE,
};
|