amulet-core 2.0a7__cp311-cp311-win_amd64.whl → 2.0.1a2.post250529084738__cp311-cp311-win_amd64.whl

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 (325) hide show
  1. amulet/core/__init__.py +36 -0
  2. amulet/core/__pyinstaller/hook-amulet.core.py +4 -0
  3. amulet/core/_amulet_core.cp311-win_amd64.pyd +0 -0
  4. amulet/core/_amulet_core.pyi +7 -0
  5. amulet/{_version.py → core/_version.py} +3 -3
  6. amulet/core/amulet_core.dll +0 -0
  7. amulet/core/amulet_core.lib +0 -0
  8. amulet/core/amulet_coreConfig.cmake +18 -0
  9. amulet/{biome.pyi → core/biome/__init__.pyi} +3 -3
  10. amulet/core/biome/biome.hpp +53 -0
  11. amulet/{block.pyi → core/block/__init__.pyi} +25 -26
  12. amulet/core/block/block.hpp +156 -0
  13. amulet/{block_entity.pyi → core/block_entity/__init__.pyi} +7 -7
  14. amulet/core/block_entity/block_entity.hpp +84 -0
  15. amulet/{errors.py → core/chunk/__init__.pyi} +37 -33
  16. amulet/core/chunk/chunk.hpp +126 -0
  17. amulet/core/chunk/component/__init__.pyi +18 -0
  18. amulet/core/chunk/component/biome_3d_component.hpp +96 -0
  19. amulet/core/chunk/component/block_component.hpp +101 -0
  20. amulet/core/chunk/component/block_component.pyi +28 -0
  21. amulet/core/chunk/component/block_entity_component.hpp +119 -0
  22. amulet/core/chunk/component/section_array_map.hpp +129 -0
  23. amulet/{chunk_components.pyi → core/chunk/component/section_array_map.pyi} +4 -24
  24. amulet/core/dll.hpp +21 -0
  25. amulet/core/entity/__init__.pyi +105 -0
  26. amulet/core/entity/entity.hpp +100 -0
  27. amulet/{palette → core/palette}/__init__.pyi +2 -2
  28. amulet/core/palette/biome_palette.hpp +65 -0
  29. amulet/{palette → core/palette}/biome_palette.pyi +8 -8
  30. amulet/core/palette/block_palette.hpp +71 -0
  31. amulet/{palette → core/palette}/block_palette.pyi +12 -10
  32. amulet/core/selection/__init__.pyi +8 -0
  33. amulet/core/selection/box.hpp +86 -0
  34. amulet/core/selection/box.pyi +215 -0
  35. amulet/core/selection/group.hpp +80 -0
  36. amulet/core/selection/group.pyi +213 -0
  37. amulet/{version.pyi → core/version/__init__.pyi} +58 -10
  38. amulet/core/version/version.hpp +204 -0
  39. {amulet_core-2.0a7.dist-info → amulet_core-2.0.1a2.post250529084738.dist-info}/METADATA +25 -20
  40. amulet_core-2.0.1a2.post250529084738.dist-info/RECORD +45 -0
  41. {amulet_core-2.0a7.dist-info → amulet_core-2.0.1a2.post250529084738.dist-info}/WHEEL +1 -1
  42. amulet_core-2.0.1a2.post250529084738.dist-info/entry_points.txt +2 -0
  43. amulet/__init__.cp311-win_amd64.pyd +0 -0
  44. amulet/__init__.py.cpp +0 -43
  45. amulet/__init__.pyi +0 -28
  46. amulet/__pyinstaller/hook-amulet.py +0 -4
  47. amulet/_init.py +0 -26
  48. amulet/biome.cpp +0 -36
  49. amulet/biome.hpp +0 -43
  50. amulet/biome.py.cpp +0 -122
  51. amulet/block.cpp +0 -435
  52. amulet/block.hpp +0 -119
  53. amulet/block.py.cpp +0 -377
  54. amulet/block_entity.cpp +0 -12
  55. amulet/block_entity.hpp +0 -56
  56. amulet/block_entity.py.cpp +0 -115
  57. amulet/chunk.cpp +0 -16
  58. amulet/chunk.hpp +0 -99
  59. amulet/chunk.py.cpp +0 -80
  60. amulet/chunk.pyi +0 -28
  61. amulet/chunk_components/biome_3d_component.cpp +0 -5
  62. amulet/chunk_components/biome_3d_component.hpp +0 -79
  63. amulet/chunk_components/block_component.cpp +0 -41
  64. amulet/chunk_components/block_component.hpp +0 -88
  65. amulet/chunk_components/block_entity_component.cpp +0 -5
  66. amulet/chunk_components/block_entity_component.hpp +0 -147
  67. amulet/chunk_components/section_array_map.cpp +0 -129
  68. amulet/chunk_components/section_array_map.hpp +0 -147
  69. amulet/collections/eq.py.hpp +0 -37
  70. amulet/collections/hash.py.hpp +0 -27
  71. amulet/collections/holder.py.hpp +0 -37
  72. amulet/collections/iterator.py.hpp +0 -80
  73. amulet/collections/mapping.py.hpp +0 -199
  74. amulet/collections/mutable_mapping.py.hpp +0 -226
  75. amulet/collections/sequence.py.hpp +0 -163
  76. amulet/collections.pyi +0 -40
  77. amulet/data_types.py +0 -29
  78. amulet/entity.py +0 -182
  79. amulet/game/__init__.py +0 -7
  80. amulet/game/_game.py +0 -152
  81. amulet/game/_universal/__init__.py +0 -1
  82. amulet/game/_universal/_biome.py +0 -17
  83. amulet/game/_universal/_block.py +0 -47
  84. amulet/game/_universal/_version.py +0 -68
  85. amulet/game/abc/__init__.py +0 -22
  86. amulet/game/abc/_block_specification.py +0 -150
  87. amulet/game/abc/biome.py +0 -213
  88. amulet/game/abc/block.py +0 -331
  89. amulet/game/abc/game_version_container.py +0 -25
  90. amulet/game/abc/json_interface.py +0 -27
  91. amulet/game/abc/version.py +0 -44
  92. amulet/game/bedrock/__init__.py +0 -1
  93. amulet/game/bedrock/_biome.py +0 -35
  94. amulet/game/bedrock/_block.py +0 -42
  95. amulet/game/bedrock/_version.py +0 -165
  96. amulet/game/java/__init__.py +0 -2
  97. amulet/game/java/_biome.py +0 -35
  98. amulet/game/java/_block.py +0 -60
  99. amulet/game/java/_version.py +0 -176
  100. amulet/game/translate/__init__.py +0 -12
  101. amulet/game/translate/_functions/__init__.py +0 -15
  102. amulet/game/translate/_functions/_code_functions/__init__.py +0 -0
  103. amulet/game/translate/_functions/_code_functions/_text.py +0 -553
  104. amulet/game/translate/_functions/_code_functions/banner_pattern.py +0 -67
  105. amulet/game/translate/_functions/_code_functions/bedrock_chest_connection.py +0 -152
  106. amulet/game/translate/_functions/_code_functions/bedrock_moving_block_pos.py +0 -88
  107. amulet/game/translate/_functions/_code_functions/bedrock_sign.py +0 -152
  108. amulet/game/translate/_functions/_code_functions/bedrock_skull_rotation.py +0 -16
  109. amulet/game/translate/_functions/_code_functions/custom_name.py +0 -146
  110. amulet/game/translate/_functions/_frozen.py +0 -66
  111. amulet/game/translate/_functions/_state.py +0 -54
  112. amulet/game/translate/_functions/_typing.py +0 -98
  113. amulet/game/translate/_functions/abc.py +0 -123
  114. amulet/game/translate/_functions/carry_nbt.py +0 -160
  115. amulet/game/translate/_functions/carry_properties.py +0 -80
  116. amulet/game/translate/_functions/code.py +0 -143
  117. amulet/game/translate/_functions/map_block_name.py +0 -66
  118. amulet/game/translate/_functions/map_nbt.py +0 -111
  119. amulet/game/translate/_functions/map_properties.py +0 -93
  120. amulet/game/translate/_functions/multiblock.py +0 -112
  121. amulet/game/translate/_functions/new_block.py +0 -42
  122. amulet/game/translate/_functions/new_entity.py +0 -43
  123. amulet/game/translate/_functions/new_nbt.py +0 -206
  124. amulet/game/translate/_functions/new_properties.py +0 -64
  125. amulet/game/translate/_functions/sequence.py +0 -51
  126. amulet/game/translate/_functions/walk_input_nbt.py +0 -331
  127. amulet/game/translate/_translator.py +0 -433
  128. amulet/img/__init__.py +0 -10
  129. amulet/img/missing_no.png +0 -0
  130. amulet/img/missing_pack.png +0 -0
  131. amulet/img/missing_world.png +0 -0
  132. amulet/io/binary_reader.hpp +0 -45
  133. amulet/io/binary_writer.hpp +0 -30
  134. amulet/item.py +0 -75
  135. amulet/level/__init__.pyi +0 -23
  136. amulet/level/_load.py +0 -100
  137. amulet/level/abc/__init__.py +0 -12
  138. amulet/level/abc/_chunk_handle.py +0 -335
  139. amulet/level/abc/_dimension.py +0 -86
  140. amulet/level/abc/_history/__init__.py +0 -1
  141. amulet/level/abc/_history/_cache.py +0 -224
  142. amulet/level/abc/_history/_history_manager.py +0 -291
  143. amulet/level/abc/_level/__init__.py +0 -5
  144. amulet/level/abc/_level/_compactable_level.py +0 -10
  145. amulet/level/abc/_level/_creatable_level.py +0 -28
  146. amulet/level/abc/_level/_disk_level.py +0 -17
  147. amulet/level/abc/_level/_level.py +0 -449
  148. amulet/level/abc/_level/_loadable_level.py +0 -42
  149. amulet/level/abc/_player_storage.py +0 -7
  150. amulet/level/abc/_raw_level.py +0 -187
  151. amulet/level/abc/_registry.py +0 -40
  152. amulet/level/java/__init__.pyi +0 -16
  153. amulet/level/java/_chunk_handle.py +0 -17
  154. amulet/level/java/_dimension.py +0 -20
  155. amulet/level/java/_level.py +0 -184
  156. amulet/level/java/_raw/__init__.pyi +0 -15
  157. amulet/level/java/_raw/_chunk.pyi +0 -23
  158. amulet/level/java/_raw/_constant.py +0 -9
  159. amulet/level/java/_raw/_data_pack/__init__.py +0 -2
  160. amulet/level/java/_raw/_data_pack/data_pack.py +0 -241
  161. amulet/level/java/_raw/_data_pack/data_pack_manager.py +0 -77
  162. amulet/level/java/_raw/_dimension.py +0 -86
  163. amulet/level/java/_raw/_level.py +0 -507
  164. amulet/level/java/_raw/_typing.py +0 -3
  165. amulet/level/java/_raw/java_chunk_decode.cpp +0 -531
  166. amulet/level/java/_raw/java_chunk_decode.hpp +0 -23
  167. amulet/level/java/_raw/java_chunk_encode.cpp +0 -25
  168. amulet/level/java/_raw/java_chunk_encode.hpp +0 -23
  169. amulet/level/java/anvil/__init__.py +0 -2
  170. amulet/level/java/anvil/_dimension.py +0 -170
  171. amulet/level/java/anvil/_region.py +0 -421
  172. amulet/level/java/anvil/_sector_manager.py +0 -223
  173. amulet/level/java/chunk.pyi +0 -81
  174. amulet/level/java/chunk_/_chunk.py +0 -260
  175. amulet/level/java/chunk_/components/inhabited_time.py +0 -12
  176. amulet/level/java/chunk_/components/last_update.py +0 -12
  177. amulet/level/java/chunk_/components/legacy_version.py +0 -12
  178. amulet/level/java/chunk_/components/light_populated.py +0 -12
  179. amulet/level/java/chunk_/components/named_height_2d.py +0 -37
  180. amulet/level/java/chunk_/components/status.py +0 -11
  181. amulet/level/java/chunk_/components/terrain_populated.py +0 -12
  182. amulet/level/java/chunk_components/data_version_component.cpp +0 -32
  183. amulet/level/java/chunk_components/data_version_component.hpp +0 -31
  184. amulet/level/java/chunk_components/java_raw_chunk_component.cpp +0 -56
  185. amulet/level/java/chunk_components/java_raw_chunk_component.hpp +0 -45
  186. amulet/level/java/chunk_components.pyi +0 -22
  187. amulet/level/java/java_chunk.cpp +0 -170
  188. amulet/level/java/java_chunk.hpp +0 -141
  189. amulet/level/java/long_array.hpp +0 -175
  190. amulet/level/java/long_array.pyi +0 -39
  191. amulet/level/temporary_level/__init__.py +0 -1
  192. amulet/level/temporary_level/_level.py +0 -16
  193. amulet/mesh/__init__.py +0 -0
  194. amulet/mesh/block/__init__.py +0 -1
  195. amulet/mesh/block/block_mesh.py +0 -369
  196. amulet/mesh/block/cube.py +0 -149
  197. amulet/mesh/block/missing_block.py +0 -20
  198. amulet/mesh/util.py +0 -17
  199. amulet/palette/biome_palette.hpp +0 -85
  200. amulet/palette/block_palette.cpp +0 -32
  201. amulet/palette/block_palette.hpp +0 -93
  202. amulet/player.py +0 -62
  203. amulet/pybind11/collections.hpp +0 -118
  204. amulet/pybind11/numpy.hpp +0 -26
  205. amulet/pybind11/py_module.hpp +0 -34
  206. amulet/pybind11/type_hints.hpp +0 -51
  207. amulet/pybind11/types.hpp +0 -25
  208. amulet/pybind11/typing.hpp +0 -7
  209. amulet/resource_pack/__init__.py +0 -62
  210. amulet/resource_pack/abc/__init__.py +0 -2
  211. amulet/resource_pack/abc/resource_pack.py +0 -38
  212. amulet/resource_pack/abc/resource_pack_manager.py +0 -87
  213. amulet/resource_pack/bedrock/__init__.py +0 -2
  214. amulet/resource_pack/bedrock/bedrock_vanilla_fix/pack_icon.png +0 -0
  215. amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/grass_carried.png +0 -0
  216. amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/grass_side_carried.png +0 -0
  217. amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/water.png +0 -0
  218. amulet/resource_pack/bedrock/blockshapes/__init__.py +0 -31
  219. amulet/resource_pack/bedrock/blockshapes/air.py +0 -35
  220. amulet/resource_pack/bedrock/blockshapes/base_blockshape.py +0 -29
  221. amulet/resource_pack/bedrock/blockshapes/bubble_column.py +0 -29
  222. amulet/resource_pack/bedrock/blockshapes/cake.py +0 -46
  223. amulet/resource_pack/bedrock/blockshapes/chest.py +0 -54
  224. amulet/resource_pack/bedrock/blockshapes/comparator.py +0 -51
  225. amulet/resource_pack/bedrock/blockshapes/cross_texture.py +0 -186
  226. amulet/resource_pack/bedrock/blockshapes/cross_texture0.py +0 -17
  227. amulet/resource_pack/bedrock/blockshapes/cross_texture_green.py +0 -16
  228. amulet/resource_pack/bedrock/blockshapes/cube.py +0 -38
  229. amulet/resource_pack/bedrock/blockshapes/default.py +0 -14
  230. amulet/resource_pack/bedrock/blockshapes/door.py +0 -38
  231. amulet/resource_pack/bedrock/blockshapes/door1.py +0 -14
  232. amulet/resource_pack/bedrock/blockshapes/door2.py +0 -14
  233. amulet/resource_pack/bedrock/blockshapes/door3.py +0 -14
  234. amulet/resource_pack/bedrock/blockshapes/door4.py +0 -14
  235. amulet/resource_pack/bedrock/blockshapes/door5.py +0 -14
  236. amulet/resource_pack/bedrock/blockshapes/door6.py +0 -14
  237. amulet/resource_pack/bedrock/blockshapes/double_plant.py +0 -40
  238. amulet/resource_pack/bedrock/blockshapes/enchanting_table.py +0 -22
  239. amulet/resource_pack/bedrock/blockshapes/farmland.py +0 -22
  240. amulet/resource_pack/bedrock/blockshapes/fence.py +0 -22
  241. amulet/resource_pack/bedrock/blockshapes/flat.py +0 -55
  242. amulet/resource_pack/bedrock/blockshapes/flat_wall.py +0 -55
  243. amulet/resource_pack/bedrock/blockshapes/furnace.py +0 -44
  244. amulet/resource_pack/bedrock/blockshapes/furnace_lit.py +0 -14
  245. amulet/resource_pack/bedrock/blockshapes/green_cube.py +0 -39
  246. amulet/resource_pack/bedrock/blockshapes/ladder.py +0 -36
  247. amulet/resource_pack/bedrock/blockshapes/lilypad.py +0 -14
  248. amulet/resource_pack/bedrock/blockshapes/partial_block.py +0 -57
  249. amulet/resource_pack/bedrock/blockshapes/piston.py +0 -44
  250. amulet/resource_pack/bedrock/blockshapes/piston_arm.py +0 -72
  251. amulet/resource_pack/bedrock/blockshapes/portal_frame.py +0 -22
  252. amulet/resource_pack/bedrock/blockshapes/pressure_plate.py +0 -29
  253. amulet/resource_pack/bedrock/blockshapes/pumpkin.py +0 -36
  254. amulet/resource_pack/bedrock/blockshapes/pumpkin_carved.py +0 -14
  255. amulet/resource_pack/bedrock/blockshapes/pumpkin_lit.py +0 -14
  256. amulet/resource_pack/bedrock/blockshapes/red_dust.py +0 -14
  257. amulet/resource_pack/bedrock/blockshapes/repeater.py +0 -53
  258. amulet/resource_pack/bedrock/blockshapes/slab.py +0 -33
  259. amulet/resource_pack/bedrock/blockshapes/slab_double.py +0 -15
  260. amulet/resource_pack/bedrock/blockshapes/tree.py +0 -41
  261. amulet/resource_pack/bedrock/blockshapes/turtle_egg.py +0 -15
  262. amulet/resource_pack/bedrock/blockshapes/vine.py +0 -52
  263. amulet/resource_pack/bedrock/blockshapes/wall.py +0 -22
  264. amulet/resource_pack/bedrock/blockshapes/water.py +0 -38
  265. amulet/resource_pack/bedrock/download_resources.py +0 -147
  266. amulet/resource_pack/bedrock/resource_pack.py +0 -40
  267. amulet/resource_pack/bedrock/resource_pack_manager.py +0 -361
  268. amulet/resource_pack/bedrock/sort_blockshapes.py +0 -15
  269. amulet/resource_pack/java/__init__.py +0 -2
  270. amulet/resource_pack/java/download_resources.py +0 -212
  271. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_black.png +0 -0
  272. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_blue.png +0 -0
  273. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_brown.png +0 -0
  274. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_cyan.png +0 -0
  275. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_gray.png +0 -0
  276. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_green.png +0 -0
  277. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_light_blue.png +0 -0
  278. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_light_gray.png +0 -0
  279. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_lime.png +0 -0
  280. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_magenta.png +0 -0
  281. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_orange.png +0 -0
  282. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_pink.png +0 -0
  283. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_purple.png +0 -0
  284. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_red.png +0 -0
  285. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_white.png +0 -0
  286. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_yellow.png +0 -0
  287. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/barrier.png +0 -0
  288. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/end_portal.png +0 -0
  289. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/grass.png +0 -0
  290. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/lava.png +0 -0
  291. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/structure_void.png +0 -0
  292. amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/water.png +0 -0
  293. amulet/resource_pack/java/java_vanilla_fix/pack.png +0 -0
  294. amulet/resource_pack/java/resource_pack.py +0 -44
  295. amulet/resource_pack/java/resource_pack_manager.py +0 -551
  296. amulet/resource_pack/unknown_resource_pack.py +0 -10
  297. amulet/selection/__init__.py +0 -2
  298. amulet/selection/abstract_selection.py +0 -342
  299. amulet/selection/box.py +0 -852
  300. amulet/selection/group.py +0 -481
  301. amulet/utils/__init__.pyi +0 -23
  302. amulet/utils/call_spec/__init__.py +0 -24
  303. amulet/utils/call_spec/_call_spec.py +0 -257
  304. amulet/utils/comment_json.py +0 -188
  305. amulet/utils/format_utils.py +0 -41
  306. amulet/utils/generator.py +0 -18
  307. amulet/utils/matrix.py +0 -243
  308. amulet/utils/numpy.hpp +0 -36
  309. amulet/utils/numpy.pyi +0 -11
  310. amulet/utils/numpy_helpers.py +0 -19
  311. amulet/utils/shareable_lock.py +0 -335
  312. amulet/utils/signal/__init__.py +0 -10
  313. amulet/utils/signal/_signal.py +0 -228
  314. amulet/utils/task_manager.py +0 -235
  315. amulet/utils/typed_property.py +0 -111
  316. amulet/utils/weakref.py +0 -70
  317. amulet/utils/world_utils.py +0 -102
  318. amulet/version.cpp +0 -136
  319. amulet/version.hpp +0 -142
  320. amulet/version.py.cpp +0 -281
  321. amulet_core-2.0a7.dist-info/RECORD +0 -295
  322. amulet_core-2.0a7.dist-info/entry_points.txt +0 -2
  323. /amulet/{__pyinstaller → core/__pyinstaller}/__init__.py +0 -0
  324. /amulet/{py.typed → core/py.typed} +0 -0
  325. {amulet_core-2.0a7.dist-info → amulet_core-2.0.1a2.post250529084738.dist-info}/top_level.txt +0 -0
