stewbeet 3.3.0__tar.gz → 3.3.2__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.
Files changed (300) hide show
  1. {stewbeet-3.3.0 → stewbeet-3.3.2}/LICENSE +21 -21
  2. {stewbeet-3.3.0 → stewbeet-3.3.2}/PKG-INFO +3 -3
  3. {stewbeet-3.3.0 → stewbeet-3.3.2}/pyproject.toml +3 -3
  4. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/__init__.py +8 -8
  5. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/balancing.py +94 -94
  6. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/batteries.py +101 -101
  7. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant.json +15 -15
  8. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_d.json +28 -28
  9. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_de.json +36 -36
  10. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dew.json +47 -47
  11. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dn.json +36 -36
  12. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dne.json +47 -47
  13. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dnew.json +57 -57
  14. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dns.json +47 -47
  15. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dnse.json +57 -57
  16. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dnsew.json +67 -67
  17. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dnsw.json +70 -70
  18. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dnw.json +47 -47
  19. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ds.json +36 -36
  20. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dse.json +47 -47
  21. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dsew.json +57 -57
  22. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dsw.json +47 -47
  23. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dw.json +36 -36
  24. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_e.json +15 -15
  25. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ew.json +16 -16
  26. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_n.json +28 -28
  27. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ne.json +36 -36
  28. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_new.json +47 -47
  29. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ns.json +16 -16
  30. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_nse.json +60 -60
  31. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_nsew.json +109 -109
  32. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_nsw.json +47 -47
  33. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_nw.json +49 -49
  34. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_s.json +26 -26
  35. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_se.json +36 -36
  36. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_sew.json +47 -47
  37. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_sw.json +36 -36
  38. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_u.json +28 -28
  39. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ud.json +16 -16
  40. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ude.json +47 -47
  41. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udew.json +57 -57
  42. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udn.json +47 -47
  43. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udne.json +57 -57
  44. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udnew.json +67 -67
  45. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udns.json +57 -57
  46. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udnse.json +67 -67
  47. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udnsew.json +49 -49
  48. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udnsw.json +67 -67
  49. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udnw.json +56 -56
  50. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_uds.json +47 -47
  51. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udse.json +57 -57
  52. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udsew.json +67 -67
  53. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udsw.json +57 -57
  54. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udw.json +47 -47
  55. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ue.json +36 -36
  56. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_uew.json +47 -47
  57. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_un.json +36 -36
  58. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_une.json +47 -47
  59. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_unew.json +57 -57
  60. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_uns.json +47 -47
  61. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_unse.json +57 -57
  62. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_unsew.json +67 -67
  63. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_unsw.json +57 -57
  64. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_unw.json +47 -47
  65. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_us.json +36 -36
  66. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_use.json +47 -47
  67. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_usew.json +57 -57
  68. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_usw.json +47 -47
  69. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_uw.json +36 -36
  70. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_w.json +28 -28
  71. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/cls/_recipe_list.py +17 -3
  72. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/cls/block.py +3 -3
  73. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/constants.py +3 -0
  74. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/__init__.py +12 -12
  75. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/equipments.py +1 -0
  76. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/equipments.pyi +1 -0
  77. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/utils/io.py +2 -1
  78. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/dependencies/__init__.py +5 -5
  79. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/dependencies/download_manager.py +1 -1
  80. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/dependencies/official_libs.py +1 -1
  81. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/lang_file/__init__.py +2 -2
  82. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/lang_file/utils.py +2 -2
  83. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/unload/__init__.py +5 -5
  84. stewbeet-3.3.2/stewbeet/plugins/ingame_manual/templates/1book.png +0 -0
  85. stewbeet-3.3.2/stewbeet/plugins/ingame_manual/templates/donut_holer.png +0 -0
  86. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/merge_smithed_weld/weld.py +5 -0
  87. stewbeet-3.3.2/stewbeet/plugins/resource_pack/sounds/silent.py +11 -0
  88. stewbeet-3.3.0/stewbeet/plugins/verify_definitions/silent.py +0 -11
  89. {stewbeet-3.3.0 → stewbeet-3.3.2}/README.md +0 -0
  90. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/__init__.py +0 -0
  91. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/__init__.pyi +0 -0
  92. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/__main__.py +0 -0
  93. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/all/__init__.py +0 -0
  94. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/all/__init__.pyi +0 -0
  95. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/all/silent.py +0 -0
  96. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/all/silent.pyi +0 -0
  97. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/cli.py +0 -0
  98. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/cli.pyi +0 -0
  99. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/__init__.pyi +0 -0
  100. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/cd_utils.py +0 -0
  101. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/cd_utils.pyi +0 -0
  102. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/github.py +0 -0
  103. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/github.pyi +0 -0
  104. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/modrinth.py +0 -0
  105. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/modrinth.pyi +0 -0
  106. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/pmc.py +0 -0
  107. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/pmc.pyi +0 -0
  108. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/smithed.py +0 -0
  109. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/continuous_delivery/smithed.pyi +0 -0
  110. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/__init__.py +0 -0
  111. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/cables.py +0 -0
  112. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/energy_lib_calls.py +0 -0
  113. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/gui.py +0 -0
  114. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/item_cable_models/cable.bbmodel +0 -0
  115. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/item_cable_models/cable_base.json +0 -0
  116. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/py.typed +0 -0
  117. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/servo_mechanism_models/base_block.json +0 -0
  118. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/servo_mechanism_models/base_item.json +0 -0
  119. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/servo_mechanism_models/extract_block.json +0 -0
  120. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/servo_mechanism_models/extract_connected.json +0 -0
  121. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/servo_mechanism_models/extract_item.json +0 -0
  122. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/servo_mechanism_models/insert_block.json +0 -0
  123. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/servo_mechanism_models/insert_connected.json +0 -0
  124. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/servo_mechanism_models/insert_item.json +0 -0
  125. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/contrib/simplenergy/wrench.py +0 -0
  126. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/__init__.py +0 -0
  127. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/__init__.pyi +0 -0
  128. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/__memory__.py +0 -0
  129. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/__memory__.pyi +0 -0
  130. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/cls/_utils.py +0 -0
  131. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/cls/external_item.py +0 -0
  132. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/cls/ingredients.py +0 -0
  133. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/cls/item.py +0 -0
  134. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/cls/painting.py +0 -0
  135. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/cls/recipe.py +0 -0
  136. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/cls/wiki_button.py +0 -0
  137. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/constants.pyi +0 -0
  138. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/__init__.pyi +0 -0
  139. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/completion.py +0 -0
  140. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/completion.pyi +0 -0
  141. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/materials.py +0 -0
  142. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/materials.pyi +0 -0
  143. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/records.py +0 -0
  144. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/records.pyi +0 -0
  145. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/simplenergy.py +0 -0
  146. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/simplenergy.pyi +0 -0
  147. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/smart_ore_generation.py +0 -0
  148. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/smart_ore_generation.pyi +0 -0
  149. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/text.py +0 -0
  150. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/definitions_helper/text.pyi +0 -0
  151. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/dump.py +0 -0
  152. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/dump.pyi +0 -0
  153. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/migrate.py +0 -0
  154. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/migrate.pyi +0 -0
  155. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/template.py +0 -0
  156. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/template.pyi +0 -0
  157. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/utils/equation.py +0 -0
  158. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/utils/loot_table.py +0 -0
  159. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/utils/sounds.py +0 -0
  160. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/core/utils/text_component.py +0 -0
  161. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/dependencies/__init__.pyi +0 -0
  162. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/dependencies/download_manager.pyi +0 -0
  163. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/dependencies/official_libs.pyi +0 -0
  164. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/archive/__init__.py +0 -0
  165. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/archive/silent.py +0 -0
  166. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/headers/__init__.py +0 -0
  167. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/headers/context_analyzer.py +0 -0
  168. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/headers/execution_parser.py +0 -0
  169. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/headers/function_analyzer.py +0 -0
  170. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/headers/macro_analyzer.py +0 -0
  171. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/headers/macro_parser.py +0 -0
  172. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/headers/object.py +0 -0
  173. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/headers/silent.py +0 -0
  174. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/headers/type_inference.py +0 -0
  175. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/lang_file/silent.py +0 -0
  176. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/scoreboard_constants/__init__.py +0 -0
  177. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/auto/scoreboard_constants/silent.py +0 -0
  178. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/compatibilities/neo_enchant/__init__.py +0 -0
  179. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/compatibilities/neo_enchant/silent.py +0 -0
  180. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/compatibilities/simpledrawer/__init__.py +0 -0
  181. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/compatibilities/simpledrawer/silent.py +0 -0
  182. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/compute_sha1/__init__.py +0 -0
  183. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/compute_sha1/silent.py +0 -0
  184. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/copy_to_destination/__init__.py +0 -0
  185. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/copy_to_destination/silent.py +0 -0
  186. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/custom_paintings/__init__.py +0 -0
  187. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/custom_paintings/silent.py +0 -0
  188. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/custom_recipes/__init__.py +0 -0
  189. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/custom_recipes/awakened_forge.py +0 -0
  190. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/custom_recipes/furnace.py +0 -0
  191. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/custom_recipes/pulverizer.py +0 -0
  192. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/custom_recipes/silent.py +0 -0
  193. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/custom_recipes/smithed.py +0 -0
  194. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/custom_recipes/vanilla.py +0 -0
  195. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/custom_blocks/__init__.py +0 -0
  196. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/custom_blocks/silent.py +0 -0
  197. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/loading/__init__.py +0 -0
  198. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/loading/silent.py +0 -0
  199. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/loot_tables/__init__.py +0 -0
  200. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/loot_tables/silent.py +0 -0
  201. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/sorters/__init__.py +0 -0
  202. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/sorters/constants.py +0 -0
  203. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/sorters/extend_datapack.py +0 -0
  204. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/sorters/match.py +0 -0
  205. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/sorters/mod.mcdoc +0 -0
  206. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/sorters/quick_sort.py +0 -0
  207. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/sorters/selection_sort.py +0 -0
  208. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/datapack/sorters/silent.py +0 -0
  209. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py +0 -0
  210. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/basic_datapack_structure/silent.py +0 -0
  211. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py +0 -0
  212. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/check_unused_textures/silent.py +0 -0
  213. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/custom_blocks_ticking/__init__.py +0 -0
  214. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/custom_blocks_ticking/silent.py +0 -0
  215. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/dependencies/__init__.py +0 -0
  216. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/dependencies/silent.py +0 -0
  217. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/last_final/__init__.py +0 -0
  218. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/last_final/silent.py +0 -0
  219. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/finalyze/unload/silent.py +0 -0
  220. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/__init__.py +0 -0
  221. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/awakened_forge_1.png +0 -0
  222. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/awakened_forge_2.png +0 -0
  223. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/awakened_forge_3x3.png +0 -0
  224. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/awakened_forge_3x4.png +0 -0
  225. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/book.png +0 -0
  226. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/furnace.png +0 -0
  227. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/heavy_workbench.png +0 -0
  228. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/invisible_item.png +0 -0
  229. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/invisible_item_release.png +0 -0
  230. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/minecraft_font.ttf +0 -0
  231. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/mining.png +0 -0
  232. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/none.png +0 -0
  233. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/none_release.png +0 -0
  234. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/pulverizing.png +0 -0
  235. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/shaped_2x2.png +0 -0
  236. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/shaped_3x3.png +0 -0
  237. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png +0 -0
  238. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/stonecutting.png +0 -0
  239. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/wiki_information.png +0 -0
  240. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft.png +0 -0
  241. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft_template.png +0 -0
  242. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/wiki_mining_template.png +0 -0
  243. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/assets/wiki_result_of_craft.png +0 -0
  244. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/book_components.py +0 -0
  245. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/book_optimizer.py +0 -0
  246. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/craft_content.py +0 -0
  247. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/dialog.py +0 -0
  248. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/image_utils.py +0 -0
  249. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/iso_renders.py +0 -0
  250. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/main.py +0 -0
  251. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/other_utils.py +0 -0
  252. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/page_font.py +0 -0
  253. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/shared_import.py +0 -0
  254. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/showcase_image.py +0 -0
  255. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/silent.py +0 -0
  256. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/stardust_forge.py +0 -0
  257. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/.gitignore +0 -0
  258. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/_README.md +0 -0
  259. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/awakened_forge_1.png +0 -0
  260. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/awakened_forge_2.png +0 -0
  261. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/awakened_forge_3x3.png +0 -0
  262. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/awakened_forge_3x4.png +0 -0
  263. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/book.png +0 -0
  264. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/furnace.png +0 -0
  265. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png +0 -0
  266. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/invisible_item.png +0 -0
  267. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/invisible_item_release.png +0 -0
  268. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/minecraft_font.ttf +0 -0
  269. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/mining.png +0 -0
  270. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/none.png +0 -0
  271. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/none_release.png +0 -0
  272. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/pulverizing.png +0 -0
  273. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/shaped_2x2.png +0 -0
  274. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/shaped_3x3.png +0 -0
  275. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/simple_case_no_border.png +0 -0
  276. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/stonecutting.png +0 -0
  277. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/wiki_information.png +0 -0
  278. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft.png +0 -0
  279. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft_template.png +0 -0
  280. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/wiki_mining_template.png +0 -0
  281. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/templates/wiki_result_of_craft.png +0 -0
  282. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/ingame_manual/text_components.py +0 -0
  283. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/initialize/__init__.py +0 -0
  284. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/initialize/silent.py +0 -0
  285. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/initialize/source_lore_font.py +0 -0
  286. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/merge_smithed_weld/__init__.py +0 -0
  287. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/merge_smithed_weld/silent.py +0 -0
  288. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/resource_pack/check_power_of_2/__init__.py +0 -0
  289. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/resource_pack/check_power_of_2/silent.py +0 -0
  290. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/resource_pack/item_models/__init__.py +0 -0
  291. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/resource_pack/item_models/object.py +0 -0
  292. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/resource_pack/item_models/silent.py +0 -0
  293. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/resource_pack/sounds/__init__.py +0 -0
  294. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/plugins/verify_definitions/__init__.py +0 -0
  295. {stewbeet-3.3.0/stewbeet/plugins/resource_pack/sounds → stewbeet-3.3.2/stewbeet/plugins/verify_definitions}/silent.py +0 -0
  296. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/py.typed +0 -0
  297. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/silent.py +0 -0
  298. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/silent.pyi +0 -0
  299. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/utils.py +0 -0
  300. {stewbeet-3.3.0 → stewbeet-3.3.2}/stewbeet/utils.pyi +0 -0
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 Alexandre Collignon
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Alexandre Collignon
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stewbeet
3
- Version: 3.3.0
3
+ Version: 3.3.2
4
4
  Summary: Beet Framework made to help generating advanced Minecraft datapack contents
