amulet-core 2.0a7__tar.gz → 2.0a9__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 amulet-core might be problematic. Click here for more details.

Files changed (383) hide show
  1. amulet_core-2.0a9/CMakeLists.txt +111 -0
  2. amulet_core-2.0a9/MANIFEST.in +8 -0
  3. {amulet_core-2.0a7/src/amulet_core.egg-info → amulet_core-2.0a9}/PKG-INFO +22 -16
  4. amulet_core-2.0a9/build_requires.py +23 -0
  5. amulet_core-2.0a9/pyproject.toml +76 -0
  6. amulet_core-2.0a9/requirements.py +46 -0
  7. amulet_core-2.0a9/setup.cfg +4 -0
  8. amulet_core-2.0a9/setup.py +147 -0
  9. amulet_core-2.0a9/src/amulet/core/__init__.py +36 -0
  10. amulet_core-2.0a9/src/amulet/core/__pyinstaller/hook-amulet.core.py +4 -0
  11. amulet_core-2.0a9/src/amulet/core/_amulet_core.py.cpp +40 -0
  12. amulet_core-2.0a9/src/amulet/core/_amulet_core.pyi +7 -0
  13. {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/_version.py +3 -3
  14. amulet_core-2.0a9/src/amulet/core/amulet_coreConfig.cmake +18 -0
  15. amulet_core-2.0a7/src/amulet/biome.pyi → amulet_core-2.0a9/src/amulet/core/biome/__init__.pyi +3 -3
  16. amulet_core-2.0a9/src/amulet/core/biome/biome.cpp +41 -0
  17. amulet_core-2.0a9/src/amulet/core/biome/biome.hpp +53 -0
  18. amulet_core-2.0a9/src/amulet/core/biome/biome.py.cpp +108 -0
  19. amulet_core-2.0a7/src/amulet/block.pyi → amulet_core-2.0a9/src/amulet/core/block/__init__.pyi +25 -26
  20. amulet_core-2.0a9/src/amulet/core/block/block.cpp +423 -0
  21. amulet_core-2.0a9/src/amulet/core/block/block.hpp +156 -0
  22. amulet_core-2.0a9/src/amulet/core/block/block.py.cpp +345 -0
  23. amulet_core-2.0a7/src/amulet/block_entity.pyi → amulet_core-2.0a9/src/amulet/core/block_entity/__init__.pyi +7 -7
  24. amulet_core-2.0a9/src/amulet/core/block_entity/block_entity.cpp +26 -0
  25. amulet_core-2.0a9/src/amulet/core/block_entity/block_entity.hpp +84 -0
  26. amulet_core-2.0a9/src/amulet/core/block_entity/block_entity.py.cpp +112 -0
  27. amulet_core-2.0a7/src/amulet/errors.py → amulet_core-2.0a9/src/amulet/core/chunk/__init__.pyi +37 -33
  28. amulet_core-2.0a9/src/amulet/core/chunk/chunk.cpp +50 -0
  29. amulet_core-2.0a9/src/amulet/core/chunk/chunk.hpp +126 -0
  30. amulet_core-2.0a9/src/amulet/core/chunk/chunk.py.cpp +113 -0
  31. amulet_core-2.0a9/src/amulet/core/chunk/component/__init__.pyi +18 -0
  32. amulet_core-2.0a9/src/amulet/core/chunk/component/__init_chunk_components.py.cpp +22 -0
  33. amulet_core-2.0a9/src/amulet/core/chunk/component/biome_3d_component.cpp +45 -0
  34. amulet_core-2.0a9/src/amulet/core/chunk/component/biome_3d_component.hpp +96 -0
  35. amulet_core-2.0a9/src/amulet/core/chunk/component/block_component.cpp +74 -0
  36. amulet_core-2.0a9/src/amulet/core/chunk/component/block_component.hpp +101 -0
  37. amulet_core-2.0a9/src/amulet/core/chunk/component/block_component.py.cpp +47 -0
  38. amulet_core-2.0a9/src/amulet/core/chunk/component/block_component.pyi +28 -0
  39. amulet_core-2.0a9/src/amulet/core/chunk/component/block_entity_component.cpp +71 -0
  40. amulet_core-2.0a9/src/amulet/core/chunk/component/block_entity_component.hpp +119 -0
  41. amulet_core-2.0a9/src/amulet/core/chunk/component/section_array_map.cpp +223 -0
  42. amulet_core-2.0a9/src/amulet/core/chunk/component/section_array_map.hpp +129 -0
  43. {amulet_core-2.0a7/src/amulet/chunk_components → amulet_core-2.0a9/src/amulet/core/chunk/component}/section_array_map.py.cpp +93 -125
  44. amulet_core-2.0a7/src/amulet/chunk_components.pyi → amulet_core-2.0a9/src/amulet/core/chunk/component/section_array_map.pyi +4 -24
  45. amulet_core-2.0a9/src/amulet/core/dll.hpp +21 -0
  46. amulet_core-2.0a9/src/amulet/core/entity/__init__.pyi +105 -0
  47. amulet_core-2.0a9/src/amulet/core/entity/entity.cpp +29 -0
  48. amulet_core-2.0a9/src/amulet/core/entity/entity.hpp +100 -0
  49. amulet_core-2.0a9/src/amulet/core/entity/entity.py.cpp +135 -0
  50. {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/palette/__init__.pyi +2 -2
  51. amulet_core-2.0a7/src/amulet/palette/_init_palette.py.cpp → amulet_core-2.0a9/src/amulet/core/palette/__init_palette.py.cpp +7 -2
  52. amulet_core-2.0a9/src/amulet/core/palette/biome_palette.cpp +33 -0
  53. amulet_core-2.0a9/src/amulet/core/palette/biome_palette.hpp +65 -0
  54. amulet_core-2.0a9/src/amulet/core/palette/biome_palette.py.cpp +88 -0
  55. {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/palette/biome_palette.pyi +8 -8
  56. amulet_core-2.0a9/src/amulet/core/palette/block_palette.cpp +33 -0
  57. amulet_core-2.0a9/src/amulet/core/palette/block_palette.hpp +71 -0
  58. amulet_core-2.0a9/src/amulet/core/palette/block_palette.py.cpp +88 -0
  59. {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/palette/block_palette.pyi +12 -10
  60. amulet_core-2.0a9/src/amulet/core/selection/__init__.pyi +8 -0
  61. amulet_core-2.0a9/src/amulet/core/selection/__init_selection.py.cpp +598 -0
  62. amulet_core-2.0a9/src/amulet/core/selection/box.cpp +65 -0
  63. amulet_core-2.0a9/src/amulet/core/selection/box.hpp +86 -0
  64. amulet_core-2.0a9/src/amulet/core/selection/box.pyi +215 -0
  65. amulet_core-2.0a9/src/amulet/core/selection/group.cpp +236 -0
  66. amulet_core-2.0a9/src/amulet/core/selection/group.hpp +80 -0
  67. amulet_core-2.0a9/src/amulet/core/selection/group.pyi +213 -0
  68. amulet_core-2.0a7/src/amulet/version.pyi → amulet_core-2.0a9/src/amulet/core/version/__init__.pyi +58 -10
  69. amulet_core-2.0a9/src/amulet/core/version/version.cpp +147 -0
  70. amulet_core-2.0a9/src/amulet/core/version/version.hpp +204 -0
  71. amulet_core-2.0a9/src/amulet/core/version/version.py.cpp +275 -0
  72. {amulet_core-2.0a7 → amulet_core-2.0a9/src/amulet_core.egg-info}/PKG-INFO +22 -16
  73. amulet_core-2.0a9/src/amulet_core.egg-info/SOURCES.txt +78 -0
  74. amulet_core-2.0a9/src/amulet_core.egg-info/entry_points.txt +2 -0
  75. amulet_core-2.0a9/src/amulet_core.egg-info/requires.txt +26 -0
  76. amulet_core-2.0a7/MANIFEST.in +0 -1
  77. amulet_core-2.0a7/pyproject.toml +0 -9
  78. amulet_core-2.0a7/setup.cfg +0 -73
  79. amulet_core-2.0a7/setup.py +0 -55
  80. amulet_core-2.0a7/src/amulet/__init__.py.cpp +0 -43
  81. amulet_core-2.0a7/src/amulet/__init__.pyi +0 -28
  82. amulet_core-2.0a7/src/amulet/__pyinstaller/hook-amulet.py +0 -4
  83. amulet_core-2.0a7/src/amulet/_init.py +0 -26
  84. amulet_core-2.0a7/src/amulet/biome.cpp +0 -36
  85. amulet_core-2.0a7/src/amulet/biome.hpp +0 -43
  86. amulet_core-2.0a7/src/amulet/biome.py.cpp +0 -122
  87. amulet_core-2.0a7/src/amulet/block.cpp +0 -435
  88. amulet_core-2.0a7/src/amulet/block.hpp +0 -119
  89. amulet_core-2.0a7/src/amulet/block.py.cpp +0 -377
  90. amulet_core-2.0a7/src/amulet/block_entity.cpp +0 -12
  91. amulet_core-2.0a7/src/amulet/block_entity.hpp +0 -56
  92. amulet_core-2.0a7/src/amulet/block_entity.py.cpp +0 -115
  93. amulet_core-2.0a7/src/amulet/chunk.cpp +0 -16
  94. amulet_core-2.0a7/src/amulet/chunk.hpp +0 -99
  95. amulet_core-2.0a7/src/amulet/chunk.py.cpp +0 -80
  96. amulet_core-2.0a7/src/amulet/chunk.pyi +0 -28
  97. amulet_core-2.0a7/src/amulet/chunk_components/_init_chunk_components.py.cpp +0 -11
  98. amulet_core-2.0a7/src/amulet/chunk_components/biome_3d_component.cpp +0 -5
  99. amulet_core-2.0a7/src/amulet/chunk_components/biome_3d_component.hpp +0 -79
  100. amulet_core-2.0a7/src/amulet/chunk_components/block_component.cpp +0 -41
  101. amulet_core-2.0a7/src/amulet/chunk_components/block_component.hpp +0 -88
  102. amulet_core-2.0a7/src/amulet/chunk_components/block_component.py.cpp +0 -51
  103. amulet_core-2.0a7/src/amulet/chunk_components/block_entity_component.cpp +0 -5
  104. amulet_core-2.0a7/src/amulet/chunk_components/block_entity_component.hpp +0 -147
  105. amulet_core-2.0a7/src/amulet/chunk_components/section_array_map.cpp +0 -129
  106. amulet_core-2.0a7/src/amulet/chunk_components/section_array_map.hpp +0 -147
  107. amulet_core-2.0a7/src/amulet/collections/collections.py.cpp +0 -19
  108. amulet_core-2.0a7/src/amulet/collections/eq.py.hpp +0 -37
  109. amulet_core-2.0a7/src/amulet/collections/hash.py.hpp +0 -27
  110. amulet_core-2.0a7/src/amulet/collections/holder.py.cpp +0 -11
  111. amulet_core-2.0a7/src/amulet/collections/holder.py.hpp +0 -37
  112. amulet_core-2.0a7/src/amulet/collections/iterator.py.cpp +0 -36
  113. amulet_core-2.0a7/src/amulet/collections/iterator.py.hpp +0 -80
  114. amulet_core-2.0a7/src/amulet/collections/mapping.py.cpp +0 -44
  115. amulet_core-2.0a7/src/amulet/collections/mapping.py.hpp +0 -199
  116. amulet_core-2.0a7/src/amulet/collections/mutable_mapping.py.cpp +0 -31
  117. amulet_core-2.0a7/src/amulet/collections/mutable_mapping.py.hpp +0 -226
  118. amulet_core-2.0a7/src/amulet/collections/sequence.py.hpp +0 -163
  119. amulet_core-2.0a7/src/amulet/collections.pyi +0 -40
  120. amulet_core-2.0a7/src/amulet/data_types.py +0 -29
  121. amulet_core-2.0a7/src/amulet/entity.py +0 -182
  122. amulet_core-2.0a7/src/amulet/game/__init__.py +0 -7
  123. amulet_core-2.0a7/src/amulet/game/_game.py +0 -152
  124. amulet_core-2.0a7/src/amulet/game/_universal/__init__.py +0 -1
  125. amulet_core-2.0a7/src/amulet/game/_universal/_biome.py +0 -17
  126. amulet_core-2.0a7/src/amulet/game/_universal/_block.py +0 -47
  127. amulet_core-2.0a7/src/amulet/game/_universal/_version.py +0 -68
  128. amulet_core-2.0a7/src/amulet/game/abc/__init__.py +0 -22
  129. amulet_core-2.0a7/src/amulet/game/abc/_block_specification.py +0 -150
  130. amulet_core-2.0a7/src/amulet/game/abc/biome.py +0 -213
  131. amulet_core-2.0a7/src/amulet/game/abc/block.py +0 -331
  132. amulet_core-2.0a7/src/amulet/game/abc/game_version_container.py +0 -25
  133. amulet_core-2.0a7/src/amulet/game/abc/json_interface.py +0 -27
  134. amulet_core-2.0a7/src/amulet/game/abc/version.py +0 -44
  135. amulet_core-2.0a7/src/amulet/game/bedrock/__init__.py +0 -1
  136. amulet_core-2.0a7/src/amulet/game/bedrock/_biome.py +0 -35
  137. amulet_core-2.0a7/src/amulet/game/bedrock/_block.py +0 -42
  138. amulet_core-2.0a7/src/amulet/game/bedrock/_version.py +0 -165
  139. amulet_core-2.0a7/src/amulet/game/java/__init__.py +0 -2
  140. amulet_core-2.0a7/src/amulet/game/java/_biome.py +0 -35
  141. amulet_core-2.0a7/src/amulet/game/java/_block.py +0 -60
  142. amulet_core-2.0a7/src/amulet/game/java/_version.py +0 -176
  143. amulet_core-2.0a7/src/amulet/game/translate/__init__.py +0 -12
  144. amulet_core-2.0a7/src/amulet/game/translate/_functions/__init__.py +0 -15
  145. amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/__init__.py +0 -0
  146. amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/_text.py +0 -553
  147. amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/banner_pattern.py +0 -67
  148. amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/bedrock_chest_connection.py +0 -152
  149. amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/bedrock_moving_block_pos.py +0 -88
  150. amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/bedrock_sign.py +0 -152
  151. amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/bedrock_skull_rotation.py +0 -16
  152. amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/custom_name.py +0 -146
  153. amulet_core-2.0a7/src/amulet/game/translate/_functions/_frozen.py +0 -66
  154. amulet_core-2.0a7/src/amulet/game/translate/_functions/_state.py +0 -54
  155. amulet_core-2.0a7/src/amulet/game/translate/_functions/_typing.py +0 -98
  156. amulet_core-2.0a7/src/amulet/game/translate/_functions/abc.py +0 -123
  157. amulet_core-2.0a7/src/amulet/game/translate/_functions/carry_nbt.py +0 -160
  158. amulet_core-2.0a7/src/amulet/game/translate/_functions/carry_properties.py +0 -80
  159. amulet_core-2.0a7/src/amulet/game/translate/_functions/code.py +0 -143
  160. amulet_core-2.0a7/src/amulet/game/translate/_functions/map_block_name.py +0 -66
  161. amulet_core-2.0a7/src/amulet/game/translate/_functions/map_nbt.py +0 -111
  162. amulet_core-2.0a7/src/amulet/game/translate/_functions/map_properties.py +0 -93
  163. amulet_core-2.0a7/src/amulet/game/translate/_functions/multiblock.py +0 -112
  164. amulet_core-2.0a7/src/amulet/game/translate/_functions/new_block.py +0 -42
  165. amulet_core-2.0a7/src/amulet/game/translate/_functions/new_entity.py +0 -43
  166. amulet_core-2.0a7/src/amulet/game/translate/_functions/new_nbt.py +0 -206
  167. amulet_core-2.0a7/src/amulet/game/translate/_functions/new_properties.py +0 -64
  168. amulet_core-2.0a7/src/amulet/game/translate/_functions/sequence.py +0 -51
  169. amulet_core-2.0a7/src/amulet/game/translate/_functions/walk_input_nbt.py +0 -331
  170. amulet_core-2.0a7/src/amulet/game/translate/_translator.py +0 -433
  171. amulet_core-2.0a7/src/amulet/img/__init__.py +0 -10
  172. amulet_core-2.0a7/src/amulet/img/missing_no.png +0 -0
  173. amulet_core-2.0a7/src/amulet/img/missing_pack.png +0 -0
  174. amulet_core-2.0a7/src/amulet/img/missing_world.png +0 -0
  175. amulet_core-2.0a7/src/amulet/io/binary_reader.hpp +0 -45
  176. amulet_core-2.0a7/src/amulet/io/binary_writer.hpp +0 -30
  177. amulet_core-2.0a7/src/amulet/item.py +0 -75
  178. amulet_core-2.0a7/src/amulet/level/__init__.pyi +0 -23
  179. amulet_core-2.0a7/src/amulet/level/_init_level.py.cpp +0 -25
  180. amulet_core-2.0a7/src/amulet/level/_load.py +0 -100
  181. amulet_core-2.0a7/src/amulet/level/abc/__init__.py +0 -12
  182. amulet_core-2.0a7/src/amulet/level/abc/_chunk_handle.py +0 -335
  183. amulet_core-2.0a7/src/amulet/level/abc/_dimension.py +0 -86
  184. amulet_core-2.0a7/src/amulet/level/abc/_history/__init__.py +0 -1
  185. amulet_core-2.0a7/src/amulet/level/abc/_history/_cache.py +0 -224
  186. amulet_core-2.0a7/src/amulet/level/abc/_history/_history_manager.py +0 -291
  187. amulet_core-2.0a7/src/amulet/level/abc/_level/__init__.py +0 -5
  188. amulet_core-2.0a7/src/amulet/level/abc/_level/_compactable_level.py +0 -10
  189. amulet_core-2.0a7/src/amulet/level/abc/_level/_creatable_level.py +0 -28
  190. amulet_core-2.0a7/src/amulet/level/abc/_level/_disk_level.py +0 -17
  191. amulet_core-2.0a7/src/amulet/level/abc/_level/_level.py +0 -449
  192. amulet_core-2.0a7/src/amulet/level/abc/_level/_loadable_level.py +0 -42
  193. amulet_core-2.0a7/src/amulet/level/abc/_player_storage.py +0 -7
  194. amulet_core-2.0a7/src/amulet/level/abc/_raw_level.py +0 -187
  195. amulet_core-2.0a7/src/amulet/level/abc/_registry.py +0 -40
  196. amulet_core-2.0a7/src/amulet/level/java/__init__.pyi +0 -16
  197. amulet_core-2.0a7/src/amulet/level/java/__init_java.py.cpp +0 -23
  198. amulet_core-2.0a7/src/amulet/level/java/_chunk_handle.py +0 -17
  199. amulet_core-2.0a7/src/amulet/level/java/_dimension.py +0 -20
  200. amulet_core-2.0a7/src/amulet/level/java/_level.py +0 -184
  201. amulet_core-2.0a7/src/amulet/level/java/_raw/__init__.pyi +0 -15
  202. amulet_core-2.0a7/src/amulet/level/java/_raw/__init_java_raw.py.cpp +0 -31
  203. amulet_core-2.0a7/src/amulet/level/java/_raw/_chunk.pyi +0 -23
  204. amulet_core-2.0a7/src/amulet/level/java/_raw/_constant.py +0 -9
  205. amulet_core-2.0a7/src/amulet/level/java/_raw/_data_pack/__init__.py +0 -2
  206. amulet_core-2.0a7/src/amulet/level/java/_raw/_data_pack/data_pack.py +0 -241
  207. amulet_core-2.0a7/src/amulet/level/java/_raw/_data_pack/data_pack_manager.py +0 -77
  208. amulet_core-2.0a7/src/amulet/level/java/_raw/_dimension.py +0 -86
  209. amulet_core-2.0a7/src/amulet/level/java/_raw/_level.py +0 -507
  210. amulet_core-2.0a7/src/amulet/level/java/_raw/_typing.py +0 -3
  211. amulet_core-2.0a7/src/amulet/level/java/_raw/java_chunk_decode.cpp +0 -531
  212. amulet_core-2.0a7/src/amulet/level/java/_raw/java_chunk_decode.hpp +0 -23
  213. amulet_core-2.0a7/src/amulet/level/java/_raw/java_chunk_encode.cpp +0 -25
  214. amulet_core-2.0a7/src/amulet/level/java/_raw/java_chunk_encode.hpp +0 -23
  215. amulet_core-2.0a7/src/amulet/level/java/anvil/__init__.py +0 -2
  216. amulet_core-2.0a7/src/amulet/level/java/anvil/_dimension.py +0 -170
  217. amulet_core-2.0a7/src/amulet/level/java/anvil/_region.py +0 -421
  218. amulet_core-2.0a7/src/amulet/level/java/anvil/_sector_manager.py +0 -223
  219. amulet_core-2.0a7/src/amulet/level/java/chunk.pyi +0 -81
  220. amulet_core-2.0a7/src/amulet/level/java/chunk_/_chunk.py +0 -260
  221. amulet_core-2.0a7/src/amulet/level/java/chunk_/components/inhabited_time.py +0 -12
  222. amulet_core-2.0a7/src/amulet/level/java/chunk_/components/last_update.py +0 -12
  223. amulet_core-2.0a7/src/amulet/level/java/chunk_/components/legacy_version.py +0 -12
  224. amulet_core-2.0a7/src/amulet/level/java/chunk_/components/light_populated.py +0 -12
  225. amulet_core-2.0a7/src/amulet/level/java/chunk_/components/named_height_2d.py +0 -37
  226. amulet_core-2.0a7/src/amulet/level/java/chunk_/components/status.py +0 -11
  227. amulet_core-2.0a7/src/amulet/level/java/chunk_/components/terrain_populated.py +0 -12
  228. amulet_core-2.0a7/src/amulet/level/java/chunk_components/_init_java_chunk_components.py.cpp +0 -13
  229. amulet_core-2.0a7/src/amulet/level/java/chunk_components/data_version_component.cpp +0 -32
  230. amulet_core-2.0a7/src/amulet/level/java/chunk_components/data_version_component.hpp +0 -31
  231. amulet_core-2.0a7/src/amulet/level/java/chunk_components/data_version_component.py.cpp +0 -23
  232. amulet_core-2.0a7/src/amulet/level/java/chunk_components/java_raw_chunk_component.cpp +0 -56
  233. amulet_core-2.0a7/src/amulet/level/java/chunk_components/java_raw_chunk_component.hpp +0 -45
  234. amulet_core-2.0a7/src/amulet/level/java/chunk_components/java_raw_chunk_component.py.cpp +0 -51
  235. amulet_core-2.0a7/src/amulet/level/java/chunk_components.pyi +0 -22
  236. amulet_core-2.0a7/src/amulet/level/java/java_chunk.cpp +0 -170
  237. amulet_core-2.0a7/src/amulet/level/java/java_chunk.hpp +0 -141
  238. amulet_core-2.0a7/src/amulet/level/java/java_chunk.py.cpp +0 -161
  239. amulet_core-2.0a7/src/amulet/level/java/long_array.hpp +0 -175
  240. amulet_core-2.0a7/src/amulet/level/java/long_array.py.cpp +0 -193
  241. amulet_core-2.0a7/src/amulet/level/java/long_array.pyi +0 -39
  242. amulet_core-2.0a7/src/amulet/level/temporary_level/__init__.py +0 -1
  243. amulet_core-2.0a7/src/amulet/level/temporary_level/_level.py +0 -16
  244. amulet_core-2.0a7/src/amulet/mesh/__init__.py +0 -0
  245. amulet_core-2.0a7/src/amulet/mesh/block/__init__.py +0 -1
  246. amulet_core-2.0a7/src/amulet/mesh/block/block_mesh.py +0 -369
  247. amulet_core-2.0a7/src/amulet/mesh/block/cube.py +0 -149
  248. amulet_core-2.0a7/src/amulet/mesh/block/missing_block.py +0 -20
  249. amulet_core-2.0a7/src/amulet/mesh/util.py +0 -17
  250. amulet_core-2.0a7/src/amulet/palette/biome_palette.hpp +0 -85
  251. amulet_core-2.0a7/src/amulet/palette/biome_palette.py.cpp +0 -102
  252. amulet_core-2.0a7/src/amulet/palette/block_palette.cpp +0 -32
  253. amulet_core-2.0a7/src/amulet/palette/block_palette.hpp +0 -93
  254. amulet_core-2.0a7/src/amulet/palette/block_palette.py.cpp +0 -102
  255. amulet_core-2.0a7/src/amulet/player.py +0 -62
  256. amulet_core-2.0a7/src/amulet/pybind11/collections.hpp +0 -118
  257. amulet_core-2.0a7/src/amulet/pybind11/numpy.hpp +0 -26
  258. amulet_core-2.0a7/src/amulet/pybind11/py_module.hpp +0 -34
  259. amulet_core-2.0a7/src/amulet/pybind11/type_hints.hpp +0 -51
  260. amulet_core-2.0a7/src/amulet/pybind11/types.hpp +0 -25
  261. amulet_core-2.0a7/src/amulet/pybind11/typing.hpp +0 -7
  262. amulet_core-2.0a7/src/amulet/resource_pack/__init__.py +0 -62
  263. amulet_core-2.0a7/src/amulet/resource_pack/abc/__init__.py +0 -2
  264. amulet_core-2.0a7/src/amulet/resource_pack/abc/resource_pack.py +0 -38
  265. amulet_core-2.0a7/src/amulet/resource_pack/abc/resource_pack_manager.py +0 -87
  266. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/__init__.py +0 -2
  267. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/bedrock_vanilla_fix/pack_icon.png +0 -0
  268. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/grass_carried.png +0 -0
  269. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/grass_side_carried.png +0 -0
  270. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/water.png +0 -0
  271. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/__init__.py +0 -31
  272. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/air.py +0 -35
  273. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/base_blockshape.py +0 -29
  274. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/bubble_column.py +0 -29
  275. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/cake.py +0 -46
  276. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/chest.py +0 -54
  277. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/comparator.py +0 -51
  278. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/cross_texture.py +0 -186
  279. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/cross_texture0.py +0 -17
  280. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/cross_texture_green.py +0 -16
  281. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/cube.py +0 -38
  282. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/default.py +0 -14
  283. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door.py +0 -38
  284. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door1.py +0 -14
  285. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door2.py +0 -14
  286. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door3.py +0 -14
  287. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door4.py +0 -14
  288. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door5.py +0 -14
  289. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door6.py +0 -14
  290. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/double_plant.py +0 -40
  291. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/enchanting_table.py +0 -22
  292. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/farmland.py +0 -22
  293. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/fence.py +0 -22
  294. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/flat.py +0 -55
  295. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/flat_wall.py +0 -55
  296. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/furnace.py +0 -44
  297. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/furnace_lit.py +0 -14
  298. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/green_cube.py +0 -39
  299. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/ladder.py +0 -36
  300. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/lilypad.py +0 -14
  301. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/partial_block.py +0 -57
  302. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/piston.py +0 -44
  303. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/piston_arm.py +0 -72
  304. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/portal_frame.py +0 -22
  305. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/pressure_plate.py +0 -29
  306. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/pumpkin.py +0 -36
  307. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/pumpkin_carved.py +0 -14
  308. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/pumpkin_lit.py +0 -14
  309. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/red_dust.py +0 -14
  310. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/repeater.py +0 -53
  311. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/slab.py +0 -33
  312. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/slab_double.py +0 -15
  313. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/tree.py +0 -41
  314. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/turtle_egg.py +0 -15
  315. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/vine.py +0 -52
  316. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/wall.py +0 -22
  317. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/water.py +0 -38
  318. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/download_resources.py +0 -147
  319. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/resource_pack.py +0 -40
  320. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/resource_pack_manager.py +0 -361
  321. amulet_core-2.0a7/src/amulet/resource_pack/bedrock/sort_blockshapes.py +0 -15
  322. amulet_core-2.0a7/src/amulet/resource_pack/java/__init__.py +0 -2
  323. amulet_core-2.0a7/src/amulet/resource_pack/java/download_resources.py +0 -212
  324. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_black.png +0 -0
  325. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_blue.png +0 -0
  326. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_brown.png +0 -0
  327. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_cyan.png +0 -0
  328. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_gray.png +0 -0
  329. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_green.png +0 -0
  330. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_light_blue.png +0 -0
  331. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_light_gray.png +0 -0
  332. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_lime.png +0 -0
  333. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_magenta.png +0 -0
  334. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_orange.png +0 -0
  335. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_pink.png +0 -0
  336. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_purple.png +0 -0
  337. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_red.png +0 -0
  338. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_white.png +0 -0
  339. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_yellow.png +0 -0
  340. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/barrier.png +0 -0
  341. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/end_portal.png +0 -0
  342. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/grass.png +0 -0
  343. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/lava.png +0 -0
  344. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/structure_void.png +0 -0
  345. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/water.png +0 -0
  346. amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/pack.png +0 -0
  347. amulet_core-2.0a7/src/amulet/resource_pack/java/resource_pack.py +0 -44
  348. amulet_core-2.0a7/src/amulet/resource_pack/java/resource_pack_manager.py +0 -551
  349. amulet_core-2.0a7/src/amulet/resource_pack/unknown_resource_pack.py +0 -10
  350. amulet_core-2.0a7/src/amulet/selection/__init__.py +0 -2
  351. amulet_core-2.0a7/src/amulet/selection/abstract_selection.py +0 -342
  352. amulet_core-2.0a7/src/amulet/selection/box.py +0 -852
  353. amulet_core-2.0a7/src/amulet/selection/group.py +0 -481
  354. amulet_core-2.0a7/src/amulet/utils/__init__.pyi +0 -23
  355. amulet_core-2.0a7/src/amulet/utils/_init_utils.py.cpp +0 -11
  356. amulet_core-2.0a7/src/amulet/utils/call_spec/__init__.py +0 -24
  357. amulet_core-2.0a7/src/amulet/utils/call_spec/_call_spec.py +0 -257
  358. amulet_core-2.0a7/src/amulet/utils/comment_json.py +0 -188
  359. amulet_core-2.0a7/src/amulet/utils/format_utils.py +0 -41
  360. amulet_core-2.0a7/src/amulet/utils/generator.py +0 -18
  361. amulet_core-2.0a7/src/amulet/utils/matrix.py +0 -243
  362. amulet_core-2.0a7/src/amulet/utils/numpy.hpp +0 -36
  363. amulet_core-2.0a7/src/amulet/utils/numpy.py.cpp +0 -51
  364. amulet_core-2.0a7/src/amulet/utils/numpy.pyi +0 -11
  365. amulet_core-2.0a7/src/amulet/utils/numpy_helpers.py +0 -19
  366. amulet_core-2.0a7/src/amulet/utils/shareable_lock.py +0 -335
  367. amulet_core-2.0a7/src/amulet/utils/signal/__init__.py +0 -10
  368. amulet_core-2.0a7/src/amulet/utils/signal/_signal.py +0 -228
  369. amulet_core-2.0a7/src/amulet/utils/task_manager.py +0 -235
  370. amulet_core-2.0a7/src/amulet/utils/typed_property.py +0 -111
  371. amulet_core-2.0a7/src/amulet/utils/weakref.py +0 -70
  372. amulet_core-2.0a7/src/amulet/utils/world_utils.py +0 -102
  373. amulet_core-2.0a7/src/amulet/version.cpp +0 -136
  374. amulet_core-2.0a7/src/amulet/version.hpp +0 -142
  375. amulet_core-2.0a7/src/amulet/version.py.cpp +0 -281
  376. amulet_core-2.0a7/src/amulet_core.egg-info/SOURCES.txt +0 -329
  377. amulet_core-2.0a7/src/amulet_core.egg-info/entry_points.txt +0 -2
  378. amulet_core-2.0a7/src/amulet_core.egg-info/requires.txt +0 -21
  379. {amulet_core-2.0a7 → amulet_core-2.0a9}/README.md +0 -0
  380. {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/__pyinstaller/__init__.py +0 -0
  381. {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/py.typed +0 -0
  382. {amulet_core-2.0a7 → amulet_core-2.0a9}/src/amulet_core.egg-info/dependency_links.txt +0 -0
  383. {amulet_core-2.0a7 → amulet_core-2.0a9}/src/amulet_core.egg-info/top_level.txt +0 -0
@@ -0,0 +1,111 @@
1
+ cmake_minimum_required(VERSION 3.13)
2
+
3
+ project(amulet_core LANGUAGES CXX)
4
+
5
+ # Set C++20
6
+ set(CMAKE_CXX_STANDARD 20)
7
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
8
+ set(CMAKE_CXX_EXTENSIONS OFF)
9
+
10
+ # Set platform variables
11
+ if (WIN32)
12
+ # set windows 7 as the minimum version
13
+ add_definitions(-D_WIN32_WINNT=0x0601)
14
+ elseif(APPLE)
15
+ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15")
16
+ else()
17
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
18
+ endif()
19
+
20
+ if (MSVC)
21
+ add_definitions("/MP")
22
+ endif()
23
+
24
+ include(FetchContent)
25
+
26
+ # Add zlib
27
+ set(ZLIB_BUILD_EXAMPLES OFF)
28
+ FetchContent_Declare(
29
+ zlib
30
+ GIT_REPOSITORY https://github.com/madler/zlib.git
31
+ GIT_TAG 51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf
32
+ )
33
+ FetchContent_MakeAvailable(zlib)
34
+ set(ZLIB_ROOT ${zlib_SOURCE_DIR})
35
+ set(ZLIB_USE_STATIC_LIBS ON)
36
+ set(ZLIB_LIBRARY ${INSTALL_LIB_DIR})
37
+ find_package(ZLIB REQUIRED)
38
+ target_compile_definitions(zlibstatic PUBLIC ZLIB_CONST)
39
+
40
+ # Add lz4
41
+ FetchContent_Declare(
42
+ lz4
43
+ GIT_REPOSITORY https://github.com/lz4/lz4.git
44
+ GIT_TAG ebb370ca83af193212df4dcbadcc5d87bc0de2f0
45
+ )
46
+ FetchContent_MakeAvailable(lz4)
47
+ set(LZ4_BUILD_CLI OFF)
48
+ add_subdirectory(${lz4_SOURCE_DIR}/build/cmake)
49
+
50
+ # Add pybind11
51
+ find_package(pybind11 CONFIG REQUIRED)
52
+
53
+ # Add Amulet libraries
54
+ find_package(amulet_pybind11_extensions CONFIG REQUIRED)
55
+ find_package(amulet_io CONFIG REQUIRED)
56
+ find_package(amulet_nbt CONFIG REQUIRED)
57
+
58
+ # Find C++ files
59
+ file(REAL_PATH src SOURCE_PATH)
60
+ file(GLOB_RECURSE EXTENSION_SOURCES LIST_DIRECTORIES false ${SOURCE_PATH}/amulet/*.py.cpp)
61
+ file(GLOB_RECURSE EXTENSION_HEADERS LIST_DIRECTORIES false ${SOURCE_PATH}/amulet/*.py.hpp)
62
+ file(GLOB_RECURSE SOURCES LIST_DIRECTORIES false ${SOURCE_PATH}/amulet/*.cpp)
63
+ file(GLOB_RECURSE HEADERS LIST_DIRECTORIES false ${SOURCE_PATH}/amulet/*.hpp)
64
+ list(REMOVE_ITEM SOURCES ${EXTENSION_SOURCES})
65
+ list(REMOVE_ITEM HEADERS ${EXTENSION_HEADERS})
66
+
67
+ # Add implementation
68
+ add_library(amulet_core SHARED)
69
+ target_link_libraries( amulet_core PRIVATE zlibstatic )
70
+ target_link_libraries( amulet_core PRIVATE lz4_static )
71
+ target_link_libraries( amulet_core PRIVATE amulet_io )
72
+ target_link_libraries( amulet_core PRIVATE amulet_nbt )
73
+ target_compile_definitions(amulet_core PRIVATE ExportAmuletCore)
74
+ target_include_directories(amulet_core PUBLIC ${SOURCE_PATH})
75
+ target_sources(amulet_core PRIVATE ${SOURCES} ${HEADERS})
76
+ foreach(FILE ${SOURCES} ${HEADERS})
77
+ file(RELATIVE_PATH REL_PATH ${SOURCE_PATH} ${FILE})
78
+ get_filename_component(GROUP ${REL_PATH} DIRECTORY)
79
+ string(REPLACE "/" "\\" GROUP ${GROUP})
80
+ source_group(${GROUP} FILES ${FILE})
81
+ endforeach()
82
+
83
+ # Add python extension
84
+ pybind11_add_module(_amulet_core)
85
+ target_link_libraries( _amulet_core PRIVATE amulet_pybind11_extensions )
86
+ target_link_libraries( _amulet_core PRIVATE amulet_io )
87
+ target_link_libraries( _amulet_core PRIVATE amulet_nbt )
88
+ target_link_libraries( _amulet_core PRIVATE amulet_core )
89
+ target_compile_definitions(_amulet_core PRIVATE PYBIND11_DETAILED_ERROR_MESSAGES)
90
+ target_compile_definitions(_amulet_core PRIVATE PYBIND11_VERSION="${pybind11_VERSION}")
91
+ target_compile_definitions(_amulet_core PRIVATE COMPILER_ID="${CMAKE_CXX_COMPILER_ID}")
92
+ target_compile_definitions(_amulet_core PRIVATE COMPILER_VERSION="${CMAKE_CXX_COMPILER_VERSION}")
93
+ target_sources(_amulet_core PRIVATE ${EXTENSION_SOURCES} ${EXTENSION_HEADERS})
94
+ foreach(FILE ${EXTENSION_SOURCES} ${EXTENSION_HEADERS})
95
+ file(RELATIVE_PATH REL_PATH ${SOURCE_PATH} ${FILE})
96
+ get_filename_component(GROUP ${REL_PATH} DIRECTORY)
97
+ string(REPLACE "/" "\\" GROUP ${GROUP})
98
+ source_group(${GROUP} FILES ${FILE})
99
+ endforeach()
100
+
101
+ if(NOT DEFINED AMULET_CORE_EXT_DIR)
102
+ set(AMULET_CORE_EXT_DIR ${amulet_core_DIR})
103
+ endif()
104
+
105
+ # Install
106
+ install(TARGETS amulet_core DESTINATION ${amulet_core_DIR})
107
+ install(TARGETS _amulet_core DESTINATION ${AMULET_CORE_EXT_DIR})
108
+
109
+ if (DEFINED BUILD_AMULET_CORE_TESTS)
110
+ add_subdirectory(tests)
111
+ endif()
@@ -0,0 +1,8 @@
1
+ include build_requires.py
2
+ include requirements.py
3
+
4
+ recursive-include src/amulet *.cpp *.hpp *Config.cmake
5
+
6
+ include CMakeLists.txt
7
+
8
+ prune tests
@@ -1,34 +1,40 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: amulet-core
3
- Version: 2.0a7
3
+ Version: 2.0a9
4
4
  Summary: A Python library for reading/writing Minecraft's various save formats.
5
- Home-page: https://www.amuletmc.com
6
- Author: James Clare, Ben Gothard et al.
7
- Author-email: amuleteditor@gmail.com
8
- Platform: any
5
+ Author: James Clare, Ben Gothard
6
+ Project-URL: Homepage, https://www.amuletmc.com
7
+ Project-URL: Repository, https://github.com/Amulet-Team/Amulet-Core
8
+ Project-URL: Issues, https://github.com/Amulet-Team/Amulet-Core/issues
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.11
12
12
  Description-Content-Type: text/markdown
13
+ Requires-Dist: amulet-compiler-target==1.0
13
14
  Requires-Dist: numpy~=2.0
14
- Requires-Dist: amulet-nbt~=4.0a3
15
- Requires-Dist: portalocker~=2.4
16
- Requires-Dist: amulet-leveldb~=1.0b0
17
- Requires-Dist: platformdirs~=3.1
18
- Requires-Dist: amulet-runtime-final~=1.1
19
- Requires-Dist: pillow~=10.0
20
- Requires-Dist: lz4~=4.3
15
+ Requires-Dist: amulet-compiler-version==1.3.0
16
+ Requires-Dist: amulet_pybind11_extensions~=1.0
17
+ Requires-Dist: amulet_io~=1.0
18
+ Requires-Dist: amulet_nbt==4.0a20
21
19
  Provides-Extra: docs
22
20
  Requires-Dist: Sphinx>=1.7.4; extra == "docs"
23
21
  Requires-Dist: sphinx-autodoc-typehints>=1.3.0; extra == "docs"
24
22
  Requires-Dist: sphinx_rtd_theme>=0.3.1; extra == "docs"
25
23
  Provides-Extra: dev
24
+ Requires-Dist: setuptools>=42; extra == "dev"
25
+ Requires-Dist: versioneer; extra == "dev"
26
+ Requires-Dist: packaging; extra == "dev"
27
+ Requires-Dist: wheel; extra == "dev"
28
+ Requires-Dist: pybind11[global]==2.13.6; extra == "dev"
29
+ Requires-Dist: amulet_pybind11_extensions~=1.0; extra == "dev"
30
+ Requires-Dist: pybind11_stubgen>=2.5.4; extra == "dev"
26
31
  Requires-Dist: black>=22.3; extra == "dev"
27
- Requires-Dist: pre_commit>=1.11.1; extra == "dev"
28
- Requires-Dist: mypy; extra == "dev"
29
- Requires-Dist: types-pyinstaller; extra == "dev"
30
32
  Requires-Dist: isort; extra == "dev"
31
33
  Requires-Dist: autoflake; extra == "dev"
34
+ Requires-Dist: mypy; extra == "dev"
35
+ Requires-Dist: types-pyinstaller; extra == "dev"
36
+ Requires-Dist: amulet-test-utils~=1.1; extra == "dev"
37
+ Dynamic: requires-dist
32
38
 
33
39
  # Amulet Core
34
40
 
@@ -0,0 +1,23 @@
1
+ from typing import Union, Mapping
2
+ import requirements
3
+
4
+ from setuptools import build_meta
5
+ from setuptools.build_meta import *
6
+
7
+
8
+ def get_requires_for_build_wheel(
9
+ config_settings: Union[Mapping[str, Union[str, list[str], None]], None] = None,
10
+ ) -> list[str]:
11
+ return [
12
+ *build_meta.get_requires_for_build_wheel(config_settings),
13
+ *requirements.get_compile_dependencies(config_settings),
14
+ ]
15
+
16
+
17
+ def get_requires_for_build_editable(
18
+ config_settings: Union[Mapping[str, Union[str, list[str], None]], None] = None,
19
+ ) -> list[str]:
20
+ return [
21
+ *build_meta.get_requires_for_build_editable(config_settings),
22
+ *requirements.get_compile_dependencies(config_settings),
23
+ ]
@@ -0,0 +1,76 @@
1
+ [build-system]
2
+ requires = [
3
+ "setuptools>=42",
4
+ "versioneer",
5
+ "packaging"
6
+ ]
7
+ build-backend = "build_requires"
8
+ backend-path = [""]
9
+
10
+ [project]
11
+ name = "amulet-core"
12
+ authors = [
13
+ {name = "James Clare"},
14
+ {name = "Ben Gothard"},
15
+ ]
16
+ description = "A Python library for reading/writing Minecraft's various save formats."
17
+ dynamic = ["version", "readme", "dependencies"]
18
+ requires-python = ">=3.11"
19
+ classifiers = [
20
+ "Programming Language :: Python :: 3",
21
+ "Operating System :: OS Independent",
22
+ ]
23
+
24
+ [project.optional-dependencies]
25
+ docs = [
26
+ "Sphinx>=1.7.4",
27
+ "sphinx-autodoc-typehints>=1.3.0",
28
+ "sphinx_rtd_theme>=0.3.1",
29
+ ]
30
+ dev = [
31
+ "setuptools>=42",
32
+ "versioneer",
33
+ "packaging",
34
+ "wheel",
35
+ "pybind11[global]==2.13.6",
36
+ "amulet_pybind11_extensions~=1.0",
37
+ "pybind11_stubgen>=2.5.4",
38
+ "black>=22.3",
39
+ "isort",
40
+ "autoflake",
41
+ "mypy",
42
+ "types-pyinstaller",
43
+ "amulet-test-utils~=1.1",
44
+ ]
45
+
46
+ [project.urls]
47
+ Homepage = "https://www.amuletmc.com"
48
+ Repository = "https://github.com/Amulet-Team/Amulet-Core"
49
+ Issues = "https://github.com/Amulet-Team/Amulet-Core/issues"
50
+
51
+ [tool.setuptools]
52
+ include-package-data = false
53
+
54
+ [tool.setuptools.package-data]
55
+ "*" = [
56
+ "*Config.cmake",
57
+ "**/*.hpp",
58
+ "**/*.dll",
59
+ "**/*.so",
60
+ "**/*.dylib",
61
+ "**/*.lib",
62
+ ]
63
+
64
+ [tool.setuptools.dynamic]
65
+ readme = {file = ["README.md"], content-type = "text/markdown"}
66
+
67
+ [project.entry-points.pyinstaller40]
68
+ hook-dirs = "amulet.core.__pyinstaller:get_hook_dirs"
69
+
70
+ [tool.versioneer]
71
+ VCS = "git"
72
+ style = "pep440"
73
+ versionfile_source = "src/amulet/core/_version.py"
74
+ versionfile_build = "amulet/core/_version.py"
75
+ tag_prefix = ""
76
+ parentdir_prefix = "amulet-"
@@ -0,0 +1,46 @@
1
+ from typing import Union, Mapping
2
+ import os
3
+
4
+ AMULET_COMPILER_VERSION_REQUIREMENT = "==1.3.0"
5
+ # AMULET_NBT_REQUIREMENT = "~=4.0"
6
+ AMULET_NBT_REQUIREMENT = "==4.0a20"
7
+ AMULET_PYBIND11_EXTENSIONS_REQUIREMENT = "~=1.0"
8
+ AMULET_IO_REQUIREMENT = "~=1.0"
9
+
10
+ _compile_dependencies: dict[str, str] = {
11
+ "wheel": "",
12
+ "pybind11": "==2.13.6",
13
+ "amulet_pybind11_extensions": AMULET_PYBIND11_EXTENSIONS_REQUIREMENT,
14
+ "amulet_nbt": AMULET_NBT_REQUIREMENT,
15
+ "amulet_io": AMULET_IO_REQUIREMENT,
16
+ }
17
+
18
+ fixed_runtime_dependencies_data: dict[str, str] = {
19
+ "amulet-compiler-target": "==1.0",
20
+ "numpy": "~=2.0",
21
+ }
22
+
23
+
24
+ def get_compile_dependencies_data(
25
+ config_settings: Union[Mapping[str, Union[str, list[str], None]], None] = None,
26
+ ) -> dict[str, str]:
27
+ reqs = _compile_dependencies.copy()
28
+ if (
29
+ config_settings and config_settings.get("AMULET_FREEZE_COMPILER")
30
+ ) or os.environ.get("AMULET_FREEZE_COMPILER", None):
31
+ reqs["amulet-compiler-version"] = (
32
+ "@git+https://github.com/Amulet-Team/Amulet-Compiler-Version.git@1.0"
33
+ )
34
+ return reqs
35
+
36
+
37
+ def get_compile_dependencies(
38
+ config_settings: Union[Mapping[str, Union[str, list[str], None]], None] = None,
39
+ ) -> list:
40
+ return [
41
+ f"{k}{v}" for k, v in get_compile_dependencies_data(config_settings).items()
42
+ ]
43
+
44
+
45
+ def get_fixed_runtime_dependencies() -> list[str]:
46
+ return [f"{k}{v}" for k, v in fixed_runtime_dependencies_data.items()]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,147 @@
1
+ import os
2
+ import subprocess
3
+ import sys
4
+ from pathlib import Path
5
+ import requirements
6
+
7
+ from setuptools import setup, Extension, Command
8
+ from setuptools.command.build_ext import build_ext
9
+ from packaging.version import Version
10
+
11
+ import versioneer
12
+
13
+
14
+ def fix_path(path: str) -> str:
15
+ return os.path.realpath(path).replace(os.sep, "/")
16
+
17
+
18
+ dependencies = requirements.get_fixed_runtime_dependencies()
19
+ setup_args = {}
20
+
21
+
22
+ def add_dependency(lib_name: str, version_str: str) -> None:
23
+ version = Version(version_str)
24
+ if version.is_prerelease:
25
+ # Breaking API changes can be made between pre-release versions. Pin to this exact release.
26
+ dependencies.append(f"{lib_name}=={version_str}")
27
+ else:
28
+ # Major - breaking API change. Dependents must be updated and recompiled.
29
+ major = version.major
30
+ # Minor - backwards compatible API change. Dependents must be recompiled.
31
+ minor = version.minor
32
+ # Patch - API unchanged. Dependents must be recompiled.
33
+ patch = version.micro
34
+ # Fix - API unchanged. Dependents do not need to be recompiled.
35
+ dependencies.append(f"{lib_name}~={major}.{minor}.{patch}.0")
36
+
37
+
38
+ try:
39
+ import amulet_compiler_version
40
+ except ImportError:
41
+ dependencies.append(
42
+ f"amulet-compiler-version{requirements.AMULET_COMPILER_VERSION_REQUIREMENT}"
43
+ )
44
+ else:
45
+ if os.environ.get("AMULET_FREEZE_COMPILER", None):
46
+ dependencies.append(
47
+ f"amulet-compiler-version=={amulet_compiler_version.__version__}"
48
+ )
49
+ setup_args["options"] = {
50
+ "bdist_wheel": {
51
+ "build_number": f"1.{amulet_compiler_version.compiler_id}.{amulet_compiler_version.compiler_version}"
52
+ }
53
+ }
54
+ else:
55
+ dependencies.append(
56
+ f"amulet-compiler-version{requirements.AMULET_COMPILER_VERSION_REQUIREMENT}"
57
+ )
58
+
59
+ try:
60
+ import amulet.pybind11_extensions
61
+ except ImportError:
62
+ dependencies.append(
63
+ f"amulet_pybind11_extensions{requirements.AMULET_PYBIND11_EXTENSIONS_REQUIREMENT}"
64
+ )
65
+ else:
66
+ add_dependency("amulet_pybind11_extensions", amulet.pybind11_extensions.__version__)
67
+
68
+ try:
69
+ import amulet.io
70
+ except ImportError:
71
+ dependencies.append(f"amulet_io{requirements.AMULET_IO_REQUIREMENT}")
72
+ else:
73
+ add_dependency("amulet_io", amulet.io.__version__)
74
+
75
+ try:
76
+ import amulet.nbt
77
+ except ImportError:
78
+ dependencies.append(f"amulet_nbt{requirements.AMULET_NBT_REQUIREMENT}")
79
+ else:
80
+ add_dependency("amulet_nbt", amulet.nbt.__version__)
81
+
82
+
83
+ cmdclass: dict[str, type[Command]] = versioneer.get_cmdclass()
84
+
85
+
86
+ class CMakeBuild(cmdclass.get("build_ext", build_ext)):
87
+ def build_extension(self, ext):
88
+ import pybind11
89
+ import amulet.pybind11_extensions
90
+ import amulet.io
91
+ import amulet.nbt
92
+
93
+ ext_dir = (
94
+ (Path.cwd() / self.get_ext_fullpath("")).parent.resolve()
95
+ / "amulet"
96
+ / "core"
97
+ )
98
+ core_src_dir = (
99
+ Path.cwd() / "src" / "amulet" / "core" if self.editable_mode else ext_dir
100
+ )
101
+
102
+ platform_args = []
103
+ if sys.platform == "win32":
104
+ platform_args.extend(["-G", "Visual Studio 17 2022"])
105
+ if sys.maxsize > 2**32:
106
+ platform_args.extend(["-A", "x64"])
107
+ else:
108
+ platform_args.extend(["-A", "Win32"])
109
+ platform_args.extend(["-T", "v143"])
110
+
111
+ if subprocess.run(
112
+ [
113
+ "cmake",
114
+ *platform_args,
115
+ f"-DPYTHON_EXECUTABLE={sys.executable}",
116
+ f"-Dpybind11_DIR={pybind11.get_cmake_dir().replace(os.sep, '/')}",
117
+ f"-Damulet_pybind11_extensions_DIR={fix_path(amulet.pybind11_extensions.__path__[0])}",
118
+ f"-Damulet_io_DIR={fix_path(amulet.io.__path__[0])}",
119
+ f"-Damulet_nbt_DIR={fix_path(amulet.nbt.__path__[0])}",
120
+ f"-Damulet_core_DIR={fix_path(core_src_dir)}",
121
+ f"-DAMULET_CORE_EXT_DIR={fix_path(ext_dir)}",
122
+ f"-DCMAKE_INSTALL_PREFIX=install",
123
+ "-B",
124
+ "build",
125
+ ]
126
+ ).returncode:
127
+ raise RuntimeError("Error configuring amulet_core")
128
+ if subprocess.run(
129
+ ["cmake", "--build", "build", "--config", "Release"]
130
+ ).returncode:
131
+ raise RuntimeError("Error installing amulet_core")
132
+ if subprocess.run(
133
+ ["cmake", "--install", "build", "--config", "Release"]
134
+ ).returncode:
135
+ raise RuntimeError("Error installing amulet_core")
136
+
137
+
138
+ cmdclass["build_ext"] = CMakeBuild
139
+
140
+
141
+ setup(
142
+ version=versioneer.get_version(),
143
+ cmdclass=cmdclass,
144
+ ext_modules=[Extension("amulet.core._amulet_core", [])],
145
+ install_requires=dependencies,
146
+ **setup_args,
147
+ )
@@ -0,0 +1,36 @@
1
+ import logging
2
+
3
+ from . import _version
4
+
5
+ __version__ = _version.get_versions()["version"]
6
+
7
+ # init a default logger
8
+ logging.basicConfig(level=logging.INFO, format="%(levelname)s - %(message)s")
9
+
10
+
11
+ def _init() -> None:
12
+ import os
13
+ import sys
14
+ import ctypes
15
+
16
+ if sys.platform == "win32":
17
+ lib_path = os.path.join(os.path.dirname(__file__), "amulet_core.dll")
18
+ elif sys.platform == "darwin":
19
+ lib_path = os.path.join(os.path.dirname(__file__), "libamulet_core.dylib")
20
+ elif sys.platform == "linux":
21
+ lib_path = os.path.join(os.path.dirname(__file__), "libamulet_core.so")
22
+ else:
23
+ raise RuntimeError(f"Unsupported platform {sys.platform}")
24
+
25
+ # Import dependencies
26
+ import amulet.nbt
27
+
28
+ # Load the shared library
29
+ ctypes.cdll.LoadLibrary(lib_path)
30
+
31
+ from ._amulet_core import init
32
+
33
+ init(sys.modules[__name__])
34
+
35
+
36
+ _init()
@@ -0,0 +1,4 @@
1
+ from PyInstaller.utils.hooks import collect_data_files, collect_submodules
2
+
3
+ hiddenimports = collect_submodules("amulet.core")
4
+ datas = collect_data_files("amulet.core")
@@ -0,0 +1,40 @@
1
+ #include <pybind11/pybind11.h>
2
+
3
+ #include <amulet/pybind11_extensions/compatibility.hpp>
4
+ #include <amulet/pybind11_extensions/py_module.hpp>
5
+
6
+ namespace py = pybind11;
7
+ namespace pyext = Amulet::pybind11_extensions;
8
+
9
+ void init_version(py::module);
10
+ void init_selection(py::module);
11
+ void init_block(py::module);
12
+ void init_block_entity(py::module);
13
+ void init_entity(py::module);
14
+ void init_biome(py::module);
15
+ void init_palette(py::module);
16
+ void init_chunk(py::module);
17
+
18
+ void init_module(py::module m)
19
+ {
20
+ pyext::init_compiler_config(m);
21
+ pyext::check_compatibility(py::module::import("amulet.nbt"), m);
22
+
23
+ // Submodules
24
+ init_version(m);
25
+ init_selection(m);
26
+ init_block(m);
27
+ init_block_entity(m);
28
+ init_entity(m);
29
+ init_biome(m);
30
+ init_palette(m);
31
+ init_chunk(m);
32
+ }
33
+
34
+ PYBIND11_MODULE(_amulet_core, m)
35
+ {
36
+ py::options options;
37
+ options.disable_function_signatures();
38
+ m.def("init", &init_module, py::doc("init(arg0: types.ModuleType) -> None"));
39
+ options.enable_function_signatures();
40
+ }
@@ -0,0 +1,7 @@
1
+ from __future__ import annotations
2
+
3
+ import types
4
+
5
+ __all__ = ["init"]
6
+
7
+ def init(arg0: types.ModuleType) -> None: ...
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2024-09-25T13:37:55+0100",
11
+ "date": "2025-05-15T16:15:17+0100",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "bef077cfb019dd2608e14edab047d37d75dfba61",
15
- "version": "2.0a7"
14
+ "full-revisionid": "9046da0e208a70cf6d95b1d9661cc2e03a853825",
15
+ "version": "2.0a9"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -0,0 +1,18 @@
1
+ if (NOT TARGET amulet_core)
2
+ message(STATUS "Finding amulet_core")
3
+
4
+ find_package(amulet_io CONFIG REQUIRED)
5
+ find_package(amulet_nbt CONFIG REQUIRED)
6
+
7
+ set(amulet_core_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/../..")
8
+ find_library(amulet_core_LIBRARY NAMES amulet_core PATHS "${CMAKE_CURRENT_LIST_DIR}")
9
+ message(STATUS "amulet_core_LIBRARY: ${amulet_core_LIBRARY}")
10
+
11
+ add_library(amulet_core SHARED IMPORTED)
12
+ set_target_properties(amulet_core PROPERTIES
13
+ INTERFACE_INCLUDE_DIRECTORIES "${amulet_core_INCLUDE_DIR}"
14
+ INTERFACE_LINK_LIBRARIES amulet_io
15
+ INTERFACE_LINK_LIBRARIES amulet_nbt
16
+ IMPORTED_IMPLIB "${amulet_core_LIBRARY}"
17
+ )
18
+ endif()
@@ -3,11 +3,11 @@ from __future__ import annotations
3
3
  import types
4
4
  import typing
5
5
 
6
- import amulet.version
6
+ import amulet.core.version
7
7
 
8
8
  __all__ = ["Biome"]
9
9
 
10
- class Biome(amulet.version.PlatformVersionContainer):
10
+ class Biome(amulet.core.version.PlatformVersionContainer):
11
11
  """
12
12
  A class to manage the state of a biome.
13
13
 
@@ -34,7 +34,7 @@ class Biome(amulet.version.PlatformVersionContainer):
34
34
  def __init__(
35
35
  self,
36
36
  platform: str,
37
- version: amulet.version.VersionNumber,
37
+ version: amulet.core.version.VersionNumber,
38
38
  namespace: str,
39
39
  base_name: str,
40
40
  ) -> None: ...
@@ -0,0 +1,41 @@
1
+ #include <functional>
2
+ #include <map>
3
+ #include <stdexcept>
4
+ #include <string>
5
+ #include <type_traits>
6
+ #include <variant>
7
+
8
+ #include <amulet/core/dll.hpp>
9
+ #include <amulet/nbt/nbt_encoding/binary.hpp>
10
+ #include <amulet/nbt/nbt_encoding/string.hpp>
11
+
12
+ #include "biome.hpp"
13
+
14
+ namespace Amulet {
15
+
16
+ void Biome::serialise(BinaryWriter& writer) const
17
+ {
18
+ writer.write_numeric<std::uint8_t>(1);
19
+ writer.write_size_and_bytes(get_platform());
20
+ get_version().serialise(writer);
21
+ writer.write_size_and_bytes(_namespace);
22
+ writer.write_size_and_bytes(_base_name);
23
+ }
24
+
25
+ Biome Biome::deserialise(BinaryReader& reader)
26
+ {
27
+ auto version_number = reader.read_numeric<std::uint8_t>();
28
+ switch (version_number) {
29
+ case 1: {
30
+ std::string platform { reader.read_size_and_bytes() };
31
+ VersionNumber version = VersionNumber::deserialise(reader);
32
+ std::string namespace_ { reader.read_size_and_bytes() };
33
+ std::string base_name { reader.read_size_and_bytes() };
34
+ return { platform, version, namespace_, base_name };
35
+ }
36
+ default:
37
+ throw std::invalid_argument("Unsupported version " + std::to_string(version_number));
38
+ }
39
+ }
40
+
41
+ }