stewbeet 2.0.16__tar.gz → 2.0.17__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.16 → stewbeet-2.0.17}/PKG-INFO +1 -1
- {stewbeet-2.0.16 → stewbeet-2.0.17}/pyproject.toml +1 -1
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/__init__.py +5 -0
- stewbeet-2.0.17/stewbeet/all.py +50 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/archive/__init__.py +10 -9
- stewbeet-2.0.17/stewbeet/plugins/finalyze/last_final/__init__.py +30 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/initialize/__init__.py +109 -124
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/initialize/source_lore_font.py +7 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/.gitignore +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/LICENSE +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/README.md +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/__main__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/continuous_delivery/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/continuous_delivery/cd_utils.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/continuous_delivery/github.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/continuous_delivery/modrinth.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/continuous_delivery/pmc.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/continuous_delivery/smithed.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/__memory__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/constants.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/definitions_helper/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/definitions_helper/completion.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/definitions_helper/equipments.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/definitions_helper/materials.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/definitions_helper/records.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/definitions_helper/smart_ore_generation.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/definitions_helper/text.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/ingredients.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/utils/io.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/core/utils/sounds.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/bookshelf.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/bookshelf_config.json +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Bitwise.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Block.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Color.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Dump.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Environment.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Generation.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Health.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Hitbox.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Id.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Interaction.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Link.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Log.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Math.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Move.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Position.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Random.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Raycast.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Schedule.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Sidebar.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Spline.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf String.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Time.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Tree.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Vector.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf View.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Xp.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Common Signals.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Furnace NBT Recipes.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/ItemIO.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/SmartOreGeneration.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Smithed Crafter.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Smithed Custom Block.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/resource_pack/Smithed Crafter.zip +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/auto/headers/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/auto/headers/object.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/auto/lang_file/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/auto/lang_file/utils.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/compatibilities/neo_enchant/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/compatibilities/simpledrawer/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/compute_sha1/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/copy_to_destination/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/custom_recipes/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/custom_recipes/furnace.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/custom_recipes/pulverizer.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/custom_recipes/smithed.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/custom_recipes/vanilla.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/datapack/custom_blocks/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/datapack/loading/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/datapack/loot_tables/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/finalyze/custom_blocks_ticking/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/finalyze/dependencies/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/furnace.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/heavy_workbench.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/invisible_item.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/invisible_item_release.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/minecraft_font.ttf +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/none.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/none_release.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/pulverizing.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/shaped_2x2.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/shaped_3x3.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/wiki_information.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft_template.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/wiki_result_of_craft.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/book_components.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/book_optimizer.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/craft_content.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/image_utils.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/iso_renders.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/main.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/other_utils.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/page_font.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/shared_import.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/.gitignore +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/_README.md +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/furnace.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/invisible_item.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/invisible_item_release.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/minecraft_font.ttf +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/none.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/none_release.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/pulverizing.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/shaped_2x2.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/shaped_3x3.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/simple_case_no_border.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/wiki_information.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft_template.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/wiki_result_of_craft.png +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/text_components.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/merge_smithed_weld/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/merge_smithed_weld/weld.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/resource_pack/check_power_of_2/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/resource_pack/item_models/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/resource_pack/item_models/object.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/resource_pack/sounds/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/verify_definitions/__init__.py +0 -0
- {stewbeet-2.0.16 → stewbeet-2.0.17}/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.17
|
|
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
|
|
@@ -9,3 +9,8 @@ from .plugins.initialize.source_lore_font import find_pack_png
|
|
|
9
9
|
from .plugins.resource_pack.item_models.object import AutoModel
|
|
10
10
|
from .plugins.resource_pack.sounds import add_sound
|
|
11
11
|
|
|
12
|
+
|
|
13
|
+
def beet_default(ctx: Context):
|
|
14
|
+
""" Initializes the StewBeet package. """
|
|
15
|
+
ctx.require("stewbeet.plugins.initialize")
|
|
16
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
|
|
2
|
+
# Imports
|
|
3
|
+
from beet import Context
|
|
4
|
+
|
|
5
|
+
# Constants
|
|
6
|
+
GENERATION_PLUGINS = (
|
|
7
|
+
"stewbeet.plugins.verify_definitions",
|
|
8
|
+
"stewbeet.plugins.resource_pack.sounds",
|
|
9
|
+
"stewbeet.plugins.resource_pack.item_models",
|
|
10
|
+
"stewbeet.plugins.resource_pack.check_power_of_2",
|
|
11
|
+
"stewbeet.plugins.custom_recipes",
|
|
12
|
+
"stewbeet.plugins.ingame_manual",
|
|
13
|
+
"stewbeet.plugins.datapack.loading",
|
|
14
|
+
"stewbeet.plugins.datapack.custom_blocks",
|
|
15
|
+
"stewbeet.plugins.datapack.loot_tables",
|
|
16
|
+
"stewbeet.plugins.compatibilities.simpledrawer",
|
|
17
|
+
"stewbeet.plugins.compatibilities.neo_enchant"
|
|
18
|
+
)
|
|
19
|
+
FINALYZE_PLUGINS = (
|
|
20
|
+
"stewbeet.plugins.finalyze.custom_blocks_ticking",
|
|
21
|
+
"stewbeet.plugins.finalyze.basic_datapack_structure",
|
|
22
|
+
"stewbeet.plugins.finalyze.dependencies",
|
|
23
|
+
"stewbeet.plugins.finalyze.check_unused_textures",
|
|
24
|
+
"stewbeet.plugins.finalyze.last_final",
|
|
25
|
+
"stewbeet.plugins.auto.headers",
|
|
26
|
+
"stewbeet.plugins.archive",
|
|
27
|
+
"stewbeet.plugins.merge_smithed_weld",
|
|
28
|
+
"stewbeet.plugins.copy_to_destination",
|
|
29
|
+
"stewbeet.plugins.compute_sha1"
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
def beet_default(ctx: Context):
|
|
33
|
+
""" Run all plugins that should run after definitions are loaded.
|
|
34
|
+
This function will yield before finalizing the project (so users can run their own plugins in the middle of the pipeline).
|
|
35
|
+
|
|
36
|
+
Requires:
|
|
37
|
+
- StewBeet to be initialized (e.g. from stewbeet.plugins.initialize).
|
|
38
|
+
- Definitions to be loaded
|
|
39
|
+
"""
|
|
40
|
+
# Assertions
|
|
41
|
+
for x in GENERATION_PLUGINS:
|
|
42
|
+
ctx.require(x)
|
|
43
|
+
|
|
44
|
+
# Yield to allow user code to run
|
|
45
|
+
yield
|
|
46
|
+
|
|
47
|
+
# After user code, run the final plugins
|
|
48
|
+
for x in FINALYZE_PLUGINS:
|
|
49
|
+
ctx.require(x)
|
|
50
|
+
|
|
@@ -81,6 +81,16 @@ def beet_default(ctx: Context) -> None:
|
|
|
81
81
|
for item in temp_zip.filelist:
|
|
82
82
|
temp_contents[item.filename] = temp_zip.read(item.filename)
|
|
83
83
|
|
|
84
|
+
# Check if pack.png exists and prepare it
|
|
85
|
+
pack_png_path = find_pack_png()
|
|
86
|
+
if pack_png_path:
|
|
87
|
+
# Remove pack.png from temp_contents if it exists to avoid duplicates
|
|
88
|
+
temp_contents.pop("pack.png", None)
|
|
89
|
+
|
|
90
|
+
# Read pack.png content
|
|
91
|
+
with open(pack_png_path, "rb") as f:
|
|
92
|
+
temp_contents["pack.png"] = f.read()
|
|
93
|
+
|
|
84
94
|
# Recreate the zip file with proper timestamps and compression
|
|
85
95
|
with zipfile.ZipFile(archive_path, "w", compression=zipfile.ZIP_DEFLATED, compresslevel=6) as final_zip:
|
|
86
96
|
for filename, content in temp_contents.items():
|
|
@@ -89,15 +99,6 @@ def beet_default(ctx: Context) -> None:
|
|
|
89
99
|
info.compress_type = zipfile.ZIP_DEFLATED
|
|
90
100
|
final_zip.writestr(info, content)
|
|
91
101
|
|
|
92
|
-
# Check if pack.png exists and add it to the final zip if it does
|
|
93
|
-
pack_png_path = find_pack_png()
|
|
94
|
-
if pack_png_path:
|
|
95
|
-
info = ZipInfo("pack.png")
|
|
96
|
-
info.compress_type = zipfile.ZIP_DEFLATED
|
|
97
|
-
info.date_time = consistent_time
|
|
98
|
-
with open(pack_png_path, "rb") as f:
|
|
99
|
-
final_zip.writestr(info, f.read())
|
|
100
|
-
|
|
101
102
|
# Process each pack in parallel
|
|
102
103
|
multithreading(handle_pack, ctx.packs, max_workers=len(ctx.packs))
|
|
103
104
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
|
|
2
|
+
# Imports
|
|
3
|
+
from beet import Context, PngFile
|
|
4
|
+
from stouputils.decorators import measure_time
|
|
5
|
+
from stouputils.print import progress
|
|
6
|
+
|
|
7
|
+
from ....core import Mem
|
|
8
|
+
from ...initialize.source_lore_font import create_source_lore_font, find_pack_png
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# Main entry point
|
|
12
|
+
@measure_time(progress, message="Execution time of 'stewbeet.plugins.finalyze.last_final'")
|
|
13
|
+
def beet_default(ctx: Context):
|
|
14
|
+
|
|
15
|
+
# If source lore is present and there are item definitions using it, create the source lore font
|
|
16
|
+
src_lore: str = Mem.ctx.meta.stewbeet.get("pack_icon_path", "")
|
|
17
|
+
if src_lore and Mem.ctx.meta.stewbeet.source_lore and any(
|
|
18
|
+
Mem.ctx.meta.stewbeet.source_lore in data.get("lore", [])
|
|
19
|
+
for data in Mem.definitions.values()
|
|
20
|
+
):
|
|
21
|
+
create_source_lore_font(src_lore)
|
|
22
|
+
|
|
23
|
+
# Add the pack icon to the output directory for datapack and resource pack
|
|
24
|
+
pack_icon = find_pack_png()
|
|
25
|
+
if pack_icon:
|
|
26
|
+
Mem.ctx.data.extra["pack.png"] = PngFile(source_path=pack_icon)
|
|
27
|
+
all_assets = set(Mem.ctx.assets.all())
|
|
28
|
+
if len(all_assets) > 0:
|
|
29
|
+
Mem.ctx.assets.extra["pack.png"] = PngFile(source_path=pack_icon)
|
|
30
|
+
|
|
@@ -1,124 +1,109 @@
|
|
|
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 warning
|
|
13
|
-
|
|
14
|
-
from ...core import Mem
|
|
15
|
-
from .source_lore_font import
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
# Main entry point
|
|
19
|
-
@measure_time(message="Total execution time", is_generator=True)
|
|
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
|
-
|
|
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
|
-
# Add missing pack format registries if not present
|
|
96
|
-
ctx.data.pack_format_registry.update({
|
|
97
|
-
(1, 21, 5): 71,
|
|
98
|
-
(1, 21, 6): 80,
|
|
99
|
-
(1, 21, 7): 81,
|
|
100
|
-
})
|
|
101
|
-
ctx.assets.pack_format_registry.update({
|
|
102
|
-
(1, 21, 5): 55,
|
|
103
|
-
(1, 21, 6): 63,
|
|
104
|
-
(1, 21, 7): 64,
|
|
105
|
-
})
|
|
106
|
-
|
|
107
|
-
# Yield message to indicate successful build
|
|
108
|
-
yield
|
|
109
|
-
|
|
110
|
-
# If source lore is present and there are item definitions using it, create the source lore font
|
|
111
|
-
if src_lore and Mem.ctx.meta.stewbeet.source_lore and any(
|
|
112
|
-
Mem.ctx.meta.stewbeet.source_lore in data.get("lore", [])
|
|
113
|
-
for data in Mem.definitions.values()
|
|
114
|
-
):
|
|
115
|
-
create_source_lore_font(src_lore)
|
|
116
|
-
|
|
117
|
-
# Add the pack icon to the output directory for datapack and resource pack
|
|
118
|
-
pack_icon = find_pack_png()
|
|
119
|
-
if pack_icon:
|
|
120
|
-
Mem.ctx.data.extra["pack.png"] = PngFile(source_path=pack_icon)
|
|
121
|
-
all_assets = set(Mem.ctx.assets.all())
|
|
122
|
-
if len(all_assets) > 0:
|
|
123
|
-
Mem.ctx.assets.extra["pack.png"] = PngFile(source_path=pack_icon)
|
|
124
|
-
|
|
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 warning
|
|
13
|
+
|
|
14
|
+
from ...core import Mem
|
|
15
|
+
from .source_lore_font import prepare_source_lore_font
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# Main entry point
|
|
19
|
+
@measure_time(message="Total execution time", is_generator=True)
|
|
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
|
+
Mem.ctx.meta.stewbeet["pack_icon_path"] = prepare_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
|
+
# Add missing pack format registries if not present
|
|
96
|
+
ctx.data.pack_format_registry.update({
|
|
97
|
+
(1, 21, 5): 71,
|
|
98
|
+
(1, 21, 6): 80,
|
|
99
|
+
(1, 21, 7): 81,
|
|
100
|
+
})
|
|
101
|
+
ctx.assets.pack_format_registry.update({
|
|
102
|
+
(1, 21, 5): 55,
|
|
103
|
+
(1, 21, 6): 63,
|
|
104
|
+
(1, 21, 7): 64,
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
# Yield message to indicate successful build
|
|
108
|
+
yield
|
|
109
|
+
|
|
@@ -63,3 +63,10 @@ def create_source_lore_font(pack_icon: str) -> None:
|
|
|
63
63
|
image = image.resize((256, 256))
|
|
64
64
|
Mem.ctx.assets[Mem.ctx.project_id].textures["font/original_icon"] = Texture(image)
|
|
65
65
|
|
|
66
|
+
def delete_source_lore_font() -> None:
|
|
67
|
+
""" Delete the source lore font if it exists. """
|
|
68
|
+
if Mem.ctx.assets[Mem.ctx.project_id].fonts.get("icons"):
|
|
69
|
+
del Mem.ctx.assets[Mem.ctx.project_id].fonts["icons"]
|
|
70
|
+
if Mem.ctx.assets[Mem.ctx.project_id].textures.get("font/original_icon"):
|
|
71
|
+
del Mem.ctx.assets[Mem.ctx.project_id].textures["font/original_icon"]
|
|
72
|
+
|
|
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.16 → stewbeet-2.0.17}/stewbeet/core/definitions_helper/smart_ore_generation.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
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Environment.zip
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/dependencies/datapack/Bookshelf Interaction.zip
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
|
|
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.16 → stewbeet-2.0.17}/stewbeet/plugins/compatibilities/neo_enchant/__init__.py
RENAMED
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/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
|
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py
RENAMED
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py
RENAMED
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/finalyze/custom_blocks_ticking/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/heavy_workbench.png
RENAMED
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/invisible_item.png
RENAMED
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/invisible_item_release.png
RENAMED
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/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.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png
RENAMED
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/assets/wiki_information.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/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.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png
RENAMED
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/invisible_item.png
RENAMED
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/minecraft_font.ttf
RENAMED
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/none_release.png
RENAMED
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/pulverizing.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stewbeet-2.0.16 → stewbeet-2.0.17}/stewbeet/plugins/ingame_manual/templates/wiki_information.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.16 → stewbeet-2.0.17}/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
|
|
File without changes
|