5
5
  Author: Stoupy51
6
6
  Author-email: Stoupy51 <stoupy51@gmail.com>
@@ -10,14 +10,14 @@ Classifier: Programming Language :: Python :: 3
10
10
  Classifier: Programming Language :: Python :: 3.14
11
11
  Classifier: License :: OSI Approved :: MIT License
12
12
  Classifier: Operating System :: OS Independent
13
- Requires-Dist: stouputils>=1.28.0
13
+ Requires-Dist: stouputils>=1.29.0
14
14
  Requires-Dist: model-resolver>=1.15.2
15
15
  Requires-Dist: beet>=0.115.0
16
16
  Requires-Dist: bolt>=0.50.1
17
17
  Requires-Dist: mecha>=0.103.0
18
18
  Requires-Dist: mutagen>=1.47.0
19
19
  Requires-Dist: pyperclip>=1.11.0
20
- Requires-Dist: fsspec>=2026.4.0
20
+ Requires-Dist: fsspec>=2026.6.0
21
21
  Requires-Dist: paramiko>=5.0.0
22
22
  Requires-Dist: smithed
23
23
  Requires-Python: >=3.14
@@ -8,7 +8,7 @@ module-root = ""
8
8
 
9
9
  [project]
10
10
  name = "stewbeet"
