amulet-core 2.0a5__cp312-cp312-macosx_10_13_universal2.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 (210) hide show
  1. amulet/__init__.cpython-312-darwin.so +0 -0
  2. amulet/__init__.pyi +30 -0
  3. amulet/__pyinstaller/__init__.py +2 -0
  4. amulet/__pyinstaller/hook-amulet.py +4 -0
  5. amulet/_init.py +28 -0
  6. amulet/_version.py +21 -0
  7. amulet/biome.cpp +36 -0
  8. amulet/biome.hpp +43 -0
  9. amulet/biome.pyi +77 -0
  10. amulet/block.cpp +435 -0
  11. amulet/block.hpp +119 -0
  12. amulet/block.pyi +273 -0
  13. amulet/block_entity.cpp +12 -0
  14. amulet/block_entity.hpp +56 -0
  15. amulet/block_entity.pyi +80 -0
  16. amulet/chunk.cpp +16 -0
  17. amulet/chunk.hpp +99 -0
  18. amulet/chunk.pyi +30 -0
  19. amulet/chunk_/components/biome.py +155 -0
  20. amulet/chunk_/components/block_entity.py +117 -0
  21. amulet/chunk_/components/entity.py +64 -0
  22. amulet/chunk_/components/height_2d.py +16 -0
  23. amulet/chunk_components.pyi +95 -0
  24. amulet/collections.pyi +37 -0
  25. amulet/data_types.py +29 -0
  26. amulet/entity.py +180 -0
  27. amulet/errors.py +63 -0
  28. amulet/game/__init__.py +7 -0
  29. amulet/game/_game.py +152 -0
  30. amulet/game/_universal/__init__.py +1 -0
  31. amulet/game/_universal/_biome.py +17 -0
  32. amulet/game/_universal/_block.py +47 -0
  33. amulet/game/_universal/_version.py +68 -0
  34. amulet/game/abc/__init__.py +22 -0
  35. amulet/game/abc/_block_specification.py +150 -0
  36. amulet/game/abc/biome.py +213 -0
  37. amulet/game/abc/block.py +331 -0
  38. amulet/game/abc/game_version_container.py +25 -0
  39. amulet/game/abc/json_interface.py +27 -0
  40. amulet/game/abc/version.py +44 -0
  41. amulet/game/bedrock/__init__.py +1 -0
  42. amulet/game/bedrock/_biome.py +35 -0
  43. amulet/game/bedrock/_block.py +42 -0
  44. amulet/game/bedrock/_version.py +165 -0
  45. amulet/game/java/__init__.py +2 -0
  46. amulet/game/java/_biome.py +35 -0
  47. amulet/game/java/_block.py +60 -0
  48. amulet/game/java/_version.py +176 -0
  49. amulet/game/translate/__init__.py +12 -0
  50. amulet/game/translate/_functions/__init__.py +15 -0
  51. amulet/game/translate/_functions/_code_functions/__init__.py +0 -0
  52. amulet/game/translate/_functions/_code_functions/_text.py +553 -0
  53. amulet/game/translate/_functions/_code_functions/banner_pattern.py +67 -0
  54. amulet/game/translate/_functions/_code_functions/bedrock_chest_connection.py +152 -0
  55. amulet/game/translate/_functions/_code_functions/bedrock_moving_block_pos.py +88 -0
  56. amulet/game/translate/_functions/_code_functions/bedrock_sign.py +152 -0
  57. amulet/game/translate/_functions/_code_functions/bedrock_skull_rotation.py +16 -0
  58. amulet/game/translate/_functions/_code_functions/custom_name.py +146 -0
  59. amulet/game/translate/_functions/_frozen.py +66 -0
  60. amulet/game/translate/_functions/_state.py +54 -0
  61. amulet/game/translate/_functions/_typing.py +98 -0
  62. amulet/game/translate/_functions/abc.py +116 -0
  63. amulet/game/translate/_functions/carry_nbt.py +160 -0
  64. amulet/game/translate/_functions/carry_properties.py +80 -0
  65. amulet/game/translate/_functions/code.py +143 -0
  66. amulet/game/translate/_functions/map_block_name.py +66 -0
  67. amulet/game/translate/_functions/map_nbt.py +111 -0
  68. amulet/game/translate/_functions/map_properties.py +93 -0
  69. amulet/game/translate/_functions/multiblock.py +112 -0
  70. amulet/game/translate/_functions/new_block.py +42 -0
  71. amulet/game/translate/_functions/new_entity.py +43 -0
  72. amulet/game/translate/_functions/new_nbt.py +206 -0
  73. amulet/game/translate/_functions/new_properties.py +64 -0
  74. amulet/game/translate/_functions/sequence.py +51 -0
  75. amulet/game/translate/_functions/walk_input_nbt.py +331 -0
  76. amulet/game/translate/_translator.py +433 -0
  77. amulet/item.py +75 -0
  78. amulet/level/__init__.pyi +27 -0
  79. amulet/level/_load.py +100 -0
  80. amulet/level/abc/__init__.py +12 -0
  81. amulet/level/abc/_chunk_handle.py +335 -0
  82. amulet/level/abc/_dimension.py +86 -0
  83. amulet/level/abc/_history/__init__.py +1 -0
  84. amulet/level/abc/_history/_cache.py +224 -0
  85. amulet/level/abc/_history/_history_manager.py +291 -0
  86. amulet/level/abc/_level/__init__.py +5 -0
  87. amulet/level/abc/_level/_compactable_level.py +10 -0
  88. amulet/level/abc/_level/_creatable_level.py +29 -0
  89. amulet/level/abc/_level/_disk_level.py +17 -0
  90. amulet/level/abc/_level/_level.py +453 -0
  91. amulet/level/abc/_level/_loadable_level.py +42 -0
  92. amulet/level/abc/_player_storage.py +7 -0
  93. amulet/level/abc/_raw_level.py +187 -0
  94. amulet/level/abc/_registry.py +40 -0
  95. amulet/level/bedrock/__init__.py +2 -0
  96. amulet/level/bedrock/_chunk_handle.py +19 -0
  97. amulet/level/bedrock/_dimension.py +22 -0
  98. amulet/level/bedrock/_level.py +187 -0
  99. amulet/level/bedrock/_raw/__init__.py +5 -0
  100. amulet/level/bedrock/_raw/_actor_counter.py +53 -0
  101. amulet/level/bedrock/_raw/_chunk.py +54 -0
  102. amulet/level/bedrock/_raw/_chunk_decode.py +668 -0
  103. amulet/level/bedrock/_raw/_chunk_encode.py +602 -0
  104. amulet/level/bedrock/_raw/_constant.py +9 -0
  105. amulet/level/bedrock/_raw/_dimension.py +343 -0
  106. amulet/level/bedrock/_raw/_level.py +463 -0
  107. amulet/level/bedrock/_raw/_level_dat.py +90 -0
  108. amulet/level/bedrock/_raw/_typing.py +6 -0
  109. amulet/level/bedrock/_raw/leveldb_chunk_versions.py +83 -0
  110. amulet/level/bedrock/chunk/__init__.py +1 -0
  111. amulet/level/bedrock/chunk/_chunk.py +126 -0
  112. amulet/level/bedrock/chunk/components/__init__.py +0 -0
  113. amulet/level/bedrock/chunk/components/chunk_version.py +12 -0
  114. amulet/level/bedrock/chunk/components/finalised_state.py +13 -0
  115. amulet/level/bedrock/chunk/components/raw_chunk.py +15 -0
  116. amulet/level/construction/__init__.py +0 -0
  117. amulet/level/java/__init__.pyi +21 -0
  118. amulet/level/java/_chunk_handle.py +17 -0
  119. amulet/level/java/_chunk_handle.pyi +15 -0
  120. amulet/level/java/_dimension.py +20 -0
  121. amulet/level/java/_dimension.pyi +13 -0
  122. amulet/level/java/_level.py +184 -0
  123. amulet/level/java/_level.pyi +120 -0
  124. amulet/level/java/_raw/__init__.pyi +19 -0
  125. amulet/level/java/_raw/_chunk.pyi +23 -0
  126. amulet/level/java/_raw/_chunk_decode.py +561 -0
  127. amulet/level/java/_raw/_chunk_encode.py +463 -0
  128. amulet/level/java/_raw/_constant.py +9 -0
  129. amulet/level/java/_raw/_constant.pyi +20 -0
  130. amulet/level/java/_raw/_data_pack/__init__.py +2 -0
  131. amulet/level/java/_raw/_data_pack/__init__.pyi +8 -0
  132. amulet/level/java/_raw/_data_pack/data_pack.py +241 -0
  133. amulet/level/java/_raw/_data_pack/data_pack.pyi +197 -0
  134. amulet/level/java/_raw/_data_pack/data_pack_manager.py +77 -0
  135. amulet/level/java/_raw/_data_pack/data_pack_manager.pyi +75 -0
  136. amulet/level/java/_raw/_dimension.py +86 -0
  137. amulet/level/java/_raw/_dimension.pyi +72 -0
  138. amulet/level/java/_raw/_level.py +507 -0
  139. amulet/level/java/_raw/_level.pyi +238 -0
  140. amulet/level/java/_raw/_typing.py +3 -0
  141. amulet/level/java/_raw/_typing.pyi +5 -0
  142. amulet/level/java/anvil/__init__.py +2 -0
  143. amulet/level/java/anvil/__init__.pyi +11 -0
  144. amulet/level/java/anvil/_dimension.py +170 -0
  145. amulet/level/java/anvil/_dimension.pyi +109 -0
  146. amulet/level/java/anvil/_region.py +421 -0
  147. amulet/level/java/anvil/_region.pyi +197 -0
  148. amulet/level/java/anvil/_sector_manager.py +223 -0
  149. amulet/level/java/anvil/_sector_manager.pyi +142 -0
  150. amulet/level/java/chunk.pyi +81 -0
  151. amulet/level/java/chunk_/_chunk.py +260 -0
  152. amulet/level/java/chunk_/components/inhabited_time.py +12 -0
  153. amulet/level/java/chunk_/components/last_update.py +12 -0
  154. amulet/level/java/chunk_/components/legacy_version.py +12 -0
  155. amulet/level/java/chunk_/components/light_populated.py +12 -0
  156. amulet/level/java/chunk_/components/named_height_2d.py +37 -0
  157. amulet/level/java/chunk_/components/status.py +11 -0
  158. amulet/level/java/chunk_/components/terrain_populated.py +12 -0
  159. amulet/level/java/chunk_components.pyi +22 -0
  160. amulet/level/java/long_array.pyi +38 -0
  161. amulet/level/java_forge/__init__.py +0 -0
  162. amulet/level/mcstructure/__init__.py +0 -0
  163. amulet/level/nbt/__init__.py +0 -0
  164. amulet/level/schematic/__init__.py +0 -0
  165. amulet/level/sponge_schematic/__init__.py +0 -0
  166. amulet/level/temporary_level/__init__.py +1 -0
  167. amulet/level/temporary_level/_level.py +16 -0
  168. amulet/palette/__init__.pyi +8 -0
  169. amulet/palette/biome_palette.pyi +45 -0
  170. amulet/palette/block_palette.pyi +45 -0
  171. amulet/player.py +64 -0
  172. amulet/py.typed +0 -0
  173. amulet/selection/__init__.py +2 -0
  174. amulet/selection/abstract_selection.py +342 -0
  175. amulet/selection/box.py +852 -0
  176. amulet/selection/group.py +481 -0
  177. amulet/utils/__init__.pyi +28 -0
  178. amulet/utils/call_spec/__init__.py +24 -0
  179. amulet/utils/call_spec/__init__.pyi +53 -0
  180. amulet/utils/call_spec/_call_spec.py +262 -0
  181. amulet/utils/call_spec/_call_spec.pyi +272 -0
  182. amulet/utils/format_utils.py +41 -0
  183. amulet/utils/generator.py +18 -0
  184. amulet/utils/matrix.py +243 -0
  185. amulet/utils/matrix.pyi +177 -0
  186. amulet/utils/numpy.pyi +11 -0
  187. amulet/utils/numpy_helpers.py +19 -0
  188. amulet/utils/shareable_lock.py +335 -0
  189. amulet/utils/shareable_lock.pyi +190 -0
  190. amulet/utils/signal/__init__.py +10 -0
  191. amulet/utils/signal/__init__.pyi +25 -0
  192. amulet/utils/signal/_signal.py +228 -0
  193. amulet/utils/signal/_signal.pyi +84 -0
  194. amulet/utils/task_manager.py +235 -0
  195. amulet/utils/task_manager.pyi +168 -0
  196. amulet/utils/typed_property.py +111 -0
  197. amulet/utils/typing.py +4 -0
  198. amulet/utils/typing.pyi +6 -0
  199. amulet/utils/weakref.py +70 -0
  200. amulet/utils/weakref.pyi +50 -0
  201. amulet/utils/world_utils.py +102 -0
  202. amulet/utils/world_utils.pyi +109 -0
  203. amulet/version.cpp +136 -0
  204. amulet/version.hpp +142 -0
  205. amulet/version.pyi +94 -0
  206. amulet_core-2.0a5.dist-info/METADATA +103 -0
  207. amulet_core-2.0a5.dist-info/RECORD +210 -0
  208. amulet_core-2.0a5.dist-info/WHEEL +5 -0
  209. amulet_core-2.0a5.dist-info/entry_points.txt +2 -0
  210. amulet_core-2.0a5.dist-info/top_level.txt +1 -0
