mcdex 0.1.0.dev0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. mcdex/__init__.py +281 -0
  2. mcdex/advancements/__init__.py +16 -0
  3. mcdex/advancements/_mc_advancements.py +3558 -0
  4. mcdex/advancements/advancements.json +12101 -0
  5. mcdex/attributes/__init__.py +16 -0
  6. mcdex/attributes/_mc_attributes.py +83 -0
  7. mcdex/attributes/attributes.json +289 -0
  8. mcdex/banner_patterns/__init__.py +16 -0
  9. mcdex/banner_patterns/_mc_banner_patterns.py +86 -0
  10. mcdex/banner_patterns/banner_patterns.json +310 -0
  11. mcdex/base/__init__.py +146 -0
  12. mcdex/base/_advancement_id.py +22 -0
  13. mcdex/base/_attribute_id.py +22 -0
  14. mcdex/base/_banner_pattern_id.py +26 -0
  15. mcdex/base/_biome_id.py +22 -0
  16. mcdex/base/_block_entity_id.py +22 -0
  17. mcdex/base/_block_id.py +35 -0
  18. mcdex/base/_cat_sound_variant_id.py +23 -0
  19. mcdex/base/_cat_variant_id.py +22 -0
  20. mcdex/base/_catalogue_meta.py +38 -0
  21. mcdex/base/_chicken_sound_variant_id.py +23 -0
  22. mcdex/base/_chicken_variant_id.py +23 -0
  23. mcdex/base/_cow_sound_variant_id.py +23 -0
  24. mcdex/base/_cow_variant_id.py +22 -0
  25. mcdex/base/_damage_type_id.py +21 -0
  26. mcdex/base/_dimension_id.py +21 -0
  27. mcdex/base/_effect_id.py +21 -0
  28. mcdex/base/_enchantment_id.py +22 -0
  29. mcdex/base/_entity_id.py +35 -0
  30. mcdex/base/_equipment_slot.py +34 -0
  31. mcdex/base/_frog_variant_id.py +22 -0
  32. mcdex/base/_game_id.py +88 -0
  33. mcdex/base/_game_rule_id.py +21 -0
  34. mcdex/base/_item_id.py +98 -0
  35. mcdex/base/_mc_thing.py +289 -0
  36. mcdex/base/_mc_version.py +140 -0
  37. mcdex/base/_music_id.py +25 -0
  38. mcdex/base/_not_in_version.py +68 -0
  39. mcdex/base/_painting_variant_id.py +23 -0
  40. mcdex/base/_particle_id.py +21 -0
  41. mcdex/base/_pig_sound_variant_id.py +23 -0
  42. mcdex/base/_pig_variant_id.py +22 -0
  43. mcdex/base/_potion_id.py +25 -0
  44. mcdex/base/_potion_modifier.py +30 -0
  45. mcdex/base/_sound_id.py +21 -0
  46. mcdex/base/_statistic_id.py +22 -0
  47. mcdex/base/_structure_id.py +21 -0
  48. mcdex/base/_trim_material_id.py +26 -0
  49. mcdex/base/_trim_pattern_id.py +25 -0
  50. mcdex/base/_version.py +188 -0
  51. mcdex/base/_villager_profession_id.py +24 -0
  52. mcdex/base/_villager_type_id.py +25 -0
  53. mcdex/base/_wolf_sound_variant_id.py +23 -0
  54. mcdex/base/_wolf_variant_id.py +22 -0
  55. mcdex/base/_zombie_nautilus_variant_id.py +23 -0
  56. mcdex/biomes/__init__.py +16 -0
  57. mcdex/biomes/_mc_biomes.py +137 -0
  58. mcdex/biomes/biomes.json +652 -0
  59. mcdex/block_entities/__init__.py +16 -0
  60. mcdex/block_entities/_mc_block_entities.py +95 -0
  61. mcdex/block_entities/block_entities.json +331 -0
  62. mcdex/blocks/__init__.py +16 -0
  63. mcdex/blocks/_mc_blocks.py +1338 -0
  64. mcdex/blocks/blocks.json +7770 -0
  65. mcdex/cat_sound_variants/__init__.py +16 -0
  66. mcdex/cat_sound_variants/_mc_cat_sound_variants.py +47 -0
  67. mcdex/cat_sound_variants/cat_sound_variants.json +25 -0
  68. mcdex/cat_variants/__init__.py +16 -0
  69. mcdex/cat_variants/_mc_cat_variants.py +54 -0
  70. mcdex/cat_variants/cat_variants.json +91 -0
  71. mcdex/chicken_sound_variants/__init__.py +17 -0
  72. mcdex/chicken_sound_variants/_mc_chicken_sound_variants.py +48 -0
  73. mcdex/chicken_sound_variants/chicken_sound_variants.json +24 -0
  74. mcdex/chicken_variants/__init__.py +16 -0
  75. mcdex/chicken_variants/_mc_chicken_variants.py +47 -0
  76. mcdex/chicken_variants/chicken_variants.json +30 -0
  77. mcdex/cow_sound_variants/__init__.py +16 -0
  78. mcdex/cow_sound_variants/_mc_cow_sound_variants.py +47 -0
  79. mcdex/cow_sound_variants/cow_sound_variants.json +24 -0
  80. mcdex/cow_variants/__init__.py +16 -0
  81. mcdex/cow_variants/_mc_cow_variants.py +47 -0
  82. mcdex/cow_variants/cow_variants.json +30 -0
  83. mcdex/damage_types/__init__.py +16 -0
  84. mcdex/damage_types/_mc_damage_types.py +94 -0
  85. mcdex/damage_types/damage_types.json +317 -0
  86. mcdex/dimensions/__init__.py +16 -0
  87. mcdex/dimensions/_mc_dimensions.py +46 -0
  88. mcdex/dimensions/dimensions.json +29 -0
  89. mcdex/effects/__init__.py +16 -0
  90. mcdex/effects/_mc_effects.py +83 -0
  91. mcdex/effects/effects.json +251 -0
  92. mcdex/enchantments/__init__.py +16 -0
  93. mcdex/enchantments/_mc_enchantments.py +86 -0
  94. mcdex/enchantments/enchantments.json +270 -0
  95. mcdex/entities/__init__.py +16 -0
  96. mcdex/entities/_mc_entities.py +206 -0
  97. mcdex/entities/entities.json +1042 -0
  98. mcdex/frog_variants/__init__.py +16 -0
  99. mcdex/frog_variants/_mc_frog_variants.py +47 -0
  100. mcdex/frog_variants/frog_variants.json +29 -0
  101. mcdex/game_rules/__init__.py +16 -0
  102. mcdex/game_rules/_mc_game_rules.py +110 -0
  103. mcdex/game_rules/game_rules.json +436 -0
  104. mcdex/items/__init__.py +16 -0
  105. mcdex/items/_mc_items.py +1842 -0
  106. mcdex/items/items.json +20060 -0
  107. mcdex/music/__init__.py +16 -0
  108. mcdex/music/_music.py +65 -0
  109. mcdex/music/music.json +143 -0
  110. mcdex/painting_variants/__init__.py +16 -0
  111. mcdex/painting_variants/_mc_painting_variants.py +96 -0
  112. mcdex/painting_variants/painting_variants.json +369 -0
  113. mcdex/particles/__init__.py +16 -0
  114. mcdex/particles/_mc_particles.py +184 -0
  115. mcdex/particles/particles.json +917 -0
  116. mcdex/pig_sound_variants/__init__.py +16 -0
  117. mcdex/pig_sound_variants/_mc_pig_sound_variants.py +48 -0
  118. mcdex/pig_sound_variants/pig_sound_variants.json +30 -0
  119. mcdex/pig_variants/__init__.py +16 -0
  120. mcdex/pig_variants/_mc_pig_variants.py +46 -0
  121. mcdex/pig_variants/pig_variants.json +30 -0
  122. mcdex/potions/__init__.py +20 -0
  123. mcdex/potions/_mc_potions.py +101 -0
  124. mcdex/potions/_modified_potion.py +129 -0
  125. mcdex/potions/potions.json +297 -0
  126. mcdex/py.typed +0 -0
  127. mcdex/sounds/__init__.py +16 -0
  128. mcdex/sounds/_mc_sounds.py +2395 -0
  129. mcdex/sounds/sounds.json +13077 -0
  130. mcdex/statistics/__init__.py +16 -0
  131. mcdex/statistics/_mc_statistics.py +123 -0
  132. mcdex/statistics/statistics.json +521 -0
  133. mcdex/structures/__init__.py +16 -0
  134. mcdex/structures/_mc_structures.py +99 -0
  135. mcdex/structures/structures.json +367 -0
  136. mcdex/trim_materials/__init__.py +16 -0
  137. mcdex/trim_materials/_mc_trim_materials.py +54 -0
  138. mcdex/trim_materials/trim_materials.json +77 -0
  139. mcdex/trim_patterns/__init__.py +16 -0
  140. mcdex/trim_patterns/_mc_trim_patterns.py +61 -0
  141. mcdex/trim_patterns/trim_patterns.json +119 -0
  142. mcdex/villager_professions/__init__.py +17 -0
  143. mcdex/villager_professions/_mc_villager_professions.py +61 -0
  144. mcdex/villager_professions/villager_professions.json +125 -0
  145. mcdex/villager_types/__init__.py +16 -0
  146. mcdex/villager_types/_mc_villager_types.py +52 -0
  147. mcdex/villager_types/villager_types.json +54 -0
  148. mcdex/wolf_sound_variants/__init__.py +17 -0
  149. mcdex/wolf_sound_variants/_mc_wolf_sound_variants.py +53 -0
  150. mcdex/wolf_sound_variants/wolf_sound_variants.json +54 -0
  151. mcdex/wolf_variants/__init__.py +16 -0
  152. mcdex/wolf_variants/_mc_wolf_variants.py +53 -0
  153. mcdex/wolf_variants/wolf_variants.json +66 -0
  154. mcdex/zombie_nautilus_variants/__init__.py +17 -0
  155. mcdex/zombie_nautilus_variants/_mc_zombie_nautilus_variants.py +48 -0
  156. mcdex/zombie_nautilus_variants/zombie_nautilus_variants.json +23 -0
  157. mcdex-0.1.0.dev0.dist-info/METADATA +1285 -0
  158. mcdex-0.1.0.dev0.dist-info/RECORD +161 -0
  159. mcdex-0.1.0.dev0.dist-info/WHEEL +5 -0
  160. mcdex-0.1.0.dev0.dist-info/licenses/LICENSE +201 -0
  161. mcdex-0.1.0.dev0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,94 @@
