stewbeet 2.1.1__tar.gz → 2.1.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.

Potentially problematic release.


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

Files changed (220) hide show
  1. {stewbeet-2.1.1 → stewbeet-2.1.2}/PKG-INFO +1 -1
  2. {stewbeet-2.1.1 → stewbeet-2.1.2}/pyproject.toml +1 -1
  3. stewbeet-2.1.2/stewbeet/plugins/datapack/sorters/__init__.py +31 -0
  4. stewbeet-2.1.2/stewbeet/plugins/datapack/sorters/constants.py +63 -0
  5. stewbeet-2.1.2/stewbeet/plugins/datapack/sorters/extend_datapack.py +19 -0
  6. stewbeet-2.1.2/stewbeet/plugins/datapack/sorters/match.py +33 -0
  7. stewbeet-2.1.2/stewbeet/plugins/datapack/sorters/quick_sort.py +102 -0
  8. stewbeet-2.1.2/stewbeet/plugins/datapack/sorters/selection_sort.py +124 -0
  9. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/initialize/__init__.py +3 -0
  10. {stewbeet-2.1.1 → stewbeet-2.1.2}/.gitignore +0 -0
  11. {stewbeet-2.1.1 → stewbeet-2.1.2}/LICENSE +0 -0
  12. {stewbeet-2.1.1 → stewbeet-2.1.2}/README.md +0 -0
  13. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/__init__.py +0 -0
  14. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/__main__.py +0 -0
  15. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/all.py +0 -0
  16. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/cli.py +0 -0
  17. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/continuous_delivery/__init__.py +0 -0
  18. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/continuous_delivery/cd_utils.py +0 -0
  19. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/continuous_delivery/github.py +0 -0
  20. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/continuous_delivery/modrinth.py +0 -0
  21. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/continuous_delivery/pmc.py +0 -0
  22. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/continuous_delivery/smithed.py +0 -0
  23. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/__init__.py +0 -0
  24. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/balancing.py +0 -0
  25. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/batteries.py +0 -0
  26. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/cables.py +0 -0
  27. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant.json +0 -0
  28. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_d.json +0 -0
  29. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_de.json +0 -0
  30. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dew.json +0 -0
  31. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dn.json +0 -0
  32. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dne.json +0 -0
  33. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dnew.json +0 -0
  34. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dns.json +0 -0
  35. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dnse.json +0 -0
  36. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dnsew.json +0 -0
  37. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dnsw.json +0 -0
  38. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dnw.json +0 -0
  39. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ds.json +0 -0
  40. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dse.json +0 -0
  41. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dsew.json +0 -0
  42. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dsw.json +0 -0
  43. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_dw.json +0 -0
  44. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_e.json +0 -0
  45. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ew.json +0 -0
  46. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_n.json +0 -0
  47. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ne.json +0 -0
  48. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_new.json +0 -0
  49. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ns.json +0 -0
  50. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_nse.json +0 -0
  51. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_nsew.json +0 -0
  52. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_nsw.json +0 -0
  53. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_nw.json +0 -0
  54. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_s.json +0 -0
  55. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_se.json +0 -0
  56. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_sew.json +0 -0
  57. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_sw.json +0 -0
  58. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_u.json +0 -0
  59. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ud.json +0 -0
  60. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ude.json +0 -0
  61. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udew.json +0 -0
  62. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udn.json +0 -0
  63. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udne.json +0 -0
  64. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udnew.json +0 -0
  65. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udns.json +0 -0
  66. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udnse.json +0 -0
  67. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udnsew.json +0 -0
  68. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udnsw.json +0 -0
  69. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udnw.json +0 -0
  70. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_uds.json +0 -0
  71. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udse.json +0 -0
  72. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udsew.json +0 -0
  73. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udsw.json +0 -0
  74. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_udw.json +0 -0
  75. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_ue.json +0 -0
  76. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_uew.json +0 -0
  77. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_un.json +0 -0
  78. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_une.json +0 -0
  79. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_unew.json +0 -0
  80. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_uns.json +0 -0
  81. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_unse.json +0 -0
  82. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_unsew.json +0 -0
  83. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_unsw.json +0 -0
  84. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_unw.json +0 -0
  85. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_us.json +0 -0
  86. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_use.json +0 -0
  87. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_usew.json +0 -0
  88. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_usw.json +0 -0
  89. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_uw.json +0 -0
  90. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_cable_models/variant_w.json +0 -0
  91. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/energy_lib_calls.py +0 -0
  92. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/gui.py +0 -0
  93. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/item_cable_models/cable.bbmodel +0 -0
  94. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/item_cable_models/cable_base.json +0 -0
  95. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/contrib/simplenergy/wrench.py +0 -0
  96. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/__init__.py +0 -0
  97. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/__memory__.py +0 -0
  98. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/constants.py +0 -0
  99. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/definitions_helper/__init__.py +0 -0
  100. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/definitions_helper/completion.py +0 -0
  101. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/definitions_helper/equipments.py +0 -0
  102. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/definitions_helper/materials.py +0 -0
  103. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/definitions_helper/records.py +0 -0
  104. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/definitions_helper/simplenergy.py +0 -0
  105. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/definitions_helper/smart_ore_generation.py +0 -0
  106. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/definitions_helper/text.py +0 -0
  107. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/ingredients.py +0 -0
  108. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/utils/io.py +0 -0
  109. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/core/utils/sounds.py +0 -0
  110. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/__init__.py +0 -0
  111. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/bookshelf.py +0 -0
  112. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/bookshelf_config.json +0 -0
  113. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Bitwise.zip +0 -0
  114. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Block.zip +0 -0
  115. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Color.zip +0 -0
  116. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Dump.zip +0 -0
  117. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Environment.zip +0 -0
  118. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Generation.zip +0 -0
  119. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Health.zip +0 -0
  120. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Hitbox.zip +0 -0
  121. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Id.zip +0 -0
  122. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Interaction.zip +0 -0
  123. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Link.zip +0 -0
  124. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Log.zip +0 -0
  125. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Math.zip +0 -0
  126. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Move.zip +0 -0
  127. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Position.zip +0 -0
  128. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Random.zip +0 -0
  129. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Raycast.zip +0 -0
  130. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Schedule.zip +0 -0
  131. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Sidebar.zip +0 -0
  132. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Spline.zip +0 -0
  133. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf String.zip +0 -0
  134. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Time.zip +0 -0
  135. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Tree.zip +0 -0
  136. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Vector.zip +0 -0
  137. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf View.zip +0 -0
  138. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Bookshelf Xp.zip +0 -0
  139. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Common Signals.zip +0 -0
  140. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Furnace NBT Recipes.zip +0 -0
  141. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/ItemIO.zip +0 -0
  142. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/SmartOreGeneration.zip +0 -0
  143. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Smithed Crafter.zip +0 -0
  144. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/datapack/Smithed Custom Block.zip +0 -0
  145. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/dependencies/resource_pack/Smithed Crafter.zip +0 -0
  146. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/archive/__init__.py +0 -0
  147. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/auto/headers/__init__.py +0 -0
  148. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/auto/headers/object.py +0 -0
  149. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/auto/lang_file/__init__.py +0 -0
  150. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/auto/lang_file/utils.py +0 -0
  151. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/compatibilities/neo_enchant/__init__.py +0 -0
  152. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/compatibilities/simpledrawer/__init__.py +0 -0
  153. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/compute_sha1/__init__.py +0 -0
  154. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/copy_to_destination/__init__.py +0 -0
  155. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/custom_recipes/__init__.py +0 -0
  156. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/custom_recipes/furnace.py +0 -0
  157. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/custom_recipes/pulverizer.py +0 -0
  158. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/custom_recipes/smithed.py +0 -0
  159. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/custom_recipes/vanilla.py +0 -0
  160. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/datapack/custom_blocks/__init__.py +0 -0
  161. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/datapack/loading/__init__.py +0 -0
  162. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/datapack/loot_tables/__init__.py +0 -0
  163. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/finalyze/basic_datapack_structure/__init__.py +0 -0
  164. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/finalyze/check_unused_textures/__init__.py +0 -0
  165. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/finalyze/custom_blocks_ticking/__init__.py +0 -0
  166. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/finalyze/dependencies/__init__.py +0 -0
  167. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/finalyze/last_final/__init__.py +0 -0
  168. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/__init__.py +0 -0
  169. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/furnace.png +0 -0
  170. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/heavy_workbench.png +0 -0
  171. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/invisible_item.png +0 -0
  172. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/invisible_item_release.png +0 -0
  173. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/minecraft_font.ttf +0 -0
  174. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/none.png +0 -0
  175. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/none_release.png +0 -0
  176. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/pulverizing.png +0 -0
  177. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/shaped_2x2.png +0 -0
  178. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/shaped_3x3.png +0 -0
  179. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/simple_case_no_border.png +0 -0
  180. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/wiki_information.png +0 -0
  181. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft.png +0 -0
  182. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/wiki_ingredient_of_craft_template.png +0 -0
  183. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/assets/wiki_result_of_craft.png +0 -0
  184. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/book_components.py +0 -0
  185. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/book_optimizer.py +0 -0
  186. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/craft_content.py +0 -0
  187. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/image_utils.py +0 -0
  188. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/iso_renders.py +0 -0
  189. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/main.py +0 -0
  190. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/other_utils.py +0 -0
  191. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/page_font.py +0 -0
  192. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/shared_import.py +0 -0
  193. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/showcase_image.py +0 -0
  194. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/.gitignore +0 -0
  195. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/_README.md +0 -0
  196. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/furnace.png +0 -0
  197. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/heavy_workbench.png +0 -0
  198. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/invisible_item.png +0 -0
  199. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/invisible_item_release.png +0 -0
  200. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/minecraft_font.ttf +0 -0
  201. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/none.png +0 -0
  202. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/none_release.png +0 -0
  203. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/pulverizing.png +0 -0
  204. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/shaped_2x2.png +0 -0
  205. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/shaped_3x3.png +0 -0
  206. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/simple_case_no_border.png +0 -0
  207. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/wiki_information.png +0 -0
  208. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft.png +0 -0
  209. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/wiki_ingredient_of_craft_template.png +0 -0
  210. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/templates/wiki_result_of_craft.png +0 -0
  211. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/ingame_manual/text_components.py +0 -0
  212. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/initialize/source_lore_font.py +0 -0
  213. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/merge_smithed_weld/__init__.py +0 -0
  214. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/merge_smithed_weld/weld.py +0 -0
  215. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/resource_pack/check_power_of_2/__init__.py +0 -0
  216. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/resource_pack/item_models/__init__.py +0 -0
  217. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/resource_pack/item_models/object.py +0 -0
  218. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/resource_pack/sounds/__init__.py +0 -0
  219. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/plugins/verify_definitions/__init__.py +0 -0
  220. {stewbeet-2.1.1 → stewbeet-2.1.2}/stewbeet/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: stewbeet