amulet/chunk.py.cpp DELETED
@@ -1,80 +0,0 @@
1
- #include <amulet/chunk.hpp>
2
-
3
- #include <pybind11/pybind11.h>
4
- #include <pybind11/stl.h>
5
- #include <pybind11/operators.h>
6
- #include <pybind11/typing.h>
7
-
8
-
9
- namespace py = pybind11;
10
-
11
- void init_chunk(py::module m_parent) {
12
- auto m = m_parent.def_submodule("chunk");
13
- py::class_<Amulet::Chunk, std::shared_ptr<Amulet::Chunk>> Chunk(m, "Chunk",
14
- "A base class for all chunk classes."
15
- );
16
- Chunk.def_property_readonly(
17
- "chunk_id",
18
- &Amulet::Chunk::get_chunk_id
19
- );
20
- Chunk.def_property_readonly(
21
- "component_ids",
22
- &Amulet::Chunk::get_component_ids
23
- );
24
- auto py_serialise = [](const Amulet::Chunk& self) -> py::typing::Dict<py::str, py::typing::Optional<py::bytes>> {
25
- py::dict data;
26
- for (const auto& [k, v] : self.serialise_chunk()) {
27
- if (v) {
28
- data[py::str(k)] = py::bytes(v.value());
29
- }
30
- else {
31
- data[py::str(k)] = py::none();
32
- }
33
- }
34
- return data;
35
- };
36
- Chunk.def(
37
- "serialise_chunk",
38
- py_serialise,
39
- py::doc("This is private. Do not use this. It will be removed in the future.")
40
- );
41
- auto py_deserialise = [](Amulet::Chunk& self, py::typing::Dict<py::str, py::typing::Optional<py::bytes>> data) {
42
- Amulet::SerialisedComponents component_data;
43
- for (const auto& [k, v] : data) {
44
- if (v.is(py::none())) {
45
- component_data[k.cast<std::string>()];
46
- }
47
- else {
48
- component_data[k.cast<std::string>()] = v.cast<std::string>();
49
- }
50
- }
51
- self.reconstruct_chunk(component_data);
52
- };
53
- Chunk.def(
54
- "reconstruct_chunk",
55
- py_deserialise,
56
- py::doc("This is private. Do not use this. It will be removed in the future.")
57
- );
58
- Chunk.def(
59
- py::pickle(
60
- [py_serialise](const Amulet::Chunk& self) {
61
- return py::make_tuple(
62
- self.get_chunk_id(),
63
- py_serialise(self)
64
- );
65
- },
66
- [py_deserialise](py::tuple state) {
67
- if (state.size() != 2) { throw std::runtime_error("Invalid state!"); }
68
- auto self = Amulet::get_null_chunk(state[0].cast<std::string>());
69
- py_deserialise(*self, state[1]);
70
- return self;
71
- }
72
- )
73
- );
74
-
75
- m.def(
76
- "get_null_chunk",
77
- &Amulet::get_null_chunk,
78
- py::doc("This is a private function")
79
- );
80
- }
amulet/chunk.pyi DELETED
@@ -1,28 +0,0 @@
1
- from __future__ import annotations
2
-
3
- __all__ = ["Chunk", "get_null_chunk"]
4
-
5
- class Chunk:
6
- """
7
- A base class for all chunk classes.
8
- """
9
-
10
- def reconstruct_chunk(self, arg0: dict[str, bytes | None]) -> None:
11
- """
12
- This is private. Do not use this. It will be removed in the future.
13
- """
14
-
15
- def serialise_chunk(self) -> dict[str, bytes | None]:
16
- """
17
- This is private. Do not use this. It will be removed in the future.
18
- """
19
-
20
- @property
21
- def chunk_id(self) -> str: ...
22
- @property
23
- def component_ids(self) -> list[str]: ...
24
-
25
- def get_null_chunk(arg0: str) -> Chunk:
26
- """
27
- This is a private function
28
- """
@@ -1,5 +0,0 @@
1
- #include <amulet/chunk_components/biome_3d_component.hpp>
2
-
3
- namespace Amulet {
4
- const std::string Biome3DComponent::ComponentID = "Amulet::Biome3DComponent";
5
- }
@@ -1,79 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <tuple>
5
- #include <optional>
6
- #include <cstdint>
7
- #include <memory>
8
-
9
- #include <amulet/version.hpp>
10
- #include <amulet/biome.hpp>
11
- #include <amulet/palette/biome_palette.hpp>
12
- #include <amulet/chunk_components/section_array_map.hpp>
13
-
14
-
15
- namespace Amulet {
16
- class Biome3DComponentData {
17
- private:
18
- std::shared_ptr<BiomePalette> _palette;
19
- std::shared_ptr<SectionArrayMap> _sections;
20
- public:
21
- Biome3DComponentData(
22
- std::shared_ptr<VersionRange> version_range,
23
- const SectionShape& array_shape,
24
- std::shared_ptr<Biome> default_biome
25
- ):
26
- _palette(std::make_shared<BiomePalette>(version_range)),
27
- _sections(std::make_shared<SectionArrayMap>(array_shape, static_cast<std::uint32_t>(0)))
28
- {
29
- _palette->biome_to_index(default_biome);
30
- }
31
- std::shared_ptr<BiomePalette> get_palette() {
32
- return _palette;
33
- }
34
- std::shared_ptr<SectionArrayMap> get_sections() {
35
- return _sections;
36
- }
37
- };
38
-
39
- class Biome3DComponent {
40
- private:
41
- std::optional<std::shared_ptr<Biome3DComponentData>> _value;
42
- protected:
43
- // Null constructor
44
- Biome3DComponent() {};
45
- // Default constructor
46
- void init(
47
- std::shared_ptr<VersionRange> version_range,
48
- const SectionShape& array_shape,
49
- std::shared_ptr<Biome> default_biome
50
- ) { _value = std::make_shared<Biome3DComponentData>(version_range, array_shape, default_biome); }
51
-
52
- // Serialise the component data
53
- std::optional<std::string> serialise() const;
54
- // Deserialise the component
55
- void deserialise(std::optional<std::string>);
56
- public:
57
- static const std::string ComponentID;
58
- std::shared_ptr<Biome3DComponentData> get_biome() {
59
- if (_value) {
60
- return *_value;
61
- }
62
- throw std::runtime_error("BiomeComponent has not been loaded.");
63
- };
64
- void set_biome(std::shared_ptr<Biome3DComponentData> component) {
65
- if (_value) {
66
- if ((*_value)->get_sections()->get_array_shape() != component->get_sections()->get_array_shape()) {
67
- throw std::invalid_argument("New biome array shape does not match old array shape.");
68
- }
69
- if ((*_value)->get_palette()->get_version_range() != component->get_palette()->get_version_range()) {
70
- throw std::invalid_argument("New biome version range does not match old version range.");
71
- }
72
- _value = component;
73
- }
74
- else {
75
- throw std::runtime_error("BiomeComponent has not been loaded.");
76
- }
77
- };
78
- };
79
- }
@@ -1,41 +0,0 @@
1
- #include <amulet/chunk_components/block_component.hpp>
2
-
3
- namespace Amulet {
4
- void BlockComponentData::serialise(BinaryWriter& writer) const {
5
- writer.writeNumeric<std::uint8_t>(1);
6
- get_palette()->serialise(writer);
7
- get_sections()->serialise(writer);
8
- }
9
- std::shared_ptr<BlockComponentData> BlockComponentData::deserialise(BinaryReader& reader) {
10
- auto version = reader.readNumeric<std::uint8_t>();
11
- switch (version) {
12
- case 1:
13
- {
14
- auto palette = BlockPalette::deserialise(reader);
15
- auto sections = SectionArrayMap::deserialise(reader);
16
- return std::make_shared<BlockComponentData>(palette, sections);
17
- }
18
- default:
19
- throw std::invalid_argument("Unsupported BlockComponentData version " + std::to_string(version));
20
- }
21
- }
22
-
23
- const std::string BlockComponent::ComponentID = "Amulet::BlockComponent";
24
-
25
- std::optional<std::string> BlockComponent::serialise() const {
26
- if (_value) {
27
- return Amulet::serialise(**_value);
28
- }
29
- else {
30
- return std::nullopt;
31
- }
32
- }
33
- void BlockComponent::deserialise(std::optional<std::string> data) {
34
- if (data) {
35
- _value = Amulet::deserialise<BlockComponentData>(*data);
36
- }
37
- else {
38
- _value = std::nullopt;
39
- }
40
- }
41
- }
@@ -1,88 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <tuple>
5
- #include <optional>
6
-
7
- #include <amulet/version.hpp>
8
- #include <amulet/block.hpp>
9
- #include <amulet/palette/block_palette.hpp>
10
- #include <amulet/chunk_components/section_array_map.hpp>
11
- #include <amulet/io/binary_writer.hpp>
12
- #include <amulet/io/binary_reader.hpp>
13
-
14
-
15
- namespace Amulet {
16
- class BlockComponentData {
17
- private:
18
- std::shared_ptr<BlockPalette> _palette;
19
- std::shared_ptr<SectionArrayMap> _sections;
20
- public:
21
- BlockComponentData(
22
- std::shared_ptr<VersionRange> version_range,
23
- const SectionShape& array_shape,
24
- std::shared_ptr<BlockStack> default_block
25
- ):
26
- _palette(std::make_shared<BlockPalette>(version_range)),
27
- _sections(std::make_shared<SectionArrayMap>(array_shape, static_cast<std::uint32_t>(0)))
28
- {
29
- _palette->block_stack_to_index(default_block);
30
- }
31
- BlockComponentData(
32
- std::shared_ptr<BlockPalette> palette,
33
- std::shared_ptr<SectionArrayMap> sections
34
- ): _palette(palette), _sections(sections){}
35
-
36
- void serialise(BinaryWriter&) const;
37
- static std::shared_ptr<BlockComponentData> deserialise(BinaryReader&);
38
-
39
- std::shared_ptr<BlockPalette> get_palette() const {
40
- return _palette;
41
- }
42
- std::shared_ptr<SectionArrayMap> get_sections() const {
43
- return _sections;
44
- }
45
-
46
- };
47
-
48
- class BlockComponent {
49
- private:
50
- std::optional<std::shared_ptr<BlockComponentData>> _value;
51
- protected:
52
- // Null constructor
53
- BlockComponent() {};
54
- // Default constructor
55
- void init(
56
- std::shared_ptr<VersionRange> version_range,
57
- const SectionShape& array_shape,
58
- std::shared_ptr<BlockStack> default_block
59
- ) { _value = std::make_shared<BlockComponentData>(version_range, array_shape, default_block); }
60
-
61
- // Serialise the component data
62
- std::optional<std::string> serialise() const;
63
- // Deserialise the component
64
- void deserialise(std::optional<std::string>);
65
- public:
66
- static const std::string ComponentID;
67
- std::shared_ptr<BlockComponentData> get_block() {
68
- if (_value) {
69
- return *_value;
70
- }
71
- throw std::runtime_error("BlockComponent has not been loaded.");
72
- };
73
- void set_block(std::shared_ptr<BlockComponentData> component) {
74
- if (_value) {
75
- if ((*_value)->get_sections()->get_array_shape() != component->get_sections()->get_array_shape()) {
76
- throw std::invalid_argument("New block array shape does not match old array shape.");
77
- }
78
- if ((*_value)->get_palette()->get_version_range() != component->get_palette()->get_version_range()) {
79
- throw std::invalid_argument("New block version range does not match old version range.");
80
- }
81
- _value = component;
82
- }
83
- else {
84
- throw std::runtime_error("BlockComponent has not been loaded.");
85
- }
86
- };
87
- };
88
- }
@@ -1,5 +0,0 @@
1
- #include <amulet/chunk_components/block_entity_component.hpp>
2
-
3
- namespace Amulet {
4
- const std::string BlockEntityComponent::ComponentID = "Amulet::BlockEntityComponent";
5
- }
@@ -1,147 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <tuple>
5
- #include <optional>
6
- #include <cstdint>
7
- #include <memory>
8
- #include <map>
9
-
10
- #include <amulet/version.hpp>
11
- #include <amulet/block_entity.hpp>
12
-
13
-
14
- namespace Amulet {
15
- typedef std::tuple<std::uint16_t, std::int64_t, std::uint16_t> BlockEntityChunkCoord;
16
- class BlockEntityComponentData: public VersionRangeContainer {
17
- private:
18
- std::uint16_t _x_size;
19
- std::uint16_t _z_size;
20
- std::map<
21
- BlockEntityChunkCoord,
22
- std::shared_ptr<BlockEntity>
23
- > _block_entities;
24
- public:
25
- BlockEntityComponentData(
26
- std::shared_ptr<VersionRange> version_range,
27
- const std::uint16_t& x_size,
28
- const std::uint16_t& z_size
29
- ) :
30
- VersionRangeContainer(version_range),
31
- _x_size(x_size),
32
- _z_size(z_size),
33
- _block_entities()
34
- {}
35
-
36
- std::uint16_t get_x_size() const { return _x_size; }
37
- std::uint16_t get_z_size() const { return _z_size; }
38
-
39
- const std::map<
40
- BlockEntityChunkCoord,
41
- std::shared_ptr<BlockEntity>
42
- >& get_block_entities() const {
43
- return _block_entities;
44
- }
45
-
46
- size_t get_size() const { return _block_entities.size(); }
47
-
48
- bool contains(
49
- const BlockEntityChunkCoord& coord
50
- ) const {
51
- return _block_entities.contains(coord);
52
- }
53
-
54
- std::shared_ptr<BlockEntity> get(
55
- const BlockEntityChunkCoord& coord
56
- ) const {
57
- return _block_entities.at(coord);
58
- }
59
-
60
- void set(
61
- const BlockEntityChunkCoord& coord,
62
- std::shared_ptr<BlockEntity> block_entity
63
- ) {
64
- if (
65
- std::get<0>(coord) < 0 ||
66
- std::get<2>(coord) < 0 ||
67
- _x_size <= std::get<0>(coord) ||
68
- _z_size <= std::get<2>(coord)
69
- ){
70
- throw std::invalid_argument(
71
- "Coord must be 0 <= " +
72
- std::to_string(std::get<0>(coord)) +
73
- " < " +
74
- std::to_string(_x_size) +
75
- "and 0 <= " +
76
- std::to_string(std::get<1>(coord)) +
77
- " < " +
78
- std::to_string(_z_size)
79
- );
80
- }
81
- if (!(
82
- get_version_range()->contains(
83
- block_entity->get_platform(),
84
- *block_entity->get_version()
85
- )
86
- )){
87
- throw std::invalid_argument(
88
- "BlockEntity is incompatible with VersionRange."
89
- );
90
- }
91
- _block_entities[coord] = block_entity;
92
- }
93
-
94
- void del(
95
- const BlockEntityChunkCoord& coord
96
- ) {
97
- _block_entities.erase(coord);
98
- }
99
-
100
- };
101
-
102
- class BlockEntityComponent {
103
- private:
104
- std::optional<std::shared_ptr<BlockEntityComponentData>> _value;
105
- protected:
106
- // Null constructor
107
- BlockEntityComponent() {};
108
- // Default constructor
109
- void init(
110
- std::shared_ptr<VersionRange> version_range,
111
- const std::uint16_t& x_size,
112
- const std::uint16_t& z_size
113
- ) {
114
- _value = std::make_shared<BlockEntityComponentData>(version_range, x_size, z_size);
115
- }
116
-
117
- // Serialise the component data
118
- std::optional<std::string> serialise() const;
119
- // Deserialise the component
120
- void deserialise(std::optional<std::string>);
121
- public:
122
- static const std::string ComponentID;
123
- std::shared_ptr<BlockEntityComponentData> get_block_entity() {
124
- if (_value) {
125
- return *_value;
126
- }
127
- throw std::runtime_error("BlockEntityComponent has not been loaded.");
128
- };
129
- void set_block_entity(std::shared_ptr<BlockEntityComponentData> component) {
130
- if (_value) {
131
- if (
132
- (*_value)->get_x_size() != component->get_x_size() ||
133
- (*_value)->get_z_size() != component->get_z_size()
134
- ) {
135
- throw std::invalid_argument("New BlockEntityComponent shape does not match old shape.");
136
- }
137
- if ((*_value)->get_version_range() != component->get_version_range()) {
138
- throw std::invalid_argument("New BlockEntityComponent version range does not match old version range.");
139
- }
140
- _value = component;
141
- }
142
- else {
143
- throw std::runtime_error("BlockEntityComponent has not been loaded.");
144
- }
145
- };
146
- };
147
- }
@@ -1,129 +0,0 @@
1
- #include <string>
2
-
3
- #include <amulet/io/binary_writer.hpp>
4
- #include <amulet/io/binary_reader.hpp>
5
-
6
- #include "section_array_map.hpp"
7
-
8
- namespace Amulet {
9
- void IndexArray3D::serialise(BinaryWriter& writer) const {
10
- writer.writeNumeric<std::uint8_t>(1);
11
-
12
- // Write array shape
13
- const auto& array_shape = get_shape();
14
- writer.writeNumeric<std::uint16_t>(std::get<0>(array_shape));
15
- writer.writeNumeric<std::uint16_t>(std::get<1>(array_shape));
16
- writer.writeNumeric<std::uint16_t>(std::get<2>(array_shape));
17
-
18
- // Write array
19
- const auto& size = get_size();
20
- const auto* buffer = get_buffer();
21
- for (auto i = 0; i < size; i++) {
22
- writer.writeNumeric<std::uint32_t>(buffer[i]);
23
- }
24
- }
25
- std::shared_ptr<IndexArray3D> IndexArray3D::deserialise(BinaryReader& reader) {
26
- auto version = reader.readNumeric<std::uint8_t>();
27
- switch (version) {
28
- case 1:
29
- {
30
- // Read array shape
31
- auto array_shape = std::make_tuple(
32
- reader.readNumeric<std::uint16_t>(),
33
- reader.readNumeric<std::uint16_t>(),
34
- reader.readNumeric<std::uint16_t>()
35
- );
36
-
37
- // Construct instance
38
- auto self = std::make_shared<IndexArray3D>(array_shape);
39
-
40
- // Read array
41
- const auto& size = self->get_size();
42
- auto* buffer = self->get_buffer();
43
- for (auto i = 0; i < size; i++) {
44
- buffer[i] = reader.readNumeric<std::uint32_t>();
45
- }
46
-
47
- return self;
48
- }
49
- default:
50
- throw std::invalid_argument("Unsupported IndexArray3D version " + std::to_string(version));
51
- }
52
- }
53
-
54
- void SectionArrayMap::serialise(BinaryWriter& writer) const {
55
- writer.writeNumeric<std::uint8_t>(1);
56
-
57
- // Write array shape
58
- const auto& array_shape = get_array_shape();
59
- writer.writeNumeric<std::uint16_t>(std::get<0>(array_shape));
60
- writer.writeNumeric<std::uint16_t>(std::get<1>(array_shape));
61
- writer.writeNumeric<std::uint16_t>(std::get<2>(array_shape));
62
-
63
- // Write default array
64
- std::visit(
65
- [&writer](auto&& arg) {
66
- using T = std::decay_t<decltype(arg)>;
67
- if constexpr (std::is_same_v<T, std::uint32_t>) {
68
- writer.writeNumeric<std::uint8_t>(0);
69
- writer.writeNumeric<std::uint32_t>(arg);
70
- }
71
- else {
72
- writer.writeNumeric<std::uint8_t>(1);
73
- arg->serialise(writer);
74
- }
75
- },
76
- get_default_array()
77
- );
78
-
79
- // Write arrays
80
- const auto& arrays = get_arrays();
81
- writer.writeNumeric<std::uint64_t>(arrays.size());
82
- for (const auto& [cy, arr] : arrays) {
83
- writer.writeNumeric<std::int64_t>(cy);
84
- arr->serialise(writer);
85
- }
86
- }
87
- std::shared_ptr<SectionArrayMap> SectionArrayMap::deserialise(BinaryReader& reader) {
88
- auto version = reader.readNumeric<std::uint8_t>();
89
- switch (version) {
90
- case 1:
91
- {
92
- // Read array shape
93
- auto array_shape = std::make_tuple(
94
- reader.readNumeric<std::uint16_t>(),
95
- reader.readNumeric<std::uint16_t>(),
96
- reader.readNumeric<std::uint16_t>()
97
- );
98
-
99
- // Read default array
100
- auto default_array_state = reader.readNumeric<std::uint8_t>();
101
- std::variant<std::uint32_t, std::shared_ptr<IndexArray3D>> default_array;
102
- switch (default_array_state) {
103
- case 0:
104
- default_array = reader.readNumeric<std::uint32_t>();
105
- break;
106
- case 1:
107
- default_array = IndexArray3D::deserialise(reader);
108
- break;
109
- default:
110
- throw std::invalid_argument("Invalid default array state value " + std::to_string(default_array_state));
111
- }
112
-
113
- // Construct instance
114
- auto self = std::make_shared<SectionArrayMap>(array_shape, default_array);
115
-
116
- // Populate arrays
117
- auto array_count = reader.readNumeric<std::uint64_t>();
118
- for (auto i = 0; i < array_count; i++) {
119
- auto cy = reader.readNumeric<std::int64_t>();
120
- self->set_section(cy, IndexArray3D::deserialise(reader));
121
- }
122
-
123
- return self;
124
- }
125
- default:
126
- throw std::invalid_argument("Unsupported BlockComponentData version " + std::to_string(version));
127
- }
128
- }
129
- }