stewbeet 2.0.2__tar.gz → 2.0.4__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 (136) hide show
  1. {stewbeet-2.0.2 → stewbeet-2.0.4}/PKG-INFO +1 -1
  2. {stewbeet-2.0.2 → stewbeet-2.0.4}/pyproject.toml +1 -1
  3. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/continuous_delivery/cd_utils.py +1 -1
  4. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/auto/lang_file/__init__.py +4 -2
  5. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/auto/lang_file/utils.py +12 -9
  6. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/datapack/custom_blocks/__init__.py +11 -11
  7. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/iso_renders.py +1 -1
  8. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/resource_pack/item_models/object.py +5 -3
  9. {stewbeet-2.0.2 → stewbeet-2.0.4}/.gitignore +0 -0
  10. {stewbeet-2.0.2 → stewbeet-2.0.4}/LICENSE +0 -0
  11. {stewbeet-2.0.2 → stewbeet-2.0.4}/README.md +0 -0
  12. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/__init__.py +0 -0
  13. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/__main__.py +0 -0
  14. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/cli.py +0 -0
  15. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/continuous_delivery/__init__.py +0 -0
  16. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/continuous_delivery/github.py +0 -0
  17. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/continuous_delivery/modrinth.py +0 -0
  18. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/continuous_delivery/pmc.py +0 -0
  19. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/continuous_delivery/smithed.py +0 -0
  20. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/__init__.py +0 -0
  21. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/__memory__.py +0 -0
  22. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/constants.py +0 -0
  23. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/definitions_helper/__init__.py +0 -0
  24. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/definitions_helper/completion.py +0 -0
  25. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/definitions_helper/equipments.py +0 -0
  26. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/definitions_helper/materials.py +0 -0
  27. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/definitions_helper/records.py +0 -0
  28. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/definitions_helper/smart_ore_generation.py +0 -0
  29. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/definitions_helper/text.py +0 -0
  30. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/ingredients.py +0 -0
  31. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/utils/io.py +0 -0
  32. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/core/utils/sounds.py +0 -0
  33. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/__init__.py +0 -0
  34. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/bookshelf.py +0 -0
  35. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/bookshelf_config.json +0 -0
  36. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Bitwise.zip +0 -0
  37. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Block.zip +0 -0
  38. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Color.zip +0 -0
  39. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Dump.zip +0 -0
  40. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Environment.zip +0 -0
  41. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Generation.zip +0 -0
  42. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Health.zip +0 -0
  43. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Hitbox.zip +0 -0
  44. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Id.zip +0 -0
  45. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Interaction.zip +0 -0
  46. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Link.zip +0 -0
  47. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Log.zip +0 -0
  48. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Math.zip +0 -0
  49. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Move.zip +0 -0
  50. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Position.zip +0 -0
  51. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Random.zip +0 -0
  52. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Raycast.zip +0 -0
  53. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Schedule.zip +0 -0
  54. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Sidebar.zip +0 -0
  55. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Spline.zip +0 -0
  56. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf String.zip +0 -0
  57. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Time.zip +0 -0
  58. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Tree.zip +0 -0
  59. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Vector.zip +0 -0
  60. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf View.zip +0 -0
  61. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Bookshelf Xp.zip +0 -0
  62. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Common Signals.zip +0 -0
  63. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Furnace NBT Recipes.zip +0 -0
  64. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/ItemIO.zip +0 -0
  65. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/SmartOreGeneration.zip +0 -0
  66. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Smithed Crafter.zip +0 -0
  67. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/datapack/Smithed Custom Block.zip +0 -0
  68. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/dependencies/resource_pack/Smithed Crafter.zip +0 -0
  69. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/archive/__init__.py +0 -0
  70. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/auto/headers/__init__.py +0 -0
  71. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/auto/headers/object.py +0 -0
  72. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/compatibilities/neo_enchant/__init__.py +0 -0
  73. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/compatibilities/simpledrawer/__init__.py +0 -0
  74. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/compute_sha1/__init__.py +0 -0
  75. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/copy_to_destination/__init__.py +0 -0
  76. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/custom_recipes/__init__.py +0 -0
  77. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/custom_recipes/furnace.py +0 -0
  78. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/custom_recipes/pulverizer.py +0 -0
  79. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/custom_recipes/smithed.py +0 -0
  80. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/custom_recipes/vanilla.py +0 -0
  81. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/datapack/loading/__init__.py +0 -0
  82. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/datapack/loot_tables/__init__.py +0 -0
  83. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py +0 -0
  84. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py +0 -0
  85. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/finalyze/custom_blocks_ticking/__init__.py +0 -0
  86. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/finalyze/dependencies/__init__.py +0 -0
  87. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/__init__.py +0 -0
  88. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/furnace.png +0 -0
  89. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/heavy_workbench.png +0 -0
  90. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/invisible_item.png +0 -0
  91. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/invisible_item_release.png +0 -0
  92. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/minecraft_font.ttf +0 -0
  93. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/none.png +0 -0
  94. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/none_release.png +0 -0
  95. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/pulverizing.png +0 -0
  96. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/shaped_2x2.png +0 -0
  97. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/shaped_3x3.png +0 -0
  98. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png +0 -0
  99. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/wiki_information.png +0 -0
  100. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft.png +0 -0
  101. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft_template.png +0 -0
  102. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/assets/wiki_result_of_craft.png +0 -0
  103. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/book_components.py +0 -0
  104. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/book_optimizer.py +0 -0
  105. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/craft_content.py +0 -0
  106. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/image_utils.py +0 -0
  107. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/main.py +0 -0
  108. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/other_utils.py +0 -0
  109. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/page_font.py +0 -0
  110. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/shared_import.py +0 -0
  111. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/.gitignore +0 -0
  112. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/_README.md +0 -0
  113. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/furnace.png +0 -0
  114. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png +0 -0
  115. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/invisible_item.png +0 -0
  116. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/invisible_item_release.png +0 -0
  117. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/minecraft_font.ttf +0 -0
  118. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/none.png +0 -0
  119. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/none_release.png +0 -0
  120. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/pulverizing.png +0 -0
  121. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/shaped_2x2.png +0 -0
  122. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/shaped_3x3.png +0 -0
  123. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/simple_case_no_border.png +0 -0
  124. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/wiki_information.png +0 -0
  125. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft.png +0 -0
  126. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft_template.png +0 -0
  127. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/templates/wiki_result_of_craft.png +0 -0
  128. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/ingame_manual/text_components.py +0 -0
  129. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/initialize/__init__.py +0 -0
  130. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/initialize/source_lore_font.py +0 -0
  131. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/merge_smithed_weld/__init__.py +0 -0
  132. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/merge_smithed_weld/weld.py +0 -0
  133. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/resource_pack/check_power_of_2/__init__.py +0 -0
  134. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/resource_pack/item_models/__init__.py +0 -0
  135. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/resource_pack/sounds/__init__.py +0 -0
  136. {stewbeet-2.0.2 → stewbeet-2.0.4}/stewbeet/plugins/verify_definitions/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stewbeet
