amulet-core 2.0a3__cp312-cp312-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of amulet-core might be problematic. Click here for more details.

Files changed (210) hide show
  1. amulet/__init__.cp312-win_amd64.pyd +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.0a3.dist-info/METADATA +103 -0
  207. amulet_core-2.0a3.dist-info/RECORD +210 -0
  208. amulet_core-2.0a3.dist-info/WHEEL +5 -0
  209. amulet_core-2.0a3.dist-info/entry_points.txt +2 -0
  210. amulet_core-2.0a3.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.0a3
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__.cp312-win_amd64.pyd,sha256=yMw1lx1p-y6D73xXD1dF8ZCTRdnJW2tAvQ52_N_9ZKc,1013760
2
+ amulet/__init__.pyi,sha256=QdFy8-Zpq2FNS4f-OLfqddhaIL6JcYK_JsvBfLBs7EA,452
3
+ amulet/_init.py,sha256=sV601fou_LPv8YDXAO8t7gRsMHNnaLjGOYM_Vrd7DEY,939
4
+ amulet/_version.py,sha256=Py-cTPYhpi7sT1g8y-dc4pIGi7T8a-2BZbdR9HYkNfM,518
5
+ amulet/biome.cpp,sha256=aCkTqYUFOVP6qtHVKC47IBgqCTO6nFQK1f4cn0v4otQ,1289
6
+ amulet/biome.hpp,sha256=zIg03StMGotnhTo6bD6Dd3o5vPnleIXxBXRBTltZ3Bk,1474
7
+ amulet/biome.pyi,sha256=SesDptsQ_eFknLOisSw_mS77jGrJQBwMfEqGvuwevhc,2238
8
+ amulet/block.cpp,sha256=eneKVIwB_FNKHM3sCIJsf7_G_7Hx7Jv2hNK09ylI9fo,18534
9
+ amulet/block.hpp,sha256=ybl67aoM1uOjO_gbnRs5ikkW3wmJ05bALQrHYDooQlA,4450
10
+ amulet/block.pyi,sha256=fTY7OaV3ATBbFoIhMCwqm-MuRgsLOnqhl06ms-sz5y8,9638
11
+ amulet/block_entity.cpp,sha256=VQ9Ig1nW1wEt0cuS9fi85Znj58YVED0NKqKiLZ7XN2o,293
12
+ amulet/block_entity.hpp,sha256=GjvOQO726HG_pUTdKSInQePA6py2QAwOKf7fVnhJ7po,2045
13
+ amulet/block_entity.pyi,sha256=_bshuvg_-prrsYYNU6UfjLTO8JrSSyTsIHiKUDL37UM,2240
14
+ amulet/chunk.cpp,sha256=Z-Wdcb6SQqc3TEaGNToG1NovffeVSiODO8zbmf7cO6c,406
15
+ amulet/chunk.hpp,sha256=Y0crnm_LKY8IWToUeRuA0tUXeYgbMO27fXrBmkf6Sow,3075
16
+ amulet/chunk.pyi,sha256=e8Fpzht_toA9b_Tb-I0jOnyzGyXchZeAMp2T5T8c-qQ,798
17
+ amulet/chunk_components.pyi,sha256=57LeUJZZPrpBtpFxOXbkm7wesePZKk60qx-7THyis8w,3199
18
+ amulet/collections.pyi,sha256=X8RPYROuPAZMI20j8fNcOkUgskZklIX1QdZJlrcsZTk,1431
19
+ amulet/data_types.py,sha256=dE3a36mRpoHx9oB2QN6ZlHMBK-pjFRIEs5018DNk2_4,1423
20
+ amulet/entity.py,sha256=TgB19hjplmw5vNrzqozBAUvttl7OEcXN1PdOZwt-iAc,5225
21
+ amulet/errors.py,sha256=nkqTqR7weQQcR7aEAdkVZ5PVwhGw2-rG5uDwaSHhyUw,1894
22
+ amulet/item.py,sha256=r2ZlpQCuRq30pojEYMew_m7tzjdUhpnxgN31ZPWhFUw,2039
23
+ amulet/player.py,sha256=KDRNidEs-OcCWHky_HoJ4lDRvvspApmc24vOGDi0K0M,1995
24
+ amulet/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ amulet/version.cpp,sha256=6VDle6GnQ1a5vZy5iGVBt0jQbui7PLARrOiWnN_-95U,4912
26
+ amulet/version.hpp,sha256=AcvfpL41ZlQhKG-FERQmw80_LcoQH_bIceK8AvZmygE,5671
27
+ amulet/version.pyi,sha256=K05KjeI30ePJf8VH38RHK9UBmmZ1nWHsbKMSCf936s0,3255
28
+ amulet/__pyinstaller/__init__.py,sha256=vNM3T3GSrs58ywzILHdIsQP2sglKq6Jn4qwCGC3CZVQ,56
29
+ amulet/__pyinstaller/hook-amulet.py,sha256=ykvJcH98C0g_vO_9NQSfwQf69Owc3UPreShgqdjdLpE,162
30
+ amulet/chunk_/components/biome.py,sha256=Zx6Xt8rx-bT3jUzVf5dF8UWLxyuYAS2JbYiE8yaK4M8,5530
31
+ amulet/chunk_/components/block_entity.py,sha256=9dqCOlhpMbCJmKDsEjCk0NKqmGePzNtmPIYutsX00Ew,4359
32
+ amulet/chunk_/components/entity.py,sha256=oi-7kOnBqeiFF3yYIayjJV0zwE5LOsjHGdbDr37Naos,2355
33
+ amulet/chunk_/components/height_2d.py,sha256=GepClMf-I9pQVgxcokXBHnztGToifsH-SSqiF0jdAjM,581
34
+ amulet/game/__init__.py,sha256=8LR8KGi03dIPT_jtNlMDIZ_852iQ5vOBp0juJsxY7sE,274
35
+ amulet/game/_game.py,sha256=A6HksOtmmZhTZKoXn5daZqZZHb38cd58yLo9-PWIk1I,5014
36
+ amulet/game/_universal/__init__.py,sha256=HmYKtlw5l54nmrmu6mNLuGDJi2pjCphn0zMLwqjuR2k,40
37
+ amulet/game/_universal/_biome.py,sha256=lUAwaTQka-F10IODeRiDO4Vlr2EMbUfa37K6kP1BiVg,702
38
+ amulet/game/_universal/_block.py,sha256=FN8xs7XFsl3aBqgIaAHj5GSzIGKlMV844behU15LiNk,1672
39
+ amulet/game/_universal/_version.py,sha256=AclFMzppFiwoMA-y0h6We9uZUdNCSg9SqWDhxJD23Gk,1887
40
+ amulet/game/abc/__init__.py,sha256=4t50TJQqePWM0m_QoP1TC3Zg-vu6bAZqS3Q_HM9KffM,534
41
+ amulet/game/abc/_block_specification.py,sha256=r3J8T5X6AsMtAyjidme4wBoxIvEC2UwfMDpFN2tydzU,4842
42
+ amulet/game/abc/biome.py,sha256=0njNF2s6LJXlqc3znOKwCj9GtUjJhSaARCVnjqaNlG8,8120
43
+ amulet/game/abc/block.py,sha256=2Hth-sdKk4A4yZmlLWAKFQGKuoCav5cICtVrszyH0T8,13544
44
+ amulet/game/abc/game_version_container.py,sha256=TO-u5i3Uv9Dzxkf1pPXR8e34BJxtzbFWRn50-jbTDx4,731
45
+ amulet/game/abc/json_interface.py,sha256=fP9vRQf4p2kzi0a0iI2LIm_C73fgRnIdiw_9UYoGAiM,603
46
+ amulet/game/abc/version.py,sha256=yZUqS4B83uNrL962sMskbArIXQzsPxIVGnxffeoFR20,1169
47
+ amulet/game/bedrock/__init__.py,sha256=65G1XqJqR1GjIBjNx4Oj8ZYzopvBXrAzGsIEeFj133I,42
48
+ amulet/game/bedrock/_biome.py,sha256=TuBImJBZ8Hhkl1oSY_Cnj3S6n7N7rFTfS5KzyDQpa_s,1399
49
+ amulet/game/bedrock/_block.py,sha256=mrGRLSSiBpNUWVngl6BDezliisJErc44fNfg-O-F0YI,1538
50
+ amulet/game/bedrock/_version.py,sha256=P-DiDJ05y-oVL9L1x2JCGY0kI1jbmRK2naVnP7nCSjU,5569
51
+ amulet/game/java/__init__.py,sha256=d17BBZ_vb2hORx2D3cMp4mwoxo85PkgyWE8Vt2zZ0Jg,74
52
+ amulet/game/java/_biome.py,sha256=SjKbxdkhMKuSMVjHQO-Y9-Iv1e7UlnNOfDb_bJB4xTE,1396
53
+ amulet/game/java/_block.py,sha256=NtksoTpWQl1w19zqH40opMqa9n9Eb434qV5sgjMKc2Y,2140
54
+ amulet/game/java/_version.py,sha256=InwIcbkHYD-rjnbeL-aosAjWVSF5CgXi6bzBneGJM-w,6011
55
+ amulet/game/translate/__init__.py,sha256=WDEBip0EZwE1JihGETtGjtjjnEWokVvdY1ZTYGcQ3pA,369
56
+ amulet/game/translate/_translator.py,sha256=VEFYfq961OZtp_fthfj3-Hwgo4jFMrjEVgXyH8Cf_uk,14657
57
+ amulet/game/translate/_functions/__init__.py,sha256=z5FNFZA3paadaOtXEwKVIFszEZPFKOut5kXAzGLziaE,600
58
+ amulet/game/translate/_functions/_frozen.py,sha256=yJ0U8N7YpfgjTpdPuIHz0mNhQ6Bubxcp6Drk_kUJApo,1735
59
+ amulet/game/translate/_functions/_state.py,sha256=NLFiYINNGwuAxOcjGmjT6UnKTNGWRMW6zYMtdmuGqQU,1436
60
+ amulet/game/translate/_functions/_typing.py,sha256=JYrBImIoPjC4PM-X42nJbiWN4_3I5FNZ3LcTSklo7Lw,1862
61
+ amulet/game/translate/_functions/abc.py,sha256=iGp0DU-PE6JkTOW3VDZJs8h5D8eVchkac_69kftOORc,3682
62
+ amulet/game/translate/_functions/carry_nbt.py,sha256=xxz2GdTWYJWHUqHcM9XM7NCLOB6ffIKlzyjNltOq9ms,5235
63
+ amulet/game/translate/_functions/carry_properties.py,sha256=IWmSTK_2k7GKB6cva-iLYUSsx_NJlQ7dTwFroehqLC8,2773
64
+ amulet/game/translate/_functions/code.py,sha256=ZLZb8Zci-deLOQcFuROf7khfWwnUjMct921Qb8Y8qec,5044
65
+ amulet/game/translate/_functions/map_block_name.py,sha256=-AwuLpEcheVt2SbT7WxziCDG0nDG21r01WPv-61vztc,2130
66
+ amulet/game/translate/_functions/map_nbt.py,sha256=ckYDspH40Tc-drC0_vwMOFKJofUvKyWyhtmcbgduT5c,3372
67
+ amulet/game/translate/_functions/map_properties.py,sha256=7HRjlEI_fqNqFHoJeHwVRfgG1SH6SjLPb7bM7iUDanc,3242
68
+ amulet/game/translate/_functions/multiblock.py,sha256=icP-ASwgsJZNjE0UY85WsntgBbQ_u4ZDJQl49xwwWc4,3891
69
+ amulet/game/translate/_functions/new_block.py,sha256=4gYeSaYjawrfgT5sYK3-fO4gwm-JxgIdm8kqypFqpMY,1320
70
+ amulet/game/translate/_functions/new_entity.py,sha256=gm82KA9HMMB6CiRA6teH9NATOe_cXK_j44vuTDFiXro,1321
71
+ amulet/game/translate/_functions/new_nbt.py,sha256=rKIKcxDKXu-S_dG3WD6rJxI_EhRRoh8qFrHXjrtq1HE,6163
72
+ amulet/game/translate/_functions/new_properties.py,sha256=p66qQS9ik7hs7CxGz0-JizuHt2L398OnvTTd_c2AERU,2109
73
+ amulet/game/translate/_functions/sequence.py,sha256=I_urPkzboBKoHY-xAKkvHeSXO1_GsE9jO7Lvlr0tlBc,1560
74
+ amulet/game/translate/_functions/walk_input_nbt.py,sha256=G5aWVNpiiD_TWSwEtlDoInuH-LUZz23abrERPSKMMQk,10814
75
+ amulet/game/translate/_functions/_code_functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ amulet/game/translate/_functions/_code_functions/_text.py,sha256=vv-zO5gt1rn_CDAcsOlrCEhaFQOrkuYaSJyoAAJJozQ,20986
77
+ amulet/game/translate/_functions/_code_functions/banner_pattern.py,sha256=DJEWRP7g0zwC79tggzwi3mXwzCuG3k2AHs-RC1h0rfI,1801
78
+ amulet/game/translate/_functions/_code_functions/bedrock_chest_connection.py,sha256=rq8loWmvgZnoJTVN0mf84QMr4sslZWLz1Uo3Temfl04,5213
79
+ amulet/game/translate/_functions/_code_functions/bedrock_moving_block_pos.py,sha256=LuOaIARwKGNpbUAPUiBy1xZjz7omJ9Z9nP-ghkcl0WI,2303
80
+ amulet/game/translate/_functions/_code_functions/bedrock_sign.py,sha256=2jcAbkhR1Dtk69fGuvE5jAcCiqxuClgwv_nXEO2SeTo,4366
81
+ amulet/game/translate/_functions/_code_functions/bedrock_skull_rotation.py,sha256=XrxG2gL_jdo9Aeq4kMkU25ZwUq9Od7mx1wr-Y0oh_ns,596
82
+ amulet/game/translate/_functions/_code_functions/custom_name.py,sha256=G3e5T_SDsvdq0m35VFdExJXZAdzUgYDcTqbWLEdXigs,4660
83
+ amulet/level/__init__.pyi,sha256=cAuX-s7ao_0zSwO6P_W1v2tRFAzUyi9qXBEh0HCXUkw,555
84
+ amulet/level/_load.py,sha256=9xg84f_F-aEaG5V1Pjw5BrxHZ4j2QhLBgLG9sZi-D2c,2953
85
+ amulet/level/abc/__init__.py,sha256=nnSCNSaOOdmZqoUQ0klZ_IW2HmjKdwAwS9vMp1z_hNo,324
86
+ amulet/level/abc/_chunk_handle.py,sha256=j_4ro8kEiZnhEiY0XReVAOPOrleqQetThSDPbcutlrg,12177
87
+ amulet/level/abc/_dimension.py,sha256=qxCjsUCdHt1OxbQKxMifQeE75H_DToLSeftQPUO0MgA,3309
88
+ amulet/level/abc/_player_storage.py,sha256=3GByE_EOqZFZ7BKbr-oH-rcQDxj_bCNxsCLtzUAu0J4,130
89
+ amulet/level/abc/_raw_level.py,sha256=6s-SCeNDYTYqjrL1Y1RIFiHX5mzie5eXB4JZ1ZX0kYk,5877
90
+ amulet/level/abc/_registry.py,sha256=EfDAgiOtf-Am14BEliws9BAoNWhn39aqc6NUlMC7w58,1465
91
+ amulet/level/abc/_history/__init__.py,sha256=3IuxLzwVA-uWWh2yHdClm-Gk_cVVI_yY37NQ9PfEoNw,67
92
+ amulet/level/abc/_history/_cache.py,sha256=JkJ0O3pC5xvBYIqUPxeEtXjtMt7Wo8H_WkgA0L4Sd4M,7394
93
+ amulet/level/abc/_history/_history_manager.py,sha256=T2VxBiaAoFHCfZJW3nABX0Sn05mWysTR3O-eq756T74,10687
94
+ amulet/level/abc/_level/__init__.py,sha256=fZ5iFEx3nqqcQPaZPJXis64dPsKPaeZP0nRGQLe1Cpo,239
95
+ amulet/level/abc/_level/_compactable_level.py,sha256=OUe_eeajRuoYE8nugv-Huz63zYUkp0jWXZtsSj8XhsE,236
96
+ amulet/level/abc/_level/_creatable_level.py,sha256=we090COMS5Fj8o87Dv67Uu84pdHJECfb6H_pPHfVowg,966
97
+ amulet/level/abc/_level/_disk_level.py,sha256=XmlF41AIJnLXCcJ09H_3o1A8ORCpvf4h6QM7_hCsOiY,439
98
+ amulet/level/abc/_level/_level.py,sha256=FwCmNxTpcmlus9k6ubfLOw-yqYQnLnE9IZI4t9nedbU,15961
99
+ amulet/level/abc/_level/_loadable_level.py,sha256=q-gq3oUjgRBe92Fkg2ysnFKKH36ldFr1EWeSx4V3X_s,1276
100
+ amulet/level/bedrock/__init__.py,sha256=zsWs0iNE0KqRUgQUdxdQPayF4WdVATJpXvIFdgJnUOk,90
101
+ amulet/level/bedrock/_chunk_handle.py,sha256=SbW2BGbBnyMyFuS_8-h2eBmVR9Nnt9uU6xDzjsQ8V0I,540
102
+ amulet/level/bedrock/_dimension.py,sha256=1kIeGo_H4L_QguDhHo97jga6pGh8fUGmGeeAp0RyuBs,621
103
+ amulet/level/bedrock/_level.py,sha256=19xwsHXcmJFsWxeUK9ISU1y2HrN7OYIMjVUFLhcOoTM,5456
104
+ amulet/level/bedrock/_raw/__init__.py,sha256=VwmBXihKbjc50XQWjXLdvx7Z526qLg0FtuSTs4Wqiqk,221
105
+ amulet/level/bedrock/_raw/_actor_counter.py,sha256=5R0aFcPgERdyC1xdQxOKNSSDeanFW-dSXNtGEV0fGIc,1605
106
+ amulet/level/bedrock/_raw/_chunk.py,sha256=e4JqOEDpenDr62yWNFtj3DwhHzVrripqh0Tm8IMicco,1862
107
+ amulet/level/bedrock/_raw/_chunk_decode.py,sha256=H5ZubRSVdRe96Si7czumbePeyWNnYYhG3S6r4MUXQ3g,24697
108
+ amulet/level/bedrock/_raw/_chunk_encode.py,sha256=2M92KLW_YzZ-Kc4NxW2Pe4Ksh26mSGCmj6wxlY6eriw,21567
109
+ amulet/level/bedrock/_raw/_constant.py,sha256=x4dzyjlf-7fKXRqQ5qZUg8DOFWITVSI_mn84HWQ4Zc0,315
110
+ amulet/level/bedrock/_raw/_dimension.py,sha256=Nhxeth9vrjeq1WPJ-FTFoie4mNjlJAIFy8x2Uii1RKQ,13938
111
+ amulet/level/bedrock/_raw/_level.py,sha256=qQpCVHj7BnDkl5YFhjQR8WHXOni2Jo_jvWT84HQ4U3s,16838
112
+ amulet/level/bedrock/_raw/_level_dat.py,sha256=F1i4OuJG2e3rbBC9GVCvjzkdPQAwG6Xpyn0mFywLkIw,2996
113
+ amulet/level/bedrock/_raw/_typing.py,sha256=Nj1gDRB_Rogw4leUvOYtWMbJbCDQuc58Zk5YKHrbMDc,168
114
+ amulet/level/bedrock/_raw/leveldb_chunk_versions.py,sha256=N6YC4uIVCbgqs6_NryccjDGsIeX3s4E2r_pClEew4gs,3815
115
+ amulet/level/bedrock/chunk/__init__.py,sha256=F8BcUNqWt8IU2SLz0gLol7wOmX2tiZvcSdqCO5Al3wY,79
116
+ amulet/level/bedrock/chunk/_chunk.py,sha256=Kl871To0x8DxTJKjMpotuMElOH_DfsIqVHOyYk6yu5k,3970
117
+ amulet/level/bedrock/chunk/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
+ amulet/level/bedrock/chunk/components/chunk_version.py,sha256=nOxiE7iX_uxkuFU06uUDGUPbTn7llTP7Mhy5V1QAC9g,352
119
+ amulet/level/bedrock/chunk/components/finalised_state.py,sha256=M94vQPu-XhRuQ35uCqXt0KFBZ1FDQf8LmQvWytYuDd8,373
120
+ amulet/level/bedrock/chunk/components/raw_chunk.py,sha256=RFbkhPIEzhEHahbsG6MjE_hGVtoDuvd67L9bKCV4aiA,541
121
+ amulet/level/construction/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
+ amulet/level/java/__init__.pyi,sha256=CdbSE8bGk1p-RO0gAQ8BgiW6T3-7lOOjfmjX6UlV6xI,419
123
+ amulet/level/java/_chunk_handle.py,sha256=hkipQKJDQNWhsnuZmz4Ni1mB9wd3SZBALHvudHTa-H4,508
124
+ amulet/level/java/_chunk_handle.pyi,sha256=qsJZQ3lEhN8Awe6T7TlxldOKyB64y_Rx5cbf0-I6Ip4,455
125
+ amulet/level/java/_dimension.py,sha256=0qsu8onx5BKsr9K1aPGAF27YYLd3kfTXaq4gKl6zVLs,586
126
+ amulet/level/java/_dimension.pyi,sha256=J-EykJf7wNzuCfZXfGxx11Vs71wSd58eZ6JpE7j0WhI,478
127
+ amulet/level/java/_level.py,sha256=p0TFr_mp8hhRf52mqYy1F_ldJGfbSR2sjsdUlE6jTj8,5122
128
+ amulet/level/java/_level.pyi,sha256=iToa8l-cafNsC-OJsMN_0xHzI_9YhAPQWlT0EOFOpzg,3794
129
+ amulet/level/java/chunk.pyi,sha256=ZRnu4w6HKxRc39GHfBvLp51ePl9M659JrNnryetCK7w,2260
130
+ amulet/level/java/chunk_components.pyi,sha256=qUtaOidA2DuIP6diVihojH8PIm8f97GyrgOOxxo6w1o,660
131
+ amulet/level/java/long_array.pyi,sha256=nhRcLd-y1YLMx7ZQkHFStEXmMLSvi01-MAMv-4B4194,1481
132
+ amulet/level/java/_raw/__init__.pyi,sha256=3GHt24-SN_T1ya6cJh7qkUMWTyve-B3nfoPE5srN-UY,525
133
+ amulet/level/java/_raw/_chunk.pyi,sha256=u4vzySd_r0_1Xxw0FjO4XL599xj9eqOAhuEqpe2Cgm0,524
134
+ amulet/level/java/_raw/_chunk_decode.py,sha256=IAwWqJ417DbEWecutcPk8NFFyhJERClFDv79ReaEmlU,22324
135
+ amulet/level/java/_raw/_chunk_encode.py,sha256=Iokhb6a9nJkKMYcTEMwRc7GAsix-A0fGV4-wjqIGPGI,18255
136
+ amulet/level/java/_raw/_constant.py,sha256=B8tyaOhg88G_YkI9r4iExwk2SQotnsTCtdZfe1beGik,285
137
+ amulet/level/java/_raw/_constant.pyi,sha256=qQhm2L5kjrADZ33bpoaDfPV-gKczeXO630kXEPo-ttM,517
138
+ amulet/level/java/_raw/_dimension.py,sha256=JTLo0t5IVeyv2fDRDcCGi_gztNUthWKAogifFAAGqRM,2843
139
+ amulet/level/java/_raw/_dimension.pyi,sha256=p6cyTsAlYvDBg4AduY0ADqoOJA0hTwVpFf8DzRh7BfE,2427
140
+ amulet/level/java/_raw/_level.py,sha256=5mn3taAhrqzcfceu3C5wKyTRdjtn1h1dAmwjPUfEZbQ,18796
141
+ amulet/level/java/_raw/_level.pyi,sha256=aUCtH7vtma00n2h3oluSr7UqajavQcqRtt9iuCR4ceg,6510
142
+ amulet/level/java/_raw/_typing.py,sha256=a6EjiowMBrbjKobRnMa1c6Q49-hsCI9Qx7xmtlLT1-Q,70
143
+ amulet/level/java/_raw/_typing.pyi,sha256=DujEqZa5C-y1IIibIo7gf_0PANrfTgLm432RjyWQr5Y,124
144
+ amulet/level/java/_raw/_data_pack/__init__.py,sha256=vMflmn2_geeXOy6PoJjHLFlVOvBOZVXfa2KHHKNYV5k,81
145
+ amulet/level/java/_raw/_data_pack/__init__.pyi,sha256=vq6MrR6n9ygC8Wv7zZGPPqBOJKWAmkJ_r1q7ppaUhEY,310
146
+ amulet/level/java/_raw/_data_pack/data_pack.py,sha256=jlUDVMDkFxhCtUSalRjhwTR9cyDaJt4v1l2zJAnA4qE,6850
147
+ amulet/level/java/_raw/_data_pack/data_pack.pyi,sha256=HudMhf0cgRJ2knyjsrS1c2_VoDOHt8ECapKZxuoQVZU,4580
148
+ amulet/level/java/_raw/_data_pack/data_pack_manager.py,sha256=X6zy-7H4OzhjKtE53E-wNRykm415VU4t2kqcCb5DG6E,2355
149
+ amulet/level/java/_raw/_data_pack/data_pack_manager.pyi,sha256=vhOmcwa19clLj1D7Zmx9oMJdV3w9ABqPteyC4A1IeDo,1754
150
+ amulet/level/java/anvil/__init__.py,sha256=0HmpncWkwTxGNtC95DE3ixH6xOHI4svnQndNN0KZFXQ,109
151
+ amulet/level/java/anvil/__init__.pyi,sha256=BwMg3t4SEHhWIz_QN_iBtvzngn-388nXk7Yg2vL_TIs,411
152
+ amulet/level/java/anvil/_dimension.py,sha256=llQbKqI3bnEdU4JA16UszrQu_jRj3cV8Y1pLwEaWXjo,5951
153
+ amulet/level/java/anvil/_dimension.pyi,sha256=LZ5BTJIIF-Mr0NLisL1hQopF4o-N5bThqfR95r11QaU,3192
154
+ amulet/level/java/anvil/_region.py,sha256=mmJaMFpnFfkjty2gu89f9qlsSp_p55B1J-Jt8gJoVNU,17015
155
+ amulet/level/java/anvil/_region.pyi,sha256=5UaUBZB8T9xiWVAVjxKDItbgdnQxiUfaHx5Fjr15qcM,5334
156
+ amulet/level/java/anvil/_sector_manager.py,sha256=VO9qamEBm2IWFSB0iMNpG5HcG1I7ZzOTkKPqluEDOjc,9002
157
+ amulet/level/java/anvil/_sector_manager.pyi,sha256=WrnHuFeznCr0d_gEEWcJbHJStc-ZNPue2HmNVJRYv7s,3605
158
+ amulet/level/java/chunk_/_chunk.py,sha256=wt9jE1Ip3cI7iT9P9BP-SRLtO4SmKOno4eg-ztanBhY,8923
159
+ amulet/level/java/chunk_/components/inhabited_time.py,sha256=o4T7tx_n6Phaip6BPsNmrXaMXhR078aX_XFvwQon8QM,374
160
+ amulet/level/java/chunk_/components/last_update.py,sha256=bAU2Ub36q2u9NnUup6lvDelzNgo2YxmScMgWA-FLg3Y,371
161
+ amulet/level/java/chunk_/components/legacy_version.py,sha256=HObx3hkt-q4Je7W6VbZbgD4XWPlFNAv1OqMQdm8OVjE,374
162
+ amulet/level/java/chunk_/components/light_populated.py,sha256=iRFBWviJvUvxMvg7Izq-Q0i4Iiv0bJgBvUYT8-vPQDs,381
163
+ amulet/level/java/chunk_/components/named_height_2d.py,sha256=qStDs0Gjn1Wb6mdsRjcjvWddowcgAr1Sg2CzEQIX2IM,1188
164
+ amulet/level/java/chunk_/components/status.py,sha256=NrPeuqdrdSnXODOmvSlxtBzm2pPY6cTO6t2DVvaywEo,329
165
+ amulet/level/java/chunk_/components/terrain_populated.py,sha256=YYybp7auvXvd2W6cJmXusGk30dqGnq5w2p1CvAHjB18,383
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=CWBmaiN18nRi8GJfDaqjhDfMulvLuhFVA1_RM30Kxtk,36
172
+ amulet/level/temporary_level/_level.py,sha256=gSLhSLosS_HB7lLNvdoPavtlBSu12BEKMnShExveUS8,433
173
+ amulet/palette/__init__.pyi,sha256=6uZ7aJ2ROJ9OdqfddfBRweoe_nEKGHCME7ub70kOIRU,274
174
+ amulet/palette/biome_palette.pyi,sha256=eJx72wOdgxvo3c_N_GqLyIVIAf1kNCRsQctLU7FxWrs,1612
175
+ amulet/palette/block_palette.pyi,sha256=wbZxOsXHBt9vxH2RmEHlGQiCdhM_1XHCLBr0JJxYYek,1686
176
+ amulet/selection/__init__.py,sha256=QSLwdHQQoy6jB_iqG3Zf7Xq4iens8L7qnOv8okDKY3M,66
177
+ amulet/selection/abstract_selection.py,sha256=yvEiPaH5JcDdUA0VxtbghjYsDzU29XWHATZwEZSOBwI,10356
178
+ amulet/selection/box.py,sha256=dwtnb0nuuJAeTrfd6VwI2UgaLJvbk_GiuCDp9z9QBdU,32349
179
+ amulet/selection/group.py,sha256=hcgE2e43lXJ9NkeS8-Gmh356B-aOgo8eJGEeYJLyMvM,18862
180
+ amulet/utils/__init__.pyi,sha256=bLctS2afmNfOhgIHIiunwqsLmmnUqgDTxHW9_IgUE0Q,462
181
+ amulet/utils/format_utils.py,sha256=Y70colA8tULftJ577wnUu3TG4xiYFadZehi_PLIbva0,1225
182
+ amulet/utils/generator.py,sha256=ANi13ZjRraAlcTQUzEBDAQiRXED5E3WAaBMj3h7nY3M,449
183
+ amulet/utils/matrix.py,sha256=dEXy8xC2DNonwlzqPp76tGCQC04gRdaI6GDN-HwiecE,8085
184
+ amulet/utils/matrix.pyi,sha256=vOkXB-htgen-q0eTrKWcdsUqoz_RpWaeJy4ZTSzBcZY,5149
185
+ amulet/utils/numpy.pyi,sha256=13fnNDQotruAV8wn7Hgn9e3JdOVWevxTF7VsxNLzc0A,281
186
+ amulet/utils/numpy_helpers.py,sha256=w1kNAC8sJa8JBxSLhA4Z871aZfYoMCEXY-DHYqOxwCg,537
187
+ amulet/utils/shareable_lock.py,sha256=2jSshZj0qbnLgKWV7qu8MS1XV_ERT2iBPqCr3SmXVOg,13834
188
+ amulet/utils/shareable_lock.pyi,sha256=3da8mmGYSVlJC8YlAcsh4Fd_CUJlt42gJS7SEgmzKMw,7942
189
+ amulet/utils/task_manager.py,sha256=TIlZJOKateGHDObWxO-ZRU5CpJeoP_7OjVE27jJszb0,7194
190
+ amulet/utils/task_manager.pyi,sha256=yaP3QmHFhY20yyHh9j88JR8oS0xTo5rsg6xu-468HQs,5304
191
+ amulet/utils/typed_property.py,sha256=rzXa5bcOaD29WTYqR_ToKuuFv2rfedbUXZnmbX4bX4I,3645
192
+ amulet/utils/typing.py,sha256=LfnTAIkhLGua8IYL-IP3KKr5u_PtRtROOK_J2zNF4hk,307
193
+ amulet/utils/typing.pyi,sha256=q1d-9O3-JftLtbFx_ffwZBTNzEGUrDhbcrSkHD70iCQ,142
194
+ amulet/utils/weakref.py,sha256=JXhRxS9DiQY9F91PeSRjLB67qXgFDNltWcdB5V4mR_E,2472
195
+ amulet/utils/weakref.pyi,sha256=-KUeVqWyA98JdxQPRpqqjwHueOTQ7j2lP4ZLmEJj3U0,1269
196
+ amulet/utils/world_utils.py,sha256=vC1dmPRQiQl0yzaCjlwrbcUybnW6etYJZwkpIMgeJuo,3261
197
+ amulet/utils/world_utils.pyi,sha256=wABurAzrYhkDcwgg1BtF6uL4X4frarsgcgP_N4UjdE0,3018
198
+ amulet/utils/call_spec/__init__.py,sha256=ZnDIa945TTt6rW_wS_v8iHFj_tL8yh3a179fnWnPETQ,432
199
+ amulet/utils/call_spec/__init__.pyi,sha256=CGq--RRwkpKWhFS6XEhR04q2gJDI72f5oPd8OjW1hT0,984
200
+ amulet/utils/call_spec/_call_spec.py,sha256=4IYCMAVsmek478eyazTdZCTsdVTXhVEH5OyqLNwmTiI,7135
201
+ amulet/utils/call_spec/_call_spec.pyi,sha256=cBVXsKIlmFoNneK3GZblpgs8mFQSH4uB1SdeLosG5Ps,6913
202
+ amulet/utils/signal/__init__.py,sha256=MJUOgeaU354_0GX-VZBv6Gb42UqKg-uFPgYd75ilS5c,283
203
+ amulet/utils/signal/__init__.pyi,sha256=5lCacwNHb-6oKsVAjtLz2wZmCt6OjMidCrAg6MraY_4,655
204
+ amulet/utils/signal/_signal.py,sha256=gYV83tJ5qfwjfD9XcxuQVP4wj-9ryR4Qk49K8f3Hbco,7608
205
+ amulet/utils/signal/_signal.pyi,sha256=xbk-xCeptpXUfmA2q0TeMQWT4xsBNR74aiYc5JrVjxQ,2576
206
+ amulet_core-2.0a3.dist-info/METADATA,sha256=i5rfr8MgGUbZeSgDTYNk_gCcG3gd91yVzLEzwO0NIqE,4573
207
+ amulet_core-2.0a3.dist-info/WHEEL,sha256=3vidnDuZ-QSnHIxLhNbI1gIM-KgyEcMHuZuv1mWPd_Q,101
208
+ amulet_core-2.0a3.dist-info/entry_points.txt,sha256=53zFNThTPzI8f9ertsyU2DoUpxdWU8rjOA_Cu4YH5Vk,63
209
+ amulet_core-2.0a3.dist-info/top_level.txt,sha256=3ZqHzNDiIb9kV8TwSeeXxK_9haSrsu631Qe4ndDo0rc,7
210
+ amulet_core-2.0a3.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-win_amd64
5
+
@@ -0,0 +1,2 @@
1
+ [pyinstaller40]
2
+ hook-dirs = amulet.__pyinstaller:get_hook_dirs
@@ -0,0 +1 @@
1
+ amulet