amulet-core 2.0a7__cp311-cp311-win_amd64.whl → 2.0a8__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 (80) hide show
  1. amulet/__init__.cp311-win_amd64.pyd +0 -0
  2. amulet/__init__.py.cpp +2 -0
  3. amulet/__init__.pyi +2 -0
  4. amulet/_version.py +3 -3
  5. amulet/chunk.hpp +2 -1
  6. amulet/level/abc/_chunk_handle.py +45 -22
  7. amulet/mesh/block/__init__.pyi +301 -0
  8. amulet/mesh/block/_cube.py +198 -0
  9. amulet/mesh/block/{missing_block.py → _missing_block.py} +2 -2
  10. amulet/mesh/block/block_mesh.cpp +107 -0
  11. amulet/mesh/block/block_mesh.hpp +207 -0
  12. amulet/resource_pack/__init__.py +16 -15
  13. amulet/resource_pack/abc/resource_pack_manager.py +3 -5
  14. amulet/resource_pack/java/resource_pack_manager.py +185 -173
  15. amulet/utils/cast.py +10 -0
  16. amulet/utils/shareable_lock.py +2 -2
  17. {amulet_core-2.0a7.dist-info → amulet_core-2.0a8.dist-info}/METADATA +2 -2
  18. {amulet_core-2.0a7.dist-info → amulet_core-2.0a8.dist-info}/RECORD +21 -75
  19. {amulet_core-2.0a7.dist-info → amulet_core-2.0a8.dist-info}/WHEEL +1 -1
  20. amulet/mesh/block/__init__.py +0 -1
  21. amulet/mesh/block/block_mesh.py +0 -369
  22. amulet/mesh/block/cube.py +0 -149
  23. amulet/resource_pack/bedrock/__init__.py +0 -2
  24. amulet/resource_pack/bedrock/bedrock_vanilla_fix/pack_icon.png +0 -0
  25. amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/grass_carried.png +0 -0
  26. amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/grass_side_carried.png +0 -0
  27. amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/water.png +0 -0
  28. amulet/resource_pack/bedrock/blockshapes/__init__.py +0 -31
  29. amulet/resource_pack/bedrock/blockshapes/air.py +0 -35
  30. amulet/resource_pack/bedrock/blockshapes/base_blockshape.py +0 -29
  31. amulet/resource_pack/bedrock/blockshapes/bubble_column.py +0 -29
  32. amulet/resource_pack/bedrock/blockshapes/cake.py +0 -46
  33. amulet/resource_pack/bedrock/blockshapes/chest.py +0 -54
  34. amulet/resource_pack/bedrock/blockshapes/comparator.py +0 -51
  35. amulet/resource_pack/bedrock/blockshapes/cross_texture.py +0 -186
  36. amulet/resource_pack/bedrock/blockshapes/cross_texture0.py +0 -17
  37. amulet/resource_pack/bedrock/blockshapes/cross_texture_green.py +0 -16
  38. amulet/resource_pack/bedrock/blockshapes/cube.py +0 -38
  39. amulet/resource_pack/bedrock/blockshapes/default.py +0 -14
  40. amulet/resource_pack/bedrock/blockshapes/door.py +0 -38
  41. amulet/resource_pack/bedrock/blockshapes/door1.py +0 -14
  42. amulet/resource_pack/bedrock/blockshapes/door2.py +0 -14
  43. amulet/resource_pack/bedrock/blockshapes/door3.py +0 -14
  44. amulet/resource_pack/bedrock/blockshapes/door4.py +0 -14
  45. amulet/resource_pack/bedrock/blockshapes/door5.py +0 -14
  46. amulet/resource_pack/bedrock/blockshapes/door6.py +0 -14
  47. amulet/resource_pack/bedrock/blockshapes/double_plant.py +0 -40
  48. amulet/resource_pack/bedrock/blockshapes/enchanting_table.py +0 -22
  49. amulet/resource_pack/bedrock/blockshapes/farmland.py +0 -22
  50. amulet/resource_pack/bedrock/blockshapes/fence.py +0 -22
  51. amulet/resource_pack/bedrock/blockshapes/flat.py +0 -55
  52. amulet/resource_pack/bedrock/blockshapes/flat_wall.py +0 -55
  53. amulet/resource_pack/bedrock/blockshapes/furnace.py +0 -44
  54. amulet/resource_pack/bedrock/blockshapes/furnace_lit.py +0 -14
  55. amulet/resource_pack/bedrock/blockshapes/green_cube.py +0 -39
  56. amulet/resource_pack/bedrock/blockshapes/ladder.py +0 -36
  57. amulet/resource_pack/bedrock/blockshapes/lilypad.py +0 -14
  58. amulet/resource_pack/bedrock/blockshapes/partial_block.py +0 -57
  59. amulet/resource_pack/bedrock/blockshapes/piston.py +0 -44
  60. amulet/resource_pack/bedrock/blockshapes/piston_arm.py +0 -72
  61. amulet/resource_pack/bedrock/blockshapes/portal_frame.py +0 -22
  62. amulet/resource_pack/bedrock/blockshapes/pressure_plate.py +0 -29
  63. amulet/resource_pack/bedrock/blockshapes/pumpkin.py +0 -36
  64. amulet/resource_pack/bedrock/blockshapes/pumpkin_carved.py +0 -14
  65. amulet/resource_pack/bedrock/blockshapes/pumpkin_lit.py +0 -14
  66. amulet/resource_pack/bedrock/blockshapes/red_dust.py +0 -14
  67. amulet/resource_pack/bedrock/blockshapes/repeater.py +0 -53
  68. amulet/resource_pack/bedrock/blockshapes/slab.py +0 -33
  69. amulet/resource_pack/bedrock/blockshapes/slab_double.py +0 -15
  70. amulet/resource_pack/bedrock/blockshapes/tree.py +0 -41
  71. amulet/resource_pack/bedrock/blockshapes/turtle_egg.py +0 -15
  72. amulet/resource_pack/bedrock/blockshapes/vine.py +0 -52
  73. amulet/resource_pack/bedrock/blockshapes/wall.py +0 -22
  74. amulet/resource_pack/bedrock/blockshapes/water.py +0 -38
  75. amulet/resource_pack/bedrock/download_resources.py +0 -147
  76. amulet/resource_pack/bedrock/resource_pack.py +0 -40
  77. amulet/resource_pack/bedrock/resource_pack_manager.py +0 -361
  78. amulet/resource_pack/bedrock/sort_blockshapes.py +0 -15
  79. {amulet_core-2.0a7.dist-info → amulet_core-2.0a8.dist-info}/entry_points.txt +0 -0
  80. {amulet_core-2.0a7.dist-info → amulet_core-2.0a8.dist-info}/top_level.txt +0 -0
