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,119 @@
1
+ {
2
+ "covers": [
3
+ "1.7.2",
4
+ "26.3"
5
+ ],
6
+ "legend": {
7
+ "": "vanilla has no such trim pattern in this version"
8
+ },
9
+ "trim_patterns": {
10
+ "bolt": {
11
+ "ids": {
12
+ "1.7.2": "",
13
+ "1.20.5": "minecraft:bolt"
14
+ }
15
+ },
16
+ "coast": {
17
+ "ids": {
18
+ "1.7.2": "",
19
+ "1.19.4": "minecraft:coast"
20
+ }
21
+ },
22
+ "dune": {
23
+ "ids": {
24
+ "1.7.2": "",
25
+ "1.19.4": "minecraft:dune"
26
+ }
27
+ },
28
+ "eye": {
29
+ "ids": {
30
+ "1.7.2": "",
31
+ "1.19.4": "minecraft:eye"
32
+ }
33
+ },
34
+ "flow": {
35
+ "ids": {
36
+ "1.7.2": "",
37
+ "1.20.5": "minecraft:flow"
38
+ }
39
+ },
40
+ "host": {
41
+ "ids": {
42
+ "1.7.2": "",
43
+ "1.20": "minecraft:host"
44
+ }
45
+ },
46
+ "raiser": {
47
+ "ids": {
48
+ "1.7.2": "",
49
+ "1.20": "minecraft:raiser"
50
+ }
51
+ },
52
+ "rib": {
53
+ "ids": {
54
+ "1.7.2": "",
55
+ "1.19.4": "minecraft:rib"
56
+ }
57
+ },
58
+ "sentry": {
59
+ "ids": {
60
+ "1.7.2": "",
61
+ "1.19.4": "minecraft:sentry"
62
+ }
63
+ },
64
+ "shaper": {
65
+ "ids": {
66
+ "1.7.2": "",
67
+ "1.20": "minecraft:shaper"
68
+ }
69
+ },
70
+ "silence": {
71
+ "ids": {
72
+ "1.7.2": "",
73
+ "1.20": "minecraft:silence"
74
+ }
75
+ },
76
+ "snout": {
77
+ "ids": {
78
+ "1.7.2": "",
79
+ "1.19.4": "minecraft:snout"
80
+ }
81
+ },
82
+ "spire": {
83
+ "ids": {
84
+ "1.7.2": "",
85
+ "1.19.4": "minecraft:spire"
86
+ }
87
+ },
88
+ "tide": {
89
+ "ids": {
90
+ "1.7.2": "",
91
+ "1.19.4": "minecraft:tide"
92
+ }
93
+ },
94
+ "vex": {
95
+ "ids": {
96
+ "1.7.2": "",
97
+ "1.19.4": "minecraft:vex"
98
+ }
99
+ },
100
+ "ward": {
101
+ "ids": {
102
+ "1.7.2": "",
103
+ "1.19.4": "minecraft:ward"
104
+ }
105
+ },
106
+ "wayfinder": {
107
+ "ids": {
108
+ "1.7.2": "",
109
+ "1.20": "minecraft:wayfinder"
110
+ }
111
+ },
112
+ "wild": {
113
+ "ids": {
114
+ "1.7.2": "",
115
+ "1.19.4": "minecraft:wild"
116
+ }
117
+ }
118
+ }
119
+ }
@@ -0,0 +1,17 @@
1
+ """
2
+ The 'mcdex.villager_professions' package provides the villager professions of
3
+ the game: the 'MCVillagerProfessions' catalogue, an enumeration of every
4
+ villager profession of the data file 'villager_professions.json' that ships
5
+ with the package.
6
+
7
+ - MCVillagerProfessions
8
+ """
9
+ # Apache-2.0 license
10
+ # Copyright (c) 2026 Asger Jon Vistisen
11
+ from __future__ import annotations
12
+
13
+ from ._mc_villager_professions import MCVillagerProfessions
14
+
15
+ __all__ = (
16
+ 'MCVillagerProfessions',
17
+ )
@@ -0,0 +1,61 @@
1
+ """
2
+ MCVillagerProfessions is the catalogue of the game's villager professions: an
3
+ enumeration with one member for every villager profession of the data file that
4
+ ships with mcdex, each the same villager profession in every version, with the
5
+ id each version knows it by: what /summon takes for a villager of that
6
+ profession.
7
+ """
8
+ # Apache-2.0 license
9
+ # Copyright (c) 2026 Asger Jon Vistisen
10
+ from __future__ import annotations
11
+
12
+ from worktoy.keenum import Kee
13
+
14
+ from ..base import MCThing, VillagerProfessionId
15
+
16
+
17
+ class MCVillagerProfessions(MCThing):
18
+ """
19
+ The catalogue of the game's villager professions, each a member, found by its
20
+ name in capitals, in any case, or by its unique name:
21
+
22
+ fisherman = MCVillagerProfessions.FISHERMAN
23
+ fisherman is MCVillagerProfessions['fisherman'] # True
24
+ fisherman['1.13.2']
25
+ # VillagerProfessionId('fisherman',
26
+ # 'minecraft:villager{Profession:0,Career:2}')
27
+ len(MCVillagerProfessions)
28
+
29
+ Implementation
30
+ --------------
31
+
32
+ All of it is 'MCThing's, reading 'villager_professions.json' beside this
33
+ module. mcdex's tools write the members, one for every name of that file.
34
+ """
35
+
36
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
37
+ # NAMESPACE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
38
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
39
+
40
+ # Class Variables
41
+ __data_file__ = 'villager_professions.json'
42
+ __data_key__ = 'villager_professions'
43
+ __id_class__ = VillagerProfessionId
44
+ __kind__ = 'villager profession'
45
+
46
+ # Members, one for every name of 'villager_professions.json'
47
+ ARMORER = Kee[str]('armorer')
48
+ BUTCHER = Kee[str]('butcher')
49
+ CARTOGRAPHER = Kee[str]('cartographer')
50
+ CLERIC = Kee[str]('cleric')
51
+ FARMER = Kee[str]('farmer')
52
+ FISHERMAN = Kee[str]('fisherman')
53
+ FLETCHER = Kee[str]('fletcher')
54
+ LEATHERWORKER = Kee[str]('leatherworker')
55
+ LIBRARIAN = Kee[str]('librarian')
56
+ MASON = Kee[str]('mason')
57
+ NITWIT = Kee[str]('nitwit')
58
+ NONE = Kee[str]('none')
59
+ SHEPHERD = Kee[str]('shepherd')
60
+ TOOLSMITH = Kee[str]('toolsmith')
61
+ WEAPONSMITH = Kee[str]('weaponsmith')
@@ -0,0 +1,125 @@
1
+ {
2
+ "covers": [
3
+ "1.7.2",
4
+ "26.3"
5
+ ],
6
+ "legend": {
7
+ "": "vanilla has no such villager profession in this version"
8
+ },
9
+ "villager_professions": {
10
+ "armorer": {
11
+ "ids": {
12
+ "1.7.2": "Villager{Profession:3}",
13
+ "1.8": "Villager{Profession:3,Career:1}",
14
+ "1.11": "minecraft:villager{Profession:3,Career:1}",
15
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:armorer\"}}"
16
+ }
17
+ },
18
+ "butcher": {
19
+ "ids": {
20
+ "1.7.2": "Villager{Profession:4}",
21
+ "1.8": "Villager{Profession:4,Career:1}",
22
+ "1.11": "minecraft:villager{Profession:4,Career:1}",
23
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:butcher\"}}"
24
+ }
25
+ },
26
+ "cartographer": {
27
+ "ids": {
28
+ "1.7.2": "",
29
+ "1.11": "minecraft:villager{Profession:1,Career:2}",
30
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:cartographer\"}}"
31
+ }
32
+ },
33
+ "cleric": {
34
+ "ids": {
35
+ "1.7.2": "Villager{Profession:2}",
36
+ "1.8": "Villager{Profession:2,Career:1}",
37
+ "1.11": "minecraft:villager{Profession:2,Career:1}",
38
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:cleric\"}}"
39
+ }
40
+ },
41
+ "farmer": {
42
+ "ids": {
43
+ "1.7.2": "Villager{Profession:0}",
44
+ "1.8": "Villager{Profession:0,Career:1}",
45
+ "1.11": "minecraft:villager{Profession:0,Career:1}",
46
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:farmer\"}}"
47
+ }
48
+ },
49
+ "fisherman": {
50
+ "ids": {
51
+ "1.7.2": "",
52
+ "1.8": "Villager{Profession:0,Career:2}",
53
+ "1.11": "minecraft:villager{Profession:0,Career:2}",
54
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:fisherman\"}}"
55
+ }
56
+ },
57
+ "fletcher": {
58
+ "ids": {
59
+ "1.7.2": "",
60
+ "1.8": "Villager{Profession:0,Career:4}",
61
+ "1.11": "minecraft:villager{Profession:0,Career:4}",
62
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:fletcher\"}}"
63
+ }
64
+ },
65
+ "leatherworker": {
66
+ "ids": {
67
+ "1.7.2": "",
68
+ "1.8": "Villager{Profession:4,Career:2}",
69
+ "1.11": "minecraft:villager{Profession:4,Career:2}",
70
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:leatherworker\"}}"
71
+ }
72
+ },
73
+ "librarian": {
74
+ "ids": {
75
+ "1.7.2": "Villager{Profession:1}",
76
+ "1.8": "Villager{Profession:1,Career:1}",
77
+ "1.11": "minecraft:villager{Profession:1,Career:1}",
78
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:librarian\"}}"
79
+ }
80
+ },
81
+ "mason": {
82
+ "ids": {
83
+ "1.7.2": "",
84
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:mason\"}}"
85
+ }
86
+ },
87
+ "nitwit": {
88
+ "ids": {
89
+ "1.7.2": "",
90
+ "1.11": "minecraft:villager{Profession:5,Career:1}",
91
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:nitwit\"}}"
92
+ }
93
+ },
94
+ "none": {
95
+ "ids": {
96
+ "1.7.2": "",
97
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:none\"}}"
98
+ }
99
+ },
100
+ "shepherd": {
101
+ "ids": {
102
+ "1.7.2": "",
103
+ "1.8": "Villager{Profession:0,Career:3}",
104
+ "1.11": "minecraft:villager{Profession:0,Career:3}",
105
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:shepherd\"}}"
106
+ }
107
+ },
108
+ "toolsmith": {
109
+ "ids": {
110
+ "1.7.2": "",
111
+ "1.8": "Villager{Profession:3,Career:3}",
112
+ "1.11": "minecraft:villager{Profession:3,Career:3}",
113
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:toolsmith\"}}"
114
+ }
115
+ },
116
+ "weaponsmith": {
117
+ "ids": {
118
+ "1.7.2": "",
119
+ "1.8": "Villager{Profession:3,Career:2}",
120
+ "1.11": "minecraft:villager{Profession:3,Career:2}",
121
+ "1.14": "minecraft:villager{VillagerData:{profession:\"minecraft:weaponsmith\"}}"
122
+ }
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,16 @@
1
+ """
2
+ The 'mcdex.villager_types' package provides the villager types of the game: the
3
+ 'MCVillagerTypes' catalogue, an enumeration of every villager type of the data
4
+ file 'villager_types.json' that ships with the package.
5
+
6
+ - MCVillagerTypes
7
+ """
8
+ # Apache-2.0 license
9
+ # Copyright (c) 2026 Asger Jon Vistisen
10
+ from __future__ import annotations
11
+
12
+ from ._mc_villager_types import MCVillagerTypes
13
+
14
+ __all__ = (
15
+ 'MCVillagerTypes',
16
+ )
@@ -0,0 +1,52 @@
1
+ """
2
+ MCVillagerTypes is the catalogue of the game's villager types: an enumeration
3
+ with one member for every villager type of the data file that ships with mcdex,
4
+ each the same villager type in every version, with the id each version knows it
5
+ by: what /summon takes for a villager of that type.
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 MCThing, VillagerTypeId
14
+
15
+
16
+ class MCVillagerTypes(MCThing):
17
+ """
18
+ The catalogue of the game's villager types, each a member, found by its name
19
+ in capitals, in any case, or by its unique name:
20
+
21
+ desert = MCVillagerTypes.DESERT
22
+ desert is MCVillagerTypes['desert'] # True
23
+ desert['1.14']
24
+ # VillagerTypeId('desert',
25
+ # 'minecraft:villager{VillagerData:{type:"minecraft:desert"}}')
26
+ len(MCVillagerTypes)
27
+
28
+ Implementation
29
+ --------------
30
+
31
+ All of it is 'MCThing's, reading 'villager_types.json' beside this module.
32
+ mcdex's tools write the members, one for every name of that file.
33
+ """
34
+
35
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
36
+ # NAMESPACE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
37
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
38
+
39
+ # Class Variables
40
+ __data_file__ = 'villager_types.json'
41
+ __data_key__ = 'villager_types'
42
+ __id_class__ = VillagerTypeId
43
+ __kind__ = 'villager type'
44
+
45
+ # Members, one for every name of 'villager_types.json'
46
+ DESERT = Kee[str]('desert')
47
+ JUNGLE = Kee[str]('jungle')
48
+ PLAINS = Kee[str]('plains')
49
+ SAVANNA = Kee[str]('savanna')
50
+ SNOW = Kee[str]('snow')
51
+ SWAMP = Kee[str]('swamp')
52
+ TAIGA = Kee[str]('taiga')
@@ -0,0 +1,54 @@
1
+ {
2
+ "covers": [
3
+ "1.7.2",
4
+ "26.3"
5
+ ],
6
+ "legend": {
7
+ "": "vanilla has no such villager type in this version"
8
+ },
9
+ "villager_types": {
10
+ "desert": {
11
+ "ids": {
12
+ "1.7.2": "",
13
+ "1.14": "minecraft:villager{VillagerData:{type:\"minecraft:desert\"}}"
14
+ }
15
+ },
16
+ "jungle": {
17
+ "ids": {
18
+ "1.7.2": "",
19
+ "1.14": "minecraft:villager{VillagerData:{type:\"minecraft:jungle\"}}"
20
+ }
21
+ },
22
+ "plains": {
23
+ "ids": {
24
+ "1.7.2": "Villager",
25
+ "1.11": "minecraft:villager",
26
+ "1.14": "minecraft:villager{VillagerData:{type:\"minecraft:plains\"}}"
27
+ }
28
+ },
29
+ "savanna": {
30
+ "ids": {
31
+ "1.7.2": "",
32
+ "1.14": "minecraft:villager{VillagerData:{type:\"minecraft:savanna\"}}"
33
+ }
34
+ },
35
+ "snow": {
36
+ "ids": {
37
+ "1.7.2": "",
38
+ "1.14": "minecraft:villager{VillagerData:{type:\"minecraft:snow\"}}"
39
+ }
40
+ },
41
+ "swamp": {
42
+ "ids": {
43
+ "1.7.2": "",
44
+ "1.14": "minecraft:villager{VillagerData:{type:\"minecraft:swamp\"}}"
45
+ }
46
+ },
47
+ "taiga": {
48
+ "ids": {
49
+ "1.7.2": "",
50
+ "1.14": "minecraft:villager{VillagerData:{type:\"minecraft:taiga\"}}"
51
+ }
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,17 @@
1
+ """
2
+ The 'mcdex.wolf_sound_variants' package provides the wolf sound variants of the
3
+ game: the 'MCWolfSoundVariants' catalogue, an enumeration of every wolf sound
4
+ variant of the data file 'wolf_sound_variants.json' that ships with the
5
+ package.
6
+
7
+ - MCWolfSoundVariants
8
+ """
9
+ # Apache-2.0 license
10
+ # Copyright (c) 2026 Asger Jon Vistisen
11
+ from __future__ import annotations
12
+
13
+ from ._mc_wolf_sound_variants import MCWolfSoundVariants
14
+
15
+ __all__ = (
16
+ 'MCWolfSoundVariants',
17
+ )
@@ -0,0 +1,53 @@
1
+ """
2
+ MCWolfSoundVariants is the catalogue of the game's wolf sound variants: an
3
+ enumeration with one member for every wolf sound variant of the data file that
4
+ ships with mcdex, each the same wolf sound variant in every version, with the
5
+ id each version knows it by: what /summon takes for a wolf of that sound
6
+ variant.
7
+ """
8
+ # Apache-2.0 license
9
+ # Copyright (c) 2026 Asger Jon Vistisen
10
+ from __future__ import annotations
11
+
12
+ from worktoy.keenum import Kee
13
+
14
+ from ..base import MCThing, WolfSoundVariantId
15
+
16
+
17
+ class MCWolfSoundVariants(MCThing):
18
+ """
19
+ The catalogue of the game's wolf sound variants, each a member, found by its
20
+ name in capitals, in any case, or by its unique name:
21
+
22
+ puglin = MCWolfSoundVariants.PUGLIN
23
+ puglin is MCWolfSoundVariants['puglin'] # True
24
+ puglin['1.21.5']
25
+ # WolfSoundVariantId('puglin',
26
+ # 'minecraft:wolf{sound_variant:"minecraft:puglin"}')
27
+ len(MCWolfSoundVariants)
28
+
29
+ Implementation
30
+ --------------
31
+
32
+ All of it is 'MCThing's, reading 'wolf_sound_variants.json' beside this
33
+ module. mcdex's tools write the members, one for every name of that file.
34
+ """
35
+
36
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
37
+ # NAMESPACE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
38
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
39
+
40
+ # Class Variables
41
+ __data_file__ = 'wolf_sound_variants.json'
42
+ __data_key__ = 'wolf_sound_variants'
43
+ __id_class__ = WolfSoundVariantId
44
+ __kind__ = 'wolf sound variant'
45
+
46
+ # Members, one for every name of 'wolf_sound_variants.json'
47
+ ANGRY = Kee[str]('angry')
48
+ BIG = Kee[str]('big')
49
+ CLASSIC = Kee[str]('classic')
50
+ CUTE = Kee[str]('cute')
51
+ GRUMPY = Kee[str]('grumpy')
52
+ PUGLIN = Kee[str]('puglin')
53
+ SAD = Kee[str]('sad')
@@ -0,0 +1,54 @@
1
+ {
2
+ "covers": [
3
+ "1.7.2",
4
+ "26.3"
5
+ ],
6
+ "legend": {
7
+ "": "vanilla has no such wolf sound variant in this version"
8
+ },
9
+ "wolf_sound_variants": {
10
+ "angry": {
11
+ "ids": {
12
+ "1.7.2": "",
13
+ "1.21.5": "minecraft:wolf{sound_variant:\"minecraft:angry\"}"
14
+ }
15
+ },
16
+ "big": {
17
+ "ids": {
18
+ "1.7.2": "",
19
+ "1.21.5": "minecraft:wolf{sound_variant:\"minecraft:big\"}"
20
+ }
21
+ },
22
+ "classic": {
23
+ "ids": {
24
+ "1.7.2": "Wolf",
25
+ "1.11": "minecraft:wolf",
26
+ "1.21.5": "minecraft:wolf{sound_variant:\"minecraft:classic\"}"
27
+ }
28
+ },
29
+ "cute": {
30
+ "ids": {
31
+ "1.7.2": "",
32
+ "1.21.5": "minecraft:wolf{sound_variant:\"minecraft:cute\"}"
33
+ }
34
+ },
35
+ "grumpy": {
36
+ "ids": {
37
+ "1.7.2": "",
38
+ "1.21.5": "minecraft:wolf{sound_variant:\"minecraft:grumpy\"}"
39
+ }
40
+ },
41
+ "puglin": {
42
+ "ids": {
43
+ "1.7.2": "",
44
+ "1.21.5": "minecraft:wolf{sound_variant:\"minecraft:puglin\"}"
45
+ }
46
+ },
47
+ "sad": {
48
+ "ids": {
49
+ "1.7.2": "",
50
+ "1.21.5": "minecraft:wolf{sound_variant:\"minecraft:sad\"}"
51
+ }
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,16 @@
1
+ """
2
+ The 'mcdex.wolf_variants' package provides the wolf variants of the game: the
3
+ 'MCWolfVariants' catalogue, an enumeration of every wolf variant of the data
4
+ file 'wolf_variants.json' that ships with the package.
5
+
6
+ - MCWolfVariants
7
+ """
8
+ # Apache-2.0 license
9
+ # Copyright (c) 2026 Asger Jon Vistisen
10
+ from __future__ import annotations
11
+
12
+ from ._mc_wolf_variants import MCWolfVariants
13
+
14
+ __all__ = (
15
+ 'MCWolfVariants',
16
+ )
@@ -0,0 +1,53 @@
1
+ """
2
+ MCWolfVariants is the catalogue of the game's wolf variants: an enumeration
3
+ with one member for every wolf variant of the data file that ships with mcdex,
4
+ each the same wolf variant in every version, with the id each version knows it
5
+ by: what /summon takes for a wolf of that variant.
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 MCThing, WolfVariantId
14
+
15
+
16
+ class MCWolfVariants(MCThing):
17
+ """
18
+ The catalogue of the game's wolf variants, each a member, found by its name
19
+ in capitals, in any case, or by its unique name:
20
+
21
+ ashen = MCWolfVariants.ASHEN
22
+ ashen is MCWolfVariants['ashen'] # True
23
+ ashen['1.20.5']
24
+ # WolfVariantId('ashen', 'minecraft:wolf{variant:"minecraft:ashen"}')
25
+ len(MCWolfVariants)
26
+
27
+ Implementation
28
+ --------------
29
+
30
+ All of it is 'MCThing's, reading 'wolf_variants.json' beside this module.
31
+ mcdex's tools write the members, one for every name of that file.
32
+ """
33
+
34
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
35
+ # NAMESPACE # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
36
+ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
37
+
38
+ # Class Variables
39
+ __data_file__ = 'wolf_variants.json'
40
+ __data_key__ = 'wolf_variants'
41
+ __id_class__ = WolfVariantId
42
+ __kind__ = 'wolf variant'
43
+
44
+ # Members, one for every name of 'wolf_variants.json'
45
+ ASHEN = Kee[str]('ashen')
46
+ BLACK = Kee[str]('black')
47
+ CHESTNUT = Kee[str]('chestnut')
48
+ PALE = Kee[str]('pale')
49
+ RUSTY = Kee[str]('rusty')
50
+ SNOWY = Kee[str]('snowy')
51
+ SPOTTED = Kee[str]('spotted')
52
+ STRIPED = Kee[str]('striped')
53
+ WOODS = Kee[str]('woods')