1
+ """
2
+ MCDamageTypes is the catalogue of the game's damage types: an enumeration with
3
+ one member for every damage type of the data file that ships with mcdex, each
4
+ the same damage type in every version, with the id each version knows it by:
5
+ what /damage takes.
6
+ """
7
+ # Apache-2.0 license
8
+ # Copyright (c) 2026 Asger Jon Vistisen
9
+ from __future__ import annotations
10
+
11
+ from worktoy.keenum import Kee
12
+
13
+ from ..base import DamageTypeId, MCThing
14
+
15
+
16
+ class MCDamageTypes(MCThing):
17
+ """
18
+ The catalogue of the game's damage types, each a member, found by its name in
19
+ capitals, in any case, or by its unique name:
20
+
21
+ inFire = MCDamageTypes.IN_FIRE
22
+ inFire is MCDamageTypes['in_fire'] # True
23
+ inFire['1.19.4'] # DamageTypeId('in_fire', 'minecraft:in_fire')
24
+ len(MCDamageTypes)
25
+
26
+ Implementation
27
+ --------------
28
+
29
+ All of it is 'MCThing's, reading 'damage_types.json' beside this module.
30
+ mcdex's tools write the members, one for every name of that file.
31
+ """
32
+
33
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
34
+ # NAMESPACE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
35
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
36
+
37
+ # Class Variables
38
+ __data_file__ = 'damage_types.json'
39
+ __data_key__ = 'damage_types'
40
+ __id_class__ = DamageTypeId
41
+ __kind__ = 'damage type'
42
+
43
+ # Members, one for every name of 'damage_types.json'
44
+ ARROW = Kee[str]('arrow')
45
+ BAD_RESPAWN_POINT = Kee[str]('bad_respawn_point')
46
+ CACTUS = Kee[str]('cactus')
47
+ CAMPFIRE = Kee[str]('campfire')
48
+ CRAMMING = Kee[str]('cramming')
49
+ DRAGON_BREATH = Kee[str]('dragon_breath')
50
+ DROWN = Kee[str]('drown')
51
+ DRY_OUT = Kee[str]('dry_out')
52
+ ENDER_PEARL = Kee[str]('ender_pearl')
53
+ EXPLOSION = Kee[str]('explosion')
54
+ FALL = Kee[str]('fall')
55
+ FALLING_ANVIL = Kee[str]('falling_anvil')
56
+ FALLING_BLOCK = Kee[str]('falling_block')
57
+ FALLING_STALACTITE = Kee[str]('falling_stalactite')
58
+ FIREBALL = Kee[str]('fireball')
59
+ FIREWORKS = Kee[str]('fireworks')
60
+ FLY_INTO_WALL = Kee[str]('fly_into_wall')
61
+ FREEZE = Kee[str]('freeze')
62
+ GENERIC = Kee[str]('generic')
63
+ GENERIC_KILL = Kee[str]('generic_kill')
64
+ HOT_FLOOR = Kee[str]('hot_floor')
65
+ IN_FIRE = Kee[str]('in_fire')
66
+ IN_WALL = Kee[str]('in_wall')
67
+ INDIRECT_MAGIC = Kee[str]('indirect_magic')
68
+ LAVA = Kee[str]('lava')
69
+ LIGHTNING_BOLT = Kee[str]('lightning_bolt')
70
+ MACE_SMASH = Kee[str]('mace_smash')
71
+ MAGIC = Kee[str]('magic')
72
+ MOB_ATTACK = Kee[str]('mob_attack')
73
+ MOB_ATTACK_NO_AGGRO = Kee[str]('mob_attack_no_aggro')
74
+ MOB_PROJECTILE = Kee[str]('mob_projectile')
75
+ ON_FIRE = Kee[str]('on_fire')
76
+ OUT_OF_WORLD = Kee[str]('out_of_world')
77
+ OUTSIDE_BORDER = Kee[str]('outside_border')
78
+ PLAYER_ATTACK = Kee[str]('player_attack')
79
+ PLAYER_EXPLOSION = Kee[str]('player_explosion')
80
+ SONIC_BOOM = Kee[str]('sonic_boom')
81
+ SPEAR = Kee[str]('spear')
82
+ SPIT = Kee[str]('spit')
83
+ STALAGMITE = Kee[str]('stalagmite')
84
+ STARVE = Kee[str]('starve')
85
+ STING = Kee[str]('sting')
86
+ SULFUR_CUBE_HOT = Kee[str]('sulfur_cube_hot')
87
+ SWEET_BERRY_BUSH = Kee[str]('sweet_berry_bush')
88
+ THORNS = Kee[str]('thorns')
89
+ THROWN = Kee[str]('thrown')
90
+ TRIDENT = Kee[str]('trident')
91
+ UNATTRIBUTED_FIREBALL = Kee[str]('unattributed_fireball')
92
+ WIND_CHARGE = Kee[str]('wind_charge')
93
+ WITHER = Kee[str]('wither')
94
+ WITHER_SKULL = Kee[str]('wither_skull')
@@ -0,0 +1,317 @@
1
+ {
2
+ "covers": [
3
+ "1.7.2",
4
+ "26.3"
5
+ ],
6
+ "legend": {
7
+ "": "vanilla has no such damage type in this version"
8
+ },
9
+ "damage_types": {
10
+ "arrow": {
11
+ "ids": {
12
+ "1.7.2": "",
13
+ "1.19.4": "minecraft:arrow"
14
+ }
15
+ },
16
+ "bad_respawn_point": {
17
+ "ids": {
18
+ "1.7.2": "",
19
+ "1.19.4": "minecraft:bad_respawn_point"
20
+ }
21
+ },
22
+ "cactus": {
23
+ "ids": {
24
+ "1.7.2": "",
25
+ "1.19.4": "minecraft:cactus"
26
+ }
27
+ },
28
+ "campfire": {
29
+ "ids": {
30
+ "1.7.2": "",
31
+ "1.21": "minecraft:campfire"
32
+ }
33
+ },
34
+ "cramming": {
35
+ "ids": {
36
+ "1.7.2": "",
37
+ "1.19.4": "minecraft:cramming"
38
+ }
39
+ },
40
+ "dragon_breath": {
41
+ "ids": {
42
+ "1.7.2": "",
43
+ "1.19.4": "minecraft:dragon_breath"
44
+ }
45
+ },
46
+ "drown": {
47
+ "ids": {
48
+ "1.7.2": "",
49
+ "1.19.4": "minecraft:drown"
50
+ }
51
+ },
52
+ "dry_out": {
53
+ "ids": {
54
+ "1.7.2": "",
55
+ "1.19.4": "minecraft:dry_out"
56
+ }
57
+ },
58
+ "ender_pearl": {
59
+ "ids": {
60
+ "1.7.2": "",
61
+ "1.21.2": "minecraft:ender_pearl"
62
+ }
63
+ },
64
+ "explosion": {
65
+ "ids": {
66
+ "1.7.2": "",
67
+ "1.19.4": "minecraft:explosion"
68
+ }
69
+ },
70
+ "fall": {
71
+ "ids": {
72
+ "1.7.2": "",
73
+ "1.19.4": "minecraft:fall"
74
+ }
75
+ },
76
+ "falling_anvil": {
77
+ "ids": {
78
+ "1.7.2": "",
79
+ "1.19.4": "minecraft:falling_anvil"
80
+ }
81
+ },
82
+ "falling_block": {
83
+ "ids": {
84
+ "1.7.2": "",
85
+ "1.19.4": "minecraft:falling_block"
86
+ }
87
+ },
88
+ "falling_stalactite": {
89
+ "ids": {
90
+ "1.7.2": "",
91
+ "1.19.4": "minecraft:falling_stalactite"
92
+ }
93
+ },
94
+ "fireball": {
95
+ "ids": {
96
+ "1.7.2": "",
97
+ "1.19.4": "minecraft:fireball"
98
+ }
99
+ },
100
+ "fireworks": {
101
+ "ids": {
102
+ "1.7.2": "",
103
+ "1.19.4": "minecraft:fireworks"
104
+ }
105
+ },
106
+ "fly_into_wall": {
107
+ "ids": {
108
+ "1.7.2": "",
109
+ "1.19.4": "minecraft:fly_into_wall"
110
+ }
111
+ },
112
+ "freeze": {
113
+ "ids": {
114
+ "1.7.2": "",
115
+ "1.19.4": "minecraft:freeze"
116
+ }
117
+ },
118
+ "generic": {
119
+ "ids": {
120
+ "1.7.2": "",
121
+ "1.19.4": "minecraft:generic"
122
+ }
123
+ },
124
+ "generic_kill": {
125
+ "ids": {
126
+ "1.7.2": "",
127
+ "1.20": "minecraft:generic_kill"
128
+ }
129
+ },
130
+ "hot_floor": {
131
+ "ids": {
132
+ "1.7.2": "",
133
+ "1.19.4": "minecraft:hot_floor"
134
+ }
135
+ },
136
+ "in_fire": {
137
+ "ids": {
138
+ "1.7.2": "",
139
+ "1.19.4": "minecraft:in_fire"
140
+ }
141
+ },
142
+ "in_wall": {
143
+ "ids": {
144
+ "1.7.2": "",
145
+ "1.19.4": "minecraft:in_wall"
146
+ }
147
+ },
148
+ "indirect_magic": {
149
+ "ids": {
150
+ "1.7.2": "",
151
+ "1.19.4": "minecraft:indirect_magic"
152
+ }
153
+ },
154
+ "lava": {
155
+ "ids": {
156
+ "1.7.2": "",
157
+ "1.19.4": "minecraft:lava"
158
+ }
159
+ },
160
+ "lightning_bolt": {
161
+ "ids": {
162
+ "1.7.2": "",
163
+ "1.19.4": "minecraft:lightning_bolt"
164
+ }
165
+ },
166
+ "mace_smash": {
167
+ "ids": {
168
+ "1.7.2": "",
169
+ "1.21.2": "minecraft:mace_smash"
170
+ }
171
+ },
172
+ "magic": {
173
+ "ids": {
174
+ "1.7.2": "",
175
+ "1.19.4": "minecraft:magic"
176
+ }
177
+ },
178
+ "mob_attack": {
179
+ "ids": {
180
+ "1.7.2": "",
181
+ "1.19.4": "minecraft:mob_attack"
182
+ }
183
+ },
184
+ "mob_attack_no_aggro": {
185
+ "ids": {
186
+ "1.7.2": "",
187
+ "1.19.4": "minecraft:mob_attack_no_aggro"
188
+ }
189
+ },
190
+ "mob_projectile": {
191
+ "ids": {
192
+ "1.7.2": "",
193
+ "1.19.4": "minecraft:mob_projectile"
194
+ }
195
+ },
196
+ "on_fire": {
197
+ "ids": {
198
+ "1.7.2": "",
199
+ "1.19.4": "minecraft:on_fire"
200
+ }
201
+ },
202
+ "out_of_world": {
203
+ "ids": {
204
+ "1.7.2": "",
205
+ "1.19.4": "minecraft:out_of_world"
206
+ }
207
+ },
208
+ "outside_border": {
209
+ "ids": {
210
+ "1.7.2": "",
211
+ "1.20": "minecraft:outside_border"
212
+ }
213
+ },
214
+ "player_attack": {
215
+ "ids": {
216
+ "1.7.2": "",
217
+ "1.19.4": "minecraft:player_attack"
218
+ }
219
+ },
220
+ "player_explosion": {
221
+ "ids": {
222
+ "1.7.2": "",
223
+ "1.19.4": "minecraft:player_explosion"
224
+ }
225
+ },
226
+ "sonic_boom": {
227
+ "ids": {
228
+ "1.7.2": "",
229
+ "1.19.4": "minecraft:sonic_boom"
230
+ }
231
+ },
232
+ "spear": {
233
+ "ids": {
234
+ "1.7.2": "",
235
+ "1.21.11": "minecraft:spear"
236
+ }
237
+ },
238
+ "spit": {
239
+ "ids": {
240
+ "1.7.2": "",
241
+ "1.20.5": "minecraft:spit"
242
+ }
243
+ },
244
+ "stalagmite": {
245
+ "ids": {
246
+ "1.7.2": "",
247
+ "1.19.4": "minecraft:stalagmite"
248
+ }
249
+ },
250
+ "starve": {
251
+ "ids": {
252
+ "1.7.2": "",
253
+ "1.19.4": "minecraft:starve"
254
+ }
255
+ },
256
+ "sting": {
257
+ "ids": {
258
+ "1.7.2": "",
259
+ "1.19.4": "minecraft:sting"
260
+ }
261
+ },
262
+ "sulfur_cube_hot": {
263
+ "ids": {
264
+ "1.7.2": "",
265
+ "26.2": "minecraft:sulfur_cube_hot"
266
+ }
267
+ },
268
+ "sweet_berry_bush": {
269
+ "ids": {
270
+ "1.7.2": "",
271
+ "1.19.4": "minecraft:sweet_berry_bush"
272
+ }
273
+ },
274
+ "thorns": {
275
+ "ids": {
276
+ "1.7.2": "",
277
+ "1.19.4": "minecraft:thorns"
278
+ }
279
+ },
280
+ "thrown": {
281
+ "ids": {
282
+ "1.7.2": "",
283
+ "1.19.4": "minecraft:thrown"
284
+ }
285
+ },
286
+ "trident": {
287
+ "ids": {
288
+ "1.7.2": "",
289
+ "1.19.4": "minecraft:trident"
290
+ }
291
+ },
292
+ "unattributed_fireball": {
293
+ "ids": {
294
+ "1.7.2": "",
295
+ "1.19.4": "minecraft:unattributed_fireball"
296
+ }
297
+ },
298
+ "wind_charge": {
299
+ "ids": {
300
+ "1.7.2": "",
301
+ "1.20.5": "minecraft:wind_charge"
302
+ }
303
+ },
304
+ "wither": {
305
+ "ids": {
306
+ "1.7.2": "",
307
+ "1.19.4": "minecraft:wither"
308
+ }
309
+ },
310
+ "wither_skull": {
311
+ "ids": {
312
+ "1.7.2": "",
313
+ "1.19.4": "minecraft:wither_skull"
314
+ }
315
+ }
316
+ }
317
+ }
@@ -0,0 +1,16 @@
1
+ """
2
+ The 'mcdex.dimensions' package provides the dimensions of the game: the
3
+ 'MCDimensions' catalogue, an enumeration of every dimension of the data file
4
+ 'dimensions.json' that ships with the package.
5
+
6
+ - MCDimensions
7
+ """
8
+ # Apache-2.0 license
9
+ # Copyright (c) 2026 Asger Jon Vistisen
10
+ from __future__ import annotations
11
+
12
+ from ._mc_dimensions import MCDimensions
13
+
14
+ __all__ = (
15
+ 'MCDimensions',
16
+ )
@@ -0,0 +1,46 @@
1
+ """
2
+ MCDimensions is the catalogue of the game's dimensions: an enumeration with one
3
+ member for every dimension of the data file that ships with mcdex, each the
4
+ same dimension in every version, with the id each version knows it by:
5
+ what /execute in takes.
6
+ """
7
+ # Apache-2.0 license
8
+ # Copyright (c) 2026 Asger Jon Vistisen
9
+ from __future__ import annotations
10
+
11
+ from worktoy.keenum import Kee
12
+
13
+ from ..base import DimensionId, MCThing
14
+
15
+
16
+ class MCDimensions(MCThing):
17
+ """
18
+ The catalogue of the game's dimensions, each a member, found by its name in
19
+ capitals, in any case, or by its unique name:
20
+
21
+ theNether = MCDimensions.THE_NETHER
22
+ theNether is MCDimensions['the_nether'] # True
23
+ theNether['1.12.2'] # DimensionId('the_nether', '-1')
24
+ len(MCDimensions)
25
+
26
+ Implementation
27
+ --------------
28
+
29
+ All of it is 'MCThing's, reading 'dimensions.json' beside this module.
30
+ mcdex's tools write the members, one for every name of that file.
31
+ """
32
+
33
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
34
+ # NAMESPACE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
35
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
36
+
37
+ # Class Variables
38
+ __data_file__ = 'dimensions.json'
39
+ __data_key__ = 'dimensions'
40
+ __id_class__ = DimensionId
41
+ __kind__ = 'dimension'
42
+
43
+ # Members, one for every name of 'dimensions.json'
44
+ OVERWORLD = Kee[str]('overworld')
45
+ THE_END = Kee[str]('the_end')
46
+ THE_NETHER = Kee[str]('the_nether')
@@ -0,0 +1,29 @@
1
+ {
2
+ "covers": [
3
+ "1.7.2",
4
+ "26.3"
5
+ ],
6
+ "legend": {
7
+ "": "vanilla has no such dimension in this version"
8
+ },
9
+ "dimensions": {
10
+ "overworld": {
11
+ "ids": {
12
+ "1.7.2": "0",
13
+ "1.13": "minecraft:overworld"
14
+ }
15
+ },
16
+ "the_end": {
17
+ "ids": {
18
+ "1.7.2": "1",
19
+ "1.13": "minecraft:the_end"
20
+ }
21
+ },
22
+ "the_nether": {
23
+ "ids": {
24
+ "1.7.2": "-1",
25
+ "1.13": "minecraft:the_nether"
26
+ }
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,16 @@
1
+ """
2
+ The 'mcdex.effects' package provides the effects of the game: the
3
+ 'MCEffects' catalogue, an enumeration of every effect of the data file
4
+ 'effects.json' that ships with the package.
5
+
6
+ - MCEffects
7
+ """
8
+ # Apache-2.0 license
9
+ # Copyright (c) 2026 Asger Jon Vistisen
10
+ from __future__ import annotations
11
+
12
+ from ._mc_effects import MCEffects
13
+
14
+ __all__ = (
15
+ 'MCEffects',
16
+ )
@@ -0,0 +1,83 @@
1
+ """
2
+ MCEffects is the catalogue of the game's effects: an enumeration with one
3
+ member for every effect of the data file that ships with mcdex, each the
4
+ same effect in every version, with the id each version knows it by:
5
+ what /effect takes.
6
+ """
7
+ # Apache-2.0 license
8
+ # Copyright (c) 2026 Asger Jon Vistisen
9
+ from __future__ import annotations
10
+
11
+ from worktoy.keenum import Kee
12
+
13
+ from ..base import EffectId, MCThing
14
+
15
+
16
+ class MCEffects(MCThing):
17
+ """
18
+ The catalogue of the game's effects, each a member, found by its name in
19
+ capitals, in any case, or by its unique name:
20
+
21
+ speed = MCEffects.SPEED
22
+ speed is MCEffects['speed'] # True
23
+ speed['1.7.10'] # EffectId('speed', '1')
24
+ len(MCEffects)
25
+
26
+ Implementation
27
+ --------------
28
+
29
+ All of it is 'MCThing's, reading 'effects.json' beside this module.
30
+ mcdex's tools write the members, one for every name of that file.
31
+ """
32
+
33
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
34
+ # NAMESPACE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
35
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
36
+
37
+ # Class Variables
38
+ __data_file__ = 'effects.json'
39
+ __data_key__ = 'effects'
40
+ __id_class__ = EffectId
41
+ __kind__ = 'effect'
42
+
43
+ # Members, one for every name of 'effects.json'
44
+ ABSORPTION = Kee[str]('absorption')
45
+ BAD_OMEN = Kee[str]('bad_omen')
46
+ BLINDNESS = Kee[str]('blindness')
47
+ BREATH_OF_THE_NAUTILUS = Kee[str]('breath_of_the_nautilus')
48
+ CONDUIT_POWER = Kee[str]('conduit_power')
49
+ DARKNESS = Kee[str]('darkness')
50
+ DOLPHINS_GRACE = Kee[str]('dolphins_grace')
51
+ FIRE_RESISTANCE = Kee[str]('fire_resistance')
52
+ GLOWING = Kee[str]('glowing')
53
+ HASTE = Kee[str]('haste')
54
+ HEALTH_BOOST = Kee[str]('health_boost')
55
+ HERO_OF_THE_VILLAGE = Kee[str]('hero_of_the_village')
56
+ HUNGER = Kee[str]('hunger')
57
+ INFESTED = Kee[str]('infested')
58
+ INSTANT_DAMAGE = Kee[str]('instant_damage')
59
+ INSTANT_HEALTH = Kee[str]('instant_health')
60
+ INVISIBILITY = Kee[str]('invisibility')
61
+ JUMP_BOOST = Kee[str]('jump_boost')
62
+ LEVITATION = Kee[str]('levitation')
63
+ LUCK = Kee[str]('luck')
64
+ MINING_FATIGUE = Kee[str]('mining_fatigue')
65
+ NAUSEA = Kee[str]('nausea')
66
+ NIGHT_VISION = Kee[str]('night_vision')
67
+ OOZING = Kee[str]('oozing')
68
+ POISON = Kee[str]('poison')
69
+ RAID_OMEN = Kee[str]('raid_omen')
70
+ REGENERATION = Kee[str]('regeneration')
71
+ RESISTANCE = Kee[str]('resistance')
72
+ SATURATION = Kee[str]('saturation')
73
+ SLOW_FALLING = Kee[str]('slow_falling')
74
+ SLOWNESS = Kee[str]('slowness')
75
+ SPEED = Kee[str]('speed')
76
+ STRENGTH = Kee[str]('strength')
77
+ TRIAL_OMEN = Kee[str]('trial_omen')
78
+ UNLUCK = Kee[str]('unluck')
79
+ WATER_BREATHING = Kee[str]('water_breathing')
80
+ WEAKNESS = Kee[str]('weakness')
81
+ WEAVING = Kee[str]('weaving')
82
+ WIND_CHARGED = Kee[str]('wind_charged')
83
+ WITHER = Kee[str]('wither')