@@ -1,8 +1,8 @@
1
- amulet/__init__.cp311-win_amd64.pyd,sha256=j2WIdbnETQNeIiZxiqyueQzYrFSdwiBe_vpDncPWL1I,984576
2
- amulet/__init__.py.cpp,sha256=pytp9TLaibFf8FEK7Iq5x00ahw4ATNiY4YsFWIqUQYM,1230
3
- amulet/__init__.pyi,sha256=3l62_ykwiftlm-QWLmaKnUG0QwmjR1I84X1NjDw5Uvw,410
1
+ amulet/__init__.cp311-win_amd64.pyd,sha256=W-8axm1OcOxmO3FY-Z4HUN18VAMNHipL1PryGjRD8gc,1091072
2
+ amulet/__init__.py.cpp,sha256=tJGcgVzXaxy8zQG7kzWbb7pRkyG07Wy2cGXrt0ywb9Q,1290
3
+ amulet/__init__.pyi,sha256=qNiF_3bpoauni4tQ2qx0kD8_5LUH8BGpja0Ggw6FOvY,434
4
4
  amulet/_init.py,sha256=qI3pL1rDoaoEH5RrsPv__jjwo3UO9uS-Tw0XWnjO5C8,867
5
- amulet/_version.py,sha256=VoDBrBHFUjIdcB2sZ-u_TcvGypCm7b2WWMItnoFZVlI,518
5
+ amulet/_version.py,sha256=Nlcz19-VztcI3V4O04VaPQ34YfM242fPjyvpuKH-qfI,518
6
6
  amulet/biome.cpp,sha256=aCkTqYUFOVP6qtHVKC47IBgqCTO6nFQK1f4cn0v4otQ,1289
7
7
  amulet/biome.hpp,sha256=zIg03StMGotnhTo6bD6Dd3o5vPnleIXxBXRBTltZ3Bk,1474
8
8
  amulet/biome.py.cpp,sha256=kRwgdOoUhivWU7BCxlCYUqzuj91frREaoHhQBooaccA,4490
@@ -16,7 +16,7 @@ amulet/block_entity.hpp,sha256=GjvOQO726HG_pUTdKSInQePA6py2QAwOKf7fVnhJ7po,2045
16
16
  amulet/block_entity.py.cpp,sha256=JySo2avXvfSy2WUwiT7OvBF3jxqkV9bwAziZa57kpxk,4332
17
17
  amulet/block_entity.pyi,sha256=cFdzUXjjXhlfgyDZA3urEejpNIokw25qFR9pDssHSgY,2144
18
18
  amulet/chunk.cpp,sha256=Z-Wdcb6SQqc3TEaGNToG1NovffeVSiODO8zbmf7cO6c,406
19
- amulet/chunk.hpp,sha256=Y0crnm_LKY8IWToUeRuA0tUXeYgbMO27fXrBmkf6Sow,3075
19
+ amulet/chunk.hpp,sha256=nifpMclwk7j5wjlI2O6aSmdG-u6mbzgUlldlr--noWY,3121
20
20
  amulet/chunk.py.cpp,sha256=UjK1s9FFiKC9GDliJjFBb6m7RCNyJiruNo4feJOmYAM,2831
21
21
  amulet/chunk.pyi,sha256=rZITqIR4tITDKxO5Sr_EZH2p6Cb1b9o5W8CpV1jBFtw,702
22
22
  amulet/chunk_components.pyi,sha256=pcTF27lpeaz_VwiYY8AaZkdGGgDhKbOKQK4LBdO52_0,3345
@@ -106,7 +106,7 @@ amulet/io/binary_writer.hpp,sha256=l7OPfHmZy196EwUlKww58lV2zUmvfwlz80YRHDzDJ7k,7
106
106
  amulet/level/__init__.pyi,sha256=VldU96w64xL_HEHMDXqrPdTXo8aZdYCe2CUdqzmjbW0,472
107
107
  amulet/level/_load.py,sha256=9xg84f_F-aEaG5V1Pjw5BrxHZ4j2QhLBgLG9sZi-D2c,2953
108
108
  amulet/level/abc/__init__.py,sha256=nnSCNSaOOdmZqoUQ0klZ_IW2HmjKdwAwS9vMp1z_hNo,324
109
- amulet/level/abc/_chunk_handle.py,sha256=j_4ro8kEiZnhEiY0XReVAOPOrleqQetThSDPbcutlrg,12177
109
+ amulet/level/abc/_chunk_handle.py,sha256=Rmqd7Z9QZdF1koLwWTWcgw7PJTz5oq5pI8Wfchu2bgU,13098
110
110
  amulet/level/abc/_dimension.py,sha256=qxCjsUCdHt1OxbQKxMifQeE75H_DToLSeftQPUO0MgA,3309
111
111
  amulet/level/abc/_player_storage.py,sha256=3GByE_EOqZFZ7BKbr-oH-rcQDxj_bCNxsCLtzUAu0J4,130
112
112
  amulet/level/abc/_raw_level.py,sha256=6s-SCeNDYTYqjrL1Y1RIFiHX5mzie5eXB4JZ1ZX0kYk,5877
@@ -163,10 +163,11 @@ amulet/level/temporary_level/__init__.py,sha256=CWBmaiN18nRi8GJfDaqjhDfMulvLuhFV
163
163
  amulet/level/temporary_level/_level.py,sha256=gSLhSLosS_HB7lLNvdoPavtlBSu12BEKMnShExveUS8,433
164
164
  amulet/mesh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
165
  amulet/mesh/util.py,sha256=ietbRnpU-sDvOGRf917J3d7NVkMBlTO5d20qEcA3v6k,605
