amulet-core 2.0a7__cp312-cp312-win_amd64.whl → 2.0.1a2.post250529084747__cp312-cp312-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.cp312-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.post250529084747.dist-info}/METADATA +25 -20
  40. amulet_core-2.0.1a2.post250529084747.dist-info/RECORD +45 -0
  41. {amulet_core-2.0a7.dist-info → amulet_core-2.0.1a2.post250529084747.dist-info}/WHEEL +1 -1
  42. amulet_core-2.0.1a2.post250529084747.dist-info/entry_points.txt +2 -0
  43. amulet/__init__.cp312-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.post250529084747.dist-info}/top_level.txt +0 -0
@@ -1,38 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.mesh.block import BlockMesh
3
- from amulet.resource_pack.bedrock.blockshapes.cube import Cube
4
- import amulet_nbt
5
-
6
-
7
- class Door(Cube):
8
- def is_valid(self, block: Block) -> bool:
9
- return isinstance(block.properties.get("upper_block_bit"), amulet_nbt.TAG_Byte)
10
-
11
- @property
12
- def blockshape(self) -> str:
13
- return "door"
14
-
15
- def texture_index(self, block: Block, aux_value: int) -> int:
16
- return 0
17
-
18
- def get_block_model(
19
- self,
20
- block: Block,
21
- down: str,
22
- up: str,
23
- north: str,
24
- east: str,
25
- south: str,
26
- west: str,
27
- transparency: tuple[bool, bool, bool, bool, bool, bool],
28
- ) -> BlockMesh:
29
- if block.properties["upper_block_bit"].py_data:
30
- return super().get_block_model(
31
- block, north, north, north, north, north, north, transparency
32
- )
33
- return super().get_block_model(
34
- block, down, down, down, down, down, down, transparency
35
- )
36
-
37
-
38
- BlockShape = Door()
@@ -1,14 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.resource_pack.bedrock.blockshapes.door import Door
3
-
4
-
5
- class Door1(Door):
6
- @property
7
- def blockshape(self) -> str:
8
- return "door1"
9
-
10
- def texture_index(self, block: Block, aux_value: int) -> int:
11
- return 1
12
-
13
-
14
- BlockShape = Door1()
@@ -1,14 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.resource_pack.bedrock.blockshapes.door import Door
3
-
4
-
5
- class Door2(Door):
6
- @property
7
- def blockshape(self) -> str:
8
- return "door2"
9
-
10
- def texture_index(self, block: Block, aux_value: int) -> int:
11
- return 2
12
-
13
-
14
- BlockShape = Door2()
@@ -1,14 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.resource_pack.bedrock.blockshapes.door import Door
3
-
4
-
5
- class Door3(Door):
6
- @property
7
- def blockshape(self) -> str:
8
- return "door3"
9
-
10
- def texture_index(self, block: Block, aux_value: int) -> int:
11
- return 3
12
-
13
-
14
- BlockShape = Door3()
@@ -1,14 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.resource_pack.bedrock.blockshapes.door import Door
3
-
4
-
5
- class Door4(Door):
6
- @property
7
- def blockshape(self) -> str:
8
- return "door4"
9
-
10
- def texture_index(self, block: Block, aux_value: int) -> int:
11
- return 4
12
-
13
-
14
- BlockShape = Door4()
@@ -1,14 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.resource_pack.bedrock.blockshapes.door import Door
3
-
4
-
5
- class Door5(Door):
6
- @property
7
- def blockshape(self) -> str:
8
- return "door5"
9
-
10
- def texture_index(self, block: Block, aux_value: int) -> int:
11
- return 5
12
-
13
-
14
- BlockShape = Door5()
@@ -1,14 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.resource_pack.bedrock.blockshapes.door import Door
3
-
4
-
5
- class Door6(Door):
6
- @property
7
- def blockshape(self) -> str:
8
- return "door6"
9
-
10
- def texture_index(self, block: Block, aux_value: int) -> int:
11
- return 6
12
-
13
-
14
- BlockShape = Door6()
@@ -1,40 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.resource_pack.bedrock.blockshapes.cross_texture import (
3
- Cross,
4
- )
5
- from amulet.mesh.block import BlockMesh
6
- import amulet_nbt
7
-
8
-
9
- class DoublePlant(Cross):
10
- def is_valid(self, block: Block) -> bool:
11
- return isinstance(block.properties.get("upper_block_bit"), amulet_nbt.TAG_Byte)
12
-
13
- @property
14
- def blockshape(self) -> str:
15
- return "double_plant"
16
-
17
- def texture_index(self, block: Block, aux_value: int) -> int:
18
- return aux_value % 8
19
-
20
- def get_block_model(
21
- self,
22
- block: Block,
23
- down: str,
24
- up: str,
25
- north: str,
26
- east: str,
27
- south: str,
28
- west: str,
29
- transparency: tuple[bool, bool, bool, bool, bool, bool],
30
- ) -> BlockMesh:
31
- if block.properties["upper_block_bit"].py_data:
32
- return super().get_block_model(block, up, up, up, up, up, up, transparency)
33
- else:
34
- return super().get_block_model(
35
- block, down, down, down, down, down, down, transparency
36
- )
37
- # TODO: add the sunflower face and tint the required blocks
38
-
39
-
40
- BlockShape = DoublePlant()
@@ -1,22 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.resource_pack.bedrock.blockshapes.partial_block import (
3
- PartialBlock,
4
- )
5
-
6
-
7
- class EnchantingTable(PartialBlock):
8
- @property
9
- def blockshape(self) -> str:
10
- return "enchanting_table"
11
-
12
- def bounds(
13
- self, block: Block
14
- ) -> tuple[tuple[float, float], tuple[float, float], tuple[float, float]]:
15
- return (0, 1), (0, 12 / 16), (0, 1)
16
-
17
- @property
18
- def do_not_cull(self) -> tuple[bool, bool, bool, bool, bool, bool]:
19
- return False, True, False, False, False, False
20
-
21
-
22
- BlockShape = EnchantingTable()
@@ -1,22 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.resource_pack.bedrock.blockshapes.partial_block import (
3
- PartialBlock,
4
- )
5
-
6
-
7
- class FarmLand(PartialBlock):
8
- @property
9
- def blockshape(self) -> str:
10
- return "farmland"
11
-
12
- def bounds(
13
- self, block: Block
14
- ) -> tuple[tuple[float, float], tuple[float, float], tuple[float, float]]:
15
- return (0, 1), (0, 15 / 16), (0, 1)
16
-
17
- @property
18
- def do_not_cull(self) -> tuple[bool, bool, bool, bool, bool, bool]:
19
- return False, True, False, False, False, False
20
-
21
-
22
- BlockShape = FarmLand()
@@ -1,22 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.resource_pack.bedrock.blockshapes.partial_block import (
3
- PartialBlock,
4
- )
5
-
6
-
7
- class Fence(PartialBlock):
8
- @property
9
- def blockshape(self) -> str:
10
- return "fence"
11
-
12
- def bounds(
13
- self, block: Block
14
- ) -> tuple[tuple[float, float], tuple[float, float], tuple[float, float]]:
15
- return (6 / 16, 1 - 6 / 16), (0, 1), (6 / 16, 1 - 6 / 16)
16
-
17
- @property
18
- def do_not_cull(self) -> tuple[bool, bool, bool, bool, bool, bool]:
19
- return False, False, True, True, True, True
20
-
21
-
22
- BlockShape = Fence()
@@ -1,55 +0,0 @@
1
- import numpy
2
-
3
- from amulet.block import Block
4
- from amulet.mesh.block.block_mesh import BlockMesh, Transparency
5
- from amulet.resource_pack.bedrock.blockshapes.default import Default
6
-
7
-
8
- class Flat(Default):
9
- @property
10
- def tint(self) -> tuple[float, float, float]:
11
- return 1, 1, 1
12
-
13
- def get_block_model(
14
- self,
15
- block: Block,
16
- down: str,
17
- up: str,
18
- north: str,
19
- east: str,
20
- south: str,
21
- west: str,
22
- transparency: tuple[bool, bool, bool, bool, bool, bool],
23
- ) -> BlockMesh:
24
- return BlockMesh(
25
- 3,
26
- {
27
- None: numpy.array(
28
- [
29
- 0.0,
30
- 0.0625,
31
- 1.0,
32
- 1.0,
33
- 0.0625,
34
- 1.0,
35
- 1.0,
36
- 0.0625,
37
- 0.0,
38
- 0.0,
39
- 0.0625,
40
- 0.0,
41
- ],
42
- dtype=numpy.float32,
43
- )
44
- },
45
- {
46
- None: numpy.array(
47
- [0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0], numpy.float32
48
- )
49
- },
50
- {None: numpy.array(self.tint * 4, numpy.float32)},
51
- {None: numpy.array([0, 1, 2, 0, 2, 3], numpy.uint32)},
52
- {None: numpy.array([0, 0], numpy.uint32)},
53
- (up,),
54
- Transparency.Partial,
55
- )
@@ -1,55 +0,0 @@
1
- import numpy
2
-
3
- from amulet.block import Block
4
- from amulet.mesh.block.block_mesh import BlockMesh, Transparency
5
- from amulet.resource_pack.bedrock.blockshapes.default import Default
6
-
7
-
8
- class FlatWall(Default):
9
- @property
10
- def tint(self) -> tuple[float, float, float]:
11
- return 1, 1, 1
12
-
13
- def get_block_model(
14
- self,
15
- block: Block,
16
- down: str,
17
- up: str,
18
- north: str,
19
- east: str,
20
- south: str,
21
- west: str,
22
- transparency: tuple[bool, bool, bool, bool, bool, bool],
23
- ) -> BlockMesh:
24
- return BlockMesh(
25
- 3,
26
- {
27
- None: numpy.array(
28
- [
29
- 0.0,
30
- 0.0,
31
- 1 / 16,
32
- 1.0,
33
- 0.0,
34
- 1 / 16,
35
- 1.0,
36
- 1.0,
37
- 1 / 16,
38
- 0.0,
39
- 1.0,
40
- 1 / 16,
41
- ],
42
- dtype=numpy.float32,
43
- )
44
- },
45
- {
46
- None: numpy.array(
47
- [0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0], numpy.float32
48
- )
49
- },
50
- {None: numpy.array(self.tint * 4, numpy.float32)},
51
- {None: numpy.array([0, 1, 2, 0, 2, 3], numpy.uint32)},
52
- {None: numpy.array([0, 0], numpy.uint32)},
53
- (up,),
54
- Transparency.Partial,
55
- )
@@ -1,44 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.mesh.block import BlockMesh
3
- from amulet.resource_pack.bedrock.blockshapes.cube import Cube
4
- import amulet_nbt
5
-
6
-
7
- class Furnace(Cube):
8
- def is_valid(self, block: Block) -> bool:
9
- return isinstance(block.properties.get("facing_direction"), amulet_nbt.TAG_Int)
10
-
11
- @property
12
- def blockshape(self) -> str:
13
- return "furnace"
14
-
15
- def texture_index(self, block: Block, aux_value: int) -> int:
16
- return 0
17
-
18
- @property
19
- def rotation_map(self) -> dict[int, int]:
20
- return {2: 2, 3: 0, 4: 1, 5: 3}
21
-
22
- def get_block_model(
23
- self,
24
- block: Block,
25
- down: str,
26
- up: str,
27
- north: str,
28
- east: str,
29
- south: str,
30
- west: str,
31
- transparency: tuple[bool, bool, bool, bool, bool, bool],
32
- ) -> BlockMesh:
33
- rotation = self.rotation_map.get(
34
- block.properties["facing_direction"].py_data, 0
35
- )
36
-
37
- return (
38
- super()
39
- .get_block_model(block, down, up, north, east, south, west, transparency)
40
- .rotate(0, rotation)
41
- )
42
-
43
-
44
- BlockShape = Furnace()
@@ -1,14 +0,0 @@
1
- from amulet.resource_pack.bedrock.blockshapes.furnace import Furnace
2
-
3
-
4
- class FurnaceLit(Furnace):
5
- @property
6
- def blockshape(self) -> str:
7
- return "furnace_lit"
8
-
9
- @property
10
- def rotation_map(self) -> dict[int, int]:
11
- return {2: 3, 3: 1, 4: 2, 5: 0}
12
-
13
-
14
- BlockShape = FurnaceLit()
@@ -1,39 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.mesh.block.block_mesh import BlockMesh, Transparency
3
- from amulet.mesh.block.cube import get_unit_cube
4
- from amulet.resource_pack.bedrock.blockshapes.cube import Cube
5
-
6
-
7
- class GreenCube(Cube):
8
- @property
9
- def blockshape(self) -> str:
10
- return "greencube"
11
-
12
- def get_block_model(
13
- self,
14
- block: Block,
15
- down: str,
16
- up: str,
17
- north: str,
18
- east: str,
19
- south: str,
20
- west: str,
21
- transparency: tuple[bool, bool, bool, bool, bool, bool],
22
- ) -> BlockMesh:
23
- return get_unit_cube(
24
- down,
25
- up,
26
- north,
27
- east,
28
- south,
29
- west,
30
- (
31
- Transparency.FullTranslucent
32
- if any(transparency)
33
- else Transparency.FullOpaque
34
- ),
35
- (0, 1, 0),
36
- )
37
-
38
-
39
- BlockShape = GreenCube()
@@ -1,36 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.resource_pack.bedrock.blockshapes.flat_wall import (
3
- FlatWall,
4
- )
5
- from amulet.mesh.block import BlockMesh
6
-
7
-
8
- class Ladder(FlatWall):
9
- @property
10
- def blockshape(self) -> str:
11
- return "ladder"
12
-
13
- def get_block_model(
14
- self,
15
- block: Block,
16
- down: str,
17
- up: str,
18
- north: str,
19
- east: str,
20
- south: str,
21
- west: str,
22
- transparency: tuple[bool, bool, bool, bool, bool, bool],
23
- modify_uv: bool = True,
24
- ) -> BlockMesh:
25
- rotation = {2: 2, 3: 0, 4: 1, 5: 3}.get(
26
- block.properties["facing_direction"].py_data, 0
27
- )
28
-
29
- return (
30
- super()
31
- .get_block_model(block, down, up, north, east, south, west, transparency)
32
- .rotate(0, rotation)
33
- )
34
-
35
-
36
- BlockShape = Ladder()
@@ -1,14 +0,0 @@
1
- from amulet.resource_pack.bedrock.blockshapes.flat import Flat
2
-
3
-
4
- class LilyPad(Flat):
5
- @property
6
- def blockshape(self) -> str:
7
- return "lilypad"
8
-
9
- @property
10
- def tint(self) -> tuple[float, float, float]:
11
- return 0, 1, 0
12
-
13
-
14
- BlockShape = LilyPad()
@@ -1,57 +0,0 @@
1
- from typing import Optional
2
-
3
- from amulet.block import Block
4
- from amulet.mesh.block.block_mesh import BlockMesh, Transparency
5
- from amulet.mesh.block.cube import get_cube
6
- from amulet.resource_pack.bedrock.blockshapes.default import Default
7
-
8
- BoundsType = tuple[tuple[float, float], tuple[float, float], tuple[float, float]]
9
- DoNotCullType = tuple[bool, bool, bool, bool, bool, bool]
10
-
11
-
12
- class PartialBlock(Default):
13
- def bounds(self, block: Block) -> BoundsType:
14
- return (0, 1), (0, 1), (0, 1)
15
-
16
- @property
17
- def do_not_cull(self) -> DoNotCullType:
18
- return False, False, False, False, False, False
19
-
20
- def get_block_model(
21
- self,
22
- block: Block,
23
- down: str,
24
- up: str,
25
- north: str,
26
- east: str,
27
- south: str,
28
- west: str,
29
- transparency: tuple[bool, bool, bool, bool, bool, bool],
30
- modify_uv: bool = True,
31
- bounds: Optional[BoundsType] = None,
32
- do_not_cull: Optional[DoNotCullType] = None,
33
- ) -> BlockMesh:
34
- bounds = bounds or self.bounds(block)
35
- if modify_uv:
36
- uv = (
37
- (bounds[0][0], bounds[2][0], bounds[0][1], bounds[2][1]),
38
- (bounds[0][0], bounds[2][0], bounds[0][1], bounds[2][1]),
39
- (bounds[0][0], 1 - bounds[1][1], bounds[0][1], 1 - bounds[1][0]),
40
- (bounds[2][0], 1 - bounds[1][1], bounds[2][1], 1 - bounds[1][0]),
41
- (bounds[0][0], 1 - bounds[1][1], bounds[0][1], 1 - bounds[1][0]),
42
- (bounds[2][0], 1 - bounds[1][1], bounds[2][1], 1 - bounds[1][0]),
43
- )
44
- else:
45
- uv = ((0, 0, 1, 1),) * 6
46
- return get_cube(
47
- down,
48
- up,
49
- north,
50
- east,
51
- south,
52
- west,
53
- Transparency.Partial,
54
- bounds=bounds,
55
- texture_uv=uv,
56
- do_not_cull=do_not_cull or self.do_not_cull,
57
- )
@@ -1,44 +0,0 @@
1
- from amulet.block import Block
2
- from amulet.mesh.block import BlockMesh
3
- from amulet.resource_pack.bedrock.blockshapes.cube import Cube
4
- import amulet_nbt
5
-
6
-
7
- class Piston(Cube):
8
- def is_valid(self, block: Block) -> bool:
9
- return isinstance(block.properties.get("facing_direction"), amulet_nbt.TAG_Int)
10
-
11
- @property
12
- def blockshape(self) -> str:
13
- return "piston"
14
-
15
- def texture_index(self, block: Block, aux_value: int) -> int:
16
- return 0
17
-
18
- @property
19
- def rotation_map(self) -> dict[int, tuple[int, int]]:
20
- return {0: (2, 0), 1: (0, 0), 2: (1, 2), 3: (1, 0), 4: (1, 1), 5: (1, 3)}
21
-
22
- def get_block_model(
23
- self,
24
- block: Block,
25
- down: str,
26
- up: str,
27
- north: str,
28
- east: str,
29
- south: str,
30
- west: str,
31
- transparency: tuple[bool, bool, bool, bool, bool, bool],
32
- ) -> BlockMesh:
33
- rotation = self.rotation_map.get(
34
- block.properties["facing_direction"].py_data, (0, 0)
35
- )
36
-
37
- return (
38
- super()
39
- .get_block_model(block, down, up, north, east, south, west, transparency)
40
- .rotate(*rotation)
41
- )
42
-
43
-
44
- BlockShape = Piston()
@@ -1,72 +0,0 @@
1
- from typing import Any
2
- from amulet.block import Block
3
- from amulet.mesh.block import BlockMesh
4
- from amulet.resource_pack.bedrock.blockshapes.partial_block import (
5
- PartialBlock,
6
- )
7
- import amulet_nbt
8
-
9
-
10
- class PistonArm(PartialBlock):
11
- def is_valid(self, block: Block) -> bool:
12
- return isinstance(block.properties.get("facing_direction"), amulet_nbt.TAG_Int)
13
-
14
- @property
15
- def blockshape(self) -> str:
16
- return "piston_arm"
17
-
18
- def texture_index(self, block: Block, aux_value: int) -> int:
19
- return 0
20
-
21
- @property
22
- def rotation_map(self) -> dict[int, tuple[int, int]]:
23
- return {0: (2, 0), 1: (0, 0), 2: (1, 2), 3: (1, 0), 4: (1, 1), 5: (1, 3)}
24
-
25
- def get_block_model(
26
- self,
27
- block: Block,
28
- down: str,
29
- up: str,
30
- north: str,
31
- east: str,
32
- south: str,
33
- west: str,
34
- transparency: tuple[bool, bool, bool, bool, bool, bool],
35
- *args: Any,
36
- **kwargs: Any
37
- ) -> BlockMesh:
38
- rotation = self.rotation_map.get(
39
- block.properties["facing_direction"].py_data, (0, 0)
40
- )
41
-
42
- return BlockMesh.merge(
43
- [
44
- super().get_block_model(
45
- block,
46
- down,
47
- up,
48
- north,
49
- north,
50
- north,
51
- north,
52
- transparency,
53
- bounds=((0, 1), (12 / 16, 1), (0, 1)),
54
- do_not_cull=(True, False, True, True, True, True),
55
- ),
56
- super().get_block_model(
57
- block,
58
- west,
59
- west,
60
- west,
61
- west,
62
- west,
63
- west,
64
- (transparency[5],) * 6,
65
- bounds=((6 / 16, 10 / 16), (0, 12 / 16), (6 / 16, 10 / 16)),
66
- do_not_cull=(False, False, True, True, True, True),
67
- ),
68
- ]
69
- ).rotate(*rotation)
70
-
71
-
72
- BlockShape = PistonArm()