amulet-core 2.0a7__tar.gz → 2.0a9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of amulet-core might be problematic. Click here for more details.
- amulet_core-2.0a9/CMakeLists.txt +111 -0
- amulet_core-2.0a9/MANIFEST.in +8 -0
- {amulet_core-2.0a7/src/amulet_core.egg-info → amulet_core-2.0a9}/PKG-INFO +22 -16
- amulet_core-2.0a9/build_requires.py +23 -0
- amulet_core-2.0a9/pyproject.toml +76 -0
- amulet_core-2.0a9/requirements.py +46 -0
- amulet_core-2.0a9/setup.cfg +4 -0
- amulet_core-2.0a9/setup.py +147 -0
- amulet_core-2.0a9/src/amulet/core/__init__.py +36 -0
- amulet_core-2.0a9/src/amulet/core/__pyinstaller/hook-amulet.core.py +4 -0
- amulet_core-2.0a9/src/amulet/core/_amulet_core.py.cpp +40 -0
- amulet_core-2.0a9/src/amulet/core/_amulet_core.pyi +7 -0
- {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/_version.py +3 -3
- amulet_core-2.0a9/src/amulet/core/amulet_coreConfig.cmake +18 -0
- amulet_core-2.0a7/src/amulet/biome.pyi → amulet_core-2.0a9/src/amulet/core/biome/__init__.pyi +3 -3
- amulet_core-2.0a9/src/amulet/core/biome/biome.cpp +41 -0
- amulet_core-2.0a9/src/amulet/core/biome/biome.hpp +53 -0
- amulet_core-2.0a9/src/amulet/core/biome/biome.py.cpp +108 -0
- amulet_core-2.0a7/src/amulet/block.pyi → amulet_core-2.0a9/src/amulet/core/block/__init__.pyi +25 -26
- amulet_core-2.0a9/src/amulet/core/block/block.cpp +423 -0
- amulet_core-2.0a9/src/amulet/core/block/block.hpp +156 -0
- amulet_core-2.0a9/src/amulet/core/block/block.py.cpp +345 -0
- amulet_core-2.0a7/src/amulet/block_entity.pyi → amulet_core-2.0a9/src/amulet/core/block_entity/__init__.pyi +7 -7
- amulet_core-2.0a9/src/amulet/core/block_entity/block_entity.cpp +26 -0
- amulet_core-2.0a9/src/amulet/core/block_entity/block_entity.hpp +84 -0
- amulet_core-2.0a9/src/amulet/core/block_entity/block_entity.py.cpp +112 -0
- amulet_core-2.0a7/src/amulet/errors.py → amulet_core-2.0a9/src/amulet/core/chunk/__init__.pyi +37 -33
- amulet_core-2.0a9/src/amulet/core/chunk/chunk.cpp +50 -0
- amulet_core-2.0a9/src/amulet/core/chunk/chunk.hpp +126 -0
- amulet_core-2.0a9/src/amulet/core/chunk/chunk.py.cpp +113 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/__init__.pyi +18 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/__init_chunk_components.py.cpp +22 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/biome_3d_component.cpp +45 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/biome_3d_component.hpp +96 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/block_component.cpp +74 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/block_component.hpp +101 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/block_component.py.cpp +47 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/block_component.pyi +28 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/block_entity_component.cpp +71 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/block_entity_component.hpp +119 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/section_array_map.cpp +223 -0
- amulet_core-2.0a9/src/amulet/core/chunk/component/section_array_map.hpp +129 -0
- {amulet_core-2.0a7/src/amulet/chunk_components → amulet_core-2.0a9/src/amulet/core/chunk/component}/section_array_map.py.cpp +93 -125
- amulet_core-2.0a7/src/amulet/chunk_components.pyi → amulet_core-2.0a9/src/amulet/core/chunk/component/section_array_map.pyi +4 -24
- amulet_core-2.0a9/src/amulet/core/dll.hpp +21 -0
- amulet_core-2.0a9/src/amulet/core/entity/__init__.pyi +105 -0
- amulet_core-2.0a9/src/amulet/core/entity/entity.cpp +29 -0
- amulet_core-2.0a9/src/amulet/core/entity/entity.hpp +100 -0
- amulet_core-2.0a9/src/amulet/core/entity/entity.py.cpp +135 -0
- {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/palette/__init__.pyi +2 -2
- amulet_core-2.0a7/src/amulet/palette/_init_palette.py.cpp → amulet_core-2.0a9/src/amulet/core/palette/__init_palette.py.cpp +7 -2
- amulet_core-2.0a9/src/amulet/core/palette/biome_palette.cpp +33 -0
- amulet_core-2.0a9/src/amulet/core/palette/biome_palette.hpp +65 -0
- amulet_core-2.0a9/src/amulet/core/palette/biome_palette.py.cpp +88 -0
- {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/palette/biome_palette.pyi +8 -8
- amulet_core-2.0a9/src/amulet/core/palette/block_palette.cpp +33 -0
- amulet_core-2.0a9/src/amulet/core/palette/block_palette.hpp +71 -0
- amulet_core-2.0a9/src/amulet/core/palette/block_palette.py.cpp +88 -0
- {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/palette/block_palette.pyi +12 -10
- amulet_core-2.0a9/src/amulet/core/selection/__init__.pyi +8 -0
- amulet_core-2.0a9/src/amulet/core/selection/__init_selection.py.cpp +598 -0
- amulet_core-2.0a9/src/amulet/core/selection/box.cpp +65 -0
- amulet_core-2.0a9/src/amulet/core/selection/box.hpp +86 -0
- amulet_core-2.0a9/src/amulet/core/selection/box.pyi +215 -0
- amulet_core-2.0a9/src/amulet/core/selection/group.cpp +236 -0
- amulet_core-2.0a9/src/amulet/core/selection/group.hpp +80 -0
- amulet_core-2.0a9/src/amulet/core/selection/group.pyi +213 -0
- amulet_core-2.0a7/src/amulet/version.pyi → amulet_core-2.0a9/src/amulet/core/version/__init__.pyi +58 -10
- amulet_core-2.0a9/src/amulet/core/version/version.cpp +147 -0
- amulet_core-2.0a9/src/amulet/core/version/version.hpp +204 -0
- amulet_core-2.0a9/src/amulet/core/version/version.py.cpp +275 -0
- {amulet_core-2.0a7 → amulet_core-2.0a9/src/amulet_core.egg-info}/PKG-INFO +22 -16
- amulet_core-2.0a9/src/amulet_core.egg-info/SOURCES.txt +78 -0
- amulet_core-2.0a9/src/amulet_core.egg-info/entry_points.txt +2 -0
- amulet_core-2.0a9/src/amulet_core.egg-info/requires.txt +26 -0
- amulet_core-2.0a7/MANIFEST.in +0 -1
- amulet_core-2.0a7/pyproject.toml +0 -9
- amulet_core-2.0a7/setup.cfg +0 -73
- amulet_core-2.0a7/setup.py +0 -55
- amulet_core-2.0a7/src/amulet/__init__.py.cpp +0 -43
- amulet_core-2.0a7/src/amulet/__init__.pyi +0 -28
- amulet_core-2.0a7/src/amulet/__pyinstaller/hook-amulet.py +0 -4
- amulet_core-2.0a7/src/amulet/_init.py +0 -26
- amulet_core-2.0a7/src/amulet/biome.cpp +0 -36
- amulet_core-2.0a7/src/amulet/biome.hpp +0 -43
- amulet_core-2.0a7/src/amulet/biome.py.cpp +0 -122
- amulet_core-2.0a7/src/amulet/block.cpp +0 -435
- amulet_core-2.0a7/src/amulet/block.hpp +0 -119
- amulet_core-2.0a7/src/amulet/block.py.cpp +0 -377
- amulet_core-2.0a7/src/amulet/block_entity.cpp +0 -12
- amulet_core-2.0a7/src/amulet/block_entity.hpp +0 -56
- amulet_core-2.0a7/src/amulet/block_entity.py.cpp +0 -115
- amulet_core-2.0a7/src/amulet/chunk.cpp +0 -16
- amulet_core-2.0a7/src/amulet/chunk.hpp +0 -99
- amulet_core-2.0a7/src/amulet/chunk.py.cpp +0 -80
- amulet_core-2.0a7/src/amulet/chunk.pyi +0 -28
- amulet_core-2.0a7/src/amulet/chunk_components/_init_chunk_components.py.cpp +0 -11
- amulet_core-2.0a7/src/amulet/chunk_components/biome_3d_component.cpp +0 -5
- amulet_core-2.0a7/src/amulet/chunk_components/biome_3d_component.hpp +0 -79
- amulet_core-2.0a7/src/amulet/chunk_components/block_component.cpp +0 -41
- amulet_core-2.0a7/src/amulet/chunk_components/block_component.hpp +0 -88
- amulet_core-2.0a7/src/amulet/chunk_components/block_component.py.cpp +0 -51
- amulet_core-2.0a7/src/amulet/chunk_components/block_entity_component.cpp +0 -5
- amulet_core-2.0a7/src/amulet/chunk_components/block_entity_component.hpp +0 -147
- amulet_core-2.0a7/src/amulet/chunk_components/section_array_map.cpp +0 -129
- amulet_core-2.0a7/src/amulet/chunk_components/section_array_map.hpp +0 -147
- amulet_core-2.0a7/src/amulet/collections/collections.py.cpp +0 -19
- amulet_core-2.0a7/src/amulet/collections/eq.py.hpp +0 -37
- amulet_core-2.0a7/src/amulet/collections/hash.py.hpp +0 -27
- amulet_core-2.0a7/src/amulet/collections/holder.py.cpp +0 -11
- amulet_core-2.0a7/src/amulet/collections/holder.py.hpp +0 -37
- amulet_core-2.0a7/src/amulet/collections/iterator.py.cpp +0 -36
- amulet_core-2.0a7/src/amulet/collections/iterator.py.hpp +0 -80
- amulet_core-2.0a7/src/amulet/collections/mapping.py.cpp +0 -44
- amulet_core-2.0a7/src/amulet/collections/mapping.py.hpp +0 -199
- amulet_core-2.0a7/src/amulet/collections/mutable_mapping.py.cpp +0 -31
- amulet_core-2.0a7/src/amulet/collections/mutable_mapping.py.hpp +0 -226
- amulet_core-2.0a7/src/amulet/collections/sequence.py.hpp +0 -163
- amulet_core-2.0a7/src/amulet/collections.pyi +0 -40
- amulet_core-2.0a7/src/amulet/data_types.py +0 -29
- amulet_core-2.0a7/src/amulet/entity.py +0 -182
- amulet_core-2.0a7/src/amulet/game/__init__.py +0 -7
- amulet_core-2.0a7/src/amulet/game/_game.py +0 -152
- amulet_core-2.0a7/src/amulet/game/_universal/__init__.py +0 -1
- amulet_core-2.0a7/src/amulet/game/_universal/_biome.py +0 -17
- amulet_core-2.0a7/src/amulet/game/_universal/_block.py +0 -47
- amulet_core-2.0a7/src/amulet/game/_universal/_version.py +0 -68
- amulet_core-2.0a7/src/amulet/game/abc/__init__.py +0 -22
- amulet_core-2.0a7/src/amulet/game/abc/_block_specification.py +0 -150
- amulet_core-2.0a7/src/amulet/game/abc/biome.py +0 -213
- amulet_core-2.0a7/src/amulet/game/abc/block.py +0 -331
- amulet_core-2.0a7/src/amulet/game/abc/game_version_container.py +0 -25
- amulet_core-2.0a7/src/amulet/game/abc/json_interface.py +0 -27
- amulet_core-2.0a7/src/amulet/game/abc/version.py +0 -44
- amulet_core-2.0a7/src/amulet/game/bedrock/__init__.py +0 -1
- amulet_core-2.0a7/src/amulet/game/bedrock/_biome.py +0 -35
- amulet_core-2.0a7/src/amulet/game/bedrock/_block.py +0 -42
- amulet_core-2.0a7/src/amulet/game/bedrock/_version.py +0 -165
- amulet_core-2.0a7/src/amulet/game/java/__init__.py +0 -2
- amulet_core-2.0a7/src/amulet/game/java/_biome.py +0 -35
- amulet_core-2.0a7/src/amulet/game/java/_block.py +0 -60
- amulet_core-2.0a7/src/amulet/game/java/_version.py +0 -176
- amulet_core-2.0a7/src/amulet/game/translate/__init__.py +0 -12
- amulet_core-2.0a7/src/amulet/game/translate/_functions/__init__.py +0 -15
- amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/__init__.py +0 -0
- amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/_text.py +0 -553
- amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/banner_pattern.py +0 -67
- amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/bedrock_chest_connection.py +0 -152
- amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/bedrock_moving_block_pos.py +0 -88
- amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/bedrock_sign.py +0 -152
- amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/bedrock_skull_rotation.py +0 -16
- amulet_core-2.0a7/src/amulet/game/translate/_functions/_code_functions/custom_name.py +0 -146
- amulet_core-2.0a7/src/amulet/game/translate/_functions/_frozen.py +0 -66
- amulet_core-2.0a7/src/amulet/game/translate/_functions/_state.py +0 -54
- amulet_core-2.0a7/src/amulet/game/translate/_functions/_typing.py +0 -98
- amulet_core-2.0a7/src/amulet/game/translate/_functions/abc.py +0 -123
- amulet_core-2.0a7/src/amulet/game/translate/_functions/carry_nbt.py +0 -160
- amulet_core-2.0a7/src/amulet/game/translate/_functions/carry_properties.py +0 -80
- amulet_core-2.0a7/src/amulet/game/translate/_functions/code.py +0 -143
- amulet_core-2.0a7/src/amulet/game/translate/_functions/map_block_name.py +0 -66
- amulet_core-2.0a7/src/amulet/game/translate/_functions/map_nbt.py +0 -111
- amulet_core-2.0a7/src/amulet/game/translate/_functions/map_properties.py +0 -93
- amulet_core-2.0a7/src/amulet/game/translate/_functions/multiblock.py +0 -112
- amulet_core-2.0a7/src/amulet/game/translate/_functions/new_block.py +0 -42
- amulet_core-2.0a7/src/amulet/game/translate/_functions/new_entity.py +0 -43
- amulet_core-2.0a7/src/amulet/game/translate/_functions/new_nbt.py +0 -206
- amulet_core-2.0a7/src/amulet/game/translate/_functions/new_properties.py +0 -64
- amulet_core-2.0a7/src/amulet/game/translate/_functions/sequence.py +0 -51
- amulet_core-2.0a7/src/amulet/game/translate/_functions/walk_input_nbt.py +0 -331
- amulet_core-2.0a7/src/amulet/game/translate/_translator.py +0 -433
- amulet_core-2.0a7/src/amulet/img/__init__.py +0 -10
- amulet_core-2.0a7/src/amulet/img/missing_no.png +0 -0
- amulet_core-2.0a7/src/amulet/img/missing_pack.png +0 -0
- amulet_core-2.0a7/src/amulet/img/missing_world.png +0 -0
- amulet_core-2.0a7/src/amulet/io/binary_reader.hpp +0 -45
- amulet_core-2.0a7/src/amulet/io/binary_writer.hpp +0 -30
- amulet_core-2.0a7/src/amulet/item.py +0 -75
- amulet_core-2.0a7/src/amulet/level/__init__.pyi +0 -23
- amulet_core-2.0a7/src/amulet/level/_init_level.py.cpp +0 -25
- amulet_core-2.0a7/src/amulet/level/_load.py +0 -100
- amulet_core-2.0a7/src/amulet/level/abc/__init__.py +0 -12
- amulet_core-2.0a7/src/amulet/level/abc/_chunk_handle.py +0 -335
- amulet_core-2.0a7/src/amulet/level/abc/_dimension.py +0 -86
- amulet_core-2.0a7/src/amulet/level/abc/_history/__init__.py +0 -1
- amulet_core-2.0a7/src/amulet/level/abc/_history/_cache.py +0 -224
- amulet_core-2.0a7/src/amulet/level/abc/_history/_history_manager.py +0 -291
- amulet_core-2.0a7/src/amulet/level/abc/_level/__init__.py +0 -5
- amulet_core-2.0a7/src/amulet/level/abc/_level/_compactable_level.py +0 -10
- amulet_core-2.0a7/src/amulet/level/abc/_level/_creatable_level.py +0 -28
- amulet_core-2.0a7/src/amulet/level/abc/_level/_disk_level.py +0 -17
- amulet_core-2.0a7/src/amulet/level/abc/_level/_level.py +0 -449
- amulet_core-2.0a7/src/amulet/level/abc/_level/_loadable_level.py +0 -42
- amulet_core-2.0a7/src/amulet/level/abc/_player_storage.py +0 -7
- amulet_core-2.0a7/src/amulet/level/abc/_raw_level.py +0 -187
- amulet_core-2.0a7/src/amulet/level/abc/_registry.py +0 -40
- amulet_core-2.0a7/src/amulet/level/java/__init__.pyi +0 -16
- amulet_core-2.0a7/src/amulet/level/java/__init_java.py.cpp +0 -23
- amulet_core-2.0a7/src/amulet/level/java/_chunk_handle.py +0 -17
- amulet_core-2.0a7/src/amulet/level/java/_dimension.py +0 -20
- amulet_core-2.0a7/src/amulet/level/java/_level.py +0 -184
- amulet_core-2.0a7/src/amulet/level/java/_raw/__init__.pyi +0 -15
- amulet_core-2.0a7/src/amulet/level/java/_raw/__init_java_raw.py.cpp +0 -31
- amulet_core-2.0a7/src/amulet/level/java/_raw/_chunk.pyi +0 -23
- amulet_core-2.0a7/src/amulet/level/java/_raw/_constant.py +0 -9
- amulet_core-2.0a7/src/amulet/level/java/_raw/_data_pack/__init__.py +0 -2
- amulet_core-2.0a7/src/amulet/level/java/_raw/_data_pack/data_pack.py +0 -241
- amulet_core-2.0a7/src/amulet/level/java/_raw/_data_pack/data_pack_manager.py +0 -77
- amulet_core-2.0a7/src/amulet/level/java/_raw/_dimension.py +0 -86
- amulet_core-2.0a7/src/amulet/level/java/_raw/_level.py +0 -507
- amulet_core-2.0a7/src/amulet/level/java/_raw/_typing.py +0 -3
- amulet_core-2.0a7/src/amulet/level/java/_raw/java_chunk_decode.cpp +0 -531
- amulet_core-2.0a7/src/amulet/level/java/_raw/java_chunk_decode.hpp +0 -23
- amulet_core-2.0a7/src/amulet/level/java/_raw/java_chunk_encode.cpp +0 -25
- amulet_core-2.0a7/src/amulet/level/java/_raw/java_chunk_encode.hpp +0 -23
- amulet_core-2.0a7/src/amulet/level/java/anvil/__init__.py +0 -2
- amulet_core-2.0a7/src/amulet/level/java/anvil/_dimension.py +0 -170
- amulet_core-2.0a7/src/amulet/level/java/anvil/_region.py +0 -421
- amulet_core-2.0a7/src/amulet/level/java/anvil/_sector_manager.py +0 -223
- amulet_core-2.0a7/src/amulet/level/java/chunk.pyi +0 -81
- amulet_core-2.0a7/src/amulet/level/java/chunk_/_chunk.py +0 -260
- amulet_core-2.0a7/src/amulet/level/java/chunk_/components/inhabited_time.py +0 -12
- amulet_core-2.0a7/src/amulet/level/java/chunk_/components/last_update.py +0 -12
- amulet_core-2.0a7/src/amulet/level/java/chunk_/components/legacy_version.py +0 -12
- amulet_core-2.0a7/src/amulet/level/java/chunk_/components/light_populated.py +0 -12
- amulet_core-2.0a7/src/amulet/level/java/chunk_/components/named_height_2d.py +0 -37
- amulet_core-2.0a7/src/amulet/level/java/chunk_/components/status.py +0 -11
- amulet_core-2.0a7/src/amulet/level/java/chunk_/components/terrain_populated.py +0 -12
- amulet_core-2.0a7/src/amulet/level/java/chunk_components/_init_java_chunk_components.py.cpp +0 -13
- amulet_core-2.0a7/src/amulet/level/java/chunk_components/data_version_component.cpp +0 -32
- amulet_core-2.0a7/src/amulet/level/java/chunk_components/data_version_component.hpp +0 -31
- amulet_core-2.0a7/src/amulet/level/java/chunk_components/data_version_component.py.cpp +0 -23
- amulet_core-2.0a7/src/amulet/level/java/chunk_components/java_raw_chunk_component.cpp +0 -56
- amulet_core-2.0a7/src/amulet/level/java/chunk_components/java_raw_chunk_component.hpp +0 -45
- amulet_core-2.0a7/src/amulet/level/java/chunk_components/java_raw_chunk_component.py.cpp +0 -51
- amulet_core-2.0a7/src/amulet/level/java/chunk_components.pyi +0 -22
- amulet_core-2.0a7/src/amulet/level/java/java_chunk.cpp +0 -170
- amulet_core-2.0a7/src/amulet/level/java/java_chunk.hpp +0 -141
- amulet_core-2.0a7/src/amulet/level/java/java_chunk.py.cpp +0 -161
- amulet_core-2.0a7/src/amulet/level/java/long_array.hpp +0 -175
- amulet_core-2.0a7/src/amulet/level/java/long_array.py.cpp +0 -193
- amulet_core-2.0a7/src/amulet/level/java/long_array.pyi +0 -39
- amulet_core-2.0a7/src/amulet/level/temporary_level/__init__.py +0 -1
- amulet_core-2.0a7/src/amulet/level/temporary_level/_level.py +0 -16
- amulet_core-2.0a7/src/amulet/mesh/__init__.py +0 -0
- amulet_core-2.0a7/src/amulet/mesh/block/__init__.py +0 -1
- amulet_core-2.0a7/src/amulet/mesh/block/block_mesh.py +0 -369
- amulet_core-2.0a7/src/amulet/mesh/block/cube.py +0 -149
- amulet_core-2.0a7/src/amulet/mesh/block/missing_block.py +0 -20
- amulet_core-2.0a7/src/amulet/mesh/util.py +0 -17
- amulet_core-2.0a7/src/amulet/palette/biome_palette.hpp +0 -85
- amulet_core-2.0a7/src/amulet/palette/biome_palette.py.cpp +0 -102
- amulet_core-2.0a7/src/amulet/palette/block_palette.cpp +0 -32
- amulet_core-2.0a7/src/amulet/palette/block_palette.hpp +0 -93
- amulet_core-2.0a7/src/amulet/palette/block_palette.py.cpp +0 -102
- amulet_core-2.0a7/src/amulet/player.py +0 -62
- amulet_core-2.0a7/src/amulet/pybind11/collections.hpp +0 -118
- amulet_core-2.0a7/src/amulet/pybind11/numpy.hpp +0 -26
- amulet_core-2.0a7/src/amulet/pybind11/py_module.hpp +0 -34
- amulet_core-2.0a7/src/amulet/pybind11/type_hints.hpp +0 -51
- amulet_core-2.0a7/src/amulet/pybind11/types.hpp +0 -25
- amulet_core-2.0a7/src/amulet/pybind11/typing.hpp +0 -7
- amulet_core-2.0a7/src/amulet/resource_pack/__init__.py +0 -62
- amulet_core-2.0a7/src/amulet/resource_pack/abc/__init__.py +0 -2
- amulet_core-2.0a7/src/amulet/resource_pack/abc/resource_pack.py +0 -38
- amulet_core-2.0a7/src/amulet/resource_pack/abc/resource_pack_manager.py +0 -87
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/__init__.py +0 -2
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/bedrock_vanilla_fix/pack_icon.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/grass_carried.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/grass_side_carried.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/bedrock_vanilla_fix/textures/blocks/water.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/__init__.py +0 -31
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/air.py +0 -35
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/base_blockshape.py +0 -29
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/bubble_column.py +0 -29
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/cake.py +0 -46
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/chest.py +0 -54
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/comparator.py +0 -51
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/cross_texture.py +0 -186
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/cross_texture0.py +0 -17
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/cross_texture_green.py +0 -16
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/cube.py +0 -38
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/default.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door.py +0 -38
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door1.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door2.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door3.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door4.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door5.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/door6.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/double_plant.py +0 -40
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/enchanting_table.py +0 -22
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/farmland.py +0 -22
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/fence.py +0 -22
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/flat.py +0 -55
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/flat_wall.py +0 -55
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/furnace.py +0 -44
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/furnace_lit.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/green_cube.py +0 -39
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/ladder.py +0 -36
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/lilypad.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/partial_block.py +0 -57
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/piston.py +0 -44
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/piston_arm.py +0 -72
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/portal_frame.py +0 -22
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/pressure_plate.py +0 -29
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/pumpkin.py +0 -36
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/pumpkin_carved.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/pumpkin_lit.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/red_dust.py +0 -14
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/repeater.py +0 -53
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/slab.py +0 -33
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/slab_double.py +0 -15
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/tree.py +0 -41
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/turtle_egg.py +0 -15
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/vine.py +0 -52
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/wall.py +0 -22
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/blockshapes/water.py +0 -38
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/download_resources.py +0 -147
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/resource_pack.py +0 -40
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/resource_pack_manager.py +0 -361
- amulet_core-2.0a7/src/amulet/resource_pack/bedrock/sort_blockshapes.py +0 -15
- amulet_core-2.0a7/src/amulet/resource_pack/java/__init__.py +0 -2
- amulet_core-2.0a7/src/amulet/resource_pack/java/download_resources.py +0 -212
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_black.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_blue.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_brown.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_cyan.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_gray.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_green.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_light_blue.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_light_gray.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_lime.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_magenta.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_orange.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_pink.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_purple.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_red.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_white.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/banner/banner_yellow.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/barrier.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/end_portal.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/grass.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/lava.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/structure_void.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/assets/minecraft/textures/block/water.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/java_vanilla_fix/pack.png +0 -0
- amulet_core-2.0a7/src/amulet/resource_pack/java/resource_pack.py +0 -44
- amulet_core-2.0a7/src/amulet/resource_pack/java/resource_pack_manager.py +0 -551
- amulet_core-2.0a7/src/amulet/resource_pack/unknown_resource_pack.py +0 -10
- amulet_core-2.0a7/src/amulet/selection/__init__.py +0 -2
- amulet_core-2.0a7/src/amulet/selection/abstract_selection.py +0 -342
- amulet_core-2.0a7/src/amulet/selection/box.py +0 -852
- amulet_core-2.0a7/src/amulet/selection/group.py +0 -481
- amulet_core-2.0a7/src/amulet/utils/__init__.pyi +0 -23
- amulet_core-2.0a7/src/amulet/utils/_init_utils.py.cpp +0 -11
- amulet_core-2.0a7/src/amulet/utils/call_spec/__init__.py +0 -24
- amulet_core-2.0a7/src/amulet/utils/call_spec/_call_spec.py +0 -257
- amulet_core-2.0a7/src/amulet/utils/comment_json.py +0 -188
- amulet_core-2.0a7/src/amulet/utils/format_utils.py +0 -41
- amulet_core-2.0a7/src/amulet/utils/generator.py +0 -18
- amulet_core-2.0a7/src/amulet/utils/matrix.py +0 -243
- amulet_core-2.0a7/src/amulet/utils/numpy.hpp +0 -36
- amulet_core-2.0a7/src/amulet/utils/numpy.py.cpp +0 -51
- amulet_core-2.0a7/src/amulet/utils/numpy.pyi +0 -11
- amulet_core-2.0a7/src/amulet/utils/numpy_helpers.py +0 -19
- amulet_core-2.0a7/src/amulet/utils/shareable_lock.py +0 -335
- amulet_core-2.0a7/src/amulet/utils/signal/__init__.py +0 -10
- amulet_core-2.0a7/src/amulet/utils/signal/_signal.py +0 -228
- amulet_core-2.0a7/src/amulet/utils/task_manager.py +0 -235
- amulet_core-2.0a7/src/amulet/utils/typed_property.py +0 -111
- amulet_core-2.0a7/src/amulet/utils/weakref.py +0 -70
- amulet_core-2.0a7/src/amulet/utils/world_utils.py +0 -102
- amulet_core-2.0a7/src/amulet/version.cpp +0 -136
- amulet_core-2.0a7/src/amulet/version.hpp +0 -142
- amulet_core-2.0a7/src/amulet/version.py.cpp +0 -281
- amulet_core-2.0a7/src/amulet_core.egg-info/SOURCES.txt +0 -329
- amulet_core-2.0a7/src/amulet_core.egg-info/entry_points.txt +0 -2
- amulet_core-2.0a7/src/amulet_core.egg-info/requires.txt +0 -21
- {amulet_core-2.0a7 → amulet_core-2.0a9}/README.md +0 -0
- {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/__pyinstaller/__init__.py +0 -0
- {amulet_core-2.0a7/src/amulet → amulet_core-2.0a9/src/amulet/core}/py.typed +0 -0
- {amulet_core-2.0a7 → amulet_core-2.0a9}/src/amulet_core.egg-info/dependency_links.txt +0 -0
- {amulet_core-2.0a7 → amulet_core-2.0a9}/src/amulet_core.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.13)
|
|
2
|
+
|
|
3
|
+
project(amulet_core LANGUAGES CXX)
|
|
4
|
+
|
|
5
|
+
# Set C++20
|
|
6
|
+
set(CMAKE_CXX_STANDARD 20)
|
|
7
|
+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
8
|
+
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
9
|
+
|
|
10
|
+
# Set platform variables
|
|
11
|
+
if (WIN32)
|
|
12
|
+
# set windows 7 as the minimum version
|
|
13
|
+
add_definitions(-D_WIN32_WINNT=0x0601)
|
|
14
|
+
elseif(APPLE)
|
|
15
|
+
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15")
|
|
16
|
+
else()
|
|
17
|
+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
18
|
+
endif()
|
|
19
|
+
|
|
20
|
+
if (MSVC)
|
|
21
|
+
add_definitions("/MP")
|
|
22
|
+
endif()
|
|
23
|
+
|
|
24
|
+
include(FetchContent)
|
|
25
|
+
|
|
26
|
+
# Add zlib
|
|
27
|
+
set(ZLIB_BUILD_EXAMPLES OFF)
|
|
28
|
+
FetchContent_Declare(
|
|
29
|
+
zlib
|
|
30
|
+
GIT_REPOSITORY https://github.com/madler/zlib.git
|
|
31
|
+
GIT_TAG 51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf
|
|
32
|
+
)
|
|
33
|
+
FetchContent_MakeAvailable(zlib)
|
|
34
|
+
set(ZLIB_ROOT ${zlib_SOURCE_DIR})
|
|
35
|
+
set(ZLIB_USE_STATIC_LIBS ON)
|
|
36
|
+
set(ZLIB_LIBRARY ${INSTALL_LIB_DIR})
|
|
37
|
+
find_package(ZLIB REQUIRED)
|
|
38
|
+
target_compile_definitions(zlibstatic PUBLIC ZLIB_CONST)
|
|
39
|
+
|
|
40
|
+
# Add lz4
|
|
41
|
+
FetchContent_Declare(
|
|
42
|
+
lz4
|
|
43
|
+
GIT_REPOSITORY https://github.com/lz4/lz4.git
|
|
44
|
+
GIT_TAG ebb370ca83af193212df4dcbadcc5d87bc0de2f0
|
|
45
|
+
)
|
|
46
|
+
FetchContent_MakeAvailable(lz4)
|
|
47
|
+
set(LZ4_BUILD_CLI OFF)
|
|
48
|
+
add_subdirectory(${lz4_SOURCE_DIR}/build/cmake)
|
|
49
|
+
|
|
50
|
+
# Add pybind11
|
|
51
|
+
find_package(pybind11 CONFIG REQUIRED)
|
|
52
|
+
|
|
53
|
+
# Add Amulet libraries
|
|
54
|
+
find_package(amulet_pybind11_extensions CONFIG REQUIRED)
|
|
55
|
+
find_package(amulet_io CONFIG REQUIRED)
|
|
56
|
+
find_package(amulet_nbt CONFIG REQUIRED)
|
|
57
|
+
|
|
58
|
+
# Find C++ files
|
|
59
|
+
file(REAL_PATH src SOURCE_PATH)
|
|
60
|
+
file(GLOB_RECURSE EXTENSION_SOURCES LIST_DIRECTORIES false ${SOURCE_PATH}/amulet/*.py.cpp)
|
|
61
|
+
file(GLOB_RECURSE EXTENSION_HEADERS LIST_DIRECTORIES false ${SOURCE_PATH}/amulet/*.py.hpp)
|
|
62
|
+
file(GLOB_RECURSE SOURCES LIST_DIRECTORIES false ${SOURCE_PATH}/amulet/*.cpp)
|
|
63
|
+
file(GLOB_RECURSE HEADERS LIST_DIRECTORIES false ${SOURCE_PATH}/amulet/*.hpp)
|
|
64
|
+
list(REMOVE_ITEM SOURCES ${EXTENSION_SOURCES})
|
|
65
|
+
list(REMOVE_ITEM HEADERS ${EXTENSION_HEADERS})
|
|
66
|
+
|
|
67
|
+
# Add implementation
|
|
68
|
+
add_library(amulet_core SHARED)
|
|
69
|
+
target_link_libraries( amulet_core PRIVATE zlibstatic )
|
|
70
|
+
target_link_libraries( amulet_core PRIVATE lz4_static )
|
|
71
|
+
target_link_libraries( amulet_core PRIVATE amulet_io )
|
|
72
|
+
target_link_libraries( amulet_core PRIVATE amulet_nbt )
|
|
73
|
+
target_compile_definitions(amulet_core PRIVATE ExportAmuletCore)
|
|
74
|
+
target_include_directories(amulet_core PUBLIC ${SOURCE_PATH})
|
|
75
|
+
target_sources(amulet_core PRIVATE ${SOURCES} ${HEADERS})
|
|
76
|
+
foreach(FILE ${SOURCES} ${HEADERS})
|
|
77
|
+
file(RELATIVE_PATH REL_PATH ${SOURCE_PATH} ${FILE})
|
|
78
|
+
get_filename_component(GROUP ${REL_PATH} DIRECTORY)
|
|
79
|
+
string(REPLACE "/" "\\" GROUP ${GROUP})
|
|
80
|
+
source_group(${GROUP} FILES ${FILE})
|
|
81
|
+
endforeach()
|
|
82
|
+
|
|
83
|
+
# Add python extension
|
|
84
|
+
pybind11_add_module(_amulet_core)
|
|
85
|
+
target_link_libraries( _amulet_core PRIVATE amulet_pybind11_extensions )
|
|
86
|
+
target_link_libraries( _amulet_core PRIVATE amulet_io )
|
|
87
|
+
target_link_libraries( _amulet_core PRIVATE amulet_nbt )
|
|
88
|
+
target_link_libraries( _amulet_core PRIVATE amulet_core )
|
|
89
|
+
target_compile_definitions(_amulet_core PRIVATE PYBIND11_DETAILED_ERROR_MESSAGES)
|
|
90
|
+
target_compile_definitions(_amulet_core PRIVATE PYBIND11_VERSION="${pybind11_VERSION}")
|
|
91
|
+
target_compile_definitions(_amulet_core PRIVATE COMPILER_ID="${CMAKE_CXX_COMPILER_ID}")
|
|
92
|
+
target_compile_definitions(_amulet_core PRIVATE COMPILER_VERSION="${CMAKE_CXX_COMPILER_VERSION}")
|
|
93
|
+
target_sources(_amulet_core PRIVATE ${EXTENSION_SOURCES} ${EXTENSION_HEADERS})
|
|
94
|
+
foreach(FILE ${EXTENSION_SOURCES} ${EXTENSION_HEADERS})
|
|
95
|
+
file(RELATIVE_PATH REL_PATH ${SOURCE_PATH} ${FILE})
|
|
96
|
+
get_filename_component(GROUP ${REL_PATH} DIRECTORY)
|
|
97
|
+
string(REPLACE "/" "\\" GROUP ${GROUP})
|
|
98
|
+
source_group(${GROUP} FILES ${FILE})
|
|
99
|
+
endforeach()
|
|
100
|
+
|
|
101
|
+
if(NOT DEFINED AMULET_CORE_EXT_DIR)
|
|
102
|
+
set(AMULET_CORE_EXT_DIR ${amulet_core_DIR})
|
|
103
|
+
endif()
|
|
104
|
+
|
|
105
|
+
# Install
|
|
106
|
+
install(TARGETS amulet_core DESTINATION ${amulet_core_DIR})
|
|
107
|
+
install(TARGETS _amulet_core DESTINATION ${AMULET_CORE_EXT_DIR})
|
|
108
|
+
|
|
109
|
+
if (DEFINED BUILD_AMULET_CORE_TESTS)
|
|
110
|
+
add_subdirectory(tests)
|
|
111
|
+
endif()
|
|
@@ -1,34 +1,40 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: amulet-core
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.0a9
|
|
4
4
|
Summary: A Python library for reading/writing Minecraft's various save formats.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Author: James Clare, Ben Gothard
|
|
6
|
+
Project-URL: Homepage, https://www.amuletmc.com
|
|
7
|
+
Project-URL: Repository, https://github.com/Amulet-Team/Amulet-Core
|
|
8
|
+
Project-URL: Issues, https://github.com/Amulet-Team/Amulet-Core/issues
|
|
9
9
|
Classifier: Programming Language :: Python :: 3
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
11
|
Requires-Python: >=3.11
|
|
12
12
|
Description-Content-Type: text/markdown
|
|
13
|
+
Requires-Dist: amulet-compiler-target==1.0
|
|
13
14
|
Requires-Dist: numpy~=2.0
|
|
14
|
-
Requires-Dist: amulet-
|
|
15
|
-
Requires-Dist:
|
|
16
|
-
Requires-Dist:
|
|
17
|
-
Requires-Dist:
|
|
18
|
-
Requires-Dist: amulet-runtime-final~=1.1
|
|
19
|
-
Requires-Dist: pillow~=10.0
|
|
20
|
-
Requires-Dist: lz4~=4.3
|
|
15
|
+
Requires-Dist: amulet-compiler-version==1.3.0
|
|
16
|
+
Requires-Dist: amulet_pybind11_extensions~=1.0
|
|
17
|
+
Requires-Dist: amulet_io~=1.0
|
|
18
|
+
Requires-Dist: amulet_nbt==4.0a20
|
|
21
19
|
Provides-Extra: docs
|
|
22
20
|
Requires-Dist: Sphinx>=1.7.4; extra == "docs"
|
|
23
21
|
Requires-Dist: sphinx-autodoc-typehints>=1.3.0; extra == "docs"
|
|
24
22
|
Requires-Dist: sphinx_rtd_theme>=0.3.1; extra == "docs"
|
|
25
23
|
Provides-Extra: dev
|
|
24
|
+
Requires-Dist: setuptools>=42; extra == "dev"
|
|
25
|
+
Requires-Dist: versioneer; extra == "dev"
|
|
26
|
+
Requires-Dist: packaging; extra == "dev"
|
|
27
|
+
Requires-Dist: wheel; extra == "dev"
|
|
28
|
+
Requires-Dist: pybind11[global]==2.13.6; extra == "dev"
|
|
29
|
+
Requires-Dist: amulet_pybind11_extensions~=1.0; extra == "dev"
|
|
30
|
+
Requires-Dist: pybind11_stubgen>=2.5.4; extra == "dev"
|
|
26
31
|
Requires-Dist: black>=22.3; extra == "dev"
|
|
27
|
-
Requires-Dist: pre_commit>=1.11.1; extra == "dev"
|
|
28
|
-
Requires-Dist: mypy; extra == "dev"
|
|
29
|
-
Requires-Dist: types-pyinstaller; extra == "dev"
|
|
30
32
|
Requires-Dist: isort; extra == "dev"
|
|
31
33
|
Requires-Dist: autoflake; extra == "dev"
|
|
34
|
+
Requires-Dist: mypy; extra == "dev"
|
|
35
|
+
Requires-Dist: types-pyinstaller; extra == "dev"
|
|
36
|
+
Requires-Dist: amulet-test-utils~=1.1; extra == "dev"
|
|
37
|
+
Dynamic: requires-dist
|
|
32
38
|
|
|
33
39
|
# Amulet Core
|
|
34
40
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from typing import Union, Mapping
|
|
2
|
+
import requirements
|
|
3
|
+
|
|
4
|
+
from setuptools import build_meta
|
|
5
|
+
from setuptools.build_meta import *
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def get_requires_for_build_wheel(
|
|
9
|
+
config_settings: Union[Mapping[str, Union[str, list[str], None]], None] = None,
|
|
10
|
+
) -> list[str]:
|
|
11
|
+
return [
|
|
12
|
+
*build_meta.get_requires_for_build_wheel(config_settings),
|
|
13
|
+
*requirements.get_compile_dependencies(config_settings),
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def get_requires_for_build_editable(
|
|
18
|
+
config_settings: Union[Mapping[str, Union[str, list[str], None]], None] = None,
|
|
19
|
+
) -> list[str]:
|
|
20
|
+
return [
|
|
21
|
+
*build_meta.get_requires_for_build_editable(config_settings),
|
|
22
|
+
*requirements.get_compile_dependencies(config_settings),
|
|
23
|
+
]
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = [
|
|
3
|
+
"setuptools>=42",
|
|
4
|
+
"versioneer",
|
|
5
|
+
"packaging"
|
|
6
|
+
]
|
|
7
|
+
build-backend = "build_requires"
|
|
8
|
+
backend-path = [""]
|
|
9
|
+
|
|
10
|
+
[project]
|
|
11
|
+
name = "amulet-core"
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "James Clare"},
|
|
14
|
+
{name = "Ben Gothard"},
|
|
15
|
+
]
|
|
16
|
+
description = "A Python library for reading/writing Minecraft's various save formats."
|
|
17
|
+
dynamic = ["version", "readme", "dependencies"]
|
|
18
|
+
requires-python = ">=3.11"
|
|
19
|
+
classifiers = [
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"Operating System :: OS Independent",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
[project.optional-dependencies]
|
|
25
|
+
docs = [
|
|
26
|
+
"Sphinx>=1.7.4",
|
|
27
|
+
"sphinx-autodoc-typehints>=1.3.0",
|
|
28
|
+
"sphinx_rtd_theme>=0.3.1",
|
|
29
|
+
]
|
|
30
|
+
dev = [
|
|
31
|
+
"setuptools>=42",
|
|
32
|
+
"versioneer",
|
|
33
|
+
"packaging",
|
|
34
|
+
"wheel",
|
|
35
|
+
"pybind11[global]==2.13.6",
|
|
36
|
+
"amulet_pybind11_extensions~=1.0",
|
|
37
|
+
"pybind11_stubgen>=2.5.4",
|
|
38
|
+
"black>=22.3",
|
|
39
|
+
"isort",
|
|
40
|
+
"autoflake",
|
|
41
|
+
"mypy",
|
|
42
|
+
"types-pyinstaller",
|
|
43
|
+
"amulet-test-utils~=1.1",
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
[project.urls]
|
|
47
|
+
Homepage = "https://www.amuletmc.com"
|
|
48
|
+
Repository = "https://github.com/Amulet-Team/Amulet-Core"
|
|
49
|
+
Issues = "https://github.com/Amulet-Team/Amulet-Core/issues"
|
|
50
|
+
|
|
51
|
+
[tool.setuptools]
|
|
52
|
+
include-package-data = false
|
|
53
|
+
|
|
54
|
+
[tool.setuptools.package-data]
|
|
55
|
+
"*" = [
|
|
56
|
+
"*Config.cmake",
|
|
57
|
+
"**/*.hpp",
|
|
58
|
+
"**/*.dll",
|
|
59
|
+
"**/*.so",
|
|
60
|
+
"**/*.dylib",
|
|
61
|
+
"**/*.lib",
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
[tool.setuptools.dynamic]
|
|
65
|
+
readme = {file = ["README.md"], content-type = "text/markdown"}
|
|
66
|
+
|
|
67
|
+
[project.entry-points.pyinstaller40]
|
|
68
|
+
hook-dirs = "amulet.core.__pyinstaller:get_hook_dirs"
|
|
69
|
+
|
|
70
|
+
[tool.versioneer]
|
|
71
|
+
VCS = "git"
|
|
72
|
+
style = "pep440"
|
|
73
|
+
versionfile_source = "src/amulet/core/_version.py"
|
|
74
|
+
versionfile_build = "amulet/core/_version.py"
|
|
75
|
+
tag_prefix = ""
|
|
76
|
+
parentdir_prefix = "amulet-"
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
from typing import Union, Mapping
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
AMULET_COMPILER_VERSION_REQUIREMENT = "==1.3.0"
|
|
5
|
+
# AMULET_NBT_REQUIREMENT = "~=4.0"
|
|
6
|
+
AMULET_NBT_REQUIREMENT = "==4.0a20"
|
|
7
|
+
AMULET_PYBIND11_EXTENSIONS_REQUIREMENT = "~=1.0"
|
|
8
|
+
AMULET_IO_REQUIREMENT = "~=1.0"
|
|
9
|
+
|
|
10
|
+
_compile_dependencies: dict[str, str] = {
|
|
11
|
+
"wheel": "",
|
|
12
|
+
"pybind11": "==2.13.6",
|
|
13
|
+
"amulet_pybind11_extensions": AMULET_PYBIND11_EXTENSIONS_REQUIREMENT,
|
|
14
|
+
"amulet_nbt": AMULET_NBT_REQUIREMENT,
|
|
15
|
+
"amulet_io": AMULET_IO_REQUIREMENT,
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
fixed_runtime_dependencies_data: dict[str, str] = {
|
|
19
|
+
"amulet-compiler-target": "==1.0",
|
|
20
|
+
"numpy": "~=2.0",
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def get_compile_dependencies_data(
|
|
25
|
+
config_settings: Union[Mapping[str, Union[str, list[str], None]], None] = None,
|
|
26
|
+
) -> dict[str, str]:
|
|
27
|
+
reqs = _compile_dependencies.copy()
|
|
28
|
+
if (
|
|
29
|
+
config_settings and config_settings.get("AMULET_FREEZE_COMPILER")
|
|
30
|
+
) or os.environ.get("AMULET_FREEZE_COMPILER", None):
|
|
31
|
+
reqs["amulet-compiler-version"] = (
|
|
32
|
+
"@git+https://github.com/Amulet-Team/Amulet-Compiler-Version.git@1.0"
|
|
33
|
+
)
|
|
34
|
+
return reqs
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def get_compile_dependencies(
|
|
38
|
+
config_settings: Union[Mapping[str, Union[str, list[str], None]], None] = None,
|
|
39
|
+
) -> list:
|
|
40
|
+
return [
|
|
41
|
+
f"{k}{v}" for k, v in get_compile_dependencies_data(config_settings).items()
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def get_fixed_runtime_dependencies() -> list[str]:
|
|
46
|
+
return [f"{k}{v}" for k, v in fixed_runtime_dependencies_data.items()]
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import subprocess
|
|
3
|
+
import sys
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
import requirements
|
|
6
|
+
|
|
7
|
+
from setuptools import setup, Extension, Command
|
|
8
|
+
from setuptools.command.build_ext import build_ext
|
|
9
|
+
from packaging.version import Version
|
|
10
|
+
|
|
11
|
+
import versioneer
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def fix_path(path: str) -> str:
|
|
15
|
+
return os.path.realpath(path).replace(os.sep, "/")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
dependencies = requirements.get_fixed_runtime_dependencies()
|
|
19
|
+
setup_args = {}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def add_dependency(lib_name: str, version_str: str) -> None:
|
|
23
|
+
version = Version(version_str)
|
|
24
|
+
if version.is_prerelease:
|
|
25
|
+
# Breaking API changes can be made between pre-release versions. Pin to this exact release.
|
|
26
|
+
dependencies.append(f"{lib_name}=={version_str}")
|
|
27
|
+
else:
|
|
28
|
+
# Major - breaking API change. Dependents must be updated and recompiled.
|
|
29
|
+
major = version.major
|
|
30
|
+
# Minor - backwards compatible API change. Dependents must be recompiled.
|
|
31
|
+
minor = version.minor
|
|
32
|
+
# Patch - API unchanged. Dependents must be recompiled.
|
|
33
|
+
patch = version.micro
|
|
34
|
+
# Fix - API unchanged. Dependents do not need to be recompiled.
|
|
35
|
+
dependencies.append(f"{lib_name}~={major}.{minor}.{patch}.0")
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
try:
|
|
39
|
+
import amulet_compiler_version
|
|
40
|
+
except ImportError:
|
|
41
|
+
dependencies.append(
|
|
42
|
+
f"amulet-compiler-version{requirements.AMULET_COMPILER_VERSION_REQUIREMENT}"
|
|
43
|
+
)
|
|
44
|
+
else:
|
|
45
|
+
if os.environ.get("AMULET_FREEZE_COMPILER", None):
|
|
46
|
+
dependencies.append(
|
|
47
|
+
f"amulet-compiler-version=={amulet_compiler_version.__version__}"
|
|
48
|
+
)
|
|
49
|
+
setup_args["options"] = {
|
|
50
|
+
"bdist_wheel": {
|
|
51
|
+
"build_number": f"1.{amulet_compiler_version.compiler_id}.{amulet_compiler_version.compiler_version}"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else:
|
|
55
|
+
dependencies.append(
|
|
56
|
+
f"amulet-compiler-version{requirements.AMULET_COMPILER_VERSION_REQUIREMENT}"
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
try:
|
|
60
|
+
import amulet.pybind11_extensions
|
|
61
|
+
except ImportError:
|
|
62
|
+
dependencies.append(
|
|
63
|
+
f"amulet_pybind11_extensions{requirements.AMULET_PYBIND11_EXTENSIONS_REQUIREMENT}"
|
|
64
|
+
)
|
|
65
|
+
else:
|
|
66
|
+
add_dependency("amulet_pybind11_extensions", amulet.pybind11_extensions.__version__)
|
|
67
|
+
|
|
68
|
+
try:
|
|
69
|
+
import amulet.io
|
|
70
|
+
except ImportError:
|
|
71
|
+
dependencies.append(f"amulet_io{requirements.AMULET_IO_REQUIREMENT}")
|
|
72
|
+
else:
|
|
73
|
+
add_dependency("amulet_io", amulet.io.__version__)
|
|
74
|
+
|
|
75
|
+
try:
|
|
76
|
+
import amulet.nbt
|
|
77
|
+
except ImportError:
|
|
78
|
+
dependencies.append(f"amulet_nbt{requirements.AMULET_NBT_REQUIREMENT}")
|
|
79
|
+
else:
|
|
80
|
+
add_dependency("amulet_nbt", amulet.nbt.__version__)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
cmdclass: dict[str, type[Command]] = versioneer.get_cmdclass()
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class CMakeBuild(cmdclass.get("build_ext", build_ext)):
|
|
87
|
+
def build_extension(self, ext):
|
|
88
|
+
import pybind11
|
|
89
|
+
import amulet.pybind11_extensions
|
|
90
|
+
import amulet.io
|
|
91
|
+
import amulet.nbt
|
|
92
|
+
|
|
93
|
+
ext_dir = (
|
|
94
|
+
(Path.cwd() / self.get_ext_fullpath("")).parent.resolve()
|
|
95
|
+
/ "amulet"
|
|
96
|
+
/ "core"
|
|
97
|
+
)
|
|
98
|
+
core_src_dir = (
|
|
99
|
+
Path.cwd() / "src" / "amulet" / "core" if self.editable_mode else ext_dir
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
platform_args = []
|
|
103
|
+
if sys.platform == "win32":
|
|
104
|
+
platform_args.extend(["-G", "Visual Studio 17 2022"])
|
|
105
|
+
if sys.maxsize > 2**32:
|
|
106
|
+
platform_args.extend(["-A", "x64"])
|
|
107
|
+
else:
|
|
108
|
+
platform_args.extend(["-A", "Win32"])
|
|
109
|
+
platform_args.extend(["-T", "v143"])
|
|
110
|
+
|
|
111
|
+
if subprocess.run(
|
|
112
|
+
[
|
|
113
|
+
"cmake",
|
|
114
|
+
*platform_args,
|
|
115
|
+
f"-DPYTHON_EXECUTABLE={sys.executable}",
|
|
116
|
+
f"-Dpybind11_DIR={pybind11.get_cmake_dir().replace(os.sep, '/')}",
|
|
117
|
+
f"-Damulet_pybind11_extensions_DIR={fix_path(amulet.pybind11_extensions.__path__[0])}",
|
|
118
|
+
f"-Damulet_io_DIR={fix_path(amulet.io.__path__[0])}",
|
|
119
|
+
f"-Damulet_nbt_DIR={fix_path(amulet.nbt.__path__[0])}",
|
|
120
|
+
f"-Damulet_core_DIR={fix_path(core_src_dir)}",
|
|
121
|
+
f"-DAMULET_CORE_EXT_DIR={fix_path(ext_dir)}",
|
|
122
|
+
f"-DCMAKE_INSTALL_PREFIX=install",
|
|
123
|
+
"-B",
|
|
124
|
+
"build",
|
|
125
|
+
]
|
|
126
|
+
).returncode:
|
|
127
|
+
raise RuntimeError("Error configuring amulet_core")
|
|
128
|
+
if subprocess.run(
|
|
129
|
+
["cmake", "--build", "build", "--config", "Release"]
|
|
130
|
+
).returncode:
|
|
131
|
+
raise RuntimeError("Error installing amulet_core")
|
|
132
|
+
if subprocess.run(
|
|
133
|
+
["cmake", "--install", "build", "--config", "Release"]
|
|
134
|
+
).returncode:
|
|
135
|
+
raise RuntimeError("Error installing amulet_core")
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
cmdclass["build_ext"] = CMakeBuild
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
setup(
|
|
142
|
+
version=versioneer.get_version(),
|
|
143
|
+
cmdclass=cmdclass,
|
|
144
|
+
ext_modules=[Extension("amulet.core._amulet_core", [])],
|
|
145
|
+
install_requires=dependencies,
|
|
146
|
+
**setup_args,
|
|
147
|
+
)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
from . import _version
|
|
4
|
+
|
|
5
|
+
__version__ = _version.get_versions()["version"]
|
|
6
|
+
|
|
7
|
+
# init a default logger
|
|
8
|
+
logging.basicConfig(level=logging.INFO, format="%(levelname)s - %(message)s")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def _init() -> None:
|
|
12
|
+
import os
|
|
13
|
+
import sys
|
|
14
|
+
import ctypes
|
|
15
|
+
|
|
16
|
+
if sys.platform == "win32":
|
|
17
|
+
lib_path = os.path.join(os.path.dirname(__file__), "amulet_core.dll")
|
|
18
|
+
elif sys.platform == "darwin":
|
|
19
|
+
lib_path = os.path.join(os.path.dirname(__file__), "libamulet_core.dylib")
|
|
20
|
+
elif sys.platform == "linux":
|
|
21
|
+
lib_path = os.path.join(os.path.dirname(__file__), "libamulet_core.so")
|
|
22
|
+
else:
|
|
23
|
+
raise RuntimeError(f"Unsupported platform {sys.platform}")
|
|
24
|
+
|
|
25
|
+
# Import dependencies
|
|
26
|
+
import amulet.nbt
|
|
27
|
+
|
|
28
|
+
# Load the shared library
|
|
29
|
+
ctypes.cdll.LoadLibrary(lib_path)
|
|
30
|
+
|
|
31
|
+
from ._amulet_core import init
|
|
32
|
+
|
|
33
|
+
init(sys.modules[__name__])
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
_init()
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#include <pybind11/pybind11.h>
|
|
2
|
+
|
|
3
|
+
#include <amulet/pybind11_extensions/compatibility.hpp>
|
|
4
|
+
#include <amulet/pybind11_extensions/py_module.hpp>
|
|
5
|
+
|
|
6
|
+
namespace py = pybind11;
|
|
7
|
+
namespace pyext = Amulet::pybind11_extensions;
|
|
8
|
+
|
|
9
|
+
void init_version(py::module);
|
|
10
|
+
void init_selection(py::module);
|
|
11
|
+
void init_block(py::module);
|
|
12
|
+
void init_block_entity(py::module);
|
|
13
|
+
void init_entity(py::module);
|
|
14
|
+
void init_biome(py::module);
|
|
15
|
+
void init_palette(py::module);
|
|
16
|
+
void init_chunk(py::module);
|
|
17
|
+
|
|
18
|
+
void init_module(py::module m)
|
|
19
|
+
{
|
|
20
|
+
pyext::init_compiler_config(m);
|
|
21
|
+
pyext::check_compatibility(py::module::import("amulet.nbt"), m);
|
|
22
|
+
|
|
23
|
+
// Submodules
|
|
24
|
+
init_version(m);
|
|
25
|
+
init_selection(m);
|
|
26
|
+
init_block(m);
|
|
27
|
+
init_block_entity(m);
|
|
28
|
+
init_entity(m);
|
|
29
|
+
init_biome(m);
|
|
30
|
+
init_palette(m);
|
|
31
|
+
init_chunk(m);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
PYBIND11_MODULE(_amulet_core, m)
|
|
35
|
+
{
|
|
36
|
+
py::options options;
|
|
37
|
+
options.disable_function_signatures();
|
|
38
|
+
m.def("init", &init_module, py::doc("init(arg0: types.ModuleType) -> None"));
|
|
39
|
+
options.enable_function_signatures();
|
|
40
|
+
}
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "
|
|
11
|
+
"date": "2025-05-15T16:15:17+0100",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "2.
|
|
14
|
+
"full-revisionid": "9046da0e208a70cf6d95b1d9661cc2e03a853825",
|
|
15
|
+
"version": "2.0a9"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
if (NOT TARGET amulet_core)
|
|
2
|
+
message(STATUS "Finding amulet_core")
|
|
3
|
+
|
|
4
|
+
find_package(amulet_io CONFIG REQUIRED)
|
|
5
|
+
find_package(amulet_nbt CONFIG REQUIRED)
|
|
6
|
+
|
|
7
|
+
set(amulet_core_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/../..")
|
|
8
|
+
find_library(amulet_core_LIBRARY NAMES amulet_core PATHS "${CMAKE_CURRENT_LIST_DIR}")
|
|
9
|
+
message(STATUS "amulet_core_LIBRARY: ${amulet_core_LIBRARY}")
|
|
10
|
+
|
|
11
|
+
add_library(amulet_core SHARED IMPORTED)
|
|
12
|
+
set_target_properties(amulet_core PROPERTIES
|
|
13
|
+
INTERFACE_INCLUDE_DIRECTORIES "${amulet_core_INCLUDE_DIR}"
|
|
14
|
+
INTERFACE_LINK_LIBRARIES amulet_io
|
|
15
|
+
INTERFACE_LINK_LIBRARIES amulet_nbt
|
|
16
|
+
IMPORTED_IMPLIB "${amulet_core_LIBRARY}"
|
|
17
|
+
)
|
|
18
|
+
endif()
|
amulet_core-2.0a7/src/amulet/biome.pyi → amulet_core-2.0a9/src/amulet/core/biome/__init__.pyi
RENAMED
|
@@ -3,11 +3,11 @@ from __future__ import annotations
|
|
|
3
3
|
import types
|
|
4
4
|
import typing
|
|
5
5
|
|
|
6
|
-
import amulet.version
|
|
6
|
+
import amulet.core.version
|
|
7
7
|
|
|
8
8
|
__all__ = ["Biome"]
|
|
9
9
|
|
|
10
|
-
class Biome(amulet.version.PlatformVersionContainer):
|
|
10
|
+
class Biome(amulet.core.version.PlatformVersionContainer):
|
|
11
11
|
"""
|
|
12
12
|
A class to manage the state of a biome.
|
|
13
13
|
|
|
@@ -34,7 +34,7 @@ class Biome(amulet.version.PlatformVersionContainer):
|
|
|
34
34
|
def __init__(
|
|
35
35
|
self,
|
|
36
36
|
platform: str,
|
|
37
|
-
version: amulet.version.VersionNumber,
|
|
37
|
+
version: amulet.core.version.VersionNumber,
|
|
38
38
|
namespace: str,
|
|
39
39
|
base_name: str,
|
|
40
40
|
) -> None: ...
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#include <functional>
|
|
2
|
+
#include <map>
|
|
3
|
+
#include <stdexcept>
|
|
4
|
+
#include <string>
|
|
5
|
+
#include <type_traits>
|
|
6
|
+
#include <variant>
|
|
7
|
+
|
|
8
|
+
#include <amulet/core/dll.hpp>
|
|
9
|
+
#include <amulet/nbt/nbt_encoding/binary.hpp>
|
|
10
|
+
#include <amulet/nbt/nbt_encoding/string.hpp>
|
|
11
|
+
|
|
12
|
+
#include "biome.hpp"
|
|
13
|
+
|
|
14
|
+
namespace Amulet {
|
|
15
|
+
|
|
16
|
+
void Biome::serialise(BinaryWriter& writer) const
|
|
17
|
+
{
|
|
18
|
+
writer.write_numeric<std::uint8_t>(1);
|
|
19
|
+
writer.write_size_and_bytes(get_platform());
|
|
20
|
+
get_version().serialise(writer);
|
|
21
|
+
writer.write_size_and_bytes(_namespace);
|
|
22
|
+
writer.write_size_and_bytes(_base_name);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
Biome Biome::deserialise(BinaryReader& reader)
|
|
26
|
+
{
|
|
27
|
+
auto version_number = reader.read_numeric<std::uint8_t>();
|
|
28
|
+
switch (version_number) {
|
|
29
|
+
case 1: {
|
|
30
|
+
std::string platform { reader.read_size_and_bytes() };
|
|
31
|
+
VersionNumber version = VersionNumber::deserialise(reader);
|
|
32
|
+
std::string namespace_ { reader.read_size_and_bytes() };
|
|
33
|
+
std::string base_name { reader.read_size_and_bytes() };
|
|
34
|
+
return { platform, version, namespace_, base_name };
|
|
35
|
+
}
|
|
36
|
+
default:
|
|
37
|
+
throw std::invalid_argument("Unsupported version " + std::to_string(version_number));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
}
|