stewbeet 2.0.9__tar.gz → 2.0.10__tar.gz
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.
Potentially problematic release.
This version of stewbeet might be problematic. Click here for more details.
- {stewbeet-2.0.9 → stewbeet-2.0.10}/PKG-INFO +1 -1
- {stewbeet-2.0.9 → stewbeet-2.0.10}/pyproject.toml +1 -1
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/__init__.py +1 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/auto/lang_file/__init__.py +1 -1
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/custom_recipes/vanilla.py +3 -1
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/initialize/__init__.py +10 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/resource_pack/item_models/object.py +41 -9
- {stewbeet-2.0.9 → stewbeet-2.0.10}/.gitignore +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/LICENSE +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/README.md +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/__main__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/continuous_delivery/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/continuous_delivery/cd_utils.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/continuous_delivery/github.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/continuous_delivery/modrinth.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/continuous_delivery/pmc.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/continuous_delivery/smithed.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/__memory__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/constants.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/completion.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/equipments.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/materials.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/records.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/smart_ore_generation.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/text.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/ingredients.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/utils/io.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/core/utils/sounds.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/bookshelf.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/bookshelf_config.json +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Bitwise.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Block.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Color.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Dump.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Environment.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Generation.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Health.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Hitbox.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Id.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Interaction.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Link.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Log.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Math.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Move.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Position.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Random.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Raycast.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Schedule.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Sidebar.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Spline.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf String.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Time.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Tree.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Vector.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf View.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Xp.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Common Signals.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Furnace NBT Recipes.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/ItemIO.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/SmartOreGeneration.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Smithed Crafter.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Smithed Custom Block.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/dependencies/resource_pack/Smithed Crafter.zip +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/archive/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/auto/headers/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/auto/headers/object.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/auto/lang_file/utils.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/compatibilities/neo_enchant/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/compatibilities/simpledrawer/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/compute_sha1/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/copy_to_destination/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/custom_recipes/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/custom_recipes/furnace.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/custom_recipes/pulverizer.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/custom_recipes/smithed.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/datapack/custom_blocks/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/datapack/loading/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/datapack/loot_tables/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/finalyze/custom_blocks_ticking/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/finalyze/dependencies/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/furnace.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/heavy_workbench.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/invisible_item.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/invisible_item_release.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/minecraft_font.ttf +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/none.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/none_release.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/pulverizing.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/shaped_2x2.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/shaped_3x3.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/wiki_information.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft_template.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/wiki_result_of_craft.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/book_components.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/book_optimizer.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/craft_content.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/image_utils.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/iso_renders.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/main.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/other_utils.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/page_font.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/shared_import.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/.gitignore +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/_README.md +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/furnace.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/invisible_item.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/invisible_item_release.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/minecraft_font.ttf +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/none.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/none_release.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/pulverizing.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/shaped_2x2.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/shaped_3x3.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/simple_case_no_border.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/wiki_information.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft_template.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/wiki_result_of_craft.png +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/text_components.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/initialize/source_lore_font.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/merge_smithed_weld/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/merge_smithed_weld/weld.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/resource_pack/check_power_of_2/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/resource_pack/item_models/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/resource_pack/sounds/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/verify_definitions/__init__.py +0 -0
- {stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: stewbeet
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.10
|
|
4
4
|
Summary: Beet Framework made to help generating advanced Minecraft datapack contents
|
|
5
5
|
Project-URL: Homepage, https://github.com/Stoupy51/stewbeet
|
|
6
6
|
Project-URL: Issues, https://github.com/Stoupy51/stewbeet/issues
|
|
@@ -32,6 +32,6 @@ def beet_default(ctx: Context):
|
|
|
32
32
|
|
|
33
33
|
# Update the lang file
|
|
34
34
|
lang.update(ctx.assets.languages.get("minecraft:en_us", Language()).data)
|
|
35
|
-
ctx.assets.languages["minecraft:en_us"] = Language(super_json_dump(lang))
|
|
35
|
+
ctx.assets.languages["minecraft:en_us"] = Language(super_json_dump(dict(sorted(lang.items()))))
|
|
36
36
|
pass
|
|
37
37
|
|
|
@@ -52,7 +52,9 @@ class VanillaRecipeHandler:
|
|
|
52
52
|
"criteria": {"requirement": {"trigger": "minecraft:inventory_changed"}},
|
|
53
53
|
"rewards": {"function": f"{Mem.ctx.project_id}:advancements/unlock_recipes"}
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
adv = Advancement(adv_json)
|
|
56
|
+
adv.encoder = lambda x: super_json_dump(x, max_level=-1)
|
|
57
|
+
Mem.ctx.data[adv_path] = adv
|
|
56
58
|
|
|
57
59
|
# Write the function that will unlock the recipes
|
|
58
60
|
content = f"""
|
|
@@ -97,6 +97,16 @@ def beet_default(ctx: Context):
|
|
|
97
97
|
if pack_icon:
|
|
98
98
|
Mem.ctx.data.extra["pack.png"] = Mem.ctx.assets.extra["pack.png"] = PngFile(source_path=pack_icon)
|
|
99
99
|
|
|
100
|
+
# Add missing pack format registries if not present
|
|
101
|
+
ctx.data.pack_format_registry.update({
|
|
102
|
+
(1, 21, 5): 71,
|
|
103
|
+
(1, 21, 6): 80,
|
|
104
|
+
})
|
|
105
|
+
ctx.assets.pack_format_registry.update({
|
|
106
|
+
(1, 21, 5): 55,
|
|
107
|
+
(1, 21, 6): 63,
|
|
108
|
+
})
|
|
109
|
+
|
|
100
110
|
# Yield message to indicate successful build
|
|
101
111
|
yield
|
|
102
112
|
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import os
|
|
6
|
+
from collections.abc import Iterable
|
|
6
7
|
|
|
7
8
|
from beet import ItemModel, Model, Texture
|
|
8
9
|
from beet.core.utils import JsonDict
|
|
10
|
+
from stouputils.decorators import LogLevels, handle_error, simple_cache
|
|
9
11
|
from stouputils.io import super_json_dump, super_json_load
|
|
10
|
-
from stouputils.print import error
|
|
11
12
|
|
|
12
13
|
from ....core.__memory__ import Mem
|
|
13
14
|
from ....core.constants import CUSTOM_BLOCK_VANILLA, CUSTOM_ITEM_VANILLA, OVERRIDE_MODEL
|
|
@@ -65,6 +66,7 @@ class AutoModel:
|
|
|
65
66
|
"""
|
|
66
67
|
return cls(item_name, data, source_textures, ignore_textures)
|
|
67
68
|
|
|
69
|
+
@handle_error(exceptions=ValueError, error_log=LogLevels.ERROR_TRACEBACK)
|
|
68
70
|
def get_powered_texture(self, variants: list[str], side: str, on_off: str) -> str:
|
|
69
71
|
""" Get the powered texture for a given side.
|
|
70
72
|
|
|
@@ -84,7 +86,7 @@ class AutoModel:
|
|
|
84
86
|
if texture.endswith(side):
|
|
85
87
|
return texture
|
|
86
88
|
if not self.ignore_textures:
|
|
87
|
-
|
|
89
|
+
raise ValueError(f"Couldn't find texture for side '{side}' in '{variants}', consider adding missing texture or override the model")
|
|
88
90
|
return ""
|
|
89
91
|
|
|
90
92
|
def model_in_variants(self, models: list[str], variants: list[str]) -> bool:
|
|
@@ -99,12 +101,42 @@ class AutoModel:
|
|
|
99
101
|
"""
|
|
100
102
|
return all(any(model in x for x in variants) for model in models)
|
|
101
103
|
|
|
104
|
+
@simple_cache
|
|
105
|
+
def get_same_folder_variants(self, variants: Iterable[str]) -> list[str]:
|
|
106
|
+
""" Get variants that are in the same folder as the item.
|
|
107
|
+
|
|
108
|
+
Args:
|
|
109
|
+
variants (Iterable[str]): Iterable of variant names.
|
|
110
|
+
|
|
111
|
+
Returns:
|
|
112
|
+
list[str]: List of variants in the same folder.
|
|
113
|
+
"""
|
|
114
|
+
target_folder_depth: int = self.item_name.count('/')
|
|
115
|
+
same_folder_variants: list[str] = []
|
|
116
|
+
for variant in variants:
|
|
117
|
+
variant_folder_depth: int = variant.count('/')
|
|
118
|
+
if variant_folder_depth == target_folder_depth:
|
|
119
|
+
# Check if all folder parts before the filename are the same
|
|
120
|
+
if target_folder_depth == 0:
|
|
121
|
+
same_folder_variants.append(variant)
|
|
122
|
+
else:
|
|
123
|
+
target_folder: str = '/'.join(self.item_name.split('/')[:-1])
|
|
124
|
+
variant_folder: str = '/'.join(variant.split('/')[:-1])
|
|
125
|
+
if target_folder == variant_folder:
|
|
126
|
+
same_folder_variants.append(variant)
|
|
127
|
+
return same_folder_variants
|
|
128
|
+
|
|
129
|
+
@handle_error(exceptions=ValueError, error_log=LogLevels.ERROR_TRACEBACK)
|
|
102
130
|
def process(self) -> None:
|
|
103
131
|
""" Process the item model. """
|
|
104
132
|
# If no item model, return
|
|
105
133
|
if not self.data.get("item_model"):
|
|
106
134
|
return
|
|
107
135
|
|
|
136
|
+
# If item_model is already processed, return
|
|
137
|
+
if self.data["item_model"] in Mem.ctx.meta["stewbeet"]["rendered_item_models"]:
|
|
138
|
+
return
|
|
139
|
+
|
|
108
140
|
# Initialize variables
|
|
109
141
|
if (self.data.get("id") == CUSTOM_BLOCK_VANILLA or
|
|
110
142
|
any((isinstance(x, str) and "block" in x) for x in self.data.get(OVERRIDE_MODEL, {}).values())):
|
|
@@ -128,13 +160,13 @@ class AutoModel:
|
|
|
128
160
|
|
|
129
161
|
# Generate its model file(s)
|
|
130
162
|
for on_off in powered:
|
|
131
|
-
content: dict = {}
|
|
132
|
-
|
|
133
|
-
# Get all variants
|
|
134
|
-
variants: list[str] = [
|
|
163
|
+
content: dict = {} # Get all variants
|
|
164
|
+
all_variants: list[str] = [
|
|
135
165
|
x.replace(".png", "") for x in self.source_textures
|
|
136
|
-
if
|
|
166
|
+
if os.path.basename(x).startswith(self.item_name)
|
|
137
167
|
]
|
|
168
|
+
# Filter to only include variants in the same folder
|
|
169
|
+
variants: list[str] = self.get_same_folder_variants(all_variants)
|
|
138
170
|
|
|
139
171
|
if self.data.get(OVERRIDE_MODEL, None) != {}:
|
|
140
172
|
# If it's a block
|
|
@@ -188,7 +220,7 @@ class AutoModel:
|
|
|
188
220
|
"orientable": orientable,
|
|
189
221
|
"cube_column": cube_column
|
|
190
222
|
}, max_level=1)
|
|
191
|
-
|
|
223
|
+
raise ValueError(
|
|
192
224
|
f"Block '{self.item_name}' has invalid variants: {variants},\n"
|
|
193
225
|
"consider overriding the model or adding missing textures to match up one of the following patterns:"
|
|
194
226
|
f"\n{patterns}"
|
|
@@ -297,7 +329,7 @@ class AutoModel:
|
|
|
297
329
|
Mem.ctx.assets[texture] = Texture(source_path=self.source_textures[texture_name], mcmeta=mcmeta)
|
|
298
330
|
else:
|
|
299
331
|
if not self.ignore_textures:
|
|
300
|
-
|
|
332
|
+
raise ValueError(f"Texture '{texture_name}' not found in source textures")
|
|
301
333
|
|
|
302
334
|
# Add model to assets
|
|
303
335
|
if self.data.get(OVERRIDE_MODEL, None) != {}:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/compatibilities/simpledrawer/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py
RENAMED
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py
RENAMED
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/finalyze/custom_blocks_ticking/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/heavy_workbench.png
RENAMED
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/invisible_item_release.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png
RENAMED
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/wiki_information.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/wiki_result_of_craft.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png
RENAMED
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/invisible_item.png
RENAMED
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/minecraft_font.ttf
RENAMED
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/none_release.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/wiki_information.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/wiki_result_of_craft.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.9 → stewbeet-2.0.10}/stewbeet/plugins/resource_pack/check_power_of_2/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|