11
- version = "3.3.0"
11
+ version = "3.3.2"
12
12
  description = "Beet Framework made to help generating advanced Minecraft datapack contents"
13
13
  readme = "README.md"
14
14
  license = "MIT"
@@ -24,14 +24,14 @@ authors = [
24
24
  { name = "Stoupy51", email = "stoupy51@gmail.com" },
25
25
  ]
26
26
  dependencies = [
27
- "stouputils>=1.28.0",
27
+ "stouputils>=1.29.0",
28
28
  "model_resolver>=1.15.2",
29
29
  "beet>=0.115.0",
30
30
  "bolt>=0.50.1",
31
31
  "mecha>=0.103.0",
32
32
  "mutagen>=1.47.0",
33
33
  "pyperclip>=1.11.0",
34
- "fsspec>=2026.4.0",
34
+ "fsspec>=2026.6.0",
35
35
  "paramiko>=5.0.0",
36
36
  "smithed",
37
37
  ]
@@ -1,8 +1,8 @@
1
-
2
- # Imports
3
- from .cd_utils import *
4
- from .github import *
5
- from .modrinth import *
6
- from .pmc import *
7
- from .smithed import *
8
-
1
+
2
+ # Imports
3
+ from .cd_utils import *
4
+ from .github import *
5
+ from .modrinth import *
6
+ from .pmc import *
7
+ from .smithed import *
8
+
@@ -1,94 +1,94 @@
1
-
2
- # Imports
3
- from ...core import Mem, write_function, write_versioned_function
4
-
5
-
6
- # Setup energy balancing
7
- def setup_energy_balancing(can_balance: list[str]) -> None:
8
- """ Setup energy balancing for devices.
9
-
10
- Args:
11
- can_balance (list[str]): List of devices that can balance energy between them.
12
- (e.g. ["solar_panel", "cauldron_generator", "simple_battery", "advanced_battery", "elite_battery"]).
13
- """
14
- ns: str = Mem.ctx.project_id
15
- can_balance_tag: str = f"{ns}.can_balance"
16
- balanced_tag: str = f"{ns}.balanced"
17
- adjacent_tag: str = f"{ns}.adjacent"
18
-
19
- # Write in second_5.mcfunction a call to balancing function
20
- write_versioned_function("second_5", f"""
21
- # Energy Balancing system (balance every device having at least 20 kJ)
22
- execute as @e[tag={can_balance_tag},scores={{energy.storage=20..}}] at @s[tag=!{balanced_tag}] run function {ns}:balancing/main
23
- tag @e[tag={balanced_tag}] remove {balanced_tag}
24
- """)
25
-
26
- # Write balancing/main.mcfunction
27
- device_main_calls: str = ""
28
- for device in can_balance:
29
- device_main_calls += f"\nexecute if entity @s[tag={ns}.{device}] run function {ns}:balancing/{device}/main"
30
- balancing_content: str = f"""
31
- # Stop if already balanced
32
- execute if entity @s[tag={balanced_tag}] run return 0
33
-
34
- # Copy max storage from device to scoreboard & add balance tags
35
- scoreboard players operation #max_storage {ns}.data = @s energy.max_storage
36
-
37
- # For each balancing device, run the main function{device_main_calls}
38
-
39
- # Remove adjacent tags
40
- tag @e[tag={adjacent_tag}] remove {adjacent_tag}
41
- """
42
- write_function(f"{ns}:balancing/main", balancing_content)
43
-
44
- # For each balancing device, write the balancing functions
45
- for device in can_balance:
46
-
47
- # Write balancing/device/found.mcfunction
48
- selector: str = f"@e[tag={ns}.{device},tag={can_balance_tag},tag=!{adjacent_tag},dx=0,dy=0,dz=0]"
49
- condition_run: str = f"if score @s energy.max_storage = #max_storage {ns}.data at @s run function {ns}:balancing/{device}/found"
50
- write_function(f"{ns}:balancing/{device}/found", f"""
51
- # Add tags and scores
52
- tag @s add {adjacent_tag}
53
- tag @s add {balanced_tag}
54
- scoreboard players add #count {ns}.data 1
55
- scoreboard players operation #total_energy {ns}.data += @s energy.storage
56
-
57
- # Check nearby {device} recursively
58
- execute align xyz positioned ~ ~1 ~ as {selector} {condition_run}
59
- execute align xyz positioned ~ ~-1 ~ as {selector} {condition_run}
60
- execute align xyz positioned ~ ~ ~1 as {selector} {condition_run}
61
- execute align xyz positioned ~ ~ ~-1 as {selector} {condition_run}
62
- execute align xyz positioned ~1 ~ ~ as {selector} {condition_run}
63
- execute align xyz positioned ~-1 ~ ~ as {selector} {condition_run}
64
- """)
65
- # Write balancing/device/main.mcfunction
66
- write_function(f"{ns}:balancing/{device}/main", f"""
67
- # Collect energy from nearby blocks recursively
68
- scoreboard players set #count {ns}.data 0
69
- scoreboard players set #total_energy {ns}.data 0
70
- function {ns}:balancing/{device}/found
71
-
72
- # If there are no adjacent device or the sum is higher than integer limit, stop here
73
- execute if score #count {ns}.data matches 1 run return 0
74
- execute if score #total_energy {ns}.data matches ..0 run return 0
75
-
76
- # Redistributes energy to all adjacent devices
77
- scoreboard players operation #per_device {ns}.data = #total_energy {ns}.data
78
- scoreboard players operation #per_device {ns}.data /= #count {ns}.data
79
- scoreboard players operation @e[tag={adjacent_tag}] energy.storage = #per_device {ns}.data
80
-
81
- # Add the remaining energy to the current device
82
- scoreboard players operation #remaining {ns}.data = #total_energy {ns}.data
83
- scoreboard players operation #remaining {ns}.data %= #count {ns}.data
84
- scoreboard players operation @s energy.storage += #remaining {ns}.data
85
-
86
- # Sometimes the remaining energy is too high, so we set it to the max storage resulting in a loss of energy (lets assume it's a feature: energy transformed in heat)
87
- execute if score @s energy.storage > @s energy.max_storage run scoreboard players operation @s energy.storage = @s energy.max_storage
88
- """)
89
-
90
-
91
- # Add in the placement function the balancing tag
92
- for device in can_balance:
93
- write_function(f"{ns}:custom_blocks/{device}/place_secondary", f"\n# Add balancing tag\ntag @s add {can_balance_tag}\n")
94
-
1
+
2
+ # Imports
3
+ from ...core import Mem, write_function, write_versioned_function
4
+
5
+
6
+ # Setup energy balancing
7
+ def setup_energy_balancing(can_balance: list[str]) -> None:
8
+ """ Setup energy balancing for devices.
9
+
10
+ Args:
11
+ can_balance (list[str]): List of devices that can balance energy between them.
12
+ (e.g. ["solar_panel", "cauldron_generator", "simple_battery", "advanced_battery", "elite_battery"]).
13
+ """
14
+ ns: str = Mem.ctx.project_id
15
+ can_balance_tag: str = f"{ns}.can_balance"
16
+ balanced_tag: str = f"{ns}.balanced"
17
+ adjacent_tag: str = f"{ns}.adjacent"
18
+
19
+ # Write in second_5.mcfunction a call to balancing function
20
+ write_versioned_function("second_5", f"""
21
+ # Energy Balancing system (balance every device having at least 20 kJ)
22
+ execute as @e[tag={can_balance_tag},scores={{energy.storage=20..}}] at @s[tag=!{balanced_tag}] run function {ns}:balancing/main
23
+ tag @e[tag={balanced_tag}] remove {balanced_tag}
24
+ """)
25
+
26
+ # Write balancing/main.mcfunction
27
+ device_main_calls: str = ""
28
+ for device in can_balance:
29
+ device_main_calls += f"\nexecute if entity @s[tag={ns}.{device}] run function {ns}:balancing/{device}/main"
30
+ balancing_content: str = f"""
31
+ # Stop if already balanced
32
+ execute if entity @s[tag={balanced_tag}] run return 0
33
+
34
+ # Copy max storage from device to scoreboard & add balance tags
35
+ scoreboard players operation #max_storage {ns}.data = @s energy.max_storage
36
+
37
+ # For each balancing device, run the main function{device_main_calls}
38
+
39
+ # Remove adjacent tags
40
+ tag @e[tag={adjacent_tag}] remove {adjacent_tag}
41
+ """
42
+ write_function(f"{ns}:balancing/main", balancing_content)
43
+
44
+ # For each balancing device, write the balancing functions
45
+ for device in can_balance:
46
+
47
+ # Write balancing/device/found.mcfunction
48
+ selector: str = f"@e[tag={ns}.{device},tag={can_balance_tag},tag=!{adjacent_tag},dx=0,dy=0,dz=0]"
49
+ condition_run: str = f"if score @s energy.max_storage = #max_storage {ns}.data at @s run function {ns}:balancing/{device}/found"
50
+ write_function(f"{ns}:balancing/{device}/found", f"""
51
+ # Add tags and scores
52
+ tag @s add {adjacent_tag}
53
+ tag @s add {balanced_tag}
54
+ scoreboard players add #count {ns}.data 1
55
+ scoreboard players operation #total_energy {ns}.data += @s energy.storage
56
+
57
+ # Check nearby {device} recursively
58
+ execute align xyz positioned ~ ~1 ~ as {selector} {condition_run}
59
+ execute align xyz positioned ~ ~-1 ~ as {selector} {condition_run}
60
+ execute align xyz positioned ~ ~ ~1 as {selector} {condition_run}
61
+ execute align xyz positioned ~ ~ ~-1 as {selector} {condition_run}
62
+ execute align xyz positioned ~1 ~ ~ as {selector} {condition_run}
63
+ execute align xyz positioned ~-1 ~ ~ as {selector} {condition_run}
64
+ """)
65
+ # Write balancing/device/main.mcfunction
66
+ write_function(f"{ns}:balancing/{device}/main", f"""
67
+ # Collect energy from nearby blocks recursively
68
+ scoreboard players set #count {ns}.data 0
69
+ scoreboard players set #total_energy {ns}.data 0
70
+ function {ns}:balancing/{device}/found
71
+
72
+ # If there are no adjacent device or the sum is higher than integer limit, stop here
73
+ execute if score #count {ns}.data matches 1 run return 0
74
+ execute if score #total_energy {ns}.data matches ..0 run return 0
75
+
76
+ # Redistributes energy to all adjacent devices
77
+ scoreboard players operation #per_device {ns}.data = #total_energy {ns}.data
78
+ scoreboard players operation #per_device {ns}.data /= #count {ns}.data
79
+ scoreboard players operation @e[tag={adjacent_tag}] energy.storage = #per_device {ns}.data
80
+
81
+ # Add the remaining energy to the current device
82
+ scoreboard players operation #remaining {ns}.data = #total_energy {ns}.data
83
+ scoreboard players operation #remaining {ns}.data %= #count {ns}.data
84
+ scoreboard players operation @s energy.storage += #remaining {ns}.data
85
+
86
+ # Sometimes the remaining energy is too high, so we set it to the max storage resulting in a loss of energy (lets assume it's a feature: energy transformed in heat)
87
+ execute if score @s energy.storage > @s energy.max_storage run scoreboard players operation @s energy.storage = @s energy.max_storage
88
+ """)
89
+
90
+
91
+ # Add in the placement function the balancing tag
92
+ for device in can_balance:
93
+ write_function(f"{ns}:custom_blocks/{device}/place_secondary", f"\n# Add balancing tag\ntag @s add {can_balance_tag}\n")
94
+
@@ -1,101 +1,101 @@
1
-
2
- # Imports
3
- from ...core import Mem, write_function
4
-
5
-
6
- # Setup functions for keeping energy for batteries
7
- def keep_energy_for_batteries(batteries: list[str]) -> None:
8
- """ Setup functions for keeping energy for batteries.
9
-
10
- Args:
11
- batteries (list[str]): List of battery names that should keep energy when destroyed or replaced.
12
- (e.g. ["simple_battery", "advanced_battery", "elite_battery", "creative_battery"])
13
- """
14
- ns: str = Mem.ctx.project_id
15
-
16
- # For each battery,
17
- for battery in batteries:
18
-
19
- # Copy current energy storage before destroying the block
20
- write_function(f"{ns}:custom_blocks/{battery}/destroy", f"""
21
- # Keep energy when destroying the block
22
- scoreboard players operation #storage {ns}.data = @s energy.storage
23
-
24
- """, prepend = True)
25
-
26
- # Keep energy when replacing the item
27
- write_function(f"{ns}:custom_blocks/{battery}/replace_item", f"""
28
- # Keep energy
29
- function {ns}:utils/keep_energy
30
- """)
31
-
32
- # Write keep_energy
33
- content: str = f"""
34
- # Prepare input for the update_energy_lore function
35
- data modify storage energy:temp list set value []
36
- data modify storage energy:temp list append from entity @s Item
37
- execute store result storage energy:temp list[0].components."minecraft:custom_data".energy.storage int 1 run scoreboard players get #storage {ns}.data
38
-
39
- # Call the update_energy_lore function
40
- function {ns}:calls/update_energy_lore/main
41
-
42
- # Prevent stack with other batteries
43
- execute store result storage energy:temp list[0].components."minecraft:custom_data".{ns}.not_stackable int 1 run scoreboard players get #stack {ns}.data
44
- scoreboard players add #stack {ns}.data 1
45
-
46
- # Update the item
47
- data modify entity @s Item.components set from storage energy:temp list[0].components
48
- """
49
- write_function(f"{ns}:utils/keep_energy", content)
50
-
51
-
52
- ## Setup energy lore functions
53
- content: str = f"""
54
- # Stop if not from the datapack
55
- execute unless data storage energy:temp list[0].components."minecraft:custom_data".{ns} run return 0
56
-
57
- ## Copy scores
58
- scoreboard players set #energy {ns}.data 0
59
- execute store result score #energy {ns}.data run data get storage energy:temp list[0].components."minecraft:custom_data".energy.storage
60
- scoreboard players operation #part_1 {ns}.data = #energy {ns}.data
61
- scoreboard players operation #part_2 {ns}.data = #energy {ns}.data
62
- data modify storage {ns}:temp macro set value {{part_1:0, part_2:0, scale:""}}
63
-
64
- ## kJ, MJ, GJ, TJ cases
65
- execute if score #energy {ns}.data matches ..999 run data modify storage {ns}:temp macro.scale set value " kJ]"
66
- execute if score #energy {ns}.data matches ..999 run scoreboard players set #part_2 {ns}.data 0"""
67
-
68
- # Add units check
69
- units_cases: list[tuple[int, str | int, str]] = [(1000, 1000**2 - 1, "MJ"), (1000**2, 1000**3 - 1, "GJ"), (1000**3, "", "TJ")]
70
- for mini, max, label in units_cases:
71
- digits: int = mini // 100
72
- content += f"""
73
- execute if score #energy {ns}.data matches {mini}..{max} run scoreboard players set #{digits} {ns}.data {digits}
74
- execute if score #energy {ns}.data matches {mini}..{max} run scoreboard players set #{mini} {ns}.data {mini}
75
- execute if score #energy {ns}.data matches {mini}..{max} run data modify storage {ns}:temp macro.scale set value " {label}]"
76
- execute if score #energy {ns}.data matches {mini}..{max} run scoreboard players operation #part_1 {ns}.data /= #{mini} {ns}.data
77
- execute if score #energy {ns}.data matches {mini}..{max} run scoreboard players operation #part_2 {ns}.data %= #{mini} {ns}.data
78
- execute if score #energy {ns}.data matches {mini}..{max} run scoreboard players operation #part_2 {ns}.data /= #{digits} {ns}.data"""
79
-
80
- # Apply lore
81
- content += f"""
82
-
83
- # Apply the new lore to the item
84
- execute store result storage {ns}:temp macro.part_1 int 1 run scoreboard players get #part_1 {ns}.data
85
- execute store result storage {ns}:temp macro.part_2 int 1 run scoreboard players get #part_2 {ns}.data
86
- function {ns}:calls/update_energy_lore/macro with storage {ns}:temp macro
87
-
88
- # Indicate that the item lore was updated
89
- data modify storage energy:temp list[0].components."minecraft:custom_data".energy.has_storage_lore set value 1b
90
- #data remove storage {ns}:temp macro
91
- """
92
-
93
- # Write the function and add it to the energy function tag
94
- write_function(f"{ns}:calls/update_energy_lore/main", content, tags=["energy:v1/update_energy_lore/main"])
95
-
96
- # Write macro function
97
- write_function(f"{ns}:calls/update_energy_lore/macro", """
98
- $execute unless data storage energy:temp list[0].components."minecraft:custom_data".energy.has_storage_lore run data modify storage energy:temp list[0].components."minecraft:lore" insert -2 value [{"text":"[Charge: ","color":"gray","italic":false},"$(part_1).$(part_2)$(scale)"]
99
- $execute if data storage energy:temp list[0].components."minecraft:custom_data".energy.has_storage_lore run data modify storage energy:temp list[0].components."minecraft:lore"[-2] set value [{"text":"[Charge: ","color":"gray","italic":false},"$(part_1).$(part_2)$(scale)"]
100
- """) # noqa: E501
101
-
1
+
2
+ # Imports
3
+ from ...core import Mem, write_function
4
+
5
+
6
+ # Setup functions for keeping energy for batteries
7
+ def keep_energy_for_batteries(batteries: list[str]) -> None:
8
+ """ Setup functions for keeping energy for batteries.
9
+
10
+ Args:
11
+ batteries (list[str]): List of battery names that should keep energy when destroyed or replaced.
12
+ (e.g. ["simple_battery", "advanced_battery", "elite_battery", "creative_battery"])
13
+ """
14
+ ns: str = Mem.ctx.project_id
15
+
16
+ # For each battery,
17
+ for battery in batteries:
18
+
19
+ # Copy current energy storage before destroying the block
20
+ write_function(f"{ns}:custom_blocks/{battery}/destroy", f"""
21
+ # Keep energy when destroying the block
22
+ scoreboard players operation #storage {ns}.data = @s energy.storage
23
+
24
+ """, prepend = True)
25
+
26
+ # Keep energy when replacing the item
27
+ write_function(f"{ns}:custom_blocks/{battery}/replace_item", f"""
28
+ # Keep energy
29
+ function {ns}:utils/keep_energy
30
+ """)
31
+
32
+ # Write keep_energy
33
+ content: str = f"""
34
+ # Prepare input for the update_energy_lore function
35
+ data modify storage energy:temp list set value []
36
+ data modify storage energy:temp list append from entity @s Item
37
+ execute store result storage energy:temp list[0].components."minecraft:custom_data".energy.storage int 1 run scoreboard players get #storage {ns}.data
38
+
39
+ # Call the update_energy_lore function
40
+ function {ns}:calls/update_energy_lore/main
41
+
42
+ # Prevent stack with other batteries
43
+ execute store result storage energy:temp list[0].components."minecraft:custom_data".{ns}.not_stackable int 1 run scoreboard players get #stack {ns}.data
44
+ scoreboard players add #stack {ns}.data 1
45
+
46
+ # Update the item
47
+ data modify entity @s Item.components set from storage energy:temp list[0].components
48
+ """
49
+ write_function(f"{ns}:utils/keep_energy", content)
50
+
51
+
52
+ ## Setup energy lore functions
53
+ content: str = f"""
54
+ # Stop if not from the datapack
55
+ execute unless data storage energy:temp list[0].components."minecraft:custom_data".{ns} run return 0
56
+
57
+ ## Copy scores
58
+ scoreboard players set #energy {ns}.data 0
59
+ execute store result score #energy {ns}.data run data get storage energy:temp list[0].components."minecraft:custom_data".energy.storage
60
+ scoreboard players operation #part_1 {ns}.data = #energy {ns}.data
61
+ scoreboard players operation #part_2 {ns}.data = #energy {ns}.data
62
+ data modify storage {ns}:temp macro set value {{part_1:0, part_2:0, scale:""}}
63
+
64
+ ## kJ, MJ, GJ, TJ cases
65
+ execute if score #energy {ns}.data matches ..999 run data modify storage {ns}:temp macro.scale set value " kJ]"
66
+ execute if score #energy {ns}.data matches ..999 run scoreboard players set #part_2 {ns}.data 0"""
67
+
68
+ # Add units check
69
+ units_cases: list[tuple[int, str | int, str]] = [(1000, 1000**2 - 1, "MJ"), (1000**2, 1000**3 - 1, "GJ"), (1000**3, "", "TJ")]
70
+ for mini, max, label in units_cases:
71
+ digits: int = mini // 100
72
+ content += f"""
73
+ execute if score #energy {ns}.data matches {mini}..{max} run scoreboard players set #{digits} {ns}.data {digits}
74
+ execute if score #energy {ns}.data matches {mini}..{max} run scoreboard players set #{mini} {ns}.data {mini}
75
+ execute if score #energy {ns}.data matches {mini}..{max} run data modify storage {ns}:temp macro.scale set value " {label}]"
76
+ execute if score #energy {ns}.data matches {mini}..{max} run scoreboard players operation #part_1 {ns}.data /= #{mini} {ns}.data
77
+ execute if score #energy {ns}.data matches {mini}..{max} run scoreboard players operation #part_2 {ns}.data %= #{mini} {ns}.data
78
+ execute if score #energy {ns}.data matches {mini}..{max} run scoreboard players operation #part_2 {ns}.data /= #{digits} {ns}.data"""
79
+
80
+ # Apply lore
81
+ content += f"""
82
+
83
+ # Apply the new lore to the item
84
+ execute store result storage {ns}:temp macro.part_1 int 1 run scoreboard players get #part_1 {ns}.data
85
+ execute store result storage {ns}:temp macro.part_2 int 1 run scoreboard players get #part_2 {ns}.data
86
+ function {ns}:calls/update_energy_lore/macro with storage {ns}:temp macro
87
+
88
+ # Indicate that the item lore was updated
89
+ data modify storage energy:temp list[0].components."minecraft:custom_data".energy.has_storage_lore set value 1b
90
+ #data remove storage {ns}:temp macro
91
+ """
92
+
93
+ # Write the function and add it to the energy function tag
94
+ write_function(f"{ns}:calls/update_energy_lore/main", content, tags=["energy:v1/update_energy_lore/main"])
95
+
96
+ # Write macro function
97
+ write_function(f"{ns}:calls/update_energy_lore/macro", """
98
+ $execute unless data storage energy:temp list[0].components."minecraft:custom_data".energy.has_storage_lore run data modify storage energy:temp list[0].components."minecraft:lore" insert -2 value [{"text":"[Charge: ","color":"gray","italic":false},"$(part_1).$(part_2)$(scale)"]
99
+ $execute if data storage energy:temp list[0].components."minecraft:custom_data".energy.has_storage_lore run data modify storage energy:temp list[0].components."minecraft:lore"[-2] set value [{"text":"[Charge: ","color":"gray","italic":false},"$(part_1).$(part_2)$(scale)"]
100
+ """) # noqa: E501
101
+
@@ -1,16 +1,16 @@
1
- {
2
- "elements": [
3
- {
4
- "from": [4, 4, 4],
5
- "to": [12, 12, 12],
6
- "faces": {
7
- "north": {"uv": [12, 12, 16, 16], "texture": "#0"},
8
- "east": {"uv": [12, 12, 16, 16], "texture": "#0"},
9
- "south": {"uv": [12, 12, 16, 16], "texture": "#0"},
10
- "west": {"uv": [12, 12, 16, 16], "texture": "#0"},
11
- "up": {"uv": [12, 12, 16, 16], "texture": "#0"},
12
- "down": {"uv": [12, 12, 16, 16], "texture": "#0"}
13
- }
14
- }
15
- ]
1
+ {
2
+ "elements": [
3
+ {
4
+ "from": [4, 4, 4],
5
+ "to": [12, 12, 12],
6
+ "faces": {
7
+ "north": {"uv": [12, 12, 16, 16], "texture": "#0"},
8
+ "east": {"uv": [12, 12, 16, 16], "texture": "#0"},
9
+ "south": {"uv": [12, 12, 16, 16], "texture": "#0"},
10
+ "west": {"uv": [12, 12, 16, 16], "texture": "#0"},
11
+ "up": {"uv": [12, 12, 16, 16], "texture": "#0"},
12
+ "down": {"uv": [12, 12, 16, 16], "texture": "#0"}
13
+ }
14
+ }
15
+ ]
16
16
  }
@@ -1,29 +1,29 @@
1
- {
2
- "elements": [
3
- {
4
- "from": [4, -4, 4],
5
- "to": [12, 12, 12],
6
- "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 8]},
7
- "faces": {
8
- "north": {"uv": [8, 2, 12, 8], "texture": "#0"},
9
- "east": {"uv": [8, 0, 12, 6], "rotation": 180, "texture": "#0"},
10
- "south": {"uv": [8, 0, 12, 6], "rotation": 180, "texture": "#0"},
11
- "west": {"uv": [8, 2, 12, 8], "texture": "#0"},
12
- "up": {"uv": [12, 12, 16, 16], "texture": "#0"}
13
- }
14
- },
15
- {
16
- "from": [2, -2, 2],
17
- "to": [14, 2, 14],
18
- "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 8]},
19
- "faces": {
20
- "north": {"uv": [0, 8, 2, 14], "rotation": 90, "texture": "#0"},
21
- "east": {"uv": [0, 8, 2, 14], "rotation": 90, "texture": "#0"},
22
- "south": {"uv": [0, 8, 2, 14], "rotation": 270, "texture": "#0"},
23
- "west": {"uv": [0, 8, 2, 14], "rotation": 270, "texture": "#0"},
24
- "up": {"uv": [2, 8, 8, 14], "texture": "#0"},
25
- "down": {"uv": [2, 8, 8, 14], "rotation": 180, "texture": "#0"}
26
- }
27
- }
28
- ]
1
+ {
2
+ "elements": [
3
+ {
4
+ "from": [4, -4, 4],
5
+ "to": [12, 12, 12],
6
+ "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 8]},
7
+ "faces": {
8
+ "north": {"uv": [8, 2, 12, 8], "texture": "#0"},
9
+ "east": {"uv": [8, 0, 12, 6], "rotation": 180, "texture": "#0"},
10
+ "south": {"uv": [8, 0, 12, 6], "rotation": 180, "texture": "#0"},
11
+ "west": {"uv": [8, 2, 12, 8], "texture": "#0"},
12
+ "up": {"uv": [12, 12, 16, 16], "texture": "#0"}
13
+ }
14
+ },
15
+ {
16
+ "from": [2, -2, 2],
17
+ "to": [14, 2, 14],
18
+ "rotation": {"angle": 0, "axis": "x", "origin": [8, 8, 8]},
19
+ "faces": {
20
+ "north": {"uv": [0, 8, 2, 14], "rotation": 90, "texture": "#0"},
21
+ "east": {"uv": [0, 8, 2, 14], "rotation": 90, "texture": "#0"},
22
+ "south": {"uv": [0, 8, 2, 14], "rotation": 270, "texture": "#0"},
23
+ "west": {"uv": [0, 8, 2, 14], "rotation": 270, "texture": "#0"},
24
+ "up": {"uv": [2, 8, 8, 14], "texture": "#0"},
25
+ "down": {"uv": [2, 8, 8, 14], "rotation": 180, "texture": "#0"}
26
+ }
27
+ }
28
+ ]
29
29
  }