166
- amulet/mesh/block/__init__.py,sha256=YlUVFA6vTGRc7swriYYyQGVREHJ45qQP1u3v25zI87Q,35
167
- amulet/mesh/block/block_mesh.py,sha256=yiyNmz6ZFrcOptbXBl8gBr0Zjk8MTui9R2e2eRhqkbg,15178
168
- amulet/mesh/block/cube.py,sha256=9AjPpS9pJhhTyiEgBiYQ22OF_Q3O6clYgQpXvKqUs2U,4834
169
- amulet/mesh/block/missing_block.py,sha256=_ws5mnDuKQV5vRONccTSQ2xhVnowdnJbEMuGtSfiMqo,558
166
+ amulet/mesh/block/__init__.pyi,sha256=0Y_Mgd46ii9GExcCIZHo7VFnymXbb6ZTze2fcJvVAB0,9871
167
+ amulet/mesh/block/_cube.py,sha256=I4Hb-txBjObw3D--rZqUnto8PCGhs46T7W5Iveo5-y4,5613
168
+ amulet/mesh/block/_missing_block.py,sha256=2o44Vd_feHIVc0SuHVcPIaJSnqUBp4Q6ztOizLBHFQU,565
169
+ amulet/mesh/block/block_mesh.cpp,sha256=YN-yS36WaKUsnk-CHwCcpPRMnaNsV1J-gn6krwbqIi0,5017
170
+ amulet/mesh/block/block_mesh.hpp,sha256=82jjS6QrrCCL07-OV48pmWAE0ATpnBalP2EAaqGN-_g,5641
170
171
  amulet/palette/__init__.pyi,sha256=6uZ7aJ2ROJ9OdqfddfBRweoe_nEKGHCME7ub70kOIRU,274
171
172
  amulet/palette/biome_palette.hpp,sha256=nEO9g-GDUkut8BWjaNf-QFcJIXYXW4F6HmRwFJqqzD8,2165
172
173
  amulet/palette/biome_palette.pyi,sha256=eJx72wOdgxvo3c_N_GqLyIVIAf1kNCRsQctLU7FxWrs,1612
@@ -179,71 +180,15 @@ amulet/pybind11/py_module.hpp,sha256=ewz8Fr-SYzBWJtueK56Tf3pjl0phrQ03kQ5DONdX6o4
179
180
  amulet/pybind11/type_hints.hpp,sha256=JJvcmBqgcTxMkR_SJTXXUfD3Jpr24KG1FknWhKgfvi8,1336
180
181
  amulet/pybind11/types.hpp,sha256=F6SQlwajmGkETTlPZENl6sF5Si73UK7LAAxR9mcSO7k,533
181
182
  amulet/pybind11/typing.hpp,sha256=2dQXcB83ibVM92DhKmSCu6t4TjKDNvhs0X3oShcTdqs,94
182
- amulet/resource_pack/__init__.py,sha256=GukhaAnTOub2uNGvGlil-GSsGrX50N1rbDzdNhO5-cY,2198
183
+ amulet/resource_pack/__init__.py,sha256=FWbkZbXe2OYMeihZX1Q5kckJukyXtP4Nz4vk5rPqLaI,2230
183
184
  amulet/resource_pack/unknown_resource_pack.py,sha256=gMlFo04gXImEHzEqahei3kZX0hM5jUUHWVoKwTKDifo,293
184
185
  amulet/resource_pack/abc/__init__.py,sha256=XLkI08rMQM2HRrGNVvgIrQ70wE5Ck8kbbnCMIgx6ZYU,105
185
186
  amulet/resource_pack/abc/resource_pack.py,sha256=VdfrxC9umHSP9Hc2LcE7VlymdHSUw00pf1PQO96kebM,1121
