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,99 @@
|
|
|
1
|
+
"""
|
|
2
|
+
MCStructures is the catalogue of the game's structures: an enumeration with one
|
|
3
|
+
member for every structure of the data file that ships with mcdex, each the
|
|
4
|
+
same structure in every version, with the id each version knows it by:
|
|
5
|
+
what /locate 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 MCThing, StructureId
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class MCStructures(MCThing):
|
|
17
|
+
"""
|
|
18
|
+
The catalogue of the game's structures, each a member, found by its name in
|
|
19
|
+
capitals, in any case, or by its unique name:
|
|
20
|
+
|
|
21
|
+
villagePlains = MCStructures.VILLAGE_PLAINS
|
|
22
|
+
villagePlains is MCStructures['village_plains'] # True
|
|
23
|
+
villagePlains['1.12.2']
|
|
24
|
+
# StructureId('village_plains', 'Village{Children:[{Type:0b}]}')
|
|
25
|
+
len(MCStructures)
|
|
26
|
+
|
|
27
|
+
Implementation
|
|
28
|
+
--------------
|
|
29
|
+
|
|
30
|
+
All of it is 'MCThing's, reading 'structures.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__ = 'structures.json'
|
|
40
|
+
__data_key__ = 'structures'
|
|
41
|
+
__id_class__ = StructureId
|
|
42
|
+
__kind__ = 'structure'
|
|
43
|
+
|
|
44
|
+
# Members, one for every name of 'structures.json'
|
|
45
|
+
ABANDONED_CAMP_BAMBOO_JUNGLE = Kee[str]('abandoned_camp_bamboo_jungle')
|
|
46
|
+
ABANDONED_CAMP_BIRCH_FOREST = Kee[str]('abandoned_camp_birch_forest')
|
|
47
|
+
ABANDONED_CAMP_CHERRY_GROVE = Kee[str]('abandoned_camp_cherry_grove')
|
|
48
|
+
ABANDONED_CAMP_DAPPLED_FOREST = Kee[str]('abandoned_camp_dappled_forest')
|
|
49
|
+
ABANDONED_CAMP_FLOWER_FOREST = Kee[str]('abandoned_camp_flower_forest')
|
|
50
|
+
ABANDONED_CAMP_FOREST = Kee[str]('abandoned_camp_forest')
|
|
51
|
+
ABANDONED_CAMP_MEADOW = Kee[str]('abandoned_camp_meadow')
|
|
52
|
+
ABANDONED_CAMP_OLD_GROWTH_BIRCH_FOREST = Kee[str](
|
|
53
|
+
'abandoned_camp_old_growth_birch_forest')
|
|
54
|
+
ABANDONED_CAMP_OLD_GROWTH_PINE_TAIGA = Kee[str](
|
|
55
|
+
'abandoned_camp_old_growth_pine_taiga')
|
|
56
|
+
ABANDONED_CAMP_OLD_GROWTH_SPRUCE_TAIGA = Kee[str](
|
|
57
|
+
'abandoned_camp_old_growth_spruce_taiga')
|
|
58
|
+
ABANDONED_CAMP_PALE_GARDEN = Kee[str]('abandoned_camp_pale_garden')
|
|
59
|
+
ABANDONED_CAMP_SAVANNA = Kee[str]('abandoned_camp_savanna')
|
|
60
|
+
ABANDONED_CAMP_SNOWY_TAIGA = Kee[str]('abandoned_camp_snowy_taiga')
|
|
61
|
+
ABANDONED_CAMP_SPARSE_JUNGLE = Kee[str]('abandoned_camp_sparse_jungle')
|
|
62
|
+
ABANDONED_CAMP_SWAMP = Kee[str]('abandoned_camp_swamp')
|
|
63
|
+
ABANDONED_CAMP_TAIGA = Kee[str]('abandoned_camp_taiga')
|
|
64
|
+
ABANDONED_CAMP_WINDSWEPT_FOREST = Kee[str]('abandoned_camp_windswept_forest')
|
|
65
|
+
ABANDONED_CAMP_WOODED_BADLANDS = Kee[str]('abandoned_camp_wooded_badlands')
|
|
66
|
+
ANCIENT_CITY = Kee[str]('ancient_city')
|
|
67
|
+
BASTION_REMNANT = Kee[str]('bastion_remnant')
|
|
68
|
+
BURIED_TREASURE = Kee[str]('buried_treasure')
|
|
69
|
+
DESERT_PYRAMID = Kee[str]('desert_pyramid')
|
|
70
|
+
END_CITY = Kee[str]('end_city')
|
|
71
|
+
FORTRESS = Kee[str]('fortress')
|
|
72
|
+
IGLOO = Kee[str]('igloo')
|
|
73
|
+
JUNGLE_PYRAMID = Kee[str]('jungle_pyramid')
|
|
74
|
+
MANSION = Kee[str]('mansion')
|
|
75
|
+
MINESHAFT = Kee[str]('mineshaft')
|
|
76
|
+
MINESHAFT_MESA = Kee[str]('mineshaft_mesa')
|
|
77
|
+
MONUMENT = Kee[str]('monument')
|
|
78
|
+
NETHER_FOSSIL = Kee[str]('nether_fossil')
|
|
79
|
+
OCEAN_RUIN_COLD = Kee[str]('ocean_ruin_cold')
|
|
80
|
+
OCEAN_RUIN_WARM = Kee[str]('ocean_ruin_warm')
|
|
81
|
+
PILLAGER_OUTPOST = Kee[str]('pillager_outpost')
|
|
82
|
+
RUINED_PORTAL = Kee[str]('ruined_portal')
|
|
83
|
+
RUINED_PORTAL_DESERT = Kee[str]('ruined_portal_desert')
|
|
84
|
+
RUINED_PORTAL_JUNGLE = Kee[str]('ruined_portal_jungle')
|
|
85
|
+
RUINED_PORTAL_MOUNTAIN = Kee[str]('ruined_portal_mountain')
|
|
86
|
+
RUINED_PORTAL_NETHER = Kee[str]('ruined_portal_nether')
|
|
87
|
+
RUINED_PORTAL_OCEAN = Kee[str]('ruined_portal_ocean')
|
|
88
|
+
RUINED_PORTAL_SWAMP = Kee[str]('ruined_portal_swamp')
|
|
89
|
+
SHIPWRECK = Kee[str]('shipwreck')
|
|
90
|
+
SHIPWRECK_BEACHED = Kee[str]('shipwreck_beached')
|
|
91
|
+
STRONGHOLD = Kee[str]('stronghold')
|
|
92
|
+
SWAMP_HUT = Kee[str]('swamp_hut')
|
|
93
|
+
TRAIL_RUINS = Kee[str]('trail_ruins')
|
|
94
|
+
TRIAL_CHAMBERS = Kee[str]('trial_chambers')
|
|
95
|
+
VILLAGE_DESERT = Kee[str]('village_desert')
|
|
96
|
+
VILLAGE_PLAINS = Kee[str]('village_plains')
|
|
97
|
+
VILLAGE_SAVANNA = Kee[str]('village_savanna')
|
|
98
|
+
VILLAGE_SNOWY = Kee[str]('village_snowy')
|
|
99
|
+
VILLAGE_TAIGA = Kee[str]('village_taiga')
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
{
|
|
2
|
+
"covers": [
|
|
3
|
+
"1.7.2",
|
|
4
|
+
"26.3"
|
|
5
|
+
],
|
|
6
|
+
"legend": {
|
|
7
|
+
"": "vanilla has no such structure in this version"
|
|
8
|
+
},
|
|
9
|
+
"structures": {
|
|
10
|
+
"abandoned_camp_bamboo_jungle": {
|
|
11
|
+
"ids": {
|
|
12
|
+
"1.7.2": "",
|
|
13
|
+
"26.3": "minecraft:abandoned_camp_bamboo_jungle"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"abandoned_camp_birch_forest": {
|
|
17
|
+
"ids": {
|
|
18
|
+
"1.7.2": "",
|
|
19
|
+
"26.3": "minecraft:abandoned_camp_birch_forest"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"abandoned_camp_cherry_grove": {
|
|
23
|
+
"ids": {
|
|
24
|
+
"1.7.2": "",
|
|
25
|
+
"26.3": "minecraft:abandoned_camp_cherry_grove"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"abandoned_camp_dappled_forest": {
|
|
29
|
+
"ids": {
|
|
30
|
+
"1.7.2": "",
|
|
31
|
+
"26.3": "minecraft:abandoned_camp_dappled_forest"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"abandoned_camp_flower_forest": {
|
|
35
|
+
"ids": {
|
|
36
|
+
"1.7.2": "",
|
|
37
|
+
"26.3": "minecraft:abandoned_camp_flower_forest"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"abandoned_camp_forest": {
|
|
41
|
+
"ids": {
|
|
42
|
+
"1.7.2": "",
|
|
43
|
+
"26.3": "minecraft:abandoned_camp_forest"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"abandoned_camp_meadow": {
|
|
47
|
+
"ids": {
|
|
48
|
+
"1.7.2": "",
|
|
49
|
+
"26.3": "minecraft:abandoned_camp_meadow"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"abandoned_camp_old_growth_birch_forest": {
|
|
53
|
+
"ids": {
|
|
54
|
+
"1.7.2": "",
|
|
55
|
+
"26.3": "minecraft:abandoned_camp_old_growth_birch_forest"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"abandoned_camp_old_growth_pine_taiga": {
|
|
59
|
+
"ids": {
|
|
60
|
+
"1.7.2": "",
|
|
61
|
+
"26.3": "minecraft:abandoned_camp_old_growth_pine_taiga"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"abandoned_camp_old_growth_spruce_taiga": {
|
|
65
|
+
"ids": {
|
|
66
|
+
"1.7.2": "",
|
|
67
|
+
"26.3": "minecraft:abandoned_camp_old_growth_spruce_taiga"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"abandoned_camp_pale_garden": {
|
|
71
|
+
"ids": {
|
|
72
|
+
"1.7.2": "",
|
|
73
|
+
"26.3": "minecraft:abandoned_camp_pale_garden"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"abandoned_camp_savanna": {
|
|
77
|
+
"ids": {
|
|
78
|
+
"1.7.2": "",
|
|
79
|
+
"26.3": "minecraft:abandoned_camp_savanna"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"abandoned_camp_snowy_taiga": {
|
|
83
|
+
"ids": {
|
|
84
|
+
"1.7.2": "",
|
|
85
|
+
"26.3": "minecraft:abandoned_camp_snowy_taiga"
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"abandoned_camp_sparse_jungle": {
|
|
89
|
+
"ids": {
|
|
90
|
+
"1.7.2": "",
|
|
91
|
+
"26.3": "minecraft:abandoned_camp_sparse_jungle"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"abandoned_camp_swamp": {
|
|
95
|
+
"ids": {
|
|
96
|
+
"1.7.2": "",
|
|
97
|
+
"26.3": "minecraft:abandoned_camp_swamp"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"abandoned_camp_taiga": {
|
|
101
|
+
"ids": {
|
|
102
|
+
"1.7.2": "",
|
|
103
|
+
"26.3": "minecraft:abandoned_camp_taiga"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"abandoned_camp_windswept_forest": {
|
|
107
|
+
"ids": {
|
|
108
|
+
"1.7.2": "",
|
|
109
|
+
"26.3": "minecraft:abandoned_camp_windswept_forest"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"abandoned_camp_wooded_badlands": {
|
|
113
|
+
"ids": {
|
|
114
|
+
"1.7.2": "",
|
|
115
|
+
"26.3": "minecraft:abandoned_camp_wooded_badlands"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"ancient_city": {
|
|
119
|
+
"ids": {
|
|
120
|
+
"1.7.2": "",
|
|
121
|
+
"1.19": "minecraft:ancient_city"
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"bastion_remnant": {
|
|
125
|
+
"ids": {
|
|
126
|
+
"1.7.2": "",
|
|
127
|
+
"1.16": "minecraft:bastion_remnant"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"buried_treasure": {
|
|
131
|
+
"ids": {
|
|
132
|
+
"1.7.2": "",
|
|
133
|
+
"1.13": "Buried_Treasure",
|
|
134
|
+
"1.16": "minecraft:buried_treasure"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"desert_pyramid": {
|
|
138
|
+
"ids": {
|
|
139
|
+
"1.7.2": "Temple{Children:[{id:\"TeDP\"}]}",
|
|
140
|
+
"1.13": "Desert_Pyramid",
|
|
141
|
+
"1.16": "minecraft:desert_pyramid"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"end_city": {
|
|
145
|
+
"ids": {
|
|
146
|
+
"1.7.2": "",
|
|
147
|
+
"1.9": "EndCity",
|
|
148
|
+
"1.16": "minecraft:endcity",
|
|
149
|
+
"1.19": "minecraft:end_city"
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"fortress": {
|
|
153
|
+
"ids": {
|
|
154
|
+
"1.7.2": "Fortress",
|
|
155
|
+
"1.16": "minecraft:fortress"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"igloo": {
|
|
159
|
+
"ids": {
|
|
160
|
+
"1.7.2": "",
|
|
161
|
+
"1.9": "Temple{Children:[{id:\"Iglu\"}]}",
|
|
162
|
+
"1.13": "Igloo",
|
|
163
|
+
"1.16": "minecraft:igloo"
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"jungle_pyramid": {
|
|
167
|
+
"ids": {
|
|
168
|
+
"1.7.2": "Temple{Children:[{id:\"TeJP\"}]}",
|
|
169
|
+
"1.13": "Jungle_Pyramid",
|
|
170
|
+
"1.16": "minecraft:jungle_pyramid"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"mansion": {
|
|
174
|
+
"ids": {
|
|
175
|
+
"1.7.2": "",
|
|
176
|
+
"1.11": "Mansion",
|
|
177
|
+
"1.16": "minecraft:mansion"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"mineshaft": {
|
|
181
|
+
"ids": {
|
|
182
|
+
"1.7.2": "Mineshaft",
|
|
183
|
+
"1.10": "Mineshaft{Children:[{MST:0}]}",
|
|
184
|
+
"1.16": "minecraft:mineshaft{Children:[{MST:0}]}",
|
|
185
|
+
"1.19": "minecraft:mineshaft"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
"mineshaft_mesa": {
|
|
189
|
+
"ids": {
|
|
190
|
+
"1.7.2": "",
|
|
191
|
+
"1.10": "Mineshaft{Children:[{MST:1}]}",
|
|
192
|
+
"1.16": "minecraft:mineshaft{Children:[{MST:1}]}",
|
|
193
|
+
"1.19": "minecraft:mineshaft_mesa"
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"monument": {
|
|
197
|
+
"ids": {
|
|
198
|
+
"1.7.2": "",
|
|
199
|
+
"1.8": "Monument",
|
|
200
|
+
"1.16": "minecraft:monument"
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"nether_fossil": {
|
|
204
|
+
"ids": {
|
|
205
|
+
"1.7.2": "",
|
|
206
|
+
"1.16": "minecraft:nether_fossil"
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
"ocean_ruin_cold": {
|
|
210
|
+
"ids": {
|
|
211
|
+
"1.7.2": "",
|
|
212
|
+
"1.13": "Ocean_Ruin{Children:[{BiomeType:\"COLD\"}]}",
|
|
213
|
+
"1.16": "minecraft:ocean_ruin{Children:[{BiomeType:\"COLD\"}]}",
|
|
214
|
+
"1.19": "minecraft:ocean_ruin_cold"
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
"ocean_ruin_warm": {
|
|
218
|
+
"ids": {
|
|
219
|
+
"1.7.2": "",
|
|
220
|
+
"1.13": "Ocean_Ruin{Children:[{BiomeType:\"WARM\"}]}",
|
|
221
|
+
"1.16": "minecraft:ocean_ruin{Children:[{BiomeType:\"WARM\"}]}",
|
|
222
|
+
"1.19": "minecraft:ocean_ruin_warm"
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"pillager_outpost": {
|
|
226
|
+
"ids": {
|
|
227
|
+
"1.7.2": "",
|
|
228
|
+
"1.14": "Pillager_Outpost",
|
|
229
|
+
"1.16": "minecraft:pillager_outpost"
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
"ruined_portal": {
|
|
233
|
+
"ids": {
|
|
234
|
+
"1.7.2": "",
|
|
235
|
+
"1.16": "minecraft:ruined_portal{portal_type:\"standard\"}",
|
|
236
|
+
"1.19": "minecraft:ruined_portal"
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"ruined_portal_desert": {
|
|
240
|
+
"ids": {
|
|
241
|
+
"1.7.2": "",
|
|
242
|
+
"1.16": "minecraft:ruined_portal{portal_type:\"desert\"}",
|
|
243
|
+
"1.19": "minecraft:ruined_portal_desert"
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
"ruined_portal_jungle": {
|
|
247
|
+
"ids": {
|
|
248
|
+
"1.7.2": "",
|
|
249
|
+
"1.16": "minecraft:ruined_portal{portal_type:\"jungle\"}",
|
|
250
|
+
"1.19": "minecraft:ruined_portal_jungle"
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
"ruined_portal_mountain": {
|
|
254
|
+
"ids": {
|
|
255
|
+
"1.7.2": "",
|
|
256
|
+
"1.16": "minecraft:ruined_portal{portal_type:\"mountain\"}",
|
|
257
|
+
"1.19": "minecraft:ruined_portal_mountain"
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
"ruined_portal_nether": {
|
|
261
|
+
"ids": {
|
|
262
|
+
"1.7.2": "",
|
|
263
|
+
"1.16": "minecraft:ruined_portal{portal_type:\"nether\"}",
|
|
264
|
+
"1.19": "minecraft:ruined_portal_nether"
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
"ruined_portal_ocean": {
|
|
268
|
+
"ids": {
|
|
269
|
+
"1.7.2": "",
|
|
270
|
+
"1.16": "minecraft:ruined_portal{portal_type:\"ocean\"}",
|
|
271
|
+
"1.19": "minecraft:ruined_portal_ocean"
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
"ruined_portal_swamp": {
|
|
275
|
+
"ids": {
|
|
276
|
+
"1.7.2": "",
|
|
277
|
+
"1.16": "minecraft:ruined_portal{portal_type:\"swamp\"}",
|
|
278
|
+
"1.19": "minecraft:ruined_portal_swamp"
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
"shipwreck": {
|
|
282
|
+
"ids": {
|
|
283
|
+
"1.7.2": "",
|
|
284
|
+
"1.13": "Shipwreck{Children:[{isBeached:0b}]}",
|
|
285
|
+
"1.16": "minecraft:shipwreck{Children:[{isBeached:0b}]}",
|
|
286
|
+
"1.19": "minecraft:shipwreck"
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
"shipwreck_beached": {
|
|
290
|
+
"ids": {
|
|
291
|
+
"1.7.2": "",
|
|
292
|
+
"1.13": "Shipwreck{Children:[{isBeached:1b}]}",
|
|
293
|
+
"1.16": "minecraft:shipwreck{Children:[{isBeached:1b}]}",
|
|
294
|
+
"1.19": "minecraft:shipwreck_beached"
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
"stronghold": {
|
|
298
|
+
"ids": {
|
|
299
|
+
"1.7.2": "Stronghold",
|
|
300
|
+
"1.16": "minecraft:stronghold"
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"swamp_hut": {
|
|
304
|
+
"ids": {
|
|
305
|
+
"1.7.2": "Temple{Children:[{id:\"TeSH\"}]}",
|
|
306
|
+
"1.13": "Swamp_Hut",
|
|
307
|
+
"1.16": "minecraft:swamp_hut"
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
"trail_ruins": {
|
|
311
|
+
"ids": {
|
|
312
|
+
"1.7.2": "",
|
|
313
|
+
"1.20": "minecraft:trail_ruins"
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
"trial_chambers": {
|
|
317
|
+
"ids": {
|
|
318
|
+
"1.7.2": "",
|
|
319
|
+
"1.20.3": "minecraft:trial_chambers"
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
"village_desert": {
|
|
323
|
+
"ids": {
|
|
324
|
+
"1.7.2": "Village{Children:[{Desert:1b}]}",
|
|
325
|
+
"1.10": "Village{Children:[{Type:1b}]}",
|
|
326
|
+
"1.14": "Village{start_pool:\"village/desert/town_centers\"}",
|
|
327
|
+
"1.16": "minecraft:village{start_pool:\"minecraft:village/desert/town_centers\"}",
|
|
328
|
+
"1.19": "minecraft:village_desert"
|
|
329
|
+
}
|
|
330
|
+
},
|
|
331
|
+
"village_plains": {
|
|
332
|
+
"ids": {
|
|
333
|
+
"1.7.2": "Village{Children:[{Desert:0b}]}",
|
|
334
|
+
"1.10": "Village{Children:[{Type:0b}]}",
|
|
335
|
+
"1.14": "Village{start_pool:\"village/plains/town_centers\"}",
|
|
336
|
+
"1.16": "minecraft:village{start_pool:\"minecraft:village/plains/town_centers\"}",
|
|
337
|
+
"1.19": "minecraft:village_plains"
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
"village_savanna": {
|
|
341
|
+
"ids": {
|
|
342
|
+
"1.7.2": "",
|
|
343
|
+
"1.10": "Village{Children:[{Type:2b}]}",
|
|
344
|
+
"1.14": "Village{start_pool:\"village/savanna/town_centers\"}",
|
|
345
|
+
"1.16": "minecraft:village{start_pool:\"minecraft:village/savanna/town_centers\"}",
|
|
346
|
+
"1.19": "minecraft:village_savanna"
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
"village_snowy": {
|
|
350
|
+
"ids": {
|
|
351
|
+
"1.7.2": "",
|
|
352
|
+
"1.14": "Village{start_pool:\"village/snowy/town_centers\"}",
|
|
353
|
+
"1.16": "minecraft:village{start_pool:\"minecraft:village/snowy/town_centers\"}",
|
|
354
|
+
"1.19": "minecraft:village_snowy"
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
"village_taiga": {
|
|
358
|
+
"ids": {
|
|
359
|
+
"1.7.2": "",
|
|
360
|
+
"1.10": "Village{Children:[{Type:3b}]}",
|
|
361
|
+
"1.14": "Village{start_pool:\"village/taiga/town_centers\"}",
|
|
362
|
+
"1.16": "minecraft:village{start_pool:\"minecraft:village/taiga/town_centers\"}",
|
|
363
|
+
"1.19": "minecraft:village_taiga"
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""
|
|
2
|
+
The 'mcdex.trim_materials' package provides the trim materials of the game: the
|
|
3
|
+
'MCTrimMaterials' catalogue, an enumeration of every trim material of the data
|
|
4
|
+
file 'trim_materials.json' that ships with the package.
|
|
5
|
+
|
|
6
|
+
- MCTrimMaterials
|
|
7
|
+
"""
|
|
8
|
+
# Apache-2.0 license
|
|
9
|
+
# Copyright (c) 2026 Asger Jon Vistisen
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
from ._mc_trim_materials import MCTrimMaterials
|
|
13
|
+
|
|
14
|
+
__all__ = (
|
|
15
|
+
'MCTrimMaterials',
|
|
16
|
+
)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""
|
|
2
|
+
MCTrimMaterials is the catalogue of the game's trim materials: an enumeration
|
|
3
|
+
with one member for every trim material of the data file that ships with mcdex,
|
|
4
|
+
each the same trim material in every version, with the id each version knows it
|
|
5
|
+
by: what an armor trim's material 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 MCThing, TrimMaterialId
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class MCTrimMaterials(MCThing):
|
|
17
|
+
"""
|
|
18
|
+
The catalogue of the game's trim materials, each a member, found by its name
|
|
19
|
+
in capitals, in any case, or by its unique name:
|
|
20
|
+
|
|
21
|
+
amethyst = MCTrimMaterials.AMETHYST
|
|
22
|
+
amethyst is MCTrimMaterials['amethyst'] # True
|
|
23
|
+
amethyst['1.20'] # TrimMaterialId('amethyst', 'minecraft:amethyst')
|
|
24
|
+
len(MCTrimMaterials)
|
|
25
|
+
|
|
26
|
+
Implementation
|
|
27
|
+
--------------
|
|
28
|
+
|
|
29
|
+
All of it is 'MCThing's, reading 'trim_materials.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__ = 'trim_materials.json'
|
|
39
|
+
__data_key__ = 'trim_materials'
|
|
40
|
+
__id_class__ = TrimMaterialId
|
|
41
|
+
__kind__ = 'trim material'
|
|
42
|
+
|
|
43
|
+
# Members, one for every name of 'trim_materials.json'
|
|
44
|
+
AMETHYST = Kee[str]('amethyst')
|
|
45
|
+
COPPER = Kee[str]('copper')
|
|
46
|
+
DIAMOND = Kee[str]('diamond')
|
|
47
|
+
EMERALD = Kee[str]('emerald')
|
|
48
|
+
GOLD = Kee[str]('gold')
|
|
49
|
+
IRON = Kee[str]('iron')
|
|
50
|
+
LAPIS = Kee[str]('lapis')
|
|
51
|
+
NETHERITE = Kee[str]('netherite')
|
|
52
|
+
QUARTZ = Kee[str]('quartz')
|
|
53
|
+
REDSTONE = Kee[str]('redstone')
|
|
54
|
+
RESIN = Kee[str]('resin')
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"covers": [
|
|
3
|
+
"1.7.2",
|
|
4
|
+
"26.3"
|
|
5
|
+
],
|
|
6
|
+
"legend": {
|
|
7
|
+
"": "vanilla has no such trim material in this version"
|
|
8
|
+
},
|
|
9
|
+
"trim_materials": {
|
|
10
|
+
"amethyst": {
|
|
11
|
+
"ids": {
|
|
12
|
+
"1.7.2": "",
|
|
13
|
+
"1.19.4": "minecraft:amethyst"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"copper": {
|
|
17
|
+
"ids": {
|
|
18
|
+
"1.7.2": "",
|
|
19
|
+
"1.19.4": "minecraft:copper"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"diamond": {
|
|
23
|
+
"ids": {
|
|
24
|
+
"1.7.2": "",
|
|
25
|
+
"1.19.4": "minecraft:diamond"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"emerald": {
|
|
29
|
+
"ids": {
|
|
30
|
+
"1.7.2": "",
|
|
31
|
+
"1.19.4": "minecraft:emerald"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"gold": {
|
|
35
|
+
"ids": {
|
|
36
|
+
"1.7.2": "",
|
|
37
|
+
"1.19.4": "minecraft:gold"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"iron": {
|
|
41
|
+
"ids": {
|
|
42
|
+
"1.7.2": "",
|
|
43
|
+
"1.19.4": "minecraft:iron"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"lapis": {
|
|
47
|
+
"ids": {
|
|
48
|
+
"1.7.2": "",
|
|
49
|
+
"1.19.4": "minecraft:lapis"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"netherite": {
|
|
53
|
+
"ids": {
|
|
54
|
+
"1.7.2": "",
|
|
55
|
+
"1.19.4": "minecraft:netherite"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"quartz": {
|
|
59
|
+
"ids": {
|
|
60
|
+
"1.7.2": "",
|
|
61
|
+
"1.19.4": "minecraft:quartz"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"redstone": {
|
|
65
|
+
"ids": {
|
|
66
|
+
"1.7.2": "",
|
|
67
|
+
"1.19.4": "minecraft:redstone"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"resin": {
|
|
71
|
+
"ids": {
|
|
72
|
+
"1.7.2": "",
|
|
73
|
+
"1.21.4": "minecraft:resin"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""
|
|
2
|
+
The 'mcdex.trim_patterns' package provides the trim patterns of the game: the
|
|
3
|
+
'MCTrimPatterns' catalogue, an enumeration of every trim pattern of the data
|
|
4
|
+
file 'trim_patterns.json' that ships with the package.
|
|
5
|
+
|
|
6
|
+
- MCTrimPatterns
|
|
7
|
+
"""
|
|
8
|
+
# Apache-2.0 license
|
|
9
|
+
# Copyright (c) 2026 Asger Jon Vistisen
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
from ._mc_trim_patterns import MCTrimPatterns
|
|
13
|
+
|
|
14
|
+
__all__ = (
|
|
15
|
+
'MCTrimPatterns',
|
|
16
|
+
)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"""
|
|
2
|
+
MCTrimPatterns is the catalogue of the game's trim patterns: an enumeration
|
|
3
|
+
with one member for every trim pattern of the data file that ships with mcdex,
|
|
4
|
+
each the same trim pattern in every version, with the id each version knows it
|
|
5
|
+
by: what an armor trim's pattern 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 MCThing, TrimPatternId
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class MCTrimPatterns(MCThing):
|
|
17
|
+
"""
|
|
18
|
+
The catalogue of the game's trim patterns, each a member, found by its name
|
|
19
|
+
in capitals, in any case, or by its unique name:
|
|
20
|
+
|
|
21
|
+
coast = MCTrimPatterns.COAST
|
|
22
|
+
coast is MCTrimPatterns['coast'] # True
|
|
23
|
+
coast['1.20'] # TrimPatternId('coast', 'minecraft:coast')
|
|
24
|
+
len(MCTrimPatterns)
|
|
25
|
+
|
|
26
|
+
Implementation
|
|
27
|
+
--------------
|
|
28
|
+
|
|
29
|
+
All of it is 'MCThing's, reading 'trim_patterns.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__ = 'trim_patterns.json'
|
|
39
|
+
__data_key__ = 'trim_patterns'
|
|
40
|
+
__id_class__ = TrimPatternId
|
|
41
|
+
__kind__ = 'trim pattern'
|
|
42
|
+
|
|
43
|
+
# Members, one for every name of 'trim_patterns.json'
|
|
44
|
+
BOLT = Kee[str]('bolt')
|
|
45
|
+
COAST = Kee[str]('coast')
|
|
46
|
+
DUNE = Kee[str]('dune')
|
|
47
|
+
EYE = Kee[str]('eye')
|
|
48
|
+
FLOW = Kee[str]('flow')
|
|
49
|
+
HOST = Kee[str]('host')
|
|
50
|
+
RAISER = Kee[str]('raiser')
|
|
51
|
+
RIB = Kee[str]('rib')
|
|
52
|
+
SENTRY = Kee[str]('sentry')
|
|
53
|
+
SHAPER = Kee[str]('shaper')
|
|
54
|
+
SILENCE = Kee[str]('silence')
|
|
55
|
+
SNOUT = Kee[str]('snout')
|
|
56
|
+
SPIRE = Kee[str]('spire')
|
|
57
|
+
TIDE = Kee[str]('tide')
|
|
58
|
+
VEX = Kee[str]('vex')
|
|
59
|
+
WARD = Kee[str]('ward')
|
|
60
|
+
WAYFINDER = Kee[str]('wayfinder')
|
|
61
|
+
WILD = Kee[str]('wild')
|