3
- Version: 2.1.1
3
+ Version: 2.1.2
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.1.1"
8
+ version = "2.1.2"
9
9
  description = "Beet Framework made to help generating advanced Minecraft datapack contents"
10
10
  readme = "README.md"
11
11
  license = "MIT"
@@ -0,0 +1,31 @@
1
+
2
+ # Imports
3
+ from typing import Any
4
+
5
+ from beet import Context
6
+ from stouputils.decorators import measure_time
7
+ from stouputils.print import progress
8
+
9
+ from .constants import SorterFile
10
+ from .match import generate_sorter
11
+
12
+
13
+ # Main entry point
14
+ @measure_time(progress, message="Execution time of 'stewbeet.plugins.datapack.sorters'")
15
+ def beet_default(ctx: Context):
16
+ """ Main entry point for the sorters plugin.
17
+ This plugin generates functions that sort lists in storage.
18
+
19
+ Args:
20
+ ctx (Context): The beet context.
21
+ """
22
+ ctx.data.extend_namespace.append(SorterFile)
23
+
24
+ # Iterate through all sorter configurations
25
+ for file_instance in ctx.data[SorterFile].values():
26
+ sorter: dict[str, Any] = file_instance.data.dict()
27
+ generate_sorter(ctx, sorter)
28
+
29
+ # Clear the registry
30
+ ctx.data[SorterFile].clear()
31
+
@@ -0,0 +1,63 @@
1
+
2
+ # Imports
3
+ from typing import Any, ClassVar, Literal, TypeAlias
4
+
5
+ from beet import FileDeserialize, JsonFileBase, NamespaceFileScope
6
+ from pydantic.v1 import BaseModel
7
+
8
+ # Constants
9
+ MACRO: str = "storage sorter:temp args"
10
+
11
+ # Type aliases
12
+ SorterAlgorithm: TypeAlias = Literal[
13
+ "quick_sort",
14
+ "selection_sort"
15
+ ]
16
+
17
+ # Classes
18
+ class Sorter(BaseModel):
19
+ """ Configuration model for sorting operations.
20
+
21
+ This class defines the parameters required to generate datapack functions
22
+ that can sort lists stored in storage using various algorithms.
23
+
24
+ Example:
25
+ ```
26
+ {
27
+ "algorithm": "selection_sort",
28
+ "functions_location": "switch:stats/minigame/sort_leaderboard",
29
+ "to_sort": {
30
+ "storage": "switch:stats",
31
+ "target": "all.modes.sheepwars.played"
32
+ },
33
+ "key": "count",
34
+ "scale": 100
35
+ }
36
+ ```
37
+ """
38
+ algorithm: SorterAlgorithm = "selection_sort"
39
+ """ Algorithm used to sort the elements, defaults to `selection_sort`. """
40
+ functions_location: str
41
+ """ Namespaced id where the sorting functions are generated. """
42
+ to_sort: dict[str, str]
43
+ """ Location of the list to sort. """
44
+ key: str
45
+ """ The key to the number getting compared. """
46
+ scale: int = 1
47
+ """ (Option) By how many the number should be scaled before getting rounded. """
48
+ limit: int | None = None
49
+ """ (Option) Limit of how many elements to sort, if not specified all elements will be sorted.
50
+ (Only compatible with `selection_sort` algorithm.) """
51
+
52
+
53
+ class SorterFile(JsonFileBase[Sorter]):
54
+ """ JSON file handler for sorter configurations.
55
+
56
+ This class handles the serialization and deserialization of sorter
57
+ configuration files within the datapack namespace.
58
+ """
59
+ model: type[Any] = Sorter
60
+ scope: ClassVar[NamespaceFileScope] = ("sorter",)
61
+ extension: ClassVar[str] = ".json"
62
+ data: ClassVar[FileDeserialize[Sorter]] = FileDeserialize()
63
+
@@ -0,0 +1,19 @@
1
+
2
+ # Imports
3
+ from beet import Context
4
+
5
+ from .constants import SorterFile
6
+
7
+
8
+ # Main entry point
9
+ def beet_default(ctx: Context):
10
+ """ Extend the datapack namespace with the sorter resource type.
11
+
12
+ This function registers the SorterFile class with the datapack context,
13
+ allowing sorter configuration files to be recognized and processed.
14
+
15
+ Args:
16
+ ctx (Context): The beet context.
17
+ """
18
+ ctx.data.extend_namespace.append(SorterFile)
19
+
@@ -0,0 +1,33 @@
1
+
2
+ # Imports
3
+ from beet import Context
4
+
5
+ from .quick_sort import generate_quick_sort
6
+ from .selection_sort import generate_selection_sort
7
+
8
+
9
+ # Functions
10
+ def generate_sorter(ctx: Context, sorter: dict):
11
+ """ Generate sorting functions based on the specified algorithm.
12
+
13
+ Currently an abstraction layer in case more algorithms are added in the future.
14
+ Routes to the appropriate algorithm-specific generator function.
15
+
16
+ Args:
17
+ ctx (Context): The beet context for generating functions.
18
+ sorter (dict): Configuration dictionary containing sorting parameters.
19
+ """
20
+ # Assertions to validate sorter configuration
21
+ assert isinstance(sorter.get("functions_location"), str), "'functions_location' must be a string, e.g. 'switch:stats/minigame/sort_leaderboard'."
22
+ assert isinstance(sorter.get("key"), str), "'key' must be a string, e.g. 'count' if you list is looking like [{'id':'...', count:54}, ...]."
23
+ assert isinstance(sorter.get("to_sort"), dict), "'to_sort' must be a dictionary."
24
+ assert isinstance(sorter["to_sort"].get("storage"), str), "'to_sort.storage' must be a string, e.g. 'switch:stats'"
25
+ assert isinstance(sorter["to_sort"].get("target"), str), "'to_sort.target' must be a string, e.g. 'all.modes.sheepwars.played'."
26
+
27
+ # Switch case
28
+ match(sorter["algorithm"]):
29
+ case "selection_sort":
30
+ generate_selection_sort(ctx, sorter)
31
+ case "quick_sort":
32
+ generate_quick_sort(ctx, sorter)
33
+
@@ -0,0 +1,102 @@
1
+ """ Quick Sort Algorithm for Minecraft Storage Lists
2
+
3
+ This algorithm is less efficient than the Selection Sort algorithm for Minecraft due to the cost of macro calls.
4
+ It is recommended to use Selection Sort.
5
+
6
+ Author: Darukshock
7
+ """
8
+
9
+ # Imports
10
+ from beet import Context
11
+
12
+ from ....core import Mem, write_function
13
+ from .constants import MACRO
14
+
15
+
16
+ # Functions
17
+ def generate_quick_sort(ctx: Context, sorter: dict) -> None:
18
+ """ Generate quick_sort algorithm functions for sorting storage lists.
19
+
20
+ This function creates a set of minecraft functions that implement the quick_sort
21
+ algorithm to sort lists stored in minecraft storage. The algorithm is implemented
22
+ using recursive function calls with macro parameters.
23
+
24
+ Args:
25
+ ctx (Context): The beet context for generating functions.
26
+ sorter (dict): Configuration dictionary containing sorting parameters.
27
+ """
28
+ old_ctx: Context = Mem.ctx
29
+ Mem.ctx = ctx # Set the current context to the one provided
30
+
31
+ # Extract configuration parameters
32
+ functions_location: str = sorter["functions_location"]
33
+ to_sort: str = f"storage {sorter['to_sort']['storage']} {sorter['to_sort']['target']}"
34
+ key: str = sorter["key"]
35
+ scale: int = sorter.get("scale", 1) # Default scale is 1
36
+
37
+ # Main sort entry point function
38
+ write_function(f"{functions_location}/sort", f"""
39
+ # Create a scoreboard objective and storage for temporary values
40
+ scoreboard objectives add sorter.val dummy
41
+ data modify storage sorter:temp inInt set value [0]
42
+
43
+ # Count the number of elements to sort and prepare the macro
44
+ execute store result score high sorter.val run data get {to_sort}
45
+ execute store result {MACRO}.high int 1 run scoreboard players remove high sorter.val 1
46
+ data modify {MACRO}.low set value 0
47
+
48
+ # Start the quick_sort process
49
+ function {functions_location}/quick_sort with {MACRO}
50
+ """)
51
+
52
+ # Quicksort recursive function
53
+ write_function(f"{functions_location}/quick_sort", f"""
54
+ $execute if predicate {{"condition": "value_check","range": {{"min": -8,"max": $(low)}},"value": $(high)}} run return 0
55
+ $execute store result score pi sorter.val run function {functions_location}/partition_main {{low:$(low),high:$(high)}}
56
+ data modify storage sorter:temp inInt append value 0
57
+ execute store result storage sorter:temp inInt[-1] int 1 store result {MACRO}.high int 1 run scoreboard players remove pi sorter.val 1
58
+ function {functions_location}/quick_sort with {MACRO}
59
+ execute store result score pi sorter.val run data get storage sorter:temp inInt[-1]
60
+ execute store result {MACRO}.low int 1 run scoreboard players add pi sorter.val 2
61
+ $data modify {MACRO}.high set value $(high)
62
+ function {functions_location}/quick_sort with {MACRO}
63
+ """)
64
+
65
+ # Partition function - finds pivot position
66
+ write_function(f"{functions_location}/partition_main", f"""
67
+ $execute store result score pivot sorter.val run data get {to_sort}[$(high)].{key} {scale}
68
+ $scoreboard players set i sorter.val $(low)
69
+ scoreboard players remove i sorter.val 1
70
+ $execute store result {MACRO}.j int 1 run scoreboard players set j sorter.val $(low)
71
+ $function {functions_location}/partition_loop {{high:$(high),low:$(low),j:$(low)}}
72
+ execute store result {MACRO}.i int 1 run scoreboard players add i sorter.val 1
73
+ $data modify {MACRO}.j set value $(high)
74
+ function {functions_location}/partition_swap with {MACRO}
75
+ return run scoreboard players get i sorter.val
76
+ """)
77
+
78
+ # Partition loop - iterates through elements to partition
79
+ write_function(f"{functions_location}/partition_loop", f"""
80
+ $execute if score j sorter.val matches $(high).. run return 0
81
+ $execute store result score test sorter.val run data get {to_sort}[$(j)].{key} {scale}
82
+ execute if score test sorter.val < pivot sorter.val run function {functions_location}/partition_loop_swap with {MACRO}
83
+ execute store result {MACRO}.j int 1 run scoreboard players add j sorter.val 1
84
+ function {functions_location}/partition_loop with {MACRO}
85
+ """)
86
+
87
+ # Partition swap - swaps elements during partitioning
88
+ write_function(f"{functions_location}/partition_swap", f"""
89
+ $data modify storage sorter:temp element set from {to_sort}[$(i)]
90
+ $data modify {to_sort}[$(i)] set from {to_sort}[$(j)]
91
+ $data modify {to_sort}[$(j)] set from storage sorter:temp element
92
+ """)
93
+
94
+ # Partition loop swap - continues partitioning after swap
95
+ write_function(f"{functions_location}/partition_loop_swap", f"""
96
+ execute store result {MACRO}.i int 1 run scoreboard players add i sorter.val 1
97
+ function {functions_location}/partition_swap with {MACRO}
98
+ """)
99
+
100
+ # Reset the context to the original one
101
+ Mem.ctx = old_ctx
102
+
@@ -0,0 +1,124 @@
1
+
2
+ # Imports
3
+ from beet import Context
4
+
5
+ from ....core import Mem, write_function
6
+ from .constants import MACRO
7
+
8
+
9
+ # Functions
10
+ def generate_selection_sort(ctx: Context, sorter: dict) -> None:
11
+ """ Generate selection sort algorithm functions for sorting storage lists.
12
+
13
+ This function creates a set of minecraft functions that implement the selection sort
14
+ algorithm to sort lists stored in minecraft storage. The algorithm finds the minimum
15
+ element and moves it to a new sorted array repeatedly.
16
+
17
+ Args:
18
+ ctx (Context): The beet context for generating functions.
19
+ sorter (dict): Configuration dictionary containing sorting parameters.
20
+ """
21
+ old_ctx: Context = Mem.ctx
22
+ Mem.ctx = ctx # Set the current context to the one provided
23
+
24
+ # Extract configuration parameters
25
+ functions_location: str = sorter["functions_location"]
26
+ to_sort: str = f"storage {sorter['to_sort']['storage']} {sorter['to_sort']['target']}"
27
+ key: str = sorter["key"]
28
+ scale: int = sorter.get("scale", 1) # Default scale is 1
29
+ limit: int | None = sorter.get("limit") # Optional limit for sorting
30
+
31
+ # Main sort entry point function
32
+ sort_function_content = f"""
33
+ # Create a scoreboard objective and storage for temporary values
34
+ scoreboard objectives add sorter.val dummy
35
+ data modify storage sorter:temp original_array set from {to_sort}
36
+ data modify storage sorter:temp sorted_array set value []
37
+ """
38
+ if limit is not None:
39
+ sort_function_content += """
40
+ scoreboard players set #sorted_count sorter.val 0
41
+ """
42
+ sort_function_content += f"""
43
+ # Start the selection sort process
44
+ execute if data storage sorter:temp original_array[0] run function {functions_location}/selection_sort_loop
45
+ data modify {to_sort} set from storage sorter:temp sorted_array
46
+
47
+ # Cleanup temporary storage
48
+ data remove storage sorter:temp original_array
49
+ data remove storage sorter:temp copy_array
50
+ data remove storage sorter:temp sorted_array
51
+ """
52
+ write_function(f"{functions_location}/sort", sort_function_content)
53
+
54
+ # Selection sort main loop
55
+ loop_function_content = f"""
56
+ # Reset variables for finding minimum
57
+ scoreboard players set #current_index sorter.val 0
58
+ scoreboard players set #min_value sorter.val 2147483647
59
+ scoreboard players set #min_index sorter.val 0
60
+
61
+ # Copy the original array to the working copy
62
+ data modify storage sorter:temp copy_array set from storage sorter:temp original_array
63
+
64
+ # Find the minimum element
65
+ execute if data storage sorter:temp copy_array[0] run function {functions_location}/find_min
66
+
67
+ # Move the minimum element to the sorted array
68
+ execute store result {MACRO}.min_index int 1 run scoreboard players get #min_index sorter.val
69
+ function {functions_location}/move_min_element with {MACRO}
70
+ """
71
+ if limit is not None:
72
+ loop_function_content += f"""
73
+ # Increment sorted count
74
+ scoreboard players add #sorted_count sorter.val 1
75
+
76
+ # Continue if limit not reached and there are more elements to sort
77
+ execute if score #sorted_count sorter.val matches ..{limit-1} if data storage sorter:temp original_array[0] run return run function {functions_location}/selection_sort_loop
78
+
79
+ # If limit reached, append remaining elements without sorting
80
+ execute if score #sorted_count sorter.val matches {limit} run function {functions_location}/append_remaining
81
+ """
82
+ else:
83
+ loop_function_content += f"""
84
+ # Continue if there are more elements to sort
85
+ execute if data storage sorter:temp original_array[0] run function {functions_location}/selection_sort_loop
86
+ """
87
+ write_function(f"{functions_location}/selection_sort_loop", loop_function_content)
88
+
89
+ # Find minimum element in the array
90
+ write_function(f"{functions_location}/find_min", f"""
91
+ # Get the current element value
92
+ execute store result score #current_value sorter.val run data get storage sorter:temp copy_array[0].{key} {scale}
93
+
94
+ # Check if this is the new minimum
95
+ execute if score #current_value sorter.val < #min_value sorter.val run scoreboard players operation #min_index sorter.val = #current_index sorter.val
96
+ execute if score #current_value sorter.val < #min_value sorter.val run scoreboard players operation #min_value sorter.val = #current_value sorter.val
97
+
98
+ # Move to the next element
99
+ scoreboard players add #current_index sorter.val 1
100
+ data remove storage sorter:temp copy_array[0]
101
+
102
+ # Continue if there are more elements
103
+ execute if data storage sorter:temp copy_array[0] run function {functions_location}/find_min
104
+ """)
105
+
106
+ # Move the minimum element from original to sorted array
107
+ write_function(f"{functions_location}/move_min_element", """
108
+ # Add the minimum element to the sorted array
109
+ $data modify storage sorter:temp sorted_array append from storage sorter:temp original_array[$(min_index)]
110
+
111
+ # Remove the minimum element from the original array
112
+ $data remove storage sorter:temp original_array[$(min_index)]
113
+ """)
114
+
115
+ # Generate append_remaining function only if limit is specified
116
+ if limit is not None:
117
+ write_function(f"{functions_location}/append_remaining", """
118
+ # Append remaining unsorted elements to the sorted array
119
+ data modify storage sorter:temp sorted_array append from storage sorter:temp original_array[]
120
+ """)
121
+
122
+ # Reset the context to the original one
123
+ Mem.ctx = old_ctx
124
+
@@ -106,6 +106,9 @@ def beet_default(ctx: Context):
106
106
  (1, 21, 8): 64,
107
107
  })
108
108
 
109
+ # Extend the datapack namespace with sorter files
110
+ ctx.require("stewbeet.plugins.datapack.sorters.extend_datapack")
111
+
109
112
  # Yield message to indicate successful build
110
113
  yield
111
114
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes