stewbeet 2.0.4__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.4 → stewbeet-2.0.5}/PKG-INFO +1 -1
- {stewbeet-2.0.4 → stewbeet-2.0.5}/pyproject.toml +1 -1
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/custom_recipes/pulverizer.py +11 -10
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/datapack/custom_blocks/__init__.py +13 -18
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/datapack/loading/__init__.py +1 -5
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/initialize/__init__.py +96 -96
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/verify_definitions/__init__.py +15 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/.gitignore +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/LICENSE +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/README.md +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/__main__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/cli.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/continuous_delivery/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/continuous_delivery/cd_utils.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/continuous_delivery/github.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/continuous_delivery/modrinth.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/continuous_delivery/pmc.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/continuous_delivery/smithed.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/__memory__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/constants.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/completion.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/equipments.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/materials.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/records.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/smart_ore_generation.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/definitions_helper/text.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/ingredients.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/utils/io.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/core/utils/sounds.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/bookshelf.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/bookshelf_config.json +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Bitwise.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Block.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Color.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Dump.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Environment.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Generation.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Health.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Hitbox.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Id.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Interaction.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Link.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Log.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Math.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Move.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Position.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Random.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Raycast.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Schedule.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Sidebar.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Spline.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf String.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Time.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Tree.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Vector.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf View.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Bookshelf Xp.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Common Signals.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Furnace NBT Recipes.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/ItemIO.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/SmartOreGeneration.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Smithed Crafter.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/datapack/Smithed Custom Block.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/dependencies/resource_pack/Smithed Crafter.zip +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/archive/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/auto/headers/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/auto/headers/object.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/auto/lang_file/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/auto/lang_file/utils.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/compatibilities/neo_enchant/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/compatibilities/simpledrawer/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/compute_sha1/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/copy_to_destination/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/custom_recipes/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/custom_recipes/furnace.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/custom_recipes/smithed.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/custom_recipes/vanilla.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/datapack/loot_tables/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/custom_blocks_ticking/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/dependencies/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/furnace.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/heavy_workbench.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/invisible_item.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/invisible_item_release.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/minecraft_font.ttf +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/none.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/none_release.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/pulverizing.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/shaped_2x2.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/shaped_3x3.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_information.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft_template.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_result_of_craft.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/book_components.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/book_optimizer.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/craft_content.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/image_utils.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/iso_renders.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/main.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/other_utils.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/page_font.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/shared_import.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/.gitignore +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/_README.md +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/furnace.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/invisible_item.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/invisible_item_release.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/minecraft_font.ttf +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/none.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/none_release.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/pulverizing.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/shaped_2x2.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/shaped_3x3.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/simple_case_no_border.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/wiki_information.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft_template.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/wiki_result_of_craft.png +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/text_components.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/initialize/source_lore_font.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/merge_smithed_weld/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/merge_smithed_weld/weld.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/resource_pack/check_power_of_2/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/resource_pack/item_models/__init__.py +0 -0
- {stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/resource_pack/item_models/object.py +0 -0
- {stewbeet-2.0.4 → 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
|
|
@@ -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
|
|
|
@@ -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"]
|
|
@@ -329,7 +318,9 @@ execute store result entity @s Item.count byte 1 run scoreboard players get #ite
|
|
|
329
318
|
|
|
330
319
|
# Create predicate
|
|
331
320
|
pred = {"condition": "minecraft:location_check", "predicate": {"block": {"blocks": f"#{ns}:{VANILLA_BLOCKS_TAG}"}}}
|
|
332
|
-
|
|
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": []}
|
|
@@ -342,7 +333,9 @@ execute store result entity @s Item.count byte 1 run scoreboard players get #ite
|
|
|
342
333
|
"predicate": { "nbt": f"{{Tags:[\"{ns}.vanilla.{block_underscore}\"]}}", "location": { "block": { "blocks": block }}}
|
|
343
334
|
}
|
|
344
335
|
advanced_predicate["terms"].append(pred)
|
|
345
|
-
|
|
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(':', '_')
|
|
@@ -407,7 +400,9 @@ execute as @e[tag={ns}.custom_block,dx=0,dy=0,dz=0] at @s run function {ns}:cust
|
|
|
407
400
|
max_level = 0
|
|
408
401
|
)
|
|
409
402
|
adv["rewards"]["function"] = f"{ns}:custom_blocks/_player_head/search_{item}"
|
|
410
|
-
|
|
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
|
|
@@ -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
|
+
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py
RENAMED
|
File without changes
|
{stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py
RENAMED
|
File without changes
|
{stewbeet-2.0.4 → 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.4 → 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.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png
RENAMED
|
File without changes
|
{stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_information.png
RENAMED
|
File without changes
|
{stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft.png
RENAMED
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.4 → 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
|
|
File without changes
|
{stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png
RENAMED
|
File without changes
|
{stewbeet-2.0.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/invisible_item.png
RENAMED
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.4 → 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.4 → stewbeet-2.0.5}/stewbeet/plugins/ingame_manual/templates/simple_case_no_border.png
RENAMED
|
File without changes
|
{stewbeet-2.0.4 → 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.4 → 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.4 → stewbeet-2.0.5}/stewbeet/plugins/resource_pack/check_power_of_2/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|