amulet/version.hpp ADDED
@@ -0,0 +1,142 @@
1
+ #pragma once
2
+
3
+ #include <cstdint>
4
+ #include <vector>
5
+ #include <string>
6
+ #include <sstream>
7
+ #include <memory>
8
+ #include <algorithm>
9
+ #include <initializer_list>
10
+
11
+ #include <amulet/io/binary_reader.hpp>
12
+ #include <amulet/io/binary_writer.hpp>
13
+
14
+
15
+ namespace Amulet {
16
+ typedef std::string PlatformType;
17
+ class VersionNumber {
18
+ private:
19
+ std::vector<std::int64_t> vec;
20
+ public:
21
+ const std::vector<std::int64_t>& get_vector() const { return vec; }
22
+
23
+ VersionNumber(std::initializer_list<std::int64_t> vec) : vec(vec) {};
24
+ VersionNumber(const std::vector<std::int64_t>& vec) : vec(vec) {};
25
+
26
+ void serialise(BinaryWriter&) const;
27
+ static std::shared_ptr<VersionNumber> deserialise(BinaryReader&);
28
+
29
+ std::vector<std::int64_t>::const_iterator begin() const { return vec.begin(); };
30
+ std::vector<std::int64_t>::const_iterator end() const { return vec.end(); };
31
+ std::vector<std::int64_t>::const_reverse_iterator rbegin() const { return vec.rbegin(); };
32
+ std::vector<std::int64_t>::const_reverse_iterator rend() const { return vec.rend(); };
33
+ size_t size() const { return vec.size(); };
34
+ std::int64_t operator[](size_t index) const;
35
+ auto operator<=>(const VersionNumber& other) const {
36
+ size_t max_len = std::max(vec.size(), other.size());
37
+ std::int64_t v1, v2;
38
+ for (size_t i = 0; i < max_len; i++) {
39
+ v1 = (*this)[i];
40
+ v2 = other[i];
41
+ if (v1 < v2) {
42
+ // Less than
43
+ return std::strong_ordering::less;
44
+ }
45
+ if (v1 > v2) {
46
+ // Greater than
47
+ return std::strong_ordering::greater;
48
+ }
49
+ }
50
+ // equal
51
+ return std::strong_ordering::equal;
52
+ }
53
+ bool operator==(const VersionNumber& other) const {
54
+ return (*this <=> other) == 0;
55
+ };
56
+ std::string toString() const;
57
+ std::vector<std::int64_t> cropped_version() const;
58
+ std::vector<std::int64_t> padded_version(size_t len) const;
59
+ };
60
+
61
+ class PlatformVersionContainer {
62
+ private:
63
+ PlatformType platform;
64
+ std::shared_ptr<VersionNumber> version;
65
+ public:
66
+ const PlatformType& get_platform() const { return platform; }
67
+ std::shared_ptr<VersionNumber> get_version() const { return version; }
68
+
69
+ template <typename versionT>
70
+ PlatformVersionContainer(
71
+ const PlatformType& platform,
72
+ const versionT& version
73
+ ) :
74
+ platform(platform),
75
+ version([&]{
76
+ if constexpr (std::is_same_v<versionT, std::shared_ptr<VersionNumber>>){
77
+ if (!version) { throw std::runtime_error("Version is nullptr"); }
78
+ return version;
79
+ }
80
+ else {
81
+ return std::make_shared<VersionNumber>(version);
82
+ }
83
+ }())
84
+ {};
85
+
86
+ void serialise(BinaryWriter&) const;
87
+ static std::shared_ptr<PlatformVersionContainer> deserialise(BinaryReader&);
88
+
89
+ auto operator<=>(const PlatformVersionContainer& other) const {
90
+ auto cmp = platform <=> other.platform;
91
+ if (cmp != 0) { return cmp; }
92
+ return *version <=> *other.version;
93
+ }
94
+ bool operator==(const PlatformVersionContainer& other) const {
95
+ return (*this <=> other) == 0;
96
+ };
97
+ };
98
+
99
+ class VersionRange {
100
+ private:
101
+ PlatformType platform;
102
+ std::shared_ptr<VersionNumber> min_version;
103
+ std::shared_ptr<VersionNumber> max_version;
104
+ public:
105
+ const PlatformType& get_platform() const { return platform; }
106
+ std::shared_ptr<VersionNumber> get_min_version() const { return min_version; }
107
+ std::shared_ptr<VersionNumber> get_max_version() const { return max_version; }
108
+
109
+ VersionRange(
110
+ const PlatformType& platform,
111
+ std::shared_ptr<VersionNumber> min_version,
112
+ std::shared_ptr<VersionNumber> max_version
113
+ ) :
114
+ platform(platform),
115
+ min_version(min_version),
116
+ max_version(max_version)
117
+ {
118
+ if (*min_version > *max_version) {
119
+ throw std::invalid_argument("min_version must be less than or equal to max_version");
120
+ }
121
+ };
122
+
123
+ void serialise(BinaryWriter&) const;
124
+ static std::shared_ptr<VersionRange> deserialise(BinaryReader&);
125
+
126
+ bool contains(const PlatformType& platform_, const VersionNumber& version) const;
127
+ };
128
+
129
+ class VersionRangeContainer {
130
+ private:
131
+ std::shared_ptr<const VersionRange> version_range;
132
+ public:
133
+ std::shared_ptr<const VersionRange> get_version_range() const { return version_range; }
134
+
135
+ VersionRangeContainer(
136
+ std::shared_ptr<VersionRange> version_range
137
+ ): version_range(version_range) {}
138
+
139
+ void serialise(BinaryWriter&) const;
140
+ static std::shared_ptr<VersionRangeContainer> deserialise(BinaryReader&);
141
+ };
142
+ }
amulet/version.pyi ADDED
@@ -0,0 +1,94 @@
1
+ from __future__ import annotations
2
+
3
+ import types
4
+ import typing
5
+ from builtins import str as PlatformType
6
+
7
+ __all__ = [
8
+ "PlatformType",
9
+ "PlatformVersionContainer",
10
+ "VersionNumber",
11
+ "VersionRange",
12
+ "VersionRangeContainer",
13
+ ]
14
+
15
+ class PlatformVersionContainer:
16
+ def __getstate__(self) -> bytes: ...
17
+ def __init__(self, platform: str, version: VersionNumber) -> None: ...
18
+ def __repr__(self) -> str: ...
19
+ def __setstate__(self, arg0: bytes) -> None: ...
20
+ @property
21
+ def platform(self) -> str: ...
22
+ @property
23
+ def version(self) -> VersionNumber: ...
24
+
25
+ class VersionNumber:
26
+ """
27
+ This class is designed to store semantic versions and data versions and allow comparisons between them.
28
+
29
+ >>> v1 = VersionNumber(1, 0, 0)
30
+ >>> v2 = VersionNumber(1, 0)
31
+ >>> assert v2 == v1
32
+
33
+ This class should also be used to store single number data versions.
34
+ >>> v3 = VersionNumber(3578)
35
+ """
36
+
37
+ def __contains__(self, arg0: int) -> bool: ...
38
+ @typing.overload
39
+ def __eq__(self, arg0: VersionNumber) -> bool: ...
40
+ @typing.overload
41
+ def __eq__(self, arg0: typing.Any) -> bool | types.NotImplementedType: ...
42
+ def __ge__(self, arg0: VersionNumber) -> bool: ...
43
+ @typing.overload
44
+ def __getitem__(self, item: typing.SupportsInt) -> int: ...
45
+ @typing.overload
46
+ def __getitem__(self, item: slice) -> list[int]: ...
47
+ def __getstate__(self) -> bytes: ...
48
+ def __gt__(self, arg0: VersionNumber) -> bool: ...
49
+ def __hash__(self) -> int: ...
50
+ def __init__(self, *args: typing.SupportsInt) -> None: ...
51
+ def __iter__(self) -> typing.Iterator[int]: ...
52
+ def __le__(self, arg0: VersionNumber) -> bool: ...
53
+ def __len__(self) -> int: ...
54
+ def __lt__(self, arg0: VersionNumber) -> bool: ...
55
+ def __repr__(self) -> str: ...
56
+ def __reversed__(self) -> typing.Iterator[int]: ...
57
+ def __setstate__(self, arg0: bytes) -> None: ...
58
+ def __str__(self) -> str: ...
59
+ def count(self, value: int) -> int: ...
60
+ def cropped_version(self) -> tuple:
61
+ """
62
+ The version number with trailing zeros cut off.
63
+ """
64
+
65
+ def index(
66
+ self, value: int, start: int = 0, stop: int = 18446744073709551615
67
+ ) -> int: ...
68
+ def padded_version(self, len: int) -> tuple:
69
+ """
70
+ Get the version number padded with zeros to the given length.
71
+ """
72
+
73
+ class VersionRange:
74
+ def __getstate__(self) -> bytes: ...
75
+ def __init__(
76
+ self, platform: str, min_version: VersionNumber, max_version: VersionNumber
77
+ ) -> None: ...
78
+ def __repr__(self) -> str: ...
79
+ def __setstate__(self, arg0: bytes) -> None: ...
80
+ def contains(self, arg0: str, arg1: VersionNumber) -> bool: ...
81
+ @property
82
+ def max_version(self) -> VersionNumber: ...
83
+ @property
84
+ def min_version(self) -> VersionNumber: ...
85
+ @property
86
+ def platform(self) -> str: ...
87
+
88
+ class VersionRangeContainer:
89
+ def __getstate__(self) -> bytes: ...
90
+ def __init__(self, version_range: VersionRange) -> None: ...
91
+ def __repr__(self) -> str: ...
92
+ def __setstate__(self, arg0: bytes) -> None: ...
93
+ @property
94
+ def version_range(self) -> VersionRange: ...
@@ -0,0 +1,103 @@
1
+ Metadata-Version: 2.1
2
+ Name: amulet-core
3
+ Version: 2.0a5
4
+ Summary: A Python library for reading/writing Minecraft's various save formats.
5
+ Home-page: https://www.amuletmc.com
6
+ Author: James Clare, Ben Gothard et al.
7
+ Author-email: amuleteditor@gmail.com
8
+ Platform: any
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.11
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: numpy~=1.21
14
+ Requires-Dist: amulet-nbt~=4.0a2
15
+ Requires-Dist: portalocker~=2.4
16
+ Requires-Dist: amulet-leveldb~=1.0b0
17
+ Requires-Dist: platformdirs~=3.1
18
+ Requires-Dist: amulet-runtime-final~=1.1
19
+ Requires-Dist: pillow~=10.0
20
+ Requires-Dist: lz4~=4.3
21
+ Provides-Extra: dev
22
+ Requires-Dist: black>=22.3; extra == "dev"
23
+ Requires-Dist: pre-commit>=1.11.1; extra == "dev"
24
+ Requires-Dist: mypy; extra == "dev"
25
+ Requires-Dist: types-pyinstaller; extra == "dev"
26
+ Requires-Dist: isort; extra == "dev"
27
+ Requires-Dist: autoflake; extra == "dev"
28
+ Provides-Extra: docs
29
+ Requires-Dist: Sphinx>=1.7.4; extra == "docs"
30
+ Requires-Dist: sphinx-autodoc-typehints>=1.3.0; extra == "docs"
31
+ Requires-Dist: sphinx-rtd-theme>=0.3.1; extra == "docs"
32
+
33
+ # Amulet Core
34
+
35
+ ![Build](../../workflows/Build/badge.svg)
36
+ ![Unittests](../../workflows/Unittests/badge.svg?event=push)
37
+ ![Stylecheck](../../workflows/Stylecheck/badge.svg?event=push)
38
+ [![Documentation](https://readthedocs.org/projects/amulet-core/badge)](https://amulet-core.readthedocs.io)
39
+
40
+ A Python 3 library to read and write data from Minecraft's various save formats.
41
+
42
+ This library provides the main world editing functionality for Amulet Map Editor
43
+
44
+ #### If you are looking for the actual editor it can be found at [Amulet Map Editor](https://github.com/Amulet-Team/Amulet-Map-Editor)
45
+
46
+
47
+ ## Documentation
48
+
49
+ Our online documentation can be found here: https://amulet-core.readthedocs.io
50
+
51
+ ## Installing
52
+ 1) Install Python 3.7
53
+ 2) We recommend setting up a [python virtual environment](https://docs.python.org/3/tutorial/venv.html) so you don't run into issues with dependency conflicts.
54
+ 3) run `pip install amulet-core` to install the library and all its dependencies.
55
+
56
+ ## Dependencies
57
+
58
+ This library uses a number of other libraries. These will be automatically installed when running the command above.
59
+ - Numpy
60
+ - [Amulet_NBT](https://github.com/Amulet-Team/Amulet-NBT)
61
+ - [PyMCTranslate](https://github.com/gentlegiantJGC/PyMCTranslate)
62
+
63
+ ## Contributing
64
+
65
+ ### For Development
66
+ Download the code to your computer, install python and run the following command from the root directory.
67
+ run `pip install -e .[dev]`
68
+ This command will install the library in development mode with the libraries required for development.
69
+ - [Black](https://github.com/ambv/black) (Required for formatting)
70
+ - Must be run before pushing a Pull Request
71
+
72
+ For information about contributing to this project, please see the contribution section [below](#contributing)
73
+
74
+ ### Code Formatting
75
+ For code formatting, we use the formatting utility [black](https://github.com/psf/black).
76
+ To run it, run the following command from your favorite terminal after installing: `black amulet tests`
77
+
78
+ In order for your pull request to be accepted, this command must be run to format every file.
79
+
80
+ ### Building the Documentation
81
+ To build the documentation locally, run the following command: `make html` and then navigate to the
82
+ generated directory `docs_build/html` in your favorite web browser
83
+
84
+ ### Branch Naming
85
+ Branches should be created when a certain bug or feature may take multiple attempts to fix. Naming
86
+ them should follow the following convention (even for forked repositories when a pull request is being made):
87
+
88
+ * For features, use: `impl-<feature name>`
89
+ * For bug fixes, use: `bug-<bug tracker ID>`
90
+ * For improvements/rewrites, use: `improv-<feature name>`
91
+ * For prototyping, use: `proto-<feature name>`
92
+
93
+ ### Pull Requests
94
+ We ask that submitted Pull Requests give moderately detailed notes about the changes and explain
95
+ any changes that were made to the program outside of those directly related to the feature/bug-fix.
96
+ Make sure to run all tests and formatting otherwise we cannot accept your pull request.
97
+
98
+ _Note: We will also re-run all tests before reviewing, this is to mitigate additional changes/commits
99
+ needed to pass all tests._
100
+
101
+ Once a Pull Request is submitted, we will mark the request for review, once that is done, we will
102
+ review the changes and provide any notes/things to change. Once all additional changes have been made,
103
+ we will merge the request.
@@ -0,0 +1,210 @@
1
+ amulet/__init__.cpython-312-darwin.so,sha256=1yd2l--kfYtncdvu6pYJaHuGE8ZiHztR7nR99wv0Sec,7001008
2
+ amulet/__init__.pyi,sha256=IOOMKdCp9wlIm1PoPlB4jVGhBFtajmJ-aXzknF0dGVw,422
3
+ amulet/_init.py,sha256=xk4EYAp-aPkv2zY18L3xQks3QUBIEQ0WpZC-jg1JerE,911
4
+ amulet/_version.py,sha256=AjnauR1uRnT-sExciaZZ2IKwsENf058_E6mCtUkuXSE,497
5
+ amulet/biome.cpp,sha256=8uNLLcIgqhO0troEiEneZdJcgGXBs16eZtNj825Q85s,1253
6
+ amulet/biome.hpp,sha256=r0J636AoBf_MXL-w_JHw8ayYOj1D9QrZDFX5PWVYBLE,1431
7
+ amulet/biome.pyi,sha256=AOZaXvSVI4FUDsP-BclwBXV__GCyBJa693fislUS0TI,2161
8
+ amulet/block.cpp,sha256=lhIiUihcB7uBeThkhWI9hwCYWLuoyoRL866jhg--0o8,18099
9
+ amulet/block.hpp,sha256=1kMD0ZRSatw4BVozvRaU06LGGQbnpAJQt1NatyIEzw4,4331
10
+ amulet/block.pyi,sha256=2qDFm-uCnCBdJ9KAPluzZHooEgYWqy21EK8qs0tO_8w,9365
11
+ amulet/block_entity.cpp,sha256=EK3kAZZ5rBiy4aDDDcmb1AhR-Gp4y4E2wBOtfvnsB9Q,281
12
+ amulet/block_entity.hpp,sha256=PhCJIyDRBIXHkYN4ICEVtIfH6uD31DMW48uraRl_eBg,1989
13
+ amulet/block_entity.pyi,sha256=MZBR2-_4XtIHJNpIre3boc4tyZw92bpT1mV81K1uGOY,2160
14
+ amulet/chunk.cpp,sha256=paxkrlnOmgkOJMSpr0TQm7lvYxi1HvJvSxOKcMmRZG0,390
15
+ amulet/chunk.hpp,sha256=c8JT677Mem4Gj-zvLsJLUB4V2_11xr16-X9YLQqmBS4,2976
16
+ amulet/chunk.pyi,sha256=M1ARNYEQwihMZHypgKIaeajOb1WXRaZqO9XwNpdmMnw,768
17
+ amulet/chunk_components.pyi,sha256=OI5jlH2yB_Rq1Ojq_E_y-fvGaCgkM_P0XQF4DbE4Q64,3104
18
+ amulet/collections.pyi,sha256=YWXSYlKIbfrShwoo_-moe4-hBvixN5lGA5HUUKeN6aw,1394
19
+ amulet/data_types.py,sha256=ztevTda487UE57UHhqi06QVvK8FO1gi2Xm8AF_C6R8A,1394
20
+ amulet/entity.py,sha256=_Tl8eAZBDZ2E5gRPjg0xpcvG4iKAJImFeBimHtxu1hw,5045
21
+ amulet/errors.py,sha256=S7pKdDHOk6UpqKihrDUY0bJ85uAM9me4eSopIkmrSsU,1831
22
+ amulet/item.py,sha256=WOzd-IDSqTfPrpMQ80WBhWCgI2mclLnRbsM-BA9ocVQ,1964
23
+ amulet/player.py,sha256=mgEMPTWAeTN7rBkq8YuKY80HLJJ5wTd7ymbIjkKH8zQ,1931
24
+ amulet/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ amulet/version.cpp,sha256=mO0g8FhAw8A88IfVZ9Jd_j4k_E8Cxu-ZR3xfvlgIsn4,4776
26
+ amulet/version.hpp,sha256=nvpE4sCm-qOTOY0LKO5KIfy423yJ9zHjeBWeAQXSX80,5529
27
+ amulet/version.pyi,sha256=YMLJ5btMLaitpnpvWRw-8nI54W1SfV9Z-BKTTO74Wlc,3161
28
+ amulet/__pyinstaller/__init__.py,sha256=D1_UuaYmG8_m59EtvoWT0apEUDJigfFPskLnnnzG9dw,54
29
+ amulet/__pyinstaller/hook-amulet.py,sha256=5s6LZxxd47zNsrsJi-PORR7Q6QC079D7pcTkSn1uzCs,158
30
+ amulet/chunk_/components/biome.py,sha256=I3kc4_20LgW4Veomz_JT3rOvZ2ytvY_WjprK2AICYrs,5375
31
+ amulet/chunk_/components/block_entity.py,sha256=Ws7LMqrGNa_SHV4uzZBMXxjUL3AsA1LgjuR1Wt2ZN2Q,4242
32
+ amulet/chunk_/components/entity.py,sha256=8NWkcbfERfTmDm51mfZgh0UqEXpjEennnhBilFnSFWY,2291
33
+ amulet/chunk_/components/height_2d.py,sha256=AMiiZ4IICo9NMGVBsiwioTIHXkOX3rxcjlqHTAWMvL4,565
34
+ amulet/game/__init__.py,sha256=5a1p8mMiE9DiQvv1OebfnU5fVe__s0RQlNpsOrVQhoY,267
35
+ amulet/game/_game.py,sha256=zeBHaBnGIKNwfvhte39TyRN3VGrdzlrvOci9GWn27Ec,4862
36
+ amulet/game/_universal/__init__.py,sha256=s8q5OSo4zZ8LkF3yV0hXsno3-CCGQYBToxez9OWg1Co,39
37
+ amulet/game/_universal/_biome.py,sha256=cEosTdBSkOM4nJRCDTa-sHHnRRW6bkpcNOv8r5gG8mI,685
38
+ amulet/game/_universal/_block.py,sha256=Dg0LT_jLjU2W-0YGh0Z64eHwo8PRQNGidR7CHYCJ1cU,1625
39
+ amulet/game/_universal/_version.py,sha256=ltS3Q9fJiQNIjlx5eRXsp3dTmljG7tK-lD5kTJGCeHI,1819
40
+ amulet/game/abc/__init__.py,sha256=_Lueo5lHuYxg1K-KoT3J4hTshDTWbIi14MQSiz86rWo,512
41
+ amulet/game/abc/_block_specification.py,sha256=hewNdxEGgPBjG_cr7x4ciG57t6_Uwz4xC8EW_6i-fQY,4692
42
+ amulet/game/abc/biome.py,sha256=SufGHRdTriDdB3bH9MwndQA6YiS_W-QKynVTkwOZbDM,7907
43
+ amulet/game/abc/block.py,sha256=KM_al4blLTVvP7Hp-l4DoGPer4-c4rdgXE0-7T2XWho,13213
44
+ amulet/game/abc/game_version_container.py,sha256=bBHnaPSf8DxktJ6tMZl_k_VcJgoRepGGMF8qrgz2BmA,706
45
+ amulet/game/abc/json_interface.py,sha256=0YF5tXiFX4A-gsi4QISO-ZUz4HwfQG_aY6aoIlH9GRk,576
46
+ amulet/game/abc/version.py,sha256=Wi-wdGlhBnDypxEVRnNDIdHkxa-0El6mxA-NsRr3pIY,1125
47
+ amulet/game/bedrock/__init__.py,sha256=w79ewx8eJ2Yei4z5xBxhIdcpGL9NuAtgpErCwUs13RI,41
48
+ amulet/game/bedrock/_biome.py,sha256=yBxrxl8r95CKt9bKpH8z6q7rkWkHiR9CKhmNqJjUQlE,1364
49
+ amulet/game/bedrock/_block.py,sha256=cQe7ObWj3xged5rkZqXm91wAssFhL8ISoQa4txJuqhU,1496
50
+ amulet/game/bedrock/_version.py,sha256=T96i-YQSH1Fkqm-WfO2_9QaPb8UVk9LjdU29E9RdUnw,5404
51
+ amulet/game/java/__init__.py,sha256=gL0IYU17mM5XIt1Mso00MfuX29reyvQMhV7f7ZjMlM8,72
52
+ amulet/game/java/_biome.py,sha256=1b3Rphkx2KUA_y4JWLDZ2YGEfPONZxfnA-9443k2svs,1361
53
+ amulet/game/java/_block.py,sha256=vVFHYSeAVDWh3-lSc3YeBp-6mzarhRGkPjzQ8d2D95M,2080
54
+ amulet/game/java/_version.py,sha256=3YFy8fRYselinsqWxBHtKEYI4wdBLigwKab6_MVvC1Q,5835
55
+ amulet/game/translate/__init__.py,sha256=LrtD3KX_Jwdi90QLZB6dMHOK4OnZhk3SqUZ6WfVXEeg,357
56
+ amulet/game/translate/_translator.py,sha256=2I7QEPXO5pVqkhmsUGWEylQgf7ipBU-eOLBWXOTmA7o,14224
57
+ amulet/game/translate/_functions/__init__.py,sha256=RfIBXhABHtqjrTpFeBxyGh2tkxssK4QzLd95AyG8d9o,585
58
+ amulet/game/translate/_functions/_frozen.py,sha256=G2umVJdk4cbWEonnEAmgDKo1tf4TYSKF-74Bd4nNDfE,1669
59
+ amulet/game/translate/_functions/_state.py,sha256=J9x-lkjbUChehWiWV2LuSjzwqAhbDmHht6WDDDlyfaU,1382
60
+ amulet/game/translate/_functions/_typing.py,sha256=X8WAWZkhuqAWiOn_J5wT0xlWgPRwaVQYkNDzoXmX-cE,1764
61
+ amulet/game/translate/_functions/abc.py,sha256=pUMxbYtd1GTI2Izpw-0nJbp0o_j_b255Wo812sD-al8,3566
62
+ amulet/game/translate/_functions/carry_nbt.py,sha256=g6OGct3MYnmzRFWjZqh8RCLn5AQiiS4FUUAdS3cV1hA,5075
63
+ amulet/game/translate/_functions/carry_properties.py,sha256=N_LzwaX3-_WeFIdZ3oI0BJtkKQo6NBRtzSrNfqcyge4,2693
64
+ amulet/game/translate/_functions/code.py,sha256=qs9qc2NnWCQfhCR2mlIRww-DuvlPUuuv_Nn9De3oIDM,4901
65
+ amulet/game/translate/_functions/map_block_name.py,sha256=eooNaupOB3_-RGLPMQNsTlQ4r5p8s6KrJsy_Z8t82Z8,2064
66
+ amulet/game/translate/_functions/map_nbt.py,sha256=cpLD2avYi98hYOMGVG88HNcwM62daKdzGqPmHhShPB0,3261
67
+ amulet/game/translate/_functions/map_properties.py,sha256=9X8NK1o9UznwYmrSsXLaIK2qywNLEWoMcHwfHQ3iHZs,3149
68
+ amulet/game/translate/_functions/multiblock.py,sha256=JgevfTHE83dKnoaf3LvZ5m7aCjcNflMUWA-0pll5a_Y,3779
69
+ amulet/game/translate/_functions/new_block.py,sha256=jmPTVhAmN-FaRis0blstWGj6YHM5XUf_TwT3FH8LTgU,1278
70
+ amulet/game/translate/_functions/new_entity.py,sha256=Q_fuQedp5ecdAJqvbX39LRQDC0MN2NVgtejMyhRs6cQ,1278
71
+ amulet/game/translate/_functions/new_nbt.py,sha256=UzpIkwXlLLo293rXhuKhwXCNEX_bzDmOEvWwlU6LwUg,5957
72
+ amulet/game/translate/_functions/new_properties.py,sha256=Yz1mADp6khML-DoI8LEmk7v0G1_ACAna3GNPyPEAr-s,2045
73
+ amulet/game/translate/_functions/sequence.py,sha256=n6uNI-zTGgo4HH_bZ8R_tkggFQUUKfnEedp8B854H2M,1509
74
+ amulet/game/translate/_functions/walk_input_nbt.py,sha256=vtX8xcLV0XaotYOw7QSmLlHjKbyyX5hVqriVOZw6sfw,10483
75
+ amulet/game/translate/_functions/_code_functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ amulet/game/translate/_functions/_code_functions/_text.py,sha256=4K72Zy8rBhy2AMGMFVh7BEBJFEQA4bwo4qQ86c06B1Q,20433
77
+ amulet/game/translate/_functions/_code_functions/banner_pattern.py,sha256=QVDJK6IHGOjnPNuVrviGZeVSquuRruzuCnXRXWJ2ZrE,1734
78
+ amulet/game/translate/_functions/_code_functions/bedrock_chest_connection.py,sha256=ix9ZF1YJarRZhMmK0TAzoWlTeX1gcLrFUPjQvAdq2wQ,5061
79
+ amulet/game/translate/_functions/_code_functions/bedrock_moving_block_pos.py,sha256=Vf7lyAW7EGCdTdWNlQihObFujCLo6sfBwSCXy8sOR7I,2215
80
+ amulet/game/translate/_functions/_code_functions/bedrock_sign.py,sha256=an6vQwznwchhVMM_Ig_4ye9pNn86vLx0dNdYnxzZrtI,4214
81
+ amulet/game/translate/_functions/_code_functions/bedrock_skull_rotation.py,sha256=FWMHOGiAAJ7rCHTV1LoAYALerqoHquZ5pIBqhomPP2c,580
82
+ amulet/game/translate/_functions/_code_functions/custom_name.py,sha256=LkxrcNO5UXf9v71YNYFxXrp5EQ3mek59L81OpH2a-UU,4514
83
+ amulet/level/__init__.pyi,sha256=yBHC61Cli4BzfDjMqJBsUkp-ALIM7MgN76d5pYG_szA,528
84
+ amulet/level/_load.py,sha256=JBeWW3sFdAZQL4KLQBSHaWHjm_dBvkQ2CQ44XLqX4xM,2853
85
+ amulet/level/abc/__init__.py,sha256=yzoR32-osH2lI49iuPpfKtdXfivh0iiEb0oDdx0MBVw,312
86
+ amulet/level/abc/_chunk_handle.py,sha256=F8OS-7U9rneg2cwNKbbRsEaNix5t6Z6wLFFO25Sr2ds,11842
87
+ amulet/level/abc/_dimension.py,sha256=zeG_XNUL-XbHeZpa7m1zIGqJK0rxDfGVCqV96MUfG_Y,3223
88
+ amulet/level/abc/_player_storage.py,sha256=hbOJkULAcKfKvzyb_NRPwSyoHqwD_YqkCJ9QND9GI98,123
89
+ amulet/level/abc/_raw_level.py,sha256=cgZuQVB2Cn05OIGvydXeoF7uq4pwJd7V1wsF3BC9ssI,5690
90
+ amulet/level/abc/_registry.py,sha256=haRncbmblGq6BnAUbfs09UlpLPpQ1yryRh5uMzyIG_s,1425
91
+ amulet/level/abc/_history/__init__.py,sha256=04cSgvkm2RPJgU0p9zjd8dkNZqov6hfGmXzvnj6Ua6o,66
92
+ amulet/level/abc/_history/_cache.py,sha256=ytowkM8jbPUYYGtzElUXq--QMwMEt9vkd4OSZ_eXCzk,7170
93
+ amulet/level/abc/_history/_history_manager.py,sha256=RXcV9W727oA3KKUsASNzpJaRrVyatDgP0xCVuDpwcPA,10396
94
+ amulet/level/abc/_level/__init__.py,sha256=rP-vs0cI2gQVFbpMFwQpebHLj6qE35ytIQ32w4Rh35Y,234
95
+ amulet/level/abc/_level/_compactable_level.py,sha256=_b6iz65QdeB44j64YJGS5WHWLNL127aMvb4oK4Qnyks,226
96
+ amulet/level/abc/_level/_creatable_level.py,sha256=4FW9W7MO5t5GMAO6bFGnozuTZk7BkgJmwngxoM4sx5g,937
97
+ amulet/level/abc/_level/_disk_level.py,sha256=kinsgx1zsPsvGhSdX6UDFYjqWc0otjLb1dMARnvrQKE,422
98
+ amulet/level/abc/_level/_level.py,sha256=C3zWe8exiFb2im0E-P29vmmnjLDq2OwrWc9GEQHokwk,15508
99
+ amulet/level/abc/_level/_loadable_level.py,sha256=SRNGP1Dzxti5cCDGL670OSm8HYVceYJPbLnDOew0bTQ,1234
100
+ amulet/level/bedrock/__init__.py,sha256=uanWI8QrKMuPvygtfbGWa8HuQhxNgVe7w8B2YZrYkjs,88
101
+ amulet/level/bedrock/_chunk_handle.py,sha256=PSrIMPKwwOr0jHtl2OQVGPpI007tX02AUgolyIDxKPs,521
102
+ amulet/level/bedrock/_dimension.py,sha256=JxAnjossE5L9nhaTjbW6r-w9rLuqeW5n0rtsSkdvjJk,599
103
+ amulet/level/bedrock/_level.py,sha256=7QHw5leAIaFgbLYsoYu5bLgdB9sinqMoSZORBDXJtlg,5269
104
+ amulet/level/bedrock/_raw/__init__.py,sha256=7X1pTJf9FWkW96ORMMIq_DYHUXG0Japl2TNLY26lVJg,216
105
+ amulet/level/bedrock/_raw/_actor_counter.py,sha256=2HAXXnm2Lvdt4AjpKlCB0mcC0lgpE4fLmAHFmFmkxnk,1552
106
+ amulet/level/bedrock/_raw/_chunk.py,sha256=5zSA4fj7AOq0n8b1YY8UD9yLl7W9S4d9jQEYaLPCw_o,1808
107
+ amulet/level/bedrock/_raw/_chunk_decode.py,sha256=VngMWdvuxHzA7U6qrUOL0zrN7QBBCwHl4Fueta39_u4,24029
108
+ amulet/level/bedrock/_raw/_chunk_encode.py,sha256=2dMAJEchbR1U4_bWta95uH_mdWH9SlnxfYEHGcQqgkA,20965
109
+ amulet/level/bedrock/_raw/_constant.py,sha256=dar0Yyq9jGeNPrFAh0L4sUthPnQCgmQjnjuidN4ww-I,306
110
+ amulet/level/bedrock/_raw/_dimension.py,sha256=Dd3He02hUyo0HFvyZyUoB99jDesGRte1431sfxzVUY8,13595
111
+ amulet/level/bedrock/_raw/_level.py,sha256=SL-iMs20LA9RSem61Psf5jIa6ilaiDGMOkFxdMJL1RY,16375
112
+ amulet/level/bedrock/_raw/_level_dat.py,sha256=GGn5s_HgGb3KkyizbhD0X9lUDukNXo7FgI07wMw5Y5E,2906
113
+ amulet/level/bedrock/_raw/_typing.py,sha256=D7HPTD8GGl-BD1-L_1JxxJVBiqHhs7x2wfNm7nEUSLI,162
114
+ amulet/level/bedrock/_raw/leveldb_chunk_versions.py,sha256=WkVR4GzZrDOpLd6qV5NdVuqbT3ntlY7VOiBwwKjLkXA,3732
115
+ amulet/level/bedrock/chunk/__init__.py,sha256=ntG63s8GuJGnbutEF5MCOR8nRAMJpSxW5Nl6QKexNHQ,78
116
+ amulet/level/bedrock/chunk/_chunk.py,sha256=74-Hkv9q0iS1XAH0EJMiGaBzRfgsPx-66721cL0S_7A,3844
117
+ amulet/level/bedrock/chunk/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
+ amulet/level/bedrock/chunk/components/chunk_version.py,sha256=ldQsEkX2EfAFnnFV2p1zJCupKyog1RoNre2Oxfg9op4,340
119
+ amulet/level/bedrock/chunk/components/finalised_state.py,sha256=dev9LxeGQHsEHFEqUZNJkHjXvTxd6vlb-3ruiUXyC0g,360
120
+ amulet/level/bedrock/chunk/components/raw_chunk.py,sha256=yBUHRXubdI-RFbAgLlsOVUYWxC7ibxBjpiXwbUWXAQI,526
121
+ amulet/level/construction/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
+ amulet/level/java/__init__.pyi,sha256=GLYmQiW-aoQQkb1p39DS0A2i2mJV79U3pwfUrnZ6UM0,398
123
+ amulet/level/java/_chunk_handle.py,sha256=1SwQSKoOvRPs_Pb-aT4hfxf_BvHDvNv_ShKeD_xpmCY,491
124
+ amulet/level/java/_chunk_handle.pyi,sha256=GAHi9-e3EkIJ4XeXI7eXgx0D5ge-F5HWanlBP-NDnZg,440
125
+ amulet/level/java/_dimension.py,sha256=6o6XL7RciNUOzHnSMVTaX5h9aBJyz-mnztbLXGvANAQ,566
126
+ amulet/level/java/_dimension.pyi,sha256=wOwrkPGJUOkShw-znFl65vMP_J3NlN3xbzxpTwtMvrQ,465
127
+ amulet/level/java/_level.py,sha256=zhSwfAX72xh1m1VC0mhzk1CWe09kCSLvOyYRIcYUtHU,4938
128
+ amulet/level/java/_level.pyi,sha256=ZktRbHnb0HPq26YhS49Pz9eTQG0P0GBmJXQyigSr8Ik,3674
129
+ amulet/level/java/chunk.pyi,sha256=CqrKViRF_NrrDvFbmDiG6IHicDpBqsyHc3ATgeFnoOQ,2179
130
+ amulet/level/java/chunk_components.pyi,sha256=tzjILOcKgtLBAE3rGjFD0UB9cBblJmds8-gO8yUm2Qw,638
131
+ amulet/level/java/long_array.pyi,sha256=p9vZ0NUj12u64L-NlArNBhsMUxHi0yWQEW7gobDCc-s,1443
132
+ amulet/level/java/_raw/__init__.pyi,sha256=LEIUUioodLHmGH-dK69B4Eeif0lyj2eTlw3TE5QnIRE,506
133
+ amulet/level/java/_raw/_chunk.pyi,sha256=yisvJi5rGckcpfBnTRmYLmR3mpfWP3gizYSAyJpyFs0,501
134
+ amulet/level/java/_raw/_chunk_decode.py,sha256=iJKh-FRG8J9g6fbMkQeJMjxA33ipnuy6DdkBD7vOFAw,21763
135
+ amulet/level/java/_raw/_chunk_encode.py,sha256=Sdc-mwFYUSixypv-wcG4F4FXfJFTisgvWUqtrm0eKA4,17792
136
+ amulet/level/java/_raw/_constant.py,sha256=seRjpEmvKTo7cIPkEezYyOVNGjCXw_BnI6r8O-L5vR8,276
137
+ amulet/level/java/_raw/_constant.pyi,sha256=WXD8EBVarNg657lQZrYSw8Sk7v0qgNotksiF1Z0FkMM,497
138
+ amulet/level/java/_raw/_dimension.py,sha256=EvZejl002Gy2aDnyvIm2dBhMfWQQYyGpEBZ81tybF5Y,2757
139
+ amulet/level/java/_raw/_dimension.pyi,sha256=HkVbluLwFsQ_6ccc8GCKjJPPTCm7mRSFh5TRAcqqMJs,2355
140
+ amulet/level/java/_raw/_level.py,sha256=Us5M2toMPMiE53nhDpyfhH_icFrtAvn-zeWwvkhcKio,18289
141
+ amulet/level/java/_raw/_level.pyi,sha256=6rz7BsarrJeAy6d_sXSS-QobtS3jGWMwStgy82fj50c,6272
142
+ amulet/level/java/_raw/_typing.py,sha256=K7YxRQ66MuIBo2AHnt5Nq3iKR7CFz8kubuFJnNUJJ20,67
143
+ amulet/level/java/_raw/_typing.pyi,sha256=HI1ascbZxHGBbaJcp1F7ChJgx6vwla7X_sY6LrZXYqU,119
144
+ amulet/level/java/_raw/_data_pack/__init__.py,sha256=L-He67mqDNWp0boI1VDyIz92BfBZqSKLnBcR0bYxQUA,79
145
+ amulet/level/java/_raw/_data_pack/__init__.pyi,sha256=ot984kE5brR94sB8c3Uj2woYOpyw70lERlnWvqaP40k,302
146
+ amulet/level/java/_raw/_data_pack/data_pack.py,sha256=i26FfjrCq-Bxjuw7GuYeH8BF1-siojNtxbU_8HklhsA,6609
147
+ amulet/level/java/_raw/_data_pack/data_pack.pyi,sha256=R1xnS41nqRVGH-Mjp0INcsntfpB_Yeqb-CnZOYUTiSg,4383
148
+ amulet/level/java/_raw/_data_pack/data_pack_manager.py,sha256=2w9g4RkrVlQ0-BQThY2ZhBeIu7Qf0AyYxbcRlP_bTLw,2278
149
+ amulet/level/java/_raw/_data_pack/data_pack_manager.pyi,sha256=XXljpD1Xu7I_19sJR0p2_PntkrsnN0G0Ftbwr7hzbyg,1679
150
+ amulet/level/java/anvil/__init__.py,sha256=p8KZdEixMAMf-9QNoSIvQi2PYeGcRMmxj7yta-Uc2VU,107
151
+ amulet/level/java/anvil/__init__.pyi,sha256=MhyCIXT6WqUrvmUtKHZaBhVmB8LCzuQsTqapcyjAmCU,400
152
+ amulet/level/java/anvil/_dimension.py,sha256=Mygb7Qv69083xvXYK7cbon1M9JI6QymrNJGsgDy7C50,5781
153
+ amulet/level/java/anvil/_dimension.pyi,sha256=HrW2BIrbEpZiPlG-3xQx400V5j9yfwLs5WYbGIkbKUM,3083
154
+ amulet/level/java/anvil/_region.py,sha256=O1cim9pAQhkikH1BdUmI6dcMMLV-uzNO29_X6doyqng,16594
155
+ amulet/level/java/anvil/_region.pyi,sha256=A4l7w6oKBn2eXJ7F7JfWZxZRrV-9hIhiy53DvkfMT_s,5137
156
+ amulet/level/java/anvil/_sector_manager.py,sha256=GzydqyJGCmuJ4pK-FVMC-hzybVYWNyS2J_1FELd7rc4,8779
157
+ amulet/level/java/anvil/_sector_manager.pyi,sha256=YJnCRoW0ttIwVh4shMMnJ2AbBcygE3Nr2HL0T8UBU2s,3463
158
+ amulet/level/java/chunk_/_chunk.py,sha256=IWVFTc_T1EC34SgleD7MYEi_3sXfG8f1b4cWeG5kcfM,8663
159
+ amulet/level/java/chunk_/components/inhabited_time.py,sha256=B0uxlg3NXBRHJdhSxAHqVzN0GoG9yTZtmzwUoZEBFS8,362
160
+ amulet/level/java/chunk_/components/last_update.py,sha256=SnJ_4pQZuhuUrunqMH_7QUwIWl__p10XO57yQFBZ2QQ,359
161
+ amulet/level/java/chunk_/components/legacy_version.py,sha256=B6he9Dk0LBQNUwjHgMib4FuxMkQSAJaOsuozoVc1P5A,362
162
+ amulet/level/java/chunk_/components/light_populated.py,sha256=Ioj1Uf8O8y5qhT1_51SKvjdaDt2CuxJ3XfgAXfD5brA,369
163
+ amulet/level/java/chunk_/components/named_height_2d.py,sha256=UTR_1cTZCESp6IIOEDkmH8khxyzXna8EFGbJ7EbeDP0,1151
164
+ amulet/level/java/chunk_/components/status.py,sha256=e6RNOhGGQFqVXWMGBEMXIyLnWnXjsjfhzqMxVfbuIZI,318
165
+ amulet/level/java/chunk_/components/terrain_populated.py,sha256=ZC5_xFEUmp3JUAEtXsT2X8-IBYwUXpzVCCTsYvghyt8,371
166
+ amulet/level/java_forge/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
+ amulet/level/mcstructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
+ amulet/level/nbt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
+ amulet/level/schematic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
+ amulet/level/sponge_schematic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
+ amulet/level/temporary_level/__init__.py,sha256=e5-VyvxdoebNBZxExBpC0lit2EhFJFbpVQ4is8hirc8,35
172
+ amulet/level/temporary_level/_level.py,sha256=gmh_bLCJ-N_yTWaLiPbV8SpKOk5zWO25XqsLcIWc9Zg,417
173
+ amulet/palette/__init__.pyi,sha256=-MIVXivh_k7ogB_IagmoDewWjleH0W3_dF4AXMnTHUw,266
174
+ amulet/palette/biome_palette.pyi,sha256=0m8TpH_XLFlwyHPr8PFn71gtfVW30u9nDMORAe4nWvU,1567
175
+ amulet/palette/block_palette.pyi,sha256=tTN-uwNGems3pvQXPxBrnKMoiGIEEWXdjk1p41dCDSA,1641
176
+ amulet/selection/__init__.py,sha256=1Jz5hMJ-4nQIYHq0hsz-rFighmjIILC4hwVNsrJZ5X0,64
177
+ amulet/selection/abstract_selection.py,sha256=ExmeImF_fYXgZzTzQ1yATBvcGfZ4r1huFLW5Dx6dZWk,10014
178
+ amulet/selection/box.py,sha256=CEZ20evUQK3D7MMHNlOFPJJnGTg6ygaIX8WNPMhV1Bo,31497
179
+ amulet/selection/group.py,sha256=R11c9Wlk1tFP7xwzhIiR-2nJ8uqy38oO15GO3vNvPb8,18381
180
+ amulet/utils/__init__.pyi,sha256=064fUWbKNRNr3NhECI43AfrT81ZU9FeY639fpEORj8w,434
181
+ amulet/utils/format_utils.py,sha256=T9L-V3wogzFOTb2AiBhbMIfW83CL3W-_7fp4r2v6qQc,1184
182
+ amulet/utils/generator.py,sha256=hSbyQV941KOenzNtMDrenQdqk46KxZy-EAQb-s9PmV4,431
183
+ amulet/utils/matrix.py,sha256=ieVqesm3c05PZuvNHhqHzTUwTgs9vu6X1_PzAbIOp_Y,7842
184
+ amulet/utils/matrix.pyi,sha256=DWbMC7QpOrvgQjDIyZiVyIqkBZ1DfF2eurU662VtZ8s,4972
185
+ amulet/utils/numpy.pyi,sha256=_RX5TgClaLUF8LvhHJrArn_DnbeZMZ3IzNvYqVg9Z3Y,270
186
+ amulet/utils/numpy_helpers.py,sha256=sbWofWG6nf4R9HB4Z1AMTXxYuRg5Qlvd3U092uwQfwc,518
187
+ amulet/utils/shareable_lock.py,sha256=wnDVqCt_-6BmAdlWEZeYLdd4f9qFj6PHvScL2Ja042c,13499
188
+ amulet/utils/shareable_lock.pyi,sha256=mT5p1iRAmXJWjcYpR9FxAwO84cL2hEjcBOIFQXvdbv4,7752
189
+ amulet/utils/task_manager.py,sha256=-aMd4vA5VxWjcZDLypiNlIs3rvQ9cEJc-GkzMpX7EfQ,6959
190
+ amulet/utils/task_manager.pyi,sha256=UP7wEdqaQjE0DGYXTf3rrsgxoLgxkb4e5ux4jeCG4i4,5136
191
+ amulet/utils/typed_property.py,sha256=5j2ql1URapkGHTJ3VyQJ5a8cVUD8rDrwr7wdMXEY1b4,3534
192
+ amulet/utils/typing.py,sha256=1G9yTAHtTrFTmA_jy8enJvMMIab9t0Vm8m16CmAN8gw,303
193
+ amulet/utils/typing.pyi,sha256=KyUpm1_K2TjHDh7ZOu0wjOmZC6GYI9KfwiTJ-muTHGo,136
194
+ amulet/utils/weakref.py,sha256=CrIaaeM11tjUAepGCW_Plbm5nC_AyI2qqgYgt_Z3Lyo,2402
195
+ amulet/utils/weakref.pyi,sha256=m6SlkVl1QaLjQsv3GwgFqHUOxGob8l6peXmeVrQwpqo,1219
196
+ amulet/utils/world_utils.py,sha256=Y4O_2nOOzSBIMQBHvbdI_RjvwYyiCeNYZk2OuJdyCS8,3159
197
+ amulet/utils/world_utils.pyi,sha256=OuzoE9WUKpIgyrwPLXGfHtx_eJSBP0Gid1Qb_LVBSDo,2909
198
+ amulet/utils/call_spec/__init__.py,sha256=qne-yQmG1J0UuXKvFRjHvFYC_yNKRulin5s6_Ma6How,408
199
+ amulet/utils/call_spec/__init__.pyi,sha256=fKFEgKOWgkFd5Rw3QgK8zYqL0TZ7e5GkIDXKRFt5VYY,931
200
+ amulet/utils/call_spec/_call_spec.py,sha256=UinpJ9n2nRhRRpRQ9B6d6mlQFrlRHcwqPcMq51BLWcQ,6873
201
+ amulet/utils/call_spec/_call_spec.pyi,sha256=_VPbdZRsUfRH1L_2xs89mNzH28YNb5n4lBKaz4E65O4,6641
202
+ amulet/utils/signal/__init__.py,sha256=a9ft5MqYDR2IG2LjkWj9CtJIKffJgsZvWseu2DC_EGY,273
203
+ amulet/utils/signal/__init__.pyi,sha256=V8gGkUPKRMpiz_xWDECgFOr8bS1e4_FoWevKja_ggUI,630
204
+ amulet/utils/signal/_signal.py,sha256=Ez8vJiK2qpxs3vCl7hV2FlyskwcImwL-OW1oI-FaZCg,7380
205
+ amulet/utils/signal/_signal.pyi,sha256=w1CyD0VBa2FYGn4RXUwsIt-ofPo-k8bu-SmBTV18s7k,2492
206
+ amulet_core-2.0a5.dist-info/METADATA,sha256=i1eTSybhwnsL369FTdWNwnwQcfA-v-XklFLbRFUdIzI,4470
207
+ amulet_core-2.0a5.dist-info/WHEEL,sha256=JjfPN3tuNVktXeVx2CdYSsvuQYIjI_7f2R0S3yE0Gks,115
208
+ amulet_core-2.0a5.dist-info/entry_points.txt,sha256=53zFNThTPzI8f9ertsyU2DoUpxdWU8rjOA_Cu4YH5Vk,63
209
+ amulet_core-2.0a5.dist-info/top_level.txt,sha256=3ZqHzNDiIb9kV8TwSeeXxK_9haSrsu631Qe4ndDo0rc,7
210
+ amulet_core-2.0a5.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (75.1.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp312-cp312-macosx_10_13_universal2
5
+
@@ -0,0 +1,2 @@
1
+ [pyinstaller40]
2
+ hook-dirs = amulet.__pyinstaller:get_hook_dirs
@@ -0,0 +1 @@
1
+ amulet