stewbeet 2.0.3__tar.gz → 2.0.5__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.3 → stewbeet-2.0.5}/PKG-INFO +1 -1
- {stewbeet-2.0.3 → stewbeet-2.0.5}/pyproject.toml +1 -1
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/auto/lang_file/__init__.py +4 -2
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/auto/lang_file/utils.py +12 -9
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/custom_recipes/pulverizer.py +11 -10
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/datapack/custom_blocks/__init__.py +20 -25
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/datapack/loading/__init__.py +1 -5
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/iso_renders.py +1 -1
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/initialize/__init__.py +96 -96
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/resource_pack/item_models/object.py +5 -3
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/verify_definitions/__init__.py +15 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/.gitignore +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/LICENSE +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/README.md +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/__main__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/cli.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/continuous_delivery/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/continuous_delivery/cd_utils.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/continuous_delivery/github.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/continuous_delivery/modrinth.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/continuous_delivery/pmc.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/continuous_delivery/smithed.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/__memory__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/constants.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/completion.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/equipments.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/materials.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/records.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/smart_ore_generation.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/text.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/ingredients.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/utils/io.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/core/utils/sounds.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/bookshelf.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/bookshelf_config.json +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Bitwise.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Block.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Color.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Dump.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Environment.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Generation.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Health.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Hitbox.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Id.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Interaction.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Link.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Log.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Math.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Move.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Position.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Random.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Raycast.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Schedule.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Sidebar.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Spline.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf String.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Time.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Tree.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Vector.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf View.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Xp.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Common Signals.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Furnace NBT Recipes.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/ItemIO.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/SmartOreGeneration.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Smithed Crafter.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Smithed Custom Block.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/dependencies/resource_pack/Smithed Crafter.zip +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/archive/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/auto/headers/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/auto/headers/object.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/compatibilities/neo_enchant/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/compatibilities/simpledrawer/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/compute_sha1/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/copy_to_destination/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/custom_recipes/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/custom_recipes/furnace.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/custom_recipes/smithed.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/custom_recipes/vanilla.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/datapack/loot_tables/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/custom_blocks_ticking/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/dependencies/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/furnace.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/heavy_workbench.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/invisible_item.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/invisible_item_release.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/minecraft_font.ttf +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/none.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/none_release.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/pulverizing.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/shaped_2x2.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/shaped_3x3.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_information.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft_template.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_result_of_craft.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/book_components.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/book_optimizer.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/craft_content.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/image_utils.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/main.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/other_utils.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/page_font.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/shared_import.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/.gitignore +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/_README.md +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/furnace.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/invisible_item.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/invisible_item_release.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/minecraft_font.ttf +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/none.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/none_release.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/pulverizing.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/shaped_2x2.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/shaped_3x3.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/simple_case_no_border.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/wiki_information.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft_template.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/wiki_result_of_craft.png +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/text_components.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/initialize/source_lore_font.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/merge_smithed_weld/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/merge_smithed_weld/weld.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/resource_pack/check_power_of_2/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/resource_pack/item_models/__init__.py +0 -0
- {stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/resource_pack/sounds/__init__.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.5
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
# Imports
|
|
3
|
-
from beet import Context, Function, Language, LootTable
|
|
3
|
+
from beet import Advancement, Context, Function, ItemModifier, Language, LootTable
|
|
4
4
|
from stouputils.decorators import measure_time
|
|
5
5
|
from stouputils.io import super_json_dump
|
|
6
6
|
from stouputils.parallel import multithreading
|
|
@@ -22,9 +22,11 @@ def beet_default(ctx: Context):
|
|
|
22
22
|
files_to_process: dict[str, Function | LootTable] = {}
|
|
23
23
|
files_to_process.update(ctx.data.functions)
|
|
24
24
|
files_to_process.update(ctx.data.loot_tables)
|
|
25
|
+
files_to_process.update(ctx.data.item_modifiers)
|
|
26
|
+
files_to_process.update(ctx.data.advancements)
|
|
25
27
|
|
|
26
28
|
# Process all files
|
|
27
|
-
args: list[tuple[Context, str, Function | LootTable]] = [
|
|
29
|
+
args: list[tuple[Context, str, Function | LootTable | ItemModifier, Advancement]] = [
|
|
28
30
|
(ctx, file, content) for (file, content) in files_to_process.items()
|
|
29
31
|
if True
|
|
30
32
|
]
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
# Imports
|
|
3
3
|
import re
|
|
4
4
|
|
|
5
|
-
from beet import Context, Function, LootTable
|
|
5
|
+
from beet import Advancement, Context, Function, ItemModifier, LootTable
|
|
6
6
|
from stouputils.decorators import simple_cache
|
|
7
|
-
from stouputils.print import breakpoint
|
|
8
7
|
|
|
9
8
|
# Prepare lang dictionary and lang_format function
|
|
10
9
|
lang: dict[str, str] = {}
|
|
@@ -56,7 +55,7 @@ def lang_format(ctx: Context, text: str) -> tuple[str, str]:
|
|
|
56
55
|
return key, re.sub(r"[._]", "", alpha_num)
|
|
57
56
|
|
|
58
57
|
|
|
59
|
-
def handle_file(ctx: Context, file: str, content: Function | LootTable) -> None:
|
|
58
|
+
def handle_file(ctx: Context, file: str, content: Function | LootTable | ItemModifier | Advancement) -> None:
|
|
60
59
|
""" Process a file to extract and replace text with lang keys.
|
|
61
60
|
|
|
62
61
|
Args:
|
|
@@ -67,10 +66,10 @@ def handle_file(ctx: Context, file: str, content: Function | LootTable) -> None:
|
|
|
67
66
|
Returns:
|
|
68
67
|
None: The function modifies the content in place.
|
|
69
68
|
"""
|
|
70
|
-
# Read content
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
# Read content from supported beet types
|
|
70
|
+
# Function, LootTable, ItemModifier or Advancement
|
|
71
|
+
if isinstance(content, Function) or isinstance(content, LootTable) \
|
|
72
|
+
or isinstance(content, ItemModifier) or isinstance(content, Advancement):
|
|
74
73
|
string: str = content.text
|
|
75
74
|
else:
|
|
76
75
|
raise ValueError(f"Unsupported content type: {type(content)}")
|
|
@@ -98,9 +97,13 @@ def handle_file(ctx: Context, file: str, content: Function | LootTable) -> None:
|
|
|
98
97
|
new_fragment: str = f'{quote}translate{quote}: {quote}{key_for_lang}{quote}'
|
|
99
98
|
string = string[:start] + new_fragment + string[end:]
|
|
100
99
|
|
|
101
|
-
# Write the new content to the
|
|
100
|
+
# Write the new content back to the appropriate context data
|
|
102
101
|
if isinstance(content, Function):
|
|
103
102
|
ctx.data.functions[file] = Function(string)
|
|
104
|
-
|
|
103
|
+
elif isinstance(content, LootTable):
|
|
105
104
|
ctx.data.loot_tables[file] = LootTable(string)
|
|
105
|
+
elif isinstance(content, ItemModifier):
|
|
106
|
+
ctx.data.item_modifiers[file] = ItemModifier(string)
|
|
107
|
+
elif isinstance(content, Advancement):
|
|
108
|
+
ctx.data.advancements[file] = Advancement(string)
|
|
106
109
|
|
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
import json
|
|
4
4
|
from typing import Any
|
|
5
5
|
|
|
6
|
-
from beet import Recipe
|
|
7
6
|
from stouputils.decorators import simple_cache
|
|
8
|
-
from stouputils.io import super_json_dump
|
|
9
7
|
|
|
10
8
|
from ...core.__memory__ import Mem
|
|
9
|
+
from ...core.constants import PULVERIZING
|
|
11
10
|
from ...core.ingredients import (
|
|
12
11
|
get_item_from_ingredient,
|
|
13
12
|
ingr_repr,
|
|
@@ -44,22 +43,24 @@ class PulverizerRecipeHandler:
|
|
|
44
43
|
str: The generated recipe command.
|
|
45
44
|
"""
|
|
46
45
|
ingredient: dict[str, Any] = item_to_id_ingr_repr(recipe["ingredient"])
|
|
47
|
-
result: dict[str, Any] = item_to_id_ingr_repr(get_item_from_ingredient(
|
|
46
|
+
result: dict[str, Any] = item_to_id_ingr_repr(get_item_from_ingredient(recipe["result"])) if recipe.get("result") else ingr_repr(item, Mem.ctx.project_id)
|
|
48
47
|
|
|
49
48
|
line: str = "execute if score #found simplenergy.data matches 0 store result score #found simplenergy.data if data storage simplenergy:main pulverizer.input"
|
|
50
49
|
line += json.dumps(ingredient)
|
|
51
|
-
line += f" run loot replace entity @s contents loot {loot_table_from_ingredient(
|
|
52
|
-
return line
|
|
50
|
+
line += f" run loot replace entity @s contents loot {loot_table_from_ingredient(result, recipe['result_count'])}"
|
|
51
|
+
return line
|
|
53
52
|
|
|
54
53
|
def generate_recipes(self) -> None:
|
|
55
|
-
"""Generate all pulverizer recipes."""
|
|
54
|
+
""" Generate all pulverizer recipes. """
|
|
56
55
|
for item, data in Mem.definitions.items():
|
|
57
56
|
crafts: list[dict[str, Any]] = list(data.get("result_of_crafting", []))
|
|
58
57
|
crafts += list(data.get("used_for_crafting", []))
|
|
59
58
|
|
|
60
59
|
for recipe in crafts:
|
|
61
|
-
if recipe["type"] ==
|
|
62
|
-
write_function(
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
if recipe["type"] == PULVERIZING:
|
|
61
|
+
write_function(
|
|
62
|
+
self.SIMPLENERGY_PULVERIZER_PATH,
|
|
63
|
+
self.simplenergy_pulverizer_recipe(recipe, item),
|
|
64
|
+
tags=["simplenergy:calls/pulverizer_recipes"],
|
|
65
|
+
)
|
|
65
66
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Imports
|
|
3
3
|
from typing import Any
|
|
4
4
|
|
|
5
|
-
from beet import BlockTag, Context, Predicate
|
|
5
|
+
from beet import Advancement, BlockTag, Context, Predicate
|
|
6
6
|
from stouputils.decorators import measure_time
|
|
7
7
|
from stouputils.io import super_json_dump
|
|
8
8
|
from stouputils.print import debug, progress
|
|
@@ -46,8 +46,10 @@ def beet_default(ctx: Context):
|
|
|
46
46
|
# Predicates
|
|
47
47
|
FACING = ["north", "east", "south", "west"]
|
|
48
48
|
for face in FACING:
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
pred = {"condition":"minecraft:location_check","predicate":{"block":{"state":{"facing":face}}}}
|
|
50
|
+
pred_obj = Predicate(pred)
|
|
51
|
+
pred_obj.encoder = super_json_dump
|
|
52
|
+
ctx.data[ns].predicates[f"facing/{face}"] = pred_obj
|
|
51
53
|
|
|
52
54
|
# Get rotation function
|
|
53
55
|
write_function(f"{ns}:custom_blocks/get_rotation",
|
|
@@ -80,19 +82,6 @@ execute if score #rotation {ns}.data matches 0 if predicate {ns}:facing/west run
|
|
|
80
82
|
# Custom block
|
|
81
83
|
if data.get(VANILLA_BLOCK):
|
|
82
84
|
|
|
83
|
-
# Add additional data to the custom blocks
|
|
84
|
-
if data.get("id") == CUSTOM_BLOCK_VANILLA:
|
|
85
|
-
data["container"] = [
|
|
86
|
-
{"slot":0,"item":{"id":"minecraft:stone","count":1,"components":{"minecraft:custom_data":{"smithed":{"block":{"id":f"{ctx.project_id}:{item}","from":ctx.project_id}}}}}}
|
|
87
|
-
]
|
|
88
|
-
|
|
89
|
-
# Hide the container tooltip
|
|
90
|
-
if not data.get("tooltip_display"):
|
|
91
|
-
data["tooltip_display"] = {"hidden_components": []}
|
|
92
|
-
elif not data["tooltip_display"].get("hidden_components"):
|
|
93
|
-
data["tooltip_display"]["hidden_components"] = []
|
|
94
|
-
data["tooltip_display"]["hidden_components"].append("minecraft:container")
|
|
95
|
-
|
|
96
85
|
# Get the vanilla block data
|
|
97
86
|
block = data[VANILLA_BLOCK]
|
|
98
87
|
block_id = block["id"]
|
|
@@ -328,8 +317,10 @@ execute store result entity @s Item.count byte 1 run scoreboard players get #ite
|
|
|
328
317
|
ctx.data[ns].block_tags[VANILLA_BLOCKS_TAG] = BlockTag(super_json_dump({"values": listed_blocks}))
|
|
329
318
|
|
|
330
319
|
# Create predicate
|
|
331
|
-
|
|
332
|
-
|
|
320
|
+
pred = {"condition": "minecraft:location_check", "predicate": {"block": {"blocks": f"#{ns}:{VANILLA_BLOCKS_TAG}"}}}
|
|
321
|
+
pred_obj = Predicate(pred)
|
|
322
|
+
pred_obj.encoder = super_json_dump
|
|
323
|
+
ctx.data[ns].predicates["check_vanilla_blocks"] = pred_obj
|
|
333
324
|
|
|
334
325
|
# Create advanced predicate
|
|
335
326
|
advanced_predicate = {"condition": "minecraft:any_of", "terms": []}
|
|
@@ -337,12 +328,14 @@ execute store result entity @s Item.count byte 1 run scoreboard players get #ite
|
|
|
337
328
|
block_underscore = block.replace(":","_")
|
|
338
329
|
if block == "minecraft:cauldron":
|
|
339
330
|
block = "#minecraft:cauldrons"
|
|
340
|
-
|
|
331
|
+
pred = {
|
|
341
332
|
"condition": "minecraft:entity_properties", "entity": "this",
|
|
342
333
|
"predicate": { "nbt": f"{{Tags:[\"{ns}.vanilla.{block_underscore}\"]}}", "location": { "block": { "blocks": block }}}
|
|
343
334
|
}
|
|
344
|
-
advanced_predicate["terms"].append(
|
|
345
|
-
|
|
335
|
+
advanced_predicate["terms"].append(pred)
|
|
336
|
+
pred_obj = Predicate(advanced_predicate)
|
|
337
|
+
pred_obj.encoder = super_json_dump
|
|
338
|
+
ctx.data[ns].predicates["advanced_check_vanilla_blocks"] = pred_obj
|
|
346
339
|
|
|
347
340
|
# Write a destroy check every 2 ticks, every second, and every 5 seconds
|
|
348
341
|
ore_block = VANILLA_BLOCK_FOR_ORES["id"].replace(':', '_')
|
|
@@ -397,17 +390,19 @@ execute as @e[tag={ns}.custom_block,dx=0,dy=0,dz=0] at @s run function {ns}:cust
|
|
|
397
390
|
if data["id"] == CUSTOM_BLOCK_HEAD and data.get(VANILLA_BLOCK):
|
|
398
391
|
|
|
399
392
|
# Make advancement
|
|
400
|
-
|
|
393
|
+
adv = {
|
|
401
394
|
"criteria":{"requirement":{"trigger":"minecraft:placed_block","conditions":{"location": [{"condition": "minecraft:location_check","predicate": {"block": {}}}]}}},
|
|
402
395
|
"requirements":[["requirement"]],
|
|
403
396
|
"rewards":{}
|
|
404
397
|
}
|
|
405
|
-
|
|
398
|
+
adv["criteria"]["requirement"]["conditions"]["location"][0]["predicate"]["block"]["nbt"] = super_json_dump(
|
|
406
399
|
{"components":{"minecraft:custom_data":data.get("custom_data", {})}},
|
|
407
400
|
max_level = 0
|
|
408
401
|
)
|
|
409
|
-
|
|
410
|
-
|
|
402
|
+
adv["rewards"]["function"] = f"{ns}:custom_blocks/_player_head/search_{item}"
|
|
403
|
+
adv_obj = Advancement(adv)
|
|
404
|
+
adv_obj.encoder = super_json_dump
|
|
405
|
+
ctx.data[ns].advancements[f"custom_block_head/{item}"] = adv_obj
|
|
411
406
|
|
|
412
407
|
# Make search function
|
|
413
408
|
content = "# Search where the head has been placed\n"
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
# ruff: noqa: E501
|
|
3
3
|
# Imports
|
|
4
4
|
from beet import Context
|
|
5
|
-
from beet.core.utils import JsonDict
|
|
6
5
|
from stouputils.decorators import measure_time
|
|
7
6
|
from stouputils.io import super_json_dump
|
|
8
7
|
from stouputils.print import progress
|
|
@@ -31,9 +30,6 @@ def beet_default(ctx: Context):
|
|
|
31
30
|
assert ctx.project_id, "Project ID is not set. Please set it in the project configuration."
|
|
32
31
|
assert ctx.project_version.count(".") == 2, "Project version must be in the format 'major.minor.patch'."
|
|
33
32
|
|
|
34
|
-
# Get configuration from context meta
|
|
35
|
-
stewbeet: JsonDict = ctx.meta.get("stewbeet", {})
|
|
36
|
-
|
|
37
33
|
# Get basic project information
|
|
38
34
|
major, minor, patch = ctx.project_version.split(".")
|
|
39
35
|
|
|
@@ -98,7 +94,7 @@ execute unless score #{ctx.project_id}.loaded load.status matches 1 run function
|
|
|
98
94
|
items_storage += f"data modify storage {ctx.project_id}:items all.{item} set value " + super_json_dump(mc_data, max_level = 0)
|
|
99
95
|
|
|
100
96
|
# Write the loading tellraw and score, along with the final dataset
|
|
101
|
-
project_name =
|
|
97
|
+
project_name = ctx.project_name or ctx.project_id
|
|
102
98
|
write_load_file(
|
|
103
99
|
f"""
|
|
104
100
|
# Confirm load
|
|
@@ -78,7 +78,7 @@ def generate_all_iso_renders():
|
|
|
78
78
|
debug(f"Generating iso renders for {len(for_model_resolver)} items, this may take a while...")
|
|
79
79
|
render = Render(Mem.ctx)
|
|
80
80
|
for rp_path, dst_path in for_model_resolver.items():
|
|
81
|
-
render.add_model_task(rp_path, path_save=dst_path)
|
|
81
|
+
render.add_model_task(rp_path, path_save=dst_path, animation_mode="one_file")
|
|
82
82
|
render.run()
|
|
83
83
|
debug("Generated iso renders for all items")
|
|
84
84
|
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
|
|
2
|
-
# Imports
|
|
3
|
-
import os
|
|
4
|
-
from pathlib import Path
|
|
5
|
-
|
|
6
|
-
from beet import Context, Pack
|
|
7
|
-
from beet.core.utils import JsonDict, TextComponent
|
|
8
|
-
from box import Box
|
|
9
|
-
from stouputils import relative_path
|
|
10
|
-
from stouputils.decorators import measure_time
|
|
11
|
-
from stouputils.io import super_json_dump
|
|
12
|
-
from stouputils.print import progress, warning
|
|
13
|
-
|
|
14
|
-
from ...core import Mem
|
|
15
|
-
from .source_lore_font import make_source_lore_font
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
# Main entry point
|
|
19
|
-
@measure_time(progress, message="Execution time of 'stewbeet.plugins.initialize'")
|
|
20
|
-
def beet_default(ctx: Context):
|
|
21
|
-
|
|
22
|
-
# Assertions
|
|
23
|
-
assert ctx.project_id, "Project ID must be set in the project configuration."
|
|
24
|
-
|
|
25
|
-
# Store the Box object in ctx for access throughout the codebase
|
|
26
|
-
meta_box: Box = Box(ctx.meta, default_box=True, default_box_attr={})
|
|
27
|
-
object.__setattr__(ctx, "meta", meta_box) # Bypass FrozenInstanceError
|
|
28
|
-
Mem.ctx = ctx
|
|
29
|
-
|
|
30
|
-
# Preprocess project description
|
|
31
|
-
project_description: TextComponent = Mem.ctx.meta.stewbeet.project_description
|
|
32
|
-
if not project_description or project_description == "auto":
|
|
33
|
-
# Use project name, version, and author to create a default description
|
|
34
|
-
Mem.ctx.meta.stewbeet.project_description = f"{ctx.project_name} [{ctx.project_version}] by {ctx.project_author}"
|
|
35
|
-
|
|
36
|
-
# Preprocess source lore
|
|
37
|
-
source_lore: TextComponent = Mem.ctx.meta.stewbeet.source_lore
|
|
38
|
-
if not source_lore or source_lore == "auto":
|
|
39
|
-
Mem.ctx.meta.stewbeet.source_lore = [{"text":"ICON"},{"text":f" {ctx.project_name}","italic":True,"color":"blue"}]
|
|
40
|
-
make_source_lore_font(Mem.ctx.meta.stewbeet.source_lore)
|
|
41
|
-
|
|
42
|
-
# Preprocess manual name
|
|
43
|
-
manual_name: TextComponent = Mem.ctx.meta.stewbeet.manual.name
|
|
44
|
-
if not manual_name:
|
|
45
|
-
Mem.ctx.meta.stewbeet.manual.name = f"{ctx.project_name} Manual"
|
|
46
|
-
|
|
47
|
-
# Convert paths to relative ones
|
|
48
|
-
object.__setattr__(ctx, "output_directory", relative_path(Mem.ctx.output_directory))
|
|
49
|
-
|
|
50
|
-
# Helper function to setup pack.mcmeta
|
|
51
|
-
def setup_pack_mcmeta(pack: Pack, pack_format: int):
|
|
52
|
-
existing_mcmeta = pack.mcmeta.data or {}
|
|
53
|
-
pack_mcmeta: JsonDict = {"pack": {}}
|
|
54
|
-
pack_mcmeta.update(existing_mcmeta)
|
|
55
|
-
pack_mcmeta["pack"].update(existing_mcmeta.get("pack", {}))
|
|
56
|
-
pack_mcmeta["pack"]["pack_format"] = pack_format
|
|
57
|
-
pack_mcmeta["pack"]["description"] = Mem.ctx.meta.stewbeet.project_description
|
|
58
|
-
pack_mcmeta["id"] = Mem.ctx.project_id
|
|
59
|
-
pack.mcmeta.data = pack_mcmeta
|
|
60
|
-
pack.mcmeta.encoder = super_json_dump
|
|
61
|
-
|
|
62
|
-
# Setup pack.mcmeta for both packs
|
|
63
|
-
setup_pack_mcmeta(ctx.data, ctx.data.pack_format)
|
|
64
|
-
setup_pack_mcmeta(ctx.assets, ctx.assets.pack_format)
|
|
65
|
-
|
|
66
|
-
# Convert texture names if needed (from old legacy system)
|
|
67
|
-
textures_folder = Mem.ctx.meta.stewbeet.get("textures_folder")
|
|
68
|
-
if textures_folder and Path(textures_folder).exists():
|
|
69
|
-
REPLACEMENTS = {
|
|
70
|
-
"_off": "",
|
|
71
|
-
"_down": "_bottom",
|
|
72
|
-
"_up": "_top",
|
|
73
|
-
"_north": "_front",
|
|
74
|
-
"_south": "_back",
|
|
75
|
-
"_west": "_left",
|
|
76
|
-
"_east": "_right",
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
# Get all texture files
|
|
80
|
-
texture_files = [f for f in os.listdir(textures_folder) if f.endswith(('.png', '.jpg', '.jpeg', ".mcmeta"))]
|
|
81
|
-
|
|
82
|
-
for file in texture_files:
|
|
83
|
-
new_name = file.lower()
|
|
84
|
-
for k, v in REPLACEMENTS.items():
|
|
85
|
-
if k in file:
|
|
86
|
-
new_name = new_name.replace(k, v)
|
|
87
|
-
|
|
88
|
-
if new_name != file:
|
|
89
|
-
old_path = Path(textures_folder) / file
|
|
90
|
-
new_path = Path(textures_folder) / new_name
|
|
91
|
-
if old_path.exists() and not new_path.exists():
|
|
92
|
-
os.rename(old_path, new_path)
|
|
93
|
-
warning(f"Renamed texture {file} to {new_name}")
|
|
94
|
-
|
|
95
|
-
pass
|
|
96
|
-
|
|
1
|
+
|
|
2
|
+
# Imports
|
|
3
|
+
import os
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
from beet import Context, Pack
|
|
7
|
+
from beet.core.utils import JsonDict, TextComponent
|
|
8
|
+
from box import Box
|
|
9
|
+
from stouputils import relative_path
|
|
10
|
+
from stouputils.decorators import measure_time
|
|
11
|
+
from stouputils.io import super_json_dump
|
|
12
|
+
from stouputils.print import progress, warning
|
|
13
|
+
|
|
14
|
+
from ...core import Mem
|
|
15
|
+
from .source_lore_font import make_source_lore_font
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# Main entry point
|
|
19
|
+
@measure_time(progress, message="Execution time of 'stewbeet.plugins.initialize'")
|
|
20
|
+
def beet_default(ctx: Context):
|
|
21
|
+
|
|
22
|
+
# Assertions
|
|
23
|
+
assert ctx.project_id, "Project ID must be set in the project configuration."
|
|
24
|
+
|
|
25
|
+
# Store the Box object in ctx for access throughout the codebase
|
|
26
|
+
meta_box: Box = Box(ctx.meta, default_box=True, default_box_attr={})
|
|
27
|
+
object.__setattr__(ctx, "meta", meta_box) # Bypass FrozenInstanceError
|
|
28
|
+
Mem.ctx = ctx
|
|
29
|
+
|
|
30
|
+
# Preprocess project description
|
|
31
|
+
project_description: TextComponent = Mem.ctx.meta.stewbeet.project_description
|
|
32
|
+
if not project_description or project_description == "auto":
|
|
33
|
+
# Use project name, version, and author to create a default description
|
|
34
|
+
Mem.ctx.meta.stewbeet.project_description = f"{ctx.project_name} [{ctx.project_version}] by {ctx.project_author}"
|
|
35
|
+
|
|
36
|
+
# Preprocess source lore
|
|
37
|
+
source_lore: TextComponent = Mem.ctx.meta.stewbeet.source_lore
|
|
38
|
+
if not source_lore or source_lore == "auto":
|
|
39
|
+
Mem.ctx.meta.stewbeet.source_lore = [{"text":"ICON"},{"text":f" {ctx.project_name}","italic":True,"color":"blue"}]
|
|
40
|
+
make_source_lore_font(Mem.ctx.meta.stewbeet.source_lore)
|
|
41
|
+
|
|
42
|
+
# Preprocess manual name
|
|
43
|
+
manual_name: TextComponent = Mem.ctx.meta.stewbeet.manual.name
|
|
44
|
+
if not manual_name:
|
|
45
|
+
Mem.ctx.meta.stewbeet.manual.name = f"{ctx.project_name} Manual"
|
|
46
|
+
|
|
47
|
+
# Convert paths to relative ones
|
|
48
|
+
object.__setattr__(ctx, "output_directory", relative_path(Mem.ctx.output_directory))
|
|
49
|
+
|
|
50
|
+
# Helper function to setup pack.mcmeta
|
|
51
|
+
def setup_pack_mcmeta(pack: Pack, pack_format: int):
|
|
52
|
+
existing_mcmeta = pack.mcmeta.data or {}
|
|
53
|
+
pack_mcmeta: JsonDict = {"pack": {}}
|
|
54
|
+
pack_mcmeta.update(existing_mcmeta)
|
|
55
|
+
pack_mcmeta["pack"].update(existing_mcmeta.get("pack", {}))
|
|
56
|
+
pack_mcmeta["pack"]["pack_format"] = pack_format
|
|
57
|
+
pack_mcmeta["pack"]["description"] = Mem.ctx.meta.stewbeet.project_description
|
|
58
|
+
pack_mcmeta["id"] = Mem.ctx.project_id
|
|
59
|
+
pack.mcmeta.data = pack_mcmeta
|
|
60
|
+
pack.mcmeta.encoder = super_json_dump
|
|
61
|
+
|
|
62
|
+
# Setup pack.mcmeta for both packs
|
|
63
|
+
setup_pack_mcmeta(ctx.data, ctx.data.pack_format)
|
|
64
|
+
setup_pack_mcmeta(ctx.assets, ctx.assets.pack_format)
|
|
65
|
+
|
|
66
|
+
# Convert texture names if needed (from old legacy system)
|
|
67
|
+
textures_folder = Mem.ctx.meta.stewbeet.get("textures_folder")
|
|
68
|
+
if textures_folder and Path(textures_folder).exists():
|
|
69
|
+
REPLACEMENTS = {
|
|
70
|
+
"_off": "",
|
|
71
|
+
"_down": "_bottom",
|
|
72
|
+
"_up": "_top",
|
|
73
|
+
"_north": "_front",
|
|
74
|
+
"_south": "_back",
|
|
75
|
+
"_west": "_left",
|
|
76
|
+
"_east": "_right",
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
# Get all texture files
|
|
80
|
+
texture_files = [f for f in os.listdir(textures_folder) if f.endswith(('.png', '.jpg', '.jpeg', ".mcmeta"))]
|
|
81
|
+
|
|
82
|
+
for file in texture_files:
|
|
83
|
+
new_name = file.lower()
|
|
84
|
+
for k, v in REPLACEMENTS.items():
|
|
85
|
+
if k in file:
|
|
86
|
+
new_name = new_name.replace(k, v)
|
|
87
|
+
|
|
88
|
+
if new_name != file:
|
|
89
|
+
old_path = Path(textures_folder) / file
|
|
90
|
+
new_path = Path(textures_folder) / new_name
|
|
91
|
+
if old_path.exists() and not new_path.exists():
|
|
92
|
+
os.rename(old_path, new_path)
|
|
93
|
+
warning(f"Renamed texture {file} to {new_name}")
|
|
94
|
+
|
|
95
|
+
pass
|
|
96
|
+
|
|
@@ -5,7 +5,8 @@ from __future__ import annotations
|
|
|
5
5
|
import os
|
|
6
6
|
|
|
7
7
|
from beet import ItemModel, Model, Texture
|
|
8
|
-
from
|
|
8
|
+
from beet.core.utils import JsonDict
|
|
9
|
+
from stouputils.io import super_json_dump, super_json_load
|
|
9
10
|
from stouputils.print import error
|
|
10
11
|
|
|
11
12
|
from ....core.__memory__ import Mem
|
|
@@ -292,9 +293,10 @@ class AutoModel:
|
|
|
292
293
|
texture_name = texture.split(":")[-1].split("/")[-1] # Get just the filename
|
|
293
294
|
texture_name += ".png"
|
|
294
295
|
if texture_name in self.source_textures:
|
|
295
|
-
|
|
296
|
+
mcmeta: JsonDict | None = None
|
|
296
297
|
if os.path.exists(self.source_textures[texture_name] + ".mcmeta"):
|
|
297
|
-
|
|
298
|
+
mcmeta = super_json_load(self.source_textures[texture_name] + ".mcmeta")
|
|
299
|
+
Mem.ctx.assets[texture] = Texture(source_path=self.source_textures[texture_name], mcmeta=mcmeta)
|
|
298
300
|
else:
|
|
299
301
|
if not self.ignore_textures:
|
|
300
302
|
error(f"Texture '{texture_name}' not found in source textures")
|
|
@@ -214,3 +214,18 @@ def beet_default(ctx: Context) -> None:
|
|
|
214
214
|
else:
|
|
215
215
|
info("No errors found in the definitions during verification")
|
|
216
216
|
|
|
217
|
+
|
|
218
|
+
for item, data in Mem.definitions.items():
|
|
219
|
+
# Add additional data to the custom blocks
|
|
220
|
+
if data.get("id") == CUSTOM_BLOCK_VANILLA:
|
|
221
|
+
data["container"] = [
|
|
222
|
+
{"slot":0,"item":{"id":"minecraft:stone","count":1,"components":{"minecraft:custom_data":{"smithed":{"block":{"id":f"{ctx.project_id}:{item}","from":ctx.project_id}}}}}}
|
|
223
|
+
]
|
|
224
|
+
|
|
225
|
+
# Hide the container tooltip
|
|
226
|
+
if not data.get("tooltip_display"):
|
|
227
|
+
data["tooltip_display"] = {"hidden_components": []}
|
|
228
|
+
elif not data["tooltip_display"].get("hidden_components"):
|
|
229
|
+
data["tooltip_display"]["hidden_components"] = []
|
|
230
|
+
data["tooltip_display"]["hidden_components"].append("minecraft:container")
|
|
231
|
+
|
|
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
|
|
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.3 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py
RENAMED
|
File without changes
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py
RENAMED
|
File without changes
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/custom_blocks_ticking/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/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.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png
RENAMED
|
File without changes
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_information.png
RENAMED
|
File without changes
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft.png
RENAMED
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/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
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png
RENAMED
|
File without changes
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/invisible_item.png
RENAMED
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/minecraft_font.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/simple_case_no_border.png
RENAMED
|
File without changes
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/wiki_information.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.3 → stewbeet-2.0.5}/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.3 → stewbeet-2.0.5}/stewbeet/plugins/resource_pack/check_power_of_2/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|