186
- amulet/resource_pack/abc/resource_pack_manager.py,sha256=wgQjOT6gHjjxe_RHKL1hn8piInrRqpNLUnYHAYow7f0,3152
187
- amulet/resource_pack/bedrock/__init__.py,sha256=dVKSNcwek-7OR4zem8apGltJmp2yZJ8UXbDXPudVfWg,111
188
- amulet/resource_pack/bedrock/download_resources.py,sha256=jDtD1IuvuQfSTRrxmLnP2Hz2odFpneV3XvhZPwB4EPE,5291
189
- amulet/resource_pack/bedrock/resource_pack.py,sha256=4H_OpgSG-tQBeJLP1vjNa4TOWmnQHuaxYP-Bju1n7UM,1611
190
- amulet/resource_pack/bedrock/resource_pack_manager.py,sha256=DJ1SXL4eHPcqYwaVr4cMM2z-SaLB-YY__jU5wtHJan4,15186
191
- amulet/resource_pack/bedrock/sort_blockshapes.py,sha256=GTg0VhrMT227ZIEFQbSTOyitCIwmOkES6WlaFWN2tmI,454
192
- amulet/resource_pack/bedrock/bedrock_vanilla_fix/pack_icon.png,sha256=o9GLehpYZX0uVXmNRv4fdiMRQ7hFOWm54NvenSOgEBI,32642
193
- amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/grass_carried.png,sha256=jRCdf0bcn-ItMsQ3XaRweqeoDBQzag8Vjn5o_lGa2Pw,580
194
- amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/grass_side_carried.png,sha256=3tqgFxr2PfY6bPfj5scHjU1YMP2Tkj8wBTAu0PAhBMU,408
195
- amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/water.png,sha256=0J3A8M_8PcrvkD9iaNIrGKLeFG0WPVgZClg6jODilwM,927
196
- amulet/resource_pack/bedrock/blockshapes/__init__.py,sha256=69b75D8JdF6rs32RZ3Ezcb0AH4gns9cgnEhDsAyFdXs,1077
197
- amulet/resource_pack/bedrock/blockshapes/air.py,sha256=jD54BHTjTweRLlNK25A9H2r41ZfUANw87gcHTyaUFsk,989
198
- amulet/resource_pack/bedrock/blockshapes/base_blockshape.py,sha256=EYakoRhgdYUS7O0IEGN1QKxQgV792Qw5XM3wzigjv5Y,843
199
- amulet/resource_pack/bedrock/blockshapes/bubble_column.py,sha256=qVX7q5aPm2Abi2nk_AoZPVwSh0y2Kv-A69x3dFnpCBA,704
200
- amulet/resource_pack/bedrock/blockshapes/cake.py,sha256=oHiVfvR_P--s2skyJKplH79r6yo-VYfK1qOwEQlVaZU,1363
201
- amulet/resource_pack/bedrock/blockshapes/chest.py,sha256=-tagH5rnteLS2L9oS3wYLxCxYZXMOvbI6SCCR-RNAxI,1439
202
- amulet/resource_pack/bedrock/blockshapes/comparator.py,sha256=zK55P54yYh9-YvpGFmcslY9k2DrFWBrR3P1-Foqhkok,1427
203
- amulet/resource_pack/bedrock/blockshapes/cross_texture.py,sha256=bilFSAPPqza2VukkjVWH0VtqkuVz5QRymxdmxuzv2mo,5304
204
- amulet/resource_pack/bedrock/blockshapes/cross_texture0.py,sha256=yo0n7w6lNr4NB85AMMg8xksMhZclz4_k7VWXNVwXF3A,415
205
- amulet/resource_pack/bedrock/blockshapes/cross_texture_green.py,sha256=z-hwTNApVo5BfuNl1qIxwEuDO70rReWPRfVgJXjCQls,325
206
- amulet/resource_pack/bedrock/blockshapes/cube.py,sha256=9FmSK40u0rgDS66zL_wpG9x7fnlrpphu28VhilKIpi8,931
207
- amulet/resource_pack/bedrock/blockshapes/default.py,sha256=XoM0BXFC7w5FxX7E9X9EHPE6wsKJNhmtovsO6IlVm14,495
208
- amulet/resource_pack/bedrock/blockshapes/door.py,sha256=Lf3pa7O77d7B-eEg8PtBZ7r8ec2HN1XGbChp6hIy3_A,1091
209
- amulet/resource_pack/bedrock/blockshapes/door1.py,sha256=BJW43jyzPOo4LhSvZ3uQrbp1rwL5lTbTpxAUkrTSwlA,306
210
- amulet/resource_pack/bedrock/blockshapes/door2.py,sha256=o38cwhZlMSMxUe-SOln9IOr5OX1p_2XllDeBemSKqdc,306
211
- amulet/resource_pack/bedrock/blockshapes/door3.py,sha256=vGyspYQOz_xHAhbFXURDfEaL8nAt73lfdzFvRAHY3Fw,306
212
- amulet/resource_pack/bedrock/blockshapes/door4.py,sha256=br0J6weSLP3HGnRxQGu14fv5NMFON6uhLcsiju2dLLo,306
213
- amulet/resource_pack/bedrock/blockshapes/door5.py,sha256=Xy3DxTwEseCFcyjsmenAKTEcVAbIQ_xgW6ktLuFfZ6U,306
214
- amulet/resource_pack/bedrock/blockshapes/door6.py,sha256=JQHG2cnwyjGA0JfN6WSj6vxfRXYDkxY7l9wN8muyIJI,306
215
- amulet/resource_pack/bedrock/blockshapes/double_plant.py,sha256=Fz83ttupKTQr4qFvFVlxM8V14myXlVCwhPa8rqBixHY,1193
216
- amulet/resource_pack/bedrock/blockshapes/enchanting_table.py,sha256=NvredknkqNGHd6nbMwULRIvd0L1l9nkau0PZwU2O76c,604
217
- amulet/resource_pack/bedrock/blockshapes/farmland.py,sha256=_W8BoCGQEzcgmobJ-TDJl2Og36VZosn7ivJzg3aqW4k,582
218
- amulet/resource_pack/bedrock/blockshapes/fence.py,sha256=SxRF8N8tDHJqVV32ZxYwvpW67zAwcyj1VnXcb1NkviA,592
219
- amulet/resource_pack/bedrock/blockshapes/flat.py,sha256=2AVzmi_e0FOpZZYFR6HNJMw6Cb82eYKk764GKBfWrls,1580
220
- amulet/resource_pack/bedrock/blockshapes/flat_wall.py,sha256=9yCCMP2GelDY7tLbD_Oi5Vri7aJbTGDUL95AuafnzfU,1584
221
- amulet/resource_pack/bedrock/blockshapes/furnace.py,sha256=tS4Ny5gCVuL1hdj7VZ7ixFOLsYQCKRuk7CRZVdFTSzo,1176
222
- amulet/resource_pack/bedrock/blockshapes/furnace_lit.py,sha256=IEYQVClQ5bFPNb6qNnn5omVotd27Awm3lqZ3WdrUO3Q,317
223
- amulet/resource_pack/bedrock/blockshapes/green_cube.py,sha256=XpAqxMjs_b__BzcTQdgd09ur7zlRBH18UCAya6isMN8,961
224
- amulet/resource_pack/bedrock/blockshapes/ladder.py,sha256=6ZGiw6X6P6gMp3meRwHiCH-uCQYpNm_CtUcsohOIUQY,888
225
- amulet/resource_pack/bedrock/blockshapes/lilypad.py,sha256=Vv5UKYBmQAVtE5oqwB45Aq__RLeAmeelpvTXlmNjQuQ,285
226
- amulet/resource_pack/bedrock/blockshapes/partial_block.py,sha256=eKJVTgLlfT0WF8HRAdC0pMKb_X8fxDiHC7hbMNL4mXc,1977
227
- amulet/resource_pack/bedrock/blockshapes/piston.py,sha256=m5k5VFpshcxBUpkZe3s6S_W8-S5Sz9x0kJ_zDFqjjhg,1230
228
- amulet/resource_pack/bedrock/blockshapes/piston_arm.py,sha256=vruoB1Wj9SJN_aJOwb4p__TXr03r9svO1Ggi3H54nUg,2140
229
- amulet/resource_pack/bedrock/blockshapes/portal_frame.py,sha256=5RUpuLRLl2UV9CB8ea1dXwLQ9hZasZPH-sFgygh6c6Y,592
230
- amulet/resource_pack/bedrock/blockshapes/pressure_plate.py,sha256=SjSZvm0azV8ly_gXhC4uSkugkYwo-G84n-opVLT0128,922
231
- amulet/resource_pack/bedrock/blockshapes/pumpkin.py,sha256=aFHN-rxa-z24lBNl9nhWcGqJwI3wF1HGuX_PlQTQPaw,976
232
- amulet/resource_pack/bedrock/blockshapes/pumpkin_carved.py,sha256=lgq0S2PZ-1bZv0x1af2rVOPB7RfC2VBZcyE80mIEGGg,340
233
- amulet/resource_pack/bedrock/blockshapes/pumpkin_lit.py,sha256=W4Rs6dz1CYmCdNWT0qAPjJgvXOoCGH-9IXl9mmJBtmk,331
234
- amulet/resource_pack/bedrock/blockshapes/red_dust.py,sha256=SQQn9K2jAaIjMyWDl6ehpy-XNM8hcZrB7r7lCUbcjUc,286
235
- amulet/resource_pack/bedrock/blockshapes/repeater.py,sha256=Loln46WDXfXhOSB0AJVUfRNjanRAFj7Rh7BYkLIFwQM,1492
236
- amulet/resource_pack/bedrock/blockshapes/slab.py,sha256=HluDkJg_ysgWMY5MgM3TW7CH5rX30yQPqdhBR6dZiEw,1017
237
- amulet/resource_pack/bedrock/blockshapes/slab_double.py,sha256=yAGQxYmYt-bYu298e-Njadfhn5RN0yYJgroTC1KPt70,410
238
- amulet/resource_pack/bedrock/blockshapes/tree.py,sha256=LdgW-L3v0ufUO25NrL_9ECEFRDodnVBfQj7yVT_KfCI,1121
239
- amulet/resource_pack/bedrock/blockshapes/turtle_egg.py,sha256=Dd6QBYZZ-5tn3PefAZij9TMpAf0PMJYu2SJ1E2nsP4A,414
240
- amulet/resource_pack/bedrock/blockshapes/vine.py,sha256=sacMD7Tn3V-bKm3quvWmFDpFHhTEgbZzVWZm0lycu04,1453
241
- amulet/resource_pack/bedrock/blockshapes/wall.py,sha256=671u3WomuaZuYoKTSF_lVNns3KnSbL5Hyyly-0DF8F0,583
242
- amulet/resource_pack/bedrock/blockshapes/water.py,sha256=LfyTxVidSlZLq0NPUYCt6tBz85M66jEs8yMzbGhltFg,923
187
+ amulet/resource_pack/abc/resource_pack_manager.py,sha256=zlEF84SAT95JgXQKyyyYFxr4YCpdpNlb_QU2Hs4YmRQ,3103
243
188
  amulet/resource_pack/java/__init__.py,sha256=pgdInD46sfEtkhYfzQ0dR1IEyXOUj2b47iPYmVmpvm8,105
244
189
  amulet/resource_pack/java/download_resources.py,sha256=zi09C8IPm3edIcn5WGHzO6BE44889hyqx0zhkRzGdC8,7249
245
190
  amulet/resource_pack/java/resource_pack.py,sha256=WcGxKrLwzsqbBvyh7by_7RUi5S-XDFwbzvebu0VCmqE,1681
246
- amulet/resource_pack/java/resource_pack_manager.py,sha256=_1R2TbMTAmqpU363rqGGIGpy8SRW1YABxR2EG8zY0SM,23425
191
+ amulet/resource_pack/java/resource_pack_manager.py,sha256=Y1xQftygzY0blRHgAaqREbTabX6_NSgM1MOLNCHoz2g,23191
247
192
  amulet/resource_pack/java/java_vanilla_fix/pack.png,sha256=j1Wwi-rvUZD8_sVUiphxbOwVmWmGoCYLDEnH00AMpyc,22749
248
193
  amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/barrier.png,sha256=bhz4dFbZBy1YpE2J3kf07mI5z-P2i0-PblhV9PXwcjc,651
249
194
  amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/end_portal.png,sha256=-yEn-M_Jr5Bi2cCMwSiviUJF4aZaun0BSQw1dgkH39g,1265
@@ -272,6 +217,7 @@ amulet/selection/abstract_selection.py,sha256=yvEiPaH5JcDdUA0VxtbghjYsDzU29XWHAT
272
217
  amulet/selection/box.py,sha256=dwtnb0nuuJAeTrfd6VwI2UgaLJvbk_GiuCDp9z9QBdU,32349
273
218
  amulet/selection/group.py,sha256=hcgE2e43lXJ9NkeS8-Gmh356B-aOgo8eJGEeYJLyMvM,18862
274
219
  amulet/utils/__init__.pyi,sha256=uVQKuLJHBxeQXOenIOUO43_07ke9Su5p4kYmfrbzeuw,344
220
+ amulet/utils/cast.py,sha256=1-lZEu29C8uywTqhNqRRbf7EImZA2S3lK-wyCr_C0lA,274
275
221
  amulet/utils/comment_json.py,sha256=YRQ5qYXqEHbf-lEGQq8_2V5KwPiC1D-UZUakrrjkx-E,6401
276
222
  amulet/utils/format_utils.py,sha256=Y70colA8tULftJ577wnUu3TG4xiYFadZehi_PLIbva0,1225
277
223
  amulet/utils/generator.py,sha256=ANi13ZjRraAlcTQUzEBDAQiRXED5E3WAaBMj3h7nY3M,449
@@ -279,7 +225,7 @@ amulet/utils/matrix.py,sha256=de23bHLG8AnQR9O9AcH7Nl7DIhx6kJCHh4eYT1SjPLM,8078
279
225
  amulet/utils/numpy.hpp,sha256=14GYfi_HRV1YmQ7b1DWpFrQ3zl11Qlg2-90qCKrXaQ4,1214
280
226
  amulet/utils/numpy.pyi,sha256=13fnNDQotruAV8wn7Hgn9e3JdOVWevxTF7VsxNLzc0A,281
281
227
  amulet/utils/numpy_helpers.py,sha256=8buyaoQlQYvVAgqg32CF7KBk4_mW2jSvJ2oemY1Kg5I,530
