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.
- mcdex/__init__.py +281 -0
- mcdex/advancements/__init__.py +16 -0
- mcdex/advancements/_mc_advancements.py +3558 -0
- mcdex/advancements/advancements.json +12101 -0
- mcdex/attributes/__init__.py +16 -0
- mcdex/attributes/_mc_attributes.py +83 -0
- mcdex/attributes/attributes.json +289 -0
- mcdex/banner_patterns/__init__.py +16 -0
- mcdex/banner_patterns/_mc_banner_patterns.py +86 -0
- mcdex/banner_patterns/banner_patterns.json +310 -0
- mcdex/base/__init__.py +146 -0
- mcdex/base/_advancement_id.py +22 -0
- mcdex/base/_attribute_id.py +22 -0
- mcdex/base/_banner_pattern_id.py +26 -0
- mcdex/base/_biome_id.py +22 -0
- mcdex/base/_block_entity_id.py +22 -0
- mcdex/base/_block_id.py +35 -0
- mcdex/base/_cat_sound_variant_id.py +23 -0
- mcdex/base/_cat_variant_id.py +22 -0
- mcdex/base/_catalogue_meta.py +38 -0
- mcdex/base/_chicken_sound_variant_id.py +23 -0
- mcdex/base/_chicken_variant_id.py +23 -0
- mcdex/base/_cow_sound_variant_id.py +23 -0
- mcdex/base/_cow_variant_id.py +22 -0
- mcdex/base/_damage_type_id.py +21 -0
- mcdex/base/_dimension_id.py +21 -0
- mcdex/base/_effect_id.py +21 -0
- mcdex/base/_enchantment_id.py +22 -0
- mcdex/base/_entity_id.py +35 -0
- mcdex/base/_equipment_slot.py +34 -0
- mcdex/base/_frog_variant_id.py +22 -0
- mcdex/base/_game_id.py +88 -0
- mcdex/base/_game_rule_id.py +21 -0
- mcdex/base/_item_id.py +98 -0
- mcdex/base/_mc_thing.py +289 -0
- mcdex/base/_mc_version.py +140 -0
- mcdex/base/_music_id.py +25 -0
- mcdex/base/_not_in_version.py +68 -0
- mcdex/base/_painting_variant_id.py +23 -0
- mcdex/base/_particle_id.py +21 -0
- mcdex/base/_pig_sound_variant_id.py +23 -0
- mcdex/base/_pig_variant_id.py +22 -0
- mcdex/base/_potion_id.py +25 -0
- mcdex/base/_potion_modifier.py +30 -0
- mcdex/base/_sound_id.py +21 -0
- mcdex/base/_statistic_id.py +22 -0
- mcdex/base/_structure_id.py +21 -0
- mcdex/base/_trim_material_id.py +26 -0
- mcdex/base/_trim_pattern_id.py +25 -0
- mcdex/base/_version.py +188 -0
- mcdex/base/_villager_profession_id.py +24 -0
- mcdex/base/_villager_type_id.py +25 -0
- mcdex/base/_wolf_sound_variant_id.py +23 -0
- mcdex/base/_wolf_variant_id.py +22 -0
- mcdex/base/_zombie_nautilus_variant_id.py +23 -0
- mcdex/biomes/__init__.py +16 -0
- mcdex/biomes/_mc_biomes.py +137 -0
- mcdex/biomes/biomes.json +652 -0
- mcdex/block_entities/__init__.py +16 -0
- mcdex/block_entities/_mc_block_entities.py +95 -0
- mcdex/block_entities/block_entities.json +331 -0
- mcdex/blocks/__init__.py +16 -0
- mcdex/blocks/_mc_blocks.py +1338 -0
- mcdex/blocks/blocks.json +7770 -0
- mcdex/cat_sound_variants/__init__.py +16 -0
- mcdex/cat_sound_variants/_mc_cat_sound_variants.py +47 -0
- mcdex/cat_sound_variants/cat_sound_variants.json +25 -0
- mcdex/cat_variants/__init__.py +16 -0
- mcdex/cat_variants/_mc_cat_variants.py +54 -0
- mcdex/cat_variants/cat_variants.json +91 -0
- mcdex/chicken_sound_variants/__init__.py +17 -0
- mcdex/chicken_sound_variants/_mc_chicken_sound_variants.py +48 -0
- mcdex/chicken_sound_variants/chicken_sound_variants.json +24 -0
- mcdex/chicken_variants/__init__.py +16 -0
- mcdex/chicken_variants/_mc_chicken_variants.py +47 -0
- mcdex/chicken_variants/chicken_variants.json +30 -0
- mcdex/cow_sound_variants/__init__.py +16 -0
- mcdex/cow_sound_variants/_mc_cow_sound_variants.py +47 -0
- mcdex/cow_sound_variants/cow_sound_variants.json +24 -0
- mcdex/cow_variants/__init__.py +16 -0
- mcdex/cow_variants/_mc_cow_variants.py +47 -0
- mcdex/cow_variants/cow_variants.json +30 -0
- mcdex/damage_types/__init__.py +16 -0
- mcdex/damage_types/_mc_damage_types.py +94 -0
- mcdex/damage_types/damage_types.json +317 -0
- mcdex/dimensions/__init__.py +16 -0
- mcdex/dimensions/_mc_dimensions.py +46 -0
- mcdex/dimensions/dimensions.json +29 -0
- mcdex/effects/__init__.py +16 -0
- mcdex/effects/_mc_effects.py +83 -0
- mcdex/effects/effects.json +251 -0
- mcdex/enchantments/__init__.py +16 -0
- mcdex/enchantments/_mc_enchantments.py +86 -0
- mcdex/enchantments/enchantments.json +270 -0
- mcdex/entities/__init__.py +16 -0
- mcdex/entities/_mc_entities.py +206 -0
- mcdex/entities/entities.json +1042 -0
- mcdex/frog_variants/__init__.py +16 -0
- mcdex/frog_variants/_mc_frog_variants.py +47 -0
- mcdex/frog_variants/frog_variants.json +29 -0
- mcdex/game_rules/__init__.py +16 -0
- mcdex/game_rules/_mc_game_rules.py +110 -0
- mcdex/game_rules/game_rules.json +436 -0
- mcdex/items/__init__.py +16 -0
- mcdex/items/_mc_items.py +1842 -0
- mcdex/items/items.json +20060 -0
- mcdex/music/__init__.py +16 -0
- mcdex/music/_music.py +65 -0
- mcdex/music/music.json +143 -0
- mcdex/painting_variants/__init__.py +16 -0
- mcdex/painting_variants/_mc_painting_variants.py +96 -0
- mcdex/painting_variants/painting_variants.json +369 -0
- mcdex/particles/__init__.py +16 -0
- mcdex/particles/_mc_particles.py +184 -0
- mcdex/particles/particles.json +917 -0
- mcdex/pig_sound_variants/__init__.py +16 -0
- mcdex/pig_sound_variants/_mc_pig_sound_variants.py +48 -0
- mcdex/pig_sound_variants/pig_sound_variants.json +30 -0
- mcdex/pig_variants/__init__.py +16 -0
- mcdex/pig_variants/_mc_pig_variants.py +46 -0
- mcdex/pig_variants/pig_variants.json +30 -0
- mcdex/potions/__init__.py +20 -0
- mcdex/potions/_mc_potions.py +101 -0
- mcdex/potions/_modified_potion.py +129 -0
- mcdex/potions/potions.json +297 -0
- mcdex/py.typed +0 -0
- mcdex/sounds/__init__.py +16 -0
- mcdex/sounds/_mc_sounds.py +2395 -0
- mcdex/sounds/sounds.json +13077 -0
- mcdex/statistics/__init__.py +16 -0
- mcdex/statistics/_mc_statistics.py +123 -0
- mcdex/statistics/statistics.json +521 -0
- mcdex/structures/__init__.py +16 -0
- mcdex/structures/_mc_structures.py +99 -0
- mcdex/structures/structures.json +367 -0
- mcdex/trim_materials/__init__.py +16 -0
- mcdex/trim_materials/_mc_trim_materials.py +54 -0
- mcdex/trim_materials/trim_materials.json +77 -0
- mcdex/trim_patterns/__init__.py +16 -0
- mcdex/trim_patterns/_mc_trim_patterns.py +61 -0
- mcdex/trim_patterns/trim_patterns.json +119 -0
- mcdex/villager_professions/__init__.py +17 -0
- mcdex/villager_professions/_mc_villager_professions.py +61 -0
- mcdex/villager_professions/villager_professions.json +125 -0
- mcdex/villager_types/__init__.py +16 -0
- mcdex/villager_types/_mc_villager_types.py +52 -0
- mcdex/villager_types/villager_types.json +54 -0
- mcdex/wolf_sound_variants/__init__.py +17 -0
- mcdex/wolf_sound_variants/_mc_wolf_sound_variants.py +53 -0
- mcdex/wolf_sound_variants/wolf_sound_variants.json +54 -0
- mcdex/wolf_variants/__init__.py +16 -0
- mcdex/wolf_variants/_mc_wolf_variants.py +53 -0
- mcdex/wolf_variants/wolf_variants.json +66 -0
- mcdex/zombie_nautilus_variants/__init__.py +17 -0
- mcdex/zombie_nautilus_variants/_mc_zombie_nautilus_variants.py +48 -0
- mcdex/zombie_nautilus_variants/zombie_nautilus_variants.json +23 -0
- mcdex-0.1.0.dev0.dist-info/METADATA +1285 -0
- mcdex-0.1.0.dev0.dist-info/RECORD +161 -0
- mcdex-0.1.0.dev0.dist-info/WHEEL +5 -0
- mcdex-0.1.0.dev0.dist-info/licenses/LICENSE +201 -0
- 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')
|