stewbeet 2.0.8__tar.gz → 2.0.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of stewbeet might be problematic. Click here for more details.

Files changed (138) hide show
  1. {stewbeet-2.0.8 → stewbeet-2.0.10}/PKG-INFO +2 -2
  2. {stewbeet-2.0.8 → stewbeet-2.0.10}/pyproject.toml +3 -3
  3. stewbeet-2.0.10/stewbeet/__init__.py +11 -0
  4. stewbeet-2.0.8/stewbeet/cli.py → stewbeet-2.0.10/stewbeet/__main__.py +1 -0
  5. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/__init__.py +2 -0
  6. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/constants.py +6 -5
  7. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/auto/lang_file/__init__.py +1 -1
  8. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/custom_recipes/vanilla.py +3 -1
  9. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/initialize/__init__.py +10 -0
  10. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/resource_pack/item_models/object.py +41 -9
  11. stewbeet-2.0.8/stewbeet/__init__.py +0 -1
  12. stewbeet-2.0.8/stewbeet/__main__.py +0 -4
  13. {stewbeet-2.0.8 → stewbeet-2.0.10}/.gitignore +0 -0
  14. {stewbeet-2.0.8 → stewbeet-2.0.10}/LICENSE +0 -0
  15. {stewbeet-2.0.8 → stewbeet-2.0.10}/README.md +0 -0
  16. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/continuous_delivery/__init__.py +0 -0
  17. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/continuous_delivery/cd_utils.py +0 -0
  18. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/continuous_delivery/github.py +0 -0
  19. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/continuous_delivery/modrinth.py +0 -0
  20. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/continuous_delivery/pmc.py +0 -0
  21. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/continuous_delivery/smithed.py +0 -0
  22. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/__memory__.py +0 -0
  23. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/__init__.py +0 -0
  24. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/completion.py +0 -0
  25. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/equipments.py +0 -0
  26. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/materials.py +0 -0
  27. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/records.py +0 -0
  28. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/smart_ore_generation.py +0 -0
  29. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/definitions_helper/text.py +0 -0
  30. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/ingredients.py +0 -0
  31. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/utils/io.py +0 -0
  32. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/core/utils/sounds.py +0 -0
  33. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/__init__.py +0 -0
  34. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/bookshelf.py +0 -0
  35. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/bookshelf_config.json +0 -0
  36. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Bitwise.zip +0 -0
  37. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Block.zip +0 -0
  38. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Color.zip +0 -0
  39. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Dump.zip +0 -0
  40. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Environment.zip +0 -0
  41. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Generation.zip +0 -0
  42. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Health.zip +0 -0
  43. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Hitbox.zip +0 -0
  44. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Id.zip +0 -0
  45. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Interaction.zip +0 -0
  46. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Link.zip +0 -0
  47. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Log.zip +0 -0
  48. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Math.zip +0 -0
  49. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Move.zip +0 -0
  50. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Position.zip +0 -0
  51. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Random.zip +0 -0
  52. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Raycast.zip +0 -0
  53. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Schedule.zip +0 -0
  54. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Sidebar.zip +0 -0
  55. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Spline.zip +0 -0
  56. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf String.zip +0 -0
  57. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Time.zip +0 -0
  58. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Tree.zip +0 -0
  59. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Vector.zip +0 -0
  60. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf View.zip +0 -0
  61. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Bookshelf Xp.zip +0 -0
  62. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Common Signals.zip +0 -0
  63. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Furnace NBT Recipes.zip +0 -0
  64. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/ItemIO.zip +0 -0
  65. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/SmartOreGeneration.zip +0 -0
  66. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Smithed Crafter.zip +0 -0
  67. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/datapack/Smithed Custom Block.zip +0 -0
  68. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/dependencies/resource_pack/Smithed Crafter.zip +0 -0
  69. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/archive/__init__.py +0 -0
  70. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/auto/headers/__init__.py +0 -0
  71. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/auto/headers/object.py +0 -0
  72. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/auto/lang_file/utils.py +0 -0
  73. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/compatibilities/neo_enchant/__init__.py +0 -0
  74. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/compatibilities/simpledrawer/__init__.py +0 -0
  75. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/compute_sha1/__init__.py +0 -0
  76. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/copy_to_destination/__init__.py +0 -0
  77. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/custom_recipes/__init__.py +0 -0
  78. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/custom_recipes/furnace.py +0 -0
  79. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/custom_recipes/pulverizer.py +0 -0
  80. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/custom_recipes/smithed.py +0 -0
  81. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/datapack/custom_blocks/__init__.py +0 -0
  82. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/datapack/loading/__init__.py +0 -0
  83. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/datapack/loot_tables/__init__.py +0 -0
  84. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py +0 -0
  85. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py +0 -0
  86. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/finalyze/custom_blocks_ticking/__init__.py +0 -0
  87. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/finalyze/dependencies/__init__.py +0 -0
  88. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/__init__.py +0 -0
  89. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/furnace.png +0 -0
  90. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/heavy_workbench.png +0 -0
  91. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/invisible_item.png +0 -0
  92. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/invisible_item_release.png +0 -0
  93. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/minecraft_font.ttf +0 -0
  94. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/none.png +0 -0
  95. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/none_release.png +0 -0
  96. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/pulverizing.png +0 -0
  97. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/shaped_2x2.png +0 -0
  98. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/shaped_3x3.png +0 -0
  99. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png +0 -0
  100. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/wiki_information.png +0 -0
  101. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft.png +0 -0
  102. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft_template.png +0 -0
  103. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/assets/wiki_result_of_craft.png +0 -0
  104. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/book_components.py +0 -0
  105. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/book_optimizer.py +0 -0
  106. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/craft_content.py +0 -0
  107. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/image_utils.py +0 -0
  108. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/iso_renders.py +0 -0
  109. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/main.py +0 -0
  110. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/other_utils.py +0 -0
  111. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/page_font.py +0 -0
  112. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/shared_import.py +0 -0
  113. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/.gitignore +0 -0
  114. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/_README.md +0 -0
  115. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/furnace.png +0 -0
  116. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png +0 -0
  117. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/invisible_item.png +0 -0
  118. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/invisible_item_release.png +0 -0
  119. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/minecraft_font.ttf +0 -0
  120. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/none.png +0 -0
  121. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/none_release.png +0 -0
  122. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/pulverizing.png +0 -0
  123. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/shaped_2x2.png +0 -0
  124. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/shaped_3x3.png +0 -0
  125. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/simple_case_no_border.png +0 -0
  126. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/wiki_information.png +0 -0
  127. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft.png +0 -0
  128. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft_template.png +0 -0
  129. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/templates/wiki_result_of_craft.png +0 -0
  130. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/ingame_manual/text_components.py +0 -0
  131. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/initialize/source_lore_font.py +0 -0
  132. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/merge_smithed_weld/__init__.py +0 -0
  133. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/merge_smithed_weld/weld.py +0 -0
  134. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/resource_pack/check_power_of_2/__init__.py +0 -0
  135. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/resource_pack/item_models/__init__.py +0 -0
  136. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/resource_pack/sounds/__init__.py +0 -0
  137. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/plugins/verify_definitions/__init__.py +0 -0
  138. {stewbeet-2.0.8 → stewbeet-2.0.10}/stewbeet/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stewbeet