282
- amulet/utils/shareable_lock.py,sha256=2jSshZj0qbnLgKWV7qu8MS1XV_ERT2iBPqCr3SmXVOg,13834
228
+ amulet/utils/shareable_lock.py,sha256=IJg1MgcWhA9ba01n2mYC9duRGADx3usbXH_haDXyobE,13886
283
229
  amulet/utils/task_manager.py,sha256=TIlZJOKateGHDObWxO-ZRU5CpJeoP_7OjVE27jJszb0,7194
284
230
  amulet/utils/typed_property.py,sha256=rzXa5bcOaD29WTYqR_ToKuuFv2rfedbUXZnmbX4bX4I,3645
285
231
  amulet/utils/weakref.py,sha256=JXhRxS9DiQY9F91PeSRjLB67qXgFDNltWcdB5V4mR_E,2472
@@ -288,8 +234,8 @@ amulet/utils/call_spec/__init__.py,sha256=ZnDIa945TTt6rW_wS_v8iHFj_tL8yh3a179fnW
288
234
  amulet/utils/call_spec/_call_spec.py,sha256=0OhKVkEbKyu2e-3nM0wEcob4tO3g7mGJpGVIamQBXZM,6996
289
235
  amulet/utils/signal/__init__.py,sha256=MJUOgeaU354_0GX-VZBv6Gb42UqKg-uFPgYd75ilS5c,283
290
236
  amulet/utils/signal/_signal.py,sha256=gYV83tJ5qfwjfD9XcxuQVP4wj-9ryR4Qk49K8f3Hbco,7608
291
- amulet_core-2.0a7.dist-info/METADATA,sha256=lVtoUKXsY2svnDuIQUme42zHz6w6PK-BKuXF0v7Xoa4,4572
292
- amulet_core-2.0a7.dist-info/WHEEL,sha256=qW4RD1rfHm8ZRUjJbXUnZHDNPCXHt6Rq0mgR8lv_JEg,101
293
- amulet_core-2.0a7.dist-info/entry_points.txt,sha256=53zFNThTPzI8f9ertsyU2DoUpxdWU8rjOA_Cu4YH5Vk,63
294
- amulet_core-2.0a7.dist-info/top_level.txt,sha256=3ZqHzNDiIb9kV8TwSeeXxK_9haSrsu631Qe4ndDo0rc,7
295
- amulet_core-2.0a7.dist-info/RECORD,,
237
+ amulet_core-2.0a8.dist-info/METADATA,sha256=lAlVK8rGSntsNsbZkSldLgEFOU9mTZzVIEfLh6X50Rw,4572
238
+ amulet_core-2.0a8.dist-info/WHEEL,sha256=tE2EWZPEv-G0fjAlUUz7IGM64246YKD9fpv4HcsDMkk,101
239
+ amulet_core-2.0a8.dist-info/entry_points.txt,sha256=53zFNThTPzI8f9ertsyU2DoUpxdWU8rjOA_Cu4YH5Vk,63
240
+ amulet_core-2.0a8.dist-info/top_level.txt,sha256=3ZqHzNDiIb9kV8TwSeeXxK_9haSrsu631Qe4ndDo0rc,7
241
+ amulet_core-2.0a8.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.2.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-cp311-win_amd64
5
5
 