3
- Version: 2.0.2
3
+ Version: 2.0.4
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
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
5
5
 
6
6
  [project]
7
7
  name = "stewbeet"
8
- version = "2.0.2"
8
+ version = "2.0.4"
9
9
  description = "Beet Framework made to help generating advanced Minecraft datapack contents"
10
10
  readme = "README.md"
11
11
  license = "MIT"
@@ -4,7 +4,7 @@ import os
4
4
 
5
5
  from stouputils.continuous_delivery.cd_utils import handle_response, load_credentials # noqa: F401
6
6
 
7
- from ...stewbeet.core.constants import MINECRAFT_VERSION
7
+ from ..core.constants import MINECRAFT_VERSION
8
8
 
9
9
 
10
10
  # Function that replace the "~" by the user's home directory
@@ -1,6 +1,6 @@
1
1
 
2
2
  # Imports
3
- from beet import Context, Function, Language, LootTable
3
+ from beet import Advancement, Context, Function, ItemModifier, Language, LootTable
4
4
  from stouputils.decorators import measure_time
5
5
  from stouputils.io import super_json_dump
6
6
  from stouputils.parallel import multithreading
@@ -22,9 +22,11 @@ def beet_default(ctx: Context):
22
22
  files_to_process: dict[str, Function | LootTable] = {}
23
23
  files_to_process.update(ctx.data.functions)
24
24
  files_to_process.update(ctx.data.loot_tables)
25
+ files_to_process.update(ctx.data.item_modifiers)
26
+ files_to_process.update(ctx.data.advancements)
25
27
 
26
28
  # Process all files