3
- Version: 2.0.8
3
+ Version: 2.0.10
4
4
  Summary: Beet Framework made to help generating advanced Minecraft datapack contents
5
5
  Project-URL: Homepage, https://github.com/Stoupy51/stewbeet
6
6
  Project-URL: Issues, https://github.com/Stoupy51/stewbeet/issues
@@ -18,7 +18,7 @@ Requires-Dist: model-resolver>=1.8.0
18
18
  Requires-Dist: mutagen>=1.47.0
19
19
  Requires-Dist: pyperclip>=1.8.0
20
20
  Requires-Dist: smithed>=0.19.0
21
- Requires-Dist: stouputils>=1.3.16
21
+ Requires-Dist: stouputils>=1.3.19
22
22
  Description-Content-Type: text/markdown
23
23
 
24
24
 
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
5
5
 
6
6
  [project]
7
7
  name = "stewbeet"
8
- version = "2.0.8"
8
+ version = "2.0.10"
9
9
  description = "Beet Framework made to help generating advanced Minecraft datapack contents"
10
10
  readme = "README.md"
11
11
  license = "MIT"
@@ -16,7 +16,7 @@ classifiers = [
16
16
  "Operating System :: OS Independent",
17
17
  ]
18
18
  dependencies = [
19
- "stouputils>=1.3.16",
19
+ "stouputils>=1.3.19",
20
20
  "model_resolver>=1.8.0",
21
21
  "beet>=0.110.1",
22
22
  "bolt>=0.49.1",
@@ -34,7 +34,7 @@ Homepage = "https://github.com/Stoupy51/stewbeet"
34
34
  Issues = "https://github.com/Stoupy51/stewbeet/issues"
35
35
 
36
36
  [project.scripts]
37
- stewbeet = "stewbeet.cli:main"
37
+ stewbeet = "stewbeet:main"
38
38
 
39
39
  [tool.pyright]
40
40
  typeCheckingMode = "basic"
@@ -0,0 +1,11 @@
1
+
2
+ # ruff: noqa: F401
3
+ # Imports
4
+ from beet import *
5
+
6
+ from .__main__ import main
7
+ from .core import *
8
+ from .plugins.initialize.source_lore_font import find_pack_png
9
+ from .plugins.resource_pack.item_models.object import AutoModel
10
+ from .plugins.resource_pack.sounds import add_sound
11
+
@@ -69,3 +69,4 @@ def main():
69
69
 
70
70
  if __name__ == "__main__":
71
71
  main()
72
+
@@ -4,4 +4,6 @@ from .__memory__ import *
4
4
  from .constants import *
5
5
  from .definitions_helper import *
6
6
  from .ingredients import *
7
+ from .utils.io import *
8
+ from .utils.sounds import *
7
9
 
@@ -1,10 +1,11 @@
1
1
 
2
+ # ruff: noqa: E501, RUF012
2
3
  # Imports
3
4
  from ..dependencies.bookshelf import BOOKSHELF_MODULES
4
5
 
5
6
  # Minecraft version constants
6
- MINECRAFT_VERSION: str = "1.21.6 Pre-Release1" # Text used when loading the datapack to warn the user when the data version is not right
7
- DATA_VERSION: int = 4430 # Depending on MC version, given by /data get entity @p DataVersion to check if the datapack is not running in an older version of MC
7
+ MINECRAFT_VERSION: str = "1.21.6" # Text used when loading the datapack to warn the user when the data version is not right
8
+ DATA_VERSION: int = 4435 # Depending on MC version, given by /data get entity @p DataVersion to check if the datapack is not running in an older version of MC
8
9
 
9
10
 
10
11
  # Databases
@@ -37,8 +38,8 @@ NOT_COMPONENTS: list[str] = [ # Keys that should not be considered as comp
37
38
  # Technical constants
38
39
  FACES: tuple = ("down", "up", "north", "south", "west", "east") # Faces of a block, used for resource pack and blocks orientation
39
40
  SIDES: tuple = ("_bottom", "_top", "_front", "_back", "_left", "_right", "_side") # Sides of a block, used for resource pack
40
- DOWNLOAD_VANILLA_ASSETS_RAW = "https://raw.githubusercontent.com/edayot/renders/89324614d1be45957936f454b5290910635b0944/resourcepack/assets/minecraft/textures/render"
41
- DOWNLOAD_VANILLA_ASSETS_SOURCE = "https://github.com/edayot/renders/tree/89324614d1be45957936f454b5290910635b0944/resourcepack/assets/minecraft/textures/render"
41
+ DOWNLOAD_VANILLA_ASSETS_RAW = "https://raw.githubusercontent.com/edayot/renders/renders/resourcepack/assets/minecraft/textures/render"
42
+ DOWNLOAD_VANILLA_ASSETS_SOURCE = "https://github.com/edayot/renders/tree/renders/resourcepack/assets/minecraft/textures/render"
42
43
  CUSTOM_BLOCK_HEAD_CUBE_RADIUS: tuple[int, int, int] = (16, 16, 16) # Size of the region to check around the player when placing a CUSTOM_BLOCK_HEAD
43
44
  BLOCKS_WITH_INTERFACES: list[str] = [ # List of blocks that are containers and have an interface
44
45
  "minecraft:barrel",
@@ -62,7 +63,7 @@ class Conventions:
62
63
  """ List of tags that prevent entities from being killed. """
63
64
  ENTITY_TAGS: list[str] = ["smithed.entity", "global.ignore"]
64
65
  """ List of tags applicable to custom entities. """
65
- BLOCK_TAGS: list[str] = ["smithed.block"] + ENTITY_TAGS
66
+ BLOCK_TAGS: list[str] = ["smithed.block", *ENTITY_TAGS]
66
67
  """ List of tags applicable to custom blocks. """
67
68
  ENTITY_TAGS_NO_KILL: list[str] = ENTITY_TAGS + NO_KILL_TAGS
68
69
  """ Combined list of entity tags and no kill tags. """
@@ -32,6 +32,6 @@ def beet_default(ctx: Context):
32
32
 
33
33
  # Update the lang file
34
34
  lang.update(ctx.assets.languages.get("minecraft:en_us", Language()).data)
35
- ctx.assets.languages["minecraft:en_us"] = Language(super_json_dump(lang))
35
+ ctx.assets.languages["minecraft:en_us"] = Language(super_json_dump(dict(sorted(lang.items()))))
36
36
  pass
37
37
 
@@ -52,7 +52,9 @@ class VanillaRecipeHandler:
52
52
  "criteria": {"requirement": {"trigger": "minecraft:inventory_changed"}},
53
53
  "rewards": {"function": f"{Mem.ctx.project_id}:advancements/unlock_recipes"}
54
54
  }
55
- Mem.ctx.data[adv_path] = Advancement(super_json_dump(adv_json, max_level=-1))
55
+ adv = Advancement(adv_json)
56
+ adv.encoder = lambda x: super_json_dump(x, max_level=-1)
57
+ Mem.ctx.data[adv_path] = adv
56
58
 
57
59
  # Write the function that will unlock the recipes
58
60
  content = f"""
@@ -97,6 +97,16 @@ def beet_default(ctx: Context):
97
97
  if pack_icon:
98
98
  Mem.ctx.data.extra["pack.png"] = Mem.ctx.assets.extra["pack.png"] = PngFile(source_path=pack_icon)
99
99
 
100
+ # Add missing pack format registries if not present
101
+ ctx.data.pack_format_registry.update({
102
+ (1, 21, 5): 71,
103
+ (1, 21, 6): 80,
104
+ })
105
+ ctx.assets.pack_format_registry.update({
106
+ (1, 21, 5): 55,
107
+ (1, 21, 6): 63,
108
+ })
109
+
100
110
  # Yield message to indicate successful build
101
111
  yield
102
112
 
@@ -3,11 +3,12 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import os
6
+ from collections.abc import Iterable
6
7
 
7
8
  from beet import ItemModel, Model, Texture
8
9
  from beet.core.utils import JsonDict
10
+ from stouputils.decorators import LogLevels, handle_error, simple_cache
9
11
  from stouputils.io import super_json_dump, super_json_load
10
- from stouputils.print import error
11
12
 
12
13
  from ....core.__memory__ import Mem
13
14
  from ....core.constants import CUSTOM_BLOCK_VANILLA, CUSTOM_ITEM_VANILLA, OVERRIDE_MODEL
@@ -65,6 +66,7 @@ class AutoModel:
65
66
  """
66
67
  return cls(item_name, data, source_textures, ignore_textures)
67
68
 
69
+ @handle_error(exceptions=ValueError, error_log=LogLevels.ERROR_TRACEBACK)
68
70
  def get_powered_texture(self, variants: list[str], side: str, on_off: str) -> str:
69
71
  """ Get the powered texture for a given side.
70
72
 
@@ -84,7 +86,7 @@ class AutoModel:
84
86
  if texture.endswith(side):
85
87
  return texture
86
88
  if not self.ignore_textures:
87
- error(f"Couldn't find texture for side '{side}' in '{variants}', consider adding missing texture or override the model")
89
+ raise ValueError(f"Couldn't find texture for side '{side}' in '{variants}', consider adding missing texture or override the model")
88
90
  return ""
89
91
 
90
92
  def model_in_variants(self, models: list[str], variants: list[str]) -> bool:
@@ -99,12 +101,42 @@ class AutoModel:
99
101
  """
100
102
  return all(any(model in x for x in variants) for model in models)
101
103
 
104
+ @simple_cache
105
+ def get_same_folder_variants(self, variants: Iterable[str]) -> list[str]:
106
+ """ Get variants that are in the same folder as the item.
107
+
108
+ Args:
109
+ variants (Iterable[str]): Iterable of variant names.
110
+
111
+ Returns:
112
+ list[str]: List of variants in the same folder.
113
+ """
114
+ target_folder_depth: int = self.item_name.count('/')
115
+ same_folder_variants: list[str] = []
116
+ for variant in variants:
117
+ variant_folder_depth: int = variant.count('/')
118
+ if variant_folder_depth == target_folder_depth:
119
+ # Check if all folder parts before the filename are the same
120
+ if target_folder_depth == 0:
121
+ same_folder_variants.append(variant)
122
+ else:
123
+ target_folder: str = '/'.join(self.item_name.split('/')[:-1])
124
+ variant_folder: str = '/'.join(variant.split('/')[:-1])
125
+ if target_folder == variant_folder:
126
+ same_folder_variants.append(variant)
127
+ return same_folder_variants
128
+
129
+ @handle_error(exceptions=ValueError, error_log=LogLevels.ERROR_TRACEBACK)
102
130
  def process(self) -> None:
103
131
  """ Process the item model. """
104
132
  # If no item model, return
105
133
  if not self.data.get("item_model"):
106
134
  return
107
135
 
136
+ # If item_model is already processed, return
137
+ if self.data["item_model"] in Mem.ctx.meta["stewbeet"]["rendered_item_models"]:
138
+ return
139
+
108
140
  # Initialize variables
109
141
  if (self.data.get("id") == CUSTOM_BLOCK_VANILLA or
110
142
  any((isinstance(x, str) and "block" in x) for x in self.data.get(OVERRIDE_MODEL, {}).values())):
@@ -128,13 +160,13 @@ class AutoModel:
128
160
 
129
161
  # Generate its model file(s)
130
162
  for on_off in powered:
131
- content: dict = {}
132
-
133
- # Get all variants
134
- variants: list[str] = [
163
+ content: dict = {} # Get all variants
164
+ all_variants: list[str] = [
135
165
  x.replace(".png", "") for x in self.source_textures
136
- if "gui/" not in x and x.startswith(self.item_name)
166
+ if os.path.basename(x).startswith(self.item_name)
137
167
  ]
168
+ # Filter to only include variants in the same folder
169
+ variants: list[str] = self.get_same_folder_variants(all_variants)
138
170
 
139
171
  if self.data.get(OVERRIDE_MODEL, None) != {}:
140
172
  # If it's a block
@@ -188,7 +220,7 @@ class AutoModel:
188
220
  "orientable": orientable,
189
221
  "cube_column": cube_column
190
222
  }, max_level=1)
191
- error(
223
+ raise ValueError(
192
224
  f"Block '{self.item_name}' has invalid variants: {variants},\n"
193
225
  "consider overriding the model or adding missing textures to match up one of the following patterns:"
194
226
  f"\n{patterns}"
@@ -297,7 +329,7 @@ class AutoModel:
297
329
  Mem.ctx.assets[texture] = Texture(source_path=self.source_textures[texture_name], mcmeta=mcmeta)
298
330
  else:
299
331
  if not self.ignore_textures:
300
- error(f"Texture '{texture_name}' not found in source textures")
332
+ raise ValueError(f"Texture '{texture_name}' not found in source textures")
301
333
 
302
334
  # Add model to assets
303
335
  if self.data.get(OVERRIDE_MODEL, None) != {}:
@@ -1 +0,0 @@
1
-
@@ -1,4 +0,0 @@
1
-
2
- # Imports
3
- from .cli import main # noqa: F401
4
-
File without changes
File without changes
File without changes
File without changes