@@ -1 +0,0 @@
1
- from .block_mesh import BlockMesh
@@ -1,369 +0,0 @@
1
- from __future__ import annotations
2
- from typing import Optional, Any
3
- from collections.abc import Iterable
4
- import numpy
5
- import itertools
6
- from enum import IntEnum
7
-
8
- from amulet.mesh.util import rotate_3d
9
-
10
- FACE_KEYS = {"down", "up", "north", "east", "south", "west", None}
11
-
12
-
13
- def _create_cull_map() -> dict[tuple[int, int], dict[Optional[str], Optional[str]]]:
14
- cull_remap_ = {}
15
- roty_map = ["north", "east", "south", "west"]
16
- for roty in range(-3, 4):
17
- for rotx in range(-3, 4):
18
- roty_map_rotated = roty_map[roty:] + roty_map[:roty]
19
- rotx_map = [roty_map_rotated[0], "down", roty_map_rotated[2], "up"]
20
- rotx_map_rotated = rotx_map[rotx:] + rotx_map[:rotx]
21
- roty_remap = dict(zip(roty_map, roty_map_rotated))
22
- rotx_remap = dict(zip(rotx_map, rotx_map_rotated))
23
- cull_remap_value: dict[Optional[str], Optional[str]] = {}
24
- cull_remap_[(roty, rotx)] = cull_remap_value
25
- for key in FACE_KEYS:
26
- if key is None:
27
- cull_remap_value[key] = None
28
- else:
29
- roty_value = roty_remap.get(key, key)
30
- cull_remap_value[key] = rotx_remap.get(roty_value, roty_value)
31
- return cull_remap_
32
-
33
-
34
- cull_remap_all = _create_cull_map()
35
-
36
-
37
- class Transparency(IntEnum):
38
- FullOpaque = 0 # the block is a full block with opaque textures
39
- FullTranslucent = (
40
- 1 # the block is a full block with transparent/translucent textures
41
- )
42
- Partial = 2 # the block is not a full block
43
-
44
-
45
- class BlockMesh:
46
- """Class for storing model data"""
47
-
48
- @classmethod
49
- def merge(cls, models: Iterable[BlockMesh]) -> BlockMesh:
50
- textures_src: list[str] = []
51
- texture_count = 0
52
- vert_count: dict[Optional[str], int] = {side: 0 for side in FACE_KEYS}
53
- verts_src: dict[Optional[str], list[numpy.ndarray]] = {
54
- side: [] for side in FACE_KEYS
55
- }
56
- tverts_src: dict[Optional[str], list[numpy.ndarray]] = {
57
- side: [] for side in FACE_KEYS
58
- }
59
- tint_verts_src: dict[Optional[str], list[numpy.ndarray]] = {
60
- side: [] for side in FACE_KEYS
61
- }
62
- faces_src: dict[Optional[str], list[numpy.ndarray]] = {
63
- side: [] for side in FACE_KEYS
64
- }
65
- texture_indexes_src: dict[Optional[str], list[numpy.ndarray]] = {
66
- side: [] for side in FACE_KEYS
67
- }
68
- transparent: Transparency = Transparency.Partial
69
-
70
- cull_dir: Optional[str]
71
- for temp_model in models:
72
- for cull_dir in temp_model.faces.keys():
73
- verts_src[cull_dir].append(temp_model.verts[cull_dir])
74
- tverts_src[cull_dir].append(temp_model.texture_coords[cull_dir])
75
- tint_verts_src[cull_dir].append(temp_model.tint_verts[cull_dir])
76
- face_table = temp_model.faces[cull_dir].copy()
77
- texture_index = temp_model.texture_index[cull_dir].copy()
78
- face_table += vert_count[cull_dir]
79
- texture_index += texture_count
80
- faces_src[cull_dir].append(face_table)
81
- texture_indexes_src[cull_dir].append(texture_index)
82
-
83
- vert_count[cull_dir] += int(
84
- temp_model.verts[cull_dir].shape[0] / temp_model.face_mode
85
- )
86
-
87
- textures_src += temp_model.textures
88
- texture_count += len(temp_model.textures)
89
- transparent = min(transparent, temp_model.is_transparent)
90
-
91
- if textures_src:
92
- textures_, texture_index_map = numpy.unique(
93
- textures_src, return_inverse=True, axis=0
94
- )
95
- textures = tuple(textures_)
96
- texture_index_map = texture_index_map.astype(numpy.uint32)
97
- else:
98
- textures = ()
99
- texture_index_map = numpy.array([], dtype=numpy.uint8)
100
-
101
- verts: dict[Optional[str], numpy.ndarray] = {}
102
- tverts: dict[Optional[str], numpy.ndarray] = {}
103
- tint_verts: dict[Optional[str], numpy.ndarray] = {}
104
- faces: dict[Optional[str], numpy.ndarray] = {}
105
- texture_indexes: dict[Optional[str], numpy.ndarray] = {}
106
-
107
- for cull_dir in FACE_KEYS:
108
- if faces_src[cull_dir]:
109
- faces[cull_dir] = numpy.concatenate(faces_src[cull_dir], axis=None)
110
- texture_indexes[cull_dir] = texture_index_map[
111
- numpy.concatenate(texture_indexes_src[cull_dir], axis=None)
112
- ]
113
- if verts_src[cull_dir]:
114
- verts[cull_dir] = numpy.concatenate(verts_src[cull_dir], axis=None)
115
- tverts[cull_dir] = numpy.concatenate(
116
- tverts_src[cull_dir], axis=None
117
- )
118
- tint_verts[cull_dir] = numpy.concatenate(
119
- tint_verts_src[cull_dir], axis=None
120
- )
121
- else:
122
- verts[cull_dir] = numpy.zeros((0, 3), float)
123
- tverts[cull_dir] = numpy.zeros((0, 2), float)
124
- tint_verts[cull_dir] = numpy.zeros(0, float)
125
-
126
- return cls(
127
- 3, verts, tverts, tint_verts, faces, texture_indexes, textures, transparent
128
- )
129
-
130
- def __init__(
131
- self,
132
- face_width: int,
133
- verts: dict[Optional[str], numpy.ndarray],
134
- texture_coords: dict[Optional[str], numpy.ndarray],
135
- tint_verts: dict[Optional[str], numpy.ndarray],
136
- # normals: dict[Optional[str], numpy.ndarray],
137
- faces: dict[Optional[str], numpy.ndarray],
138
- texture_index: dict[Optional[str], numpy.ndarray],
139
- textures: tuple[str, ...],
140
- transparency: Transparency,
141
- ):
142
- """
143
-
144
- :param face_width: the number of vertices per face (3 or 4)
145
- :param verts: a numpy float array containing the vert data. One line per vertex
146
- :param texture_coords: a numpy float array containing the texture coordinate data. One line per vertex
147
- :param tint_verts: a numpy bool array if the vertex should have a tint applied to it. One line per vertex
148
- :param faces: a dictionary of numpy int arrays (stored under cull direction) containing
149
- the vertex indexes (<face_width> columns) and
150
- texture index (1 column)
151
- :param texture_index:
152
- :param textures:
153
- :param transparency: is the model a full non-transparent block
154
-
155
- Workflow:
156
- find the directions a block is not being culled in
157
- look them up in the face table
158
- the face table will tell you which vertices are needed for the face
159
- """
160
- assert isinstance(verts, dict) and all(
161
- key in FACE_KEYS
162
- and isinstance(val, numpy.ndarray)
163
- and val.ndim == 1
164
- and val.shape[0] % 3 == 0
165
- for key, val in verts.items()
166
- ), "The format for verts is incorrect"
167
-
168
- assert isinstance(texture_coords, dict) and all(
169
- key in FACE_KEYS
170
- and isinstance(val, numpy.ndarray)
171
- and val.ndim == 1
172
- and val.shape[0] % 2 == 0
173
- for key, val in texture_coords.items()
174
- ), "The format for texture coords is incorrect"
175
-
176
- assert isinstance(tint_verts, dict) and all(
177
- key in FACE_KEYS
178
- and isinstance(val, numpy.ndarray)
179
- and val.ndim == 1
180
- and val.shape[0] % 3 == 0
181
- for key, val in tint_verts.items()
182
- ), "The format of tint verts is incorrect"
183
-
184
- assert isinstance(faces, dict) and all(
185
- key in FACE_KEYS
186
- and isinstance(val, numpy.ndarray)
187
- and numpy.issubdtype(val.dtype, numpy.unsignedinteger)
188
- and val.ndim == 1
189
- and val.shape[0] % face_width == 0
190
- for key, val in faces.items()
191
- ), "The format of faces is incorrect"
192
-
193
- assert isinstance(texture_index, dict) and all(
194
- key in FACE_KEYS
195
- and isinstance(val, numpy.ndarray)
196
- and numpy.issubdtype(val.dtype, numpy.unsignedinteger)
197
- and val.ndim == 1
198
- and val.shape[0] == faces[key].shape[0] / face_width
199
- for key, val in texture_index.items()
200
- ), "The format of texture index is incorrect"
201
-
202
- assert isinstance(textures, Iterable) and all(
203
- isinstance(texture, str) for texture in textures
204
- ), "The format of the textures is incorrect"
205
-
206
- self._face_mode = face_width
207
- self._verts = verts
208
- self._texture_coords = texture_coords
209
- self._tint_verts = tint_verts
210
- self._vert_tables: Optional[dict[Optional[str], numpy.ndarray]] = None
211
-
212
- self._faces = faces
213
- self._texture_index = texture_index
214
- self._textures = tuple(textures)
215
- self._transparency = transparency
216
-
217
- for array in itertools.chain(
218
- self._verts.values(),
219
- self._texture_coords.values(),
220
- self._faces.values(),
221
- self._texture_index.values(),
222
- ):
223
- array.setflags(write=False)
224
-
225
- @property
226
- def face_mode(self) -> int:
227
- """The number of vertices per face"""
228
- return self._face_mode
229
-
230
- @property
231
- def vert_tables(self) -> dict[Optional[str], numpy.ndarray]:
232
- """A dictionary of cull dir -> the flat vert table containing vertices, texture coords and (in the future) normals"""
233
- if self._vert_tables is None:
234
- self._vert_tables = {
235
- key: numpy.hstack(
236
- (
237
- self._verts[key].reshape(-1, self._face_mode),
238
- self._texture_coords[key].reshape(-1, 2),
239
- # TODO: add in face normals
240
- )
241
- ).ravel()
242
- for key in self._verts.keys()
243
- }
244
- for array in self._vert_tables.values():
245
- array.setflags(write=False)
246
- return self._vert_tables
247
-
248
- @property
249
- def verts(self) -> dict[Optional[str], numpy.ndarray]:
250
- """A dictionary mapping face cull direction to the vertex table for that direction.
251
- The vertex table is a flat numpy array who's length is a multiple of 3.
252
- x,y,z coordinates."""
253
- return self._verts
254
-
255
- @property
256
- def texture_coords(self) -> dict[Optional[str], numpy.ndarray]:
257
- """A dictionary mapping face cull direction to the texture coords table for that direction.
258
- The texture coords table is a flat numpy array who's length is a multiple of 2.
259
- tx, ty"""
260
- return self._texture_coords
261
-
262
- @property
263
- def tint_verts(self) -> dict[Optional[str], numpy.ndarray]:
264
- """A dictionary mapping face cull direction to the tint table for that direction.
265
- The tint table is a flat numpy bool array with three values per vertex.
266
- """
267
- return self._tint_verts
268
-
269
- @property
270
- def faces(self) -> dict[Optional[str], numpy.ndarray]:
271
- """A dictionary mapping face cull direction to the face table for that direction.
272
- The face table is a flat numpy array of multiple 3 or 4 depending on face_mode.
273
- First 3 or 4 columns index into the verts table.
274
- Last column indexes into textures."""
275
- return self._faces
276
-
277
- @property
278
- def texture_index(self) -> dict[Optional[str], numpy.ndarray]:
279
- """A dictionary mapping face cull direction to the face table for that direction.
280
- The face table is a flat numpy array of multiple 2 indexing into textures."""
281
- return self._texture_index
282
-
283
- @property
284
- def textures(self) -> tuple[str, ...]:
285
- """A list of all the texture paths."""
286
- return self._textures
287
-
288
- @property
289
- def is_opaque(self) -> bool:
290
- """
291
- If the model covers all surrounding blocks.
292
- Also takes into account texture transparency.
293
- """
294
- return not self._transparency
295
-
296
- @property
297
- def is_transparent(self) -> Transparency:
298
- """
299
- The transparency mode of the block
300
- 0 - the block is a full block with opaque textures
301
- 1 - the block is a full block with transparent/translucent textures
302
- 2 - the block is not a full block
303
- """
304
- return self._transparency
305
-
306
- def rotate(self, rotx: int, roty: int) -> BlockMesh:
307
- """Create a rotated version of this block model. Culling directions are also rotated.
308
- rotx and roty must be ints in the range -3 to 3 inclusive."""
309
- if rotx or roty and (roty, rotx) in cull_remap_all:
310
- cull_remap = cull_remap_all[(roty, rotx)]
311
- return BlockMesh(
312
- self.face_mode,
313
- {
314
- cull_remap[cull_dir]: rotate_3d(
315
- rotate_3d(
316
- self.verts[cull_dir].reshape((-1, self.face_mode)),
317
- rotx * 90,
318
- 0,
319
- 0,
320
- 0.5,
321
- 0.5,
322
- 0.5,
323
- ),
324
- 0,
325
- roty * 90,
326
- 0,
327
- 0.5,
328
- 0.5,
329
- 0.5,
330
- ).ravel()
331
- for cull_dir in self.verts
332
- },
333
- {
334
- cull_remap[cull_dir]: self.texture_coords[cull_dir]
335
- for cull_dir in self.texture_coords
336
- },
337
- {
338
- cull_remap[cull_dir]: self.tint_verts[cull_dir]
339
- for cull_dir in self.tint_verts
340
- },
341
- {cull_remap[cull_dir]: self.faces[cull_dir] for cull_dir in self.faces},
342
- {
343
- cull_remap[cull_dir]: self.texture_index[cull_dir]
344
- for cull_dir in self.texture_index
345
- },
346
- self.textures,
347
- self.is_transparent,
348
- )
349
- return self
350
-
351
- def __eq__(self, other: Any) -> bool:
352
- if not isinstance(other, BlockMesh):
353
- return NotImplemented
354
- return (
355
- self.face_mode == other.face_mode
356
- and all(
357
- obj1.keys() == obj2.keys()
358
- and all(numpy.array_equal(obj1[key], obj2[key]) for key in obj1.keys())
359
- for obj1, obj2 in (
360
- (self.verts, other.verts),
361
- (self.texture_coords, other.texture_coords),
362
- (self.tint_verts, other.tint_verts),
363
- (self.faces, other.faces),
364
- (self.texture_index, other.texture_index),
365
- )
366
- )
367
- and self.textures == other.textures
368
- and self.is_transparent == other.is_transparent
369
- )