27
- args: list[tuple[Context, str, Function | LootTable]] = [
29
+ args: list[tuple[Context, str, Function | LootTable | ItemModifier, Advancement]] = [
28
30
  (ctx, file, content) for (file, content) in files_to_process.items()
29
31
  if True
30
32
  ]
@@ -2,9 +2,8 @@
2
2
  # Imports
3
3
  import re
4
4
 
5
- from beet import Context, Function, LootTable
5
+ from beet import Advancement, Context, Function, ItemModifier, LootTable
6
6
  from stouputils.decorators import simple_cache
7
- from stouputils.print import breakpoint
8
7
 
9
8
  # Prepare lang dictionary and lang_format function
10
9
  lang: dict[str, str] = {}
@@ -56,7 +55,7 @@ def lang_format(ctx: Context, text: str) -> tuple[str, str]:
56
55
  return key, re.sub(r"[._]", "", alpha_num)
57
56
 
58
57
 
59
- def handle_file(ctx: Context, file: str, content: Function | LootTable) -> None:
58
+ def handle_file(ctx: Context, file: str, content: Function | LootTable | ItemModifier | Advancement) -> None:
60
59
  """ Process a file to extract and replace text with lang keys.
61
60
 
62
61
  Args:
@@ -67,10 +66,10 @@ def handle_file(ctx: Context, file: str, content: Function | LootTable) -> None:
67
66
  Returns:
68
67
  None: The function modifies the content in place.
69
68
  """
70
- # Read content
71
- if isinstance(content, Function):
72
- string: str = content.text
73
- elif isinstance(content, LootTable):
69
+ # Read content from supported beet types
70
+ # Function, LootTable, ItemModifier or Advancement
71
+ if isinstance(content, Function) or isinstance(content, LootTable) \
72
+ or isinstance(content, ItemModifier) or isinstance(content, Advancement):
74
73
  string: str = content.text
75
74
  else:
76
75
  raise ValueError(f"Unsupported content type: {type(content)}")
@@ -98,9 +97,13 @@ def handle_file(ctx: Context, file: str, content: Function | LootTable) -> None:
98
97
  new_fragment: str = f'{quote}translate{quote}: {quote}{key_for_lang}{quote}'
99
98
  string = string[:start] + new_fragment + string[end:]
100
99
 
101
- # Write the new content to the file
100
+ # Write the new content back to the appropriate context data
102
101
  if isinstance(content, Function):
103
102
  ctx.data.functions[file] = Function(string)
104
- else:
103
+ elif isinstance(content, LootTable):
105
104
  ctx.data.loot_tables[file] = LootTable(string)
105
+ elif isinstance(content, ItemModifier):
106
+ ctx.data.item_modifiers[file] = ItemModifier(string)
107
+ elif isinstance(content, Advancement):
108
+ ctx.data.advancements[file] = Advancement(string)
106
109
 
@@ -2,7 +2,7 @@
2
2
  # Imports
3
3
  from typing import Any
4
4
 
5
- from beet import BlockTag, Context, Predicate
5
+ from beet import Advancement, BlockTag, Context, Predicate
6
6
  from stouputils.decorators import measure_time
7
7
  from stouputils.io import super_json_dump
8
8
  from stouputils.print import debug, progress
@@ -46,8 +46,8 @@ def beet_default(ctx: Context):
46
46
  # Predicates
47
47
  FACING = ["north", "east", "south", "west"]
48
48
  for face in FACING:
49
- predicate = {"condition":"minecraft:location_check","predicate":{"block":{"state":{"facing":face}}}}
50
- ctx.data[ns].predicates[f"facing/{face}"] = Predicate(super_json_dump(predicate))
49
+ adv = {"condition":"minecraft:location_check","predicate":{"block":{"state":{"facing":face}}}}
50
+ ctx.data[ns].predicates[f"facing/{face}"] = Predicate(super_json_dump(adv))
51
51
 
52
52
  # Get rotation function
53
53
  write_function(f"{ns}:custom_blocks/get_rotation",
@@ -328,8 +328,8 @@ execute store result entity @s Item.count byte 1 run scoreboard players get #ite
328
328
  ctx.data[ns].block_tags[VANILLA_BLOCKS_TAG] = BlockTag(super_json_dump({"values": listed_blocks}))
329
329
 
330
330
  # Create predicate
331
- predicate = {"condition": "minecraft:location_check", "predicate": {"block": {"blocks": f"#{ns}:{VANILLA_BLOCKS_TAG}"}}}
332
- ctx.data[ns].predicates["check_vanilla_blocks"] = Predicate(super_json_dump(predicate))
331
+ pred = {"condition": "minecraft:location_check", "predicate": {"block": {"blocks": f"#{ns}:{VANILLA_BLOCKS_TAG}"}}}
332
+ ctx.data[ns].predicates["check_vanilla_blocks"] = Predicate(super_json_dump(pred))
333
333
 
334
334
  # Create advanced predicate
335
335
  advanced_predicate = {"condition": "minecraft:any_of", "terms": []}
@@ -337,11 +337,11 @@ execute store result entity @s Item.count byte 1 run scoreboard players get #ite
337
337
  block_underscore = block.replace(":","_")
338
338
  if block == "minecraft:cauldron":
339
339
  block = "#minecraft:cauldrons"
340
- predicate = {
340
+ pred = {
341
341
  "condition": "minecraft:entity_properties", "entity": "this",
342
342
  "predicate": { "nbt": f"{{Tags:[\"{ns}.vanilla.{block_underscore}\"]}}", "location": { "block": { "blocks": block }}}
343
343
  }
344
- advanced_predicate["terms"].append(predicate)
344
+ advanced_predicate["terms"].append(pred)
345
345
  ctx.data[ns].predicates["advanced_check_vanilla_blocks"] = Predicate(super_json_dump(advanced_predicate))
346
346
 
347
347
  # Write a destroy check every 2 ticks, every second, and every 5 seconds
@@ -397,17 +397,17 @@ execute as @e[tag={ns}.custom_block,dx=0,dy=0,dz=0] at @s run function {ns}:cust
397
397
  if data["id"] == CUSTOM_BLOCK_HEAD and data.get(VANILLA_BLOCK):
398
398
 
399
399
  # Make advancement
400
- predicate = {
400
+ adv = {
401
401
  "criteria":{"requirement":{"trigger":"minecraft:placed_block","conditions":{"location": [{"condition": "minecraft:location_check","predicate": {"block": {}}}]}}},
402
402
  "requirements":[["requirement"]],
403
403
  "rewards":{}
404
404
  }
405
- predicate["criteria"]["requirement"]["conditions"]["location"][0]["predicate"]["block"]["nbt"] = super_json_dump(
405
+ adv["criteria"]["requirement"]["conditions"]["location"][0]["predicate"]["block"]["nbt"] = super_json_dump(
406
406
  {"components":{"minecraft:custom_data":data.get("custom_data", {})}},
407
407
  max_level = 0
408
408
  )
409
- predicate["rewards"]["function"] = f"{ns}:custom_blocks/_player_head/search_{item}"
410
- ctx.data.advancements[f"{ns}:custom_block_head/{item}"].data = predicate
409
+ adv["rewards"]["function"] = f"{ns}:custom_blocks/_player_head/search_{item}"
410
+ ctx.data[ns].advancements[f"custom_block_head/{item}"] = Advancement(super_json_dump(adv))
411
411
 
412
412
  # Make search function
413
413
  content = "# Search where the head has been placed\n"
@@ -78,7 +78,7 @@ def generate_all_iso_renders():
78
78
  debug(f"Generating iso renders for {len(for_model_resolver)} items, this may take a while...")
79
79
  render = Render(Mem.ctx)
80
80
  for rp_path, dst_path in for_model_resolver.items():
81
- render.add_model_task(rp_path, path_save=dst_path)
81
+ render.add_model_task(rp_path, path_save=dst_path, animation_mode="one_file")
82
82
  render.run()
83
83
  debug("Generated iso renders for all items")
84
84
 
@@ -5,7 +5,8 @@ from __future__ import annotations
5
5
  import os
6
6
 
7
7
  from beet import ItemModel, Model, Texture
8
- from stouputils.io import super_json_dump
8
+ from beet.core.utils import JsonDict
9
+ from stouputils.io import super_json_dump, super_json_load
9
10
  from stouputils.print import error
10
11
 
11
12
  from ....core.__memory__ import Mem
@@ -292,9 +293,10 @@ class AutoModel:
292
293
  texture_name = texture.split(":")[-1].split("/")[-1] # Get just the filename
293
294
  texture_name += ".png"
294
295
  if texture_name in self.source_textures:
295
- Mem.ctx.assets[texture] = Texture(source_path=self.source_textures[texture_name])
296
+ mcmeta: JsonDict | None = None
296
297
  if os.path.exists(self.source_textures[texture_name] + ".mcmeta"):
297
- Mem.ctx.assets[f"{texture}.mcmeta"] = Texture(source_path=self.source_textures[texture_name] + ".mcmeta")
298
+ mcmeta = super_json_load(self.source_textures[texture_name] + ".mcmeta")
299
+ Mem.ctx.assets[texture] = Texture(source_path=self.source_textures[texture_name], mcmeta=mcmeta)
298
300
  else:
299
301
  if not self.ignore_textures:
300
302
  error(f"Texture '{texture_name}' not found in source textures")
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes