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,310 @@
1
+ {
2
+ "covers": [
3
+ "1.7.2",
4
+ "26.3"
5
+ ],
6
+ "legend": {
7
+ "": "vanilla has no such banner pattern in this version"
8
+ },
9
+ "banner_patterns": {
10
+ "base": {
11
+ "ids": {
12
+ "1.7.2": "",
13
+ "1.8": "b",
14
+ "1.20.5": "minecraft:base"
15
+ }
16
+ },
17
+ "border": {
18
+ "ids": {
19
+ "1.7.2": "",
20
+ "1.8": "bo",
21
+ "1.20.5": "minecraft:border"
22
+ }
23
+ },
24
+ "bricks": {
25
+ "ids": {
26
+ "1.7.2": "",
27
+ "1.8": "bri",
28
+ "1.20.5": "minecraft:bricks"
29
+ }
30
+ },
31
+ "circle": {
32
+ "ids": {
33
+ "1.7.2": "",
34
+ "1.8": "mc",
35
+ "1.20.5": "minecraft:circle"
36
+ }
37
+ },
38
+ "creeper": {
39
+ "ids": {
40
+ "1.7.2": "",
41
+ "1.8": "cre",
42
+ "1.20.5": "minecraft:creeper"
43
+ }
44
+ },
45
+ "cross": {
46
+ "ids": {
47
+ "1.7.2": "",
48
+ "1.8": "cr",
49
+ "1.20.5": "minecraft:cross"
50
+ }
51
+ },
52
+ "curly_border": {
53
+ "ids": {
54
+ "1.7.2": "",
55
+ "1.8": "cbo",
56
+ "1.20.5": "minecraft:curly_border"
57
+ }
58
+ },
59
+ "diagonal_left": {
60
+ "ids": {
61
+ "1.7.2": "",
62
+ "1.8": "ld",
63
+ "1.20.5": "minecraft:diagonal_left"
64
+ }
65
+ },
66
+ "diagonal_right": {
67
+ "ids": {
68
+ "1.7.2": "",
69
+ "1.8": "rud",
70
+ "1.20.5": "minecraft:diagonal_right"
71
+ }
72
+ },
73
+ "diagonal_up_left": {
74
+ "ids": {
75
+ "1.7.2": "",
76
+ "1.8": "lud",
77
+ "1.20.5": "minecraft:diagonal_up_left"
78
+ }
79
+ },
80
+ "diagonal_up_right": {
81
+ "ids": {
82
+ "1.7.2": "",
83
+ "1.8": "rd",
84
+ "1.20.5": "minecraft:diagonal_up_right"
85
+ }
86
+ },
87
+ "flow": {
88
+ "ids": {
89
+ "1.7.2": "",
90
+ "1.20.5": "minecraft:flow"
91
+ }
92
+ },
93
+ "flower": {
94
+ "ids": {
95
+ "1.7.2": "",
96
+ "1.8": "flo",
97
+ "1.20.5": "minecraft:flower"
98
+ }
99
+ },
100
+ "globe": {
101
+ "ids": {
102
+ "1.7.2": "",
103
+ "1.14": "glb",
104
+ "1.20.5": "minecraft:globe"
105
+ }
106
+ },
107
+ "gradient": {
108
+ "ids": {
109
+ "1.7.2": "",
110
+ "1.8": "gra",
111
+ "1.20.5": "minecraft:gradient"
112
+ }
113
+ },
114
+ "gradient_up": {
115
+ "ids": {
116
+ "1.7.2": "",
117
+ "1.8": "gru",
118
+ "1.20.5": "minecraft:gradient_up"
119
+ }
120
+ },
121
+ "guster": {
122
+ "ids": {
123
+ "1.7.2": "",
124
+ "1.20.5": "minecraft:guster"
125
+ }
126
+ },
127
+ "half_horizontal": {
128
+ "ids": {
129
+ "1.7.2": "",
130
+ "1.8": "hh",
131
+ "1.20.5": "minecraft:half_horizontal"
132
+ }
133
+ },
134
+ "half_horizontal_bottom": {
135
+ "ids": {
136
+ "1.7.2": "",
137
+ "1.8": "hhb",
138
+ "1.20.5": "minecraft:half_horizontal_bottom"
139
+ }
140
+ },
141
+ "half_vertical": {
142
+ "ids": {
143
+ "1.7.2": "",
144
+ "1.8": "vh",
145
+ "1.20.5": "minecraft:half_vertical"
146
+ }
147
+ },
148
+ "half_vertical_right": {
149
+ "ids": {
150
+ "1.7.2": "",
151
+ "1.8": "vhr",
152
+ "1.20.5": "minecraft:half_vertical_right"
153
+ }
154
+ },
155
+ "mojang": {
156
+ "ids": {
157
+ "1.7.2": "",
158
+ "1.8": "moj",
159
+ "1.20.5": "minecraft:mojang"
160
+ }
161
+ },
162
+ "piglin": {
163
+ "ids": {
164
+ "1.7.2": "",
165
+ "1.16": "pig",
166
+ "1.20.5": "minecraft:piglin"
167
+ }
168
+ },
169
+ "rhombus": {
170
+ "ids": {
171
+ "1.7.2": "",
172
+ "1.8": "mr",
173
+ "1.20.5": "minecraft:rhombus"
174
+ }
175
+ },
176
+ "skull": {
177
+ "ids": {
178
+ "1.7.2": "",
179
+ "1.8": "sku",
180
+ "1.20.5": "minecraft:skull"
181
+ }
182
+ },
183
+ "small_stripes": {
184
+ "ids": {
185
+ "1.7.2": "",
186
+ "1.8": "ss",
187
+ "1.20.5": "minecraft:small_stripes"
188
+ }
189
+ },
190
+ "square_bottom_left": {
191
+ "ids": {
192
+ "1.7.2": "",
193
+ "1.8": "bl",
194
+ "1.20.5": "minecraft:square_bottom_left"
195
+ }
196
+ },
197
+ "square_bottom_right": {
198
+ "ids": {
199
+ "1.7.2": "",
200
+ "1.8": "br",
201
+ "1.20.5": "minecraft:square_bottom_right"
202
+ }
203
+ },
204
+ "square_top_left": {
205
+ "ids": {
206
+ "1.7.2": "",
207
+ "1.8": "tl",
208
+ "1.20.5": "minecraft:square_top_left"
209
+ }
210
+ },
211
+ "square_top_right": {
212
+ "ids": {
213
+ "1.7.2": "",
214
+ "1.8": "tr",
215
+ "1.20.5": "minecraft:square_top_right"
216
+ }
217
+ },
218
+ "straight_cross": {
219
+ "ids": {
220
+ "1.7.2": "",
221
+ "1.8": "sc",
222
+ "1.20.5": "minecraft:straight_cross"
223
+ }
224
+ },
225
+ "stripe_bottom": {
226
+ "ids": {
227
+ "1.7.2": "",
228
+ "1.8": "bs",
229
+ "1.20.5": "minecraft:stripe_bottom"
230
+ }
231
+ },
232
+ "stripe_center": {
233
+ "ids": {
234
+ "1.7.2": "",
235
+ "1.8": "cs",
236
+ "1.20.5": "minecraft:stripe_center"
237
+ }
238
+ },
239
+ "stripe_downleft": {
240
+ "ids": {
241
+ "1.7.2": "",
242
+ "1.8": "dls",
243
+ "1.20.5": "minecraft:stripe_downleft"
244
+ }
245
+ },
246
+ "stripe_downright": {
247
+ "ids": {
248
+ "1.7.2": "",
249
+ "1.8": "drs",
250
+ "1.20.5": "minecraft:stripe_downright"
251
+ }
252
+ },
253
+ "stripe_left": {
254
+ "ids": {
255
+ "1.7.2": "",
256
+ "1.8": "ls",
257
+ "1.20.5": "minecraft:stripe_left"
258
+ }
259
+ },
260
+ "stripe_middle": {
261
+ "ids": {
262
+ "1.7.2": "",
263
+ "1.8": "ms",
264
+ "1.20.5": "minecraft:stripe_middle"
265
+ }
266
+ },
267
+ "stripe_right": {
268
+ "ids": {
269
+ "1.7.2": "",
270
+ "1.8": "rs",
271
+ "1.20.5": "minecraft:stripe_right"
272
+ }
273
+ },
274
+ "stripe_top": {
275
+ "ids": {
276
+ "1.7.2": "",
277
+ "1.8": "ts",
278
+ "1.20.5": "minecraft:stripe_top"
279
+ }
280
+ },
281
+ "triangle_bottom": {
282
+ "ids": {
283
+ "1.7.2": "",
284
+ "1.8": "bt",
285
+ "1.20.5": "minecraft:triangle_bottom"
286
+ }
287
+ },
288
+ "triangle_top": {
289
+ "ids": {
290
+ "1.7.2": "",
291
+ "1.8": "tt",
292
+ "1.20.5": "minecraft:triangle_top"
293
+ }
294
+ },
295
+ "triangles_bottom": {
296
+ "ids": {
297
+ "1.7.2": "",
298
+ "1.8": "bts",
299
+ "1.20.5": "minecraft:triangles_bottom"
300
+ }
301
+ },
302
+ "triangles_top": {
303
+ "ids": {
304
+ "1.7.2": "",
305
+ "1.8": "tts",
306
+ "1.20.5": "minecraft:triangles_top"
307
+ }
308
+ }
309
+ }
310
+ }
mcdex/base/__init__.py ADDED
@@ -0,0 +1,146 @@
1
+ """
2
+ The 'mcdex.base' package provides what every catalogue is built on: the
3
+ versions of the game, the equipment slots, the base of every catalogue
4
+ ('MCThing'), and each kind's id class: the item's, the entity's, the
5
+ block's.
6
+
7
+ - MCVersion
8
+ - Version
9
+ - EquipmentSlot
10
+ - ItemId
11
+ - NotInVersion
12
+ - GameId
13
+ - CatalogueMeta
14
+ - MCThing
15
+ - EntityId
16
+ - BlockId
17
+ - EffectId
18
+ - EnchantmentId
19
+ - PotionId
20
+ - PotionModifier
21
+ - BiomeId
22
+ - BlockEntityId
23
+ - ParticleId
24
+ - SoundId
25
+ - AttributeId
26
+ - StatisticId
27
+ - GameRuleId
28
+ - VillagerProfessionId
29
+ - VillagerTypeId
30
+ - DimensionId
31
+ - DamageTypeId
32
+ - MusicId
33
+ - TrimPatternId
34
+ - TrimMaterialId
35
+ - WolfVariantId
36
+ - CatVariantId
37
+ - FrogVariantId
38
+ - PigVariantId
39
+ - CowVariantId
40
+ - ChickenVariantId
41
+ - ZombieNautilusVariantId
42
+ - WolfSoundVariantId
43
+ - CatSoundVariantId
44
+ - PigSoundVariantId
45
+ - CowSoundVariantId
46
+ - ChickenSoundVariantId
47
+ - PaintingVariantId
48
+ - BannerPatternId
49
+ - AdvancementId
50
+ - StructureId
51
+ """
52
+ # Apache-2.0 license
53
+ # Copyright (c) 2026 Asger Jon Vistisen
54
+ from __future__ import annotations
55
+
56
+ from ._mc_version import MCVersion
57
+ from ._version import Version
58
+ from ._equipment_slot import EquipmentSlot
59
+ from ._item_id import ItemId
60
+ from ._not_in_version import NotInVersion
61
+ from ._game_id import GameId
62
+ from ._catalogue_meta import CatalogueMeta
63
+ from ._mc_thing import MCThing
64
+ from ._entity_id import EntityId
65
+ from ._block_id import BlockId
66
+ from ._effect_id import EffectId
67
+ from ._enchantment_id import EnchantmentId
68
+ from ._potion_id import PotionId
69
+ from ._potion_modifier import PotionModifier
70
+ from ._biome_id import BiomeId
71
+ from ._block_entity_id import BlockEntityId
72
+ from ._particle_id import ParticleId
73
+ from ._sound_id import SoundId
74
+ from ._attribute_id import AttributeId
75
+ from ._statistic_id import StatisticId
76
+ from ._game_rule_id import GameRuleId
77
+ from ._villager_profession_id import VillagerProfessionId
78
+ from ._villager_type_id import VillagerTypeId
79
+ from ._dimension_id import DimensionId
80
+ from ._damage_type_id import DamageTypeId
81
+ from ._music_id import MusicId
82
+ from ._trim_pattern_id import TrimPatternId
83
+ from ._trim_material_id import TrimMaterialId
84
+ from ._wolf_variant_id import WolfVariantId
85
+ from ._cat_variant_id import CatVariantId
86
+ from ._frog_variant_id import FrogVariantId
87
+ from ._pig_variant_id import PigVariantId
88
+ from ._cow_variant_id import CowVariantId
89
+ from ._chicken_variant_id import ChickenVariantId
90
+ from ._zombie_nautilus_variant_id import ZombieNautilusVariantId
91
+ from ._wolf_sound_variant_id import WolfSoundVariantId
92
+ from ._cat_sound_variant_id import CatSoundVariantId
93
+ from ._pig_sound_variant_id import PigSoundVariantId
94
+ from ._cow_sound_variant_id import CowSoundVariantId
95
+ from ._chicken_sound_variant_id import ChickenSoundVariantId
96
+ from ._painting_variant_id import PaintingVariantId
97
+ from ._banner_pattern_id import BannerPatternId
98
+ from ._advancement_id import AdvancementId
99
+ from ._structure_id import StructureId
100
+
101
+ __all__ = (
102
+ 'MCVersion',
103
+ 'Version',
104
+ 'EquipmentSlot',
105
+ 'ItemId',
106
+ 'NotInVersion',
107
+ 'GameId',
108
+ 'CatalogueMeta',
109
+ 'MCThing',
110
+ 'EntityId',
111
+ 'BlockId',
112
+ 'EffectId',
113
+ 'EnchantmentId',
114
+ 'PotionId',
115
+ 'PotionModifier',
116
+ 'BiomeId',
117
+ 'BlockEntityId',
118
+ 'ParticleId',
119
+ 'SoundId',
120
+ 'AttributeId',
121
+ 'StatisticId',
122
+ 'GameRuleId',
123
+ 'VillagerProfessionId',
124
+ 'VillagerTypeId',
125
+ 'DimensionId',
126
+ 'DamageTypeId',
127
+ 'MusicId',
128
+ 'TrimPatternId',
129
+ 'TrimMaterialId',
130
+ 'WolfVariantId',
131
+ 'CatVariantId',
132
+ 'FrogVariantId',
133
+ 'PigVariantId',
134
+ 'CowVariantId',
135
+ 'ChickenVariantId',
136
+ 'ZombieNautilusVariantId',
137
+ 'WolfSoundVariantId',
138
+ 'CatSoundVariantId',
139
+ 'PigSoundVariantId',
140
+ 'CowSoundVariantId',
141
+ 'ChickenSoundVariantId',
142
+ 'PaintingVariantId',
143
+ 'BannerPatternId',
144
+ 'AdvancementId',
145
+ 'StructureId',
146
+ )
@@ -0,0 +1,22 @@
1
+ """
2
+ AdvancementId pairs an advancement's unique name with the id a version of the
3
+ game needs to identify it.
4
+ """
5
+ # Apache-2.0 license
6
+ # Copyright (c) 2026 Asger Jon Vistisen
7
+ from __future__ import annotations
8
+
9
+ from . import GameId
10
+
11
+
12
+ class AdvancementId(GameId):
13
+ """
14
+ The id of an advancement in one version: its 'uniqueName', the same in every
15
+ version, and its 'minecraftId', what /advancement takes in that version.
16
+
17
+ Implementation
18
+ --------------
19
+
20
+ All of it is 'GameId's: an 'AdvancementId' is equal only to an
21
+ 'AdvancementId'.
22
+ """
@@ -0,0 +1,22 @@
1
+ """
2
+ AttributeId pairs an attribute's unique name with the id a version of the game
3
+ needs to identify it.
4
+ """
5
+ # Apache-2.0 license
6
+ # Copyright (c) 2026 Asger Jon Vistisen
7
+ from __future__ import annotations
8
+
9
+ from . import GameId
10
+
11
+
12
+ class AttributeId(GameId):
13
+ """
14
+ The id of an attribute in one version: its 'uniqueName', the same in every
15
+ version, and its 'minecraftId', the name an entity's data gives it, and from
16
+ 1.16 what '/attribute' takes in that version.
17
+
18
+ Implementation
19
+ --------------
20
+
21
+ All of it is 'GameId's: an 'AttributeId' is equal only to an 'AttributeId'.
22
+ """
@@ -0,0 +1,26 @@
1
+ """
2
+ BannerPatternId pairs a banner pattern's unique name with the id a version of
3
+ the game needs to identify it.
4
+ """
5
+ # Apache-2.0 license
6
+ # Copyright (c) 2026 Asger Jon Vistisen
7
+ from __future__ import annotations
8
+
9
+ from . import GameId
10
+
11
+
12
+ class BannerPatternId(GameId):
13
+ """
14
+ The id of a banner pattern in one version: its 'uniqueName', the same in
15
+ every version, and its 'minecraftId', what a banner's pattern takes in that
16
+ version.
17
+
18
+ A command takes it only inside a banner's data, whose shape changed over
19
+ the versions: see the README's 'Ids that go inside an item'.
20
+
21
+ Implementation
22
+ --------------
23
+
24
+ All of it is 'GameId's: a 'BannerPatternId' is equal only to a
25
+ 'BannerPatternId'.
26
+ """
@@ -0,0 +1,22 @@
1
+ """
2
+ BiomeId pairs a biome's unique name with the id a version of the game
3
+ needs to identify it.
4
+ """
5
+ # Apache-2.0 license
6
+ # Copyright (c) 2026 Asger Jon Vistisen
7
+ from __future__ import annotations
8
+
9
+ from . import GameId
10
+
11
+
12
+ class BiomeId(GameId):
13
+ """
14
+ The id of a biome in one version: its 'uniqueName', the same in every
15
+ version, and its 'minecraftId', the biome's number to 1.8.9, its name from
16
+ 1.9 in that version.
17
+
18
+ Implementation
19
+ --------------
20
+
21
+ All of it is 'GameId's: a 'BiomeId' is equal only to a 'BiomeId'.
22
+ """
@@ -0,0 +1,22 @@
1
+ """
2
+ BlockEntityId pairs a block entity's unique name with the id a version of the
3
+ game needs to identify it.
4
+ """
5
+ # Apache-2.0 license
6
+ # Copyright (c) 2026 Asger Jon Vistisen
7
+ from __future__ import annotations
8
+
9
+ from . import GameId
10
+
11
+
12
+ class BlockEntityId(GameId):
13
+ """
14
+ The id of a block entity in one version: its 'uniqueName', the same in every
15
+ version, and its 'minecraftId', the name it is saved under, the 'id' in its
16
+ data in that version.
17
+
18
+ Implementation
19
+ --------------
20
+
21
+ All of it is 'GameId's: a 'BlockEntityId' is equal only to a 'BlockEntityId'.
22
+ """
@@ -0,0 +1,35 @@
1
+ """
2
+ BlockId pairs a block's unique name with the id a version of the game
3
+ needs to identify it.
4
+ """
5
+ # Apache-2.0 license
6
+ # Copyright (c) 2026 Asger Jon Vistisen
7
+ from __future__ import annotations
8
+
9
+ from . import GameId
10
+
11
+
12
+ class BlockId(GameId):
13
+ """
14
+ A user of mcdex names a block once, by its unique name, as
15
+ 'pink_wool', and each version of the game needs its own id for it:
16
+ what '/setblock' takes. 'BlockId' holds the two: 'uniqueName', the same
17
+ in every version, and 'minecraftId', all that one version needs to
18
+ identify the block, as one string in the notation of its era:
19
+
20
+ BlockId('pink_wool', 'minecraft:wool:6') # 1.7.2 to 1.12.2
21
+ BlockId('pink_wool', 'minecraft:pink_wool') # since 1.13
22
+
23
+ Before 1.13 a block was a name and a meta, the meta part of the id
24
+ only where it told blocks apart: 'minecraft:oak_stairs' is any oak
25
+ stairs, but 'minecraft:wool:6' is the pink wool. Where an old version
26
+ told blocks apart by their block entity, the id carries that data
27
+ after the name: the creeper head of 1.12.2 is a skull of type 4,
28
+ 'minecraft:skull:1{SkullType:4b}'. The water cauldron of 1.13 to
29
+ 1.16.5 was a cauldron with water in it, 'minecraft:cauldron[level=1]'.
30
+
31
+ Implementation
32
+ --------------
33
+
34
+ All of it is 'GameId's: a 'BlockId' is equal only to a 'BlockId'.
35
+ """
@@ -0,0 +1,23 @@
1
+ """
2
+ CatSoundVariantId pairs a cat sound variant's unique name with the id a version
3
+ of the game needs to identify it.
4
+ """
5
+ # Apache-2.0 license
6
+ # Copyright (c) 2026 Asger Jon Vistisen
7
+ from __future__ import annotations
8
+
9
+ from . import GameId
10
+
11
+
12
+ class CatSoundVariantId(GameId):
13
+ """
14
+ The id of a cat sound variant in one version: its 'uniqueName', the same in
15
+ every version, and its 'minecraftId', what /summon takes for a cat of that
16
+ sound variant in that version.
17
+
18
+ Implementation
19
+ --------------
20
+
21
+ All of it is 'GameId's: a 'CatSoundVariantId' is equal only to a
22
+ 'CatSoundVariantId'.
23
+ """
@@ -0,0 +1,22 @@
1
+ """
2
+ CatVariantId pairs a cat variant's unique name with the id a version of the
3
+ game needs to identify it.
4
+ """
5
+ # Apache-2.0 license
6
+ # Copyright (c) 2026 Asger Jon Vistisen
7
+ from __future__ import annotations
8
+
9
+ from . import GameId
10
+
11
+
12
+ class CatVariantId(GameId):
13
+ """
14
+ The id of a cat variant in one version: its 'uniqueName', the same in every
15
+ version, and its 'minecraftId', what /summon takes for a cat of that variant
16
+ in that version.
17
+
18
+ Implementation
19
+ --------------
20
+
21
+ All of it is 'GameId's: a 'CatVariantId' is equal only to a 'CatVariantId'.
22
+ """
@@ -0,0 +1,38 @@
1
+ """
2
+ CatalogueMeta is the metaclass of mcdex's catalogues: worktoy's
3
+ enumeration metaclass, with membership that takes a unique name too.
4
+ """
5
+ # Apache-2.0 license
6
+ # Copyright (c) 2026 Asger Jon Vistisen
7
+ from __future__ import annotations
8
+
9
+ from typing import TYPE_CHECKING
10
+
11
+ from worktoy.keenum import KeeMeta
12
+
13
+ if TYPE_CHECKING: # pragma: no cover, no mutate
14
+ from typing import Any
15
+
16
+
17
+ class CatalogueMeta(KeeMeta):
18
+ """
19
+ A catalogue answers whether it has a thing of a name, as well as
20
+ whether a thing is its own:
21
+
22
+ 'pink_wool' in MCItems # True
23
+ MCItems.PINK_WOOL in MCItems # True
24
+ MCBlocks.PINK_WOOL in MCItems # False
25
+
26
+ Implementation
27
+ --------------
28
+
29
+ All of it is 'KeeMeta's, but for a 'str', which is in the catalogue
30
+ when it is the unique name of one of its members. The catalogues are
31
+ built on 'CatalogueMeta.keeNum', the root this metaclass gives its
32
+ enumerations.
33
+ """
34
+
35
+ def __contains__(cls, identifier: Any) -> bool:
36
+ if isinstance(identifier, str):
37
+ return identifier in cls._byUniqueName()
38
+ return KeeMeta.__contains__(cls, identifier)