PyLibMS 3.2.3__tar.gz → 3.2.5__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.
- {pylibms-3.2.3 → pylibms-3.2.5}/PKG-INFO +6 -4
- {pylibms-3.2.3 → pylibms-3.2.5}/PyLibMS.egg-info/PKG-INFO +6 -4
- {pylibms-3.2.3 → pylibms-3.2.5}/README.md +5 -3
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/section/atr1.py +6 -1
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/tag/io/param_io.py +5 -4
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/tag/io/tag_io.py +1 -1
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/tag/lms_tag.py +12 -8
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/msbp.py +1 -1
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/msbpread.py +0 -1
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/definitions/tags.py +1 -1
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/Tomodachi Life.yaml +47 -47
- {pylibms-3.2.3 → pylibms-3.2.5}/pyproject.toml +1 -1
- {pylibms-3.2.3 → pylibms-3.2.5}/LICENSE +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/MANIFEST.in +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/PyLibMS.egg-info/SOURCES.txt +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/PyLibMS.egg-info/dependency_links.txt +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/PyLibMS.egg-info/requires.txt +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/PyLibMS.egg-info/top_level.txt +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/__init__.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/common/__init__.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/common/lms_datatype.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/common/lms_exceptions.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/common/lms_fileinfo.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/common/stream/fileinfo.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/common/stream/hashtable.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/common/stream/section.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/fileio/encoding.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/fileio/io.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/__init__.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/definitions/__init__.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/definitions/field/__init__.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/definitions/field/io.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/definitions/field/lms_field.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/definitions/lms_messagetext.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/msbt.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/msbtentry.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/msbtio.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/section/__init__.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/section/tsy1.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/section/txt2.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/tag/__init__.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/message/tag/lms_tagexceptions.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/__init__.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/definitions/__init__.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/definitions/attribute.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/definitions/color.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/definitions/style.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/definitions/tag.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/section/ali2.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/section/ati2.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/section/clr1.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/section/string.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/section/syl3.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/section/tag2.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/section/tgg2.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/project/section/tgp2.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/__init__.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/config.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/definitions/__init__.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/definitions/attribute.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/definitions/value.py +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/Badge Arcade.yaml +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/Brain Age Concentration Training.yaml +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/Kirby Planet Robobot.yaml +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/Super Mario 3D Land.yaml +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/Super Mario 3D World + Bowsers Fury.yaml +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/Super Mario Odyssey.yaml +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/The Legend of Zelda Echos of Wisdom.yaml +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/The Legend of Zelda a Link Between Worlds.yaml +0 -0
- {pylibms-3.2.3 → pylibms-3.2.5}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyLibMS
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.5
|
|
4
4
|
Summary: Python library built for the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF.
|
|
5
5
|
Author: AbdyyEee
|
|
6
6
|
License: Copyright 2025 AbdyyEee
|
|
@@ -25,8 +25,8 @@ PylibMS is a library built in Python 3.10+ for the libMessageStudio (LMS) propri
|
|
|
25
25
|
* Full reading and writing of MSBT files.
|
|
26
26
|
* Full reading of MSBP files.
|
|
27
27
|
* Supports encoded/decoded attributes
|
|
28
|
-
* Supporting encoded/decoded tags 1:1 with
|
|
29
|
-
*
|
|
28
|
+
* Supporting encoded/decoded tags 1:1 with Nintendo's official tool and BB code Syntax.
|
|
29
|
+
* Additional tag manipulation.
|
|
30
30
|
|
|
31
31
|
This library is designed to support LMS revision 3.0 and above, with the associated file formats used across the following Nintendo platforms:
|
|
32
32
|
* Wii (Specific titles only)
|
|
@@ -35,6 +35,8 @@ This library is designed to support LMS revision 3.0 and above, with the associa
|
|
|
35
35
|
* Mobile (Specific titles only)
|
|
36
36
|
* Nintendo Switch
|
|
37
37
|
|
|
38
|
+
MSBF is in current in the works.
|
|
39
|
+
|
|
38
40
|
# Features and Usage
|
|
39
41
|
Simple preview of the library is below. See [the wiki](https://github.com/AbdyyEee/PylibMS/wiki) for more explanations and examples.
|
|
40
42
|
## Reading
|
|
@@ -57,7 +59,7 @@ To add or edit Preset, you may create an issue with the relevant `yaml` file and
|
|
|
57
59
|
```
|
|
58
60
|
pip install PylibMS
|
|
59
61
|
```
|
|
60
|
-
[Pip Page](https://pypi.org/project/PyLibMS/
|
|
62
|
+
[Pip Page](https://pypi.org/project/PyLibMS/)
|
|
61
63
|
|
|
62
64
|
# Build Instructions
|
|
63
65
|
Python version must be `>=3.12.`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyLibMS
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.5
|
|
4
4
|
Summary: Python library built for the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF.
|
|
5
5
|
Author: AbdyyEee
|
|
6
6
|
License: Copyright 2025 AbdyyEee
|
|
@@ -25,8 +25,8 @@ PylibMS is a library built in Python 3.10+ for the libMessageStudio (LMS) propri
|
|
|
25
25
|
* Full reading and writing of MSBT files.
|
|
26
26
|
* Full reading of MSBP files.
|
|
27
27
|
* Supports encoded/decoded attributes
|
|
28
|
-
* Supporting encoded/decoded tags 1:1 with
|
|
29
|
-
*
|
|
28
|
+
* Supporting encoded/decoded tags 1:1 with Nintendo's official tool and BB code Syntax.
|
|
29
|
+
* Additional tag manipulation.
|
|
30
30
|
|
|
31
31
|
This library is designed to support LMS revision 3.0 and above, with the associated file formats used across the following Nintendo platforms:
|
|
32
32
|
* Wii (Specific titles only)
|
|
@@ -35,6 +35,8 @@ This library is designed to support LMS revision 3.0 and above, with the associa
|
|
|
35
35
|
* Mobile (Specific titles only)
|
|
36
36
|
* Nintendo Switch
|
|
37
37
|
|
|
38
|
+
MSBF is in current in the works.
|
|
39
|
+
|
|
38
40
|
# Features and Usage
|
|
39
41
|
Simple preview of the library is below. See [the wiki](https://github.com/AbdyyEee/PylibMS/wiki) for more explanations and examples.
|
|
40
42
|
## Reading
|
|
@@ -57,7 +59,7 @@ To add or edit Preset, you may create an issue with the relevant `yaml` file and
|
|
|
57
59
|
```
|
|
58
60
|
pip install PylibMS
|
|
59
61
|
```
|
|
60
|
-
[Pip Page](https://pypi.org/project/PyLibMS/
|
|
62
|
+
[Pip Page](https://pypi.org/project/PyLibMS/)
|
|
61
63
|
|
|
62
64
|
# Build Instructions
|
|
63
65
|
Python version must be `>=3.12.`
|
|
@@ -4,8 +4,8 @@ PylibMS is a library built in Python 3.10+ for the libMessageStudio (LMS) propri
|
|
|
4
4
|
* Full reading and writing of MSBT files.
|
|
5
5
|
* Full reading of MSBP files.
|
|
6
6
|
* Supports encoded/decoded attributes
|
|
7
|
-
* Supporting encoded/decoded tags 1:1 with
|
|
8
|
-
*
|
|
7
|
+
* Supporting encoded/decoded tags 1:1 with Nintendo's official tool and BB code Syntax.
|
|
8
|
+
* Additional tag manipulation.
|
|
9
9
|
|
|
10
10
|
This library is designed to support LMS revision 3.0 and above, with the associated file formats used across the following Nintendo platforms:
|
|
11
11
|
* Wii (Specific titles only)
|
|
@@ -14,6 +14,8 @@ This library is designed to support LMS revision 3.0 and above, with the associa
|
|
|
14
14
|
* Mobile (Specific titles only)
|
|
15
15
|
* Nintendo Switch
|
|
16
16
|
|
|
17
|
+
MSBF is in current in the works.
|
|
18
|
+
|
|
17
19
|
# Features and Usage
|
|
18
20
|
Simple preview of the library is below. See [the wiki](https://github.com/AbdyyEee/PylibMS/wiki) for more explanations and examples.
|
|
19
21
|
## Reading
|
|
@@ -36,7 +38,7 @@ To add or edit Preset, you may create an issue with the relevant `yaml` file and
|
|
|
36
38
|
```
|
|
37
39
|
pip install PylibMS
|
|
38
40
|
```
|
|
39
|
-
[Pip Page](https://pypi.org/project/PyLibMS/
|
|
41
|
+
[Pip Page](https://pypi.org/project/PyLibMS/)
|
|
40
42
|
|
|
41
43
|
# Build Instructions
|
|
42
44
|
Python version must be `>=3.12.`
|
|
@@ -39,6 +39,11 @@ def read_encoded_atr1(reader: FileReader, section_size: int) -> ATR1Data:
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
def read_decoded_atr1(reader: FileReader, config: AttributeConfig) -> ATR1Data:
|
|
42
|
+
# String table as a list is not necessary for decoded attributes
|
|
43
|
+
# It is easier to save all changes from the user by when writing
|
|
44
|
+
# to recreate the table from all the string parameters in every attribute
|
|
45
|
+
string_table = None
|
|
46
|
+
|
|
42
47
|
section_start = reader.tell()
|
|
43
48
|
|
|
44
49
|
attr_count = reader.read_uint32()
|
|
@@ -63,7 +68,7 @@ def read_decoded_atr1(reader: FileReader, config: AttributeConfig) -> ATR1Data:
|
|
|
63
68
|
|
|
64
69
|
attributes.append(LMS_FieldMap(attribute))
|
|
65
70
|
|
|
66
|
-
return ATR1Data(attributes, size_per_attribute,
|
|
71
|
+
return ATR1Data(attributes, size_per_attribute, string_table)
|
|
67
72
|
|
|
68
73
|
|
|
69
74
|
def write_encoded_atr1(
|
|
@@ -13,10 +13,11 @@ TAG_PADDING_BYTE = b"\xcd"
|
|
|
13
13
|
|
|
14
14
|
def read_encoded_parameters(
|
|
15
15
|
reader: FileReader, parameter_size: int
|
|
16
|
-
) -> list[
|
|
16
|
+
) -> list[int] | None:
|
|
17
|
+
|
|
17
18
|
hex_parameters = reader.read_bytes(parameter_size).hex().upper()
|
|
18
19
|
encoded_parameters = [
|
|
19
|
-
f"{hex_parameters[i : i + 2]}" for i in range(0, len(hex_parameters), 2)
|
|
20
|
+
int(f"{hex_parameters[i : i + 2]}", 16) for i in range(0, len(hex_parameters), 2)
|
|
20
21
|
]
|
|
21
22
|
return encoded_parameters
|
|
22
23
|
|
|
@@ -42,10 +43,10 @@ def read_decoded_parameters(
|
|
|
42
43
|
return LMS_FieldMap(parameters)
|
|
43
44
|
|
|
44
45
|
|
|
45
|
-
def write_encoded_parameters(writer: FileWriter, parameters: list[
|
|
46
|
+
def write_encoded_parameters(writer: FileWriter, parameters: list[int]) -> None:
|
|
46
47
|
writer.write_uint16(len(parameters))
|
|
47
48
|
for param in parameters:
|
|
48
|
-
writer.write_bytes(
|
|
49
|
+
writer.write_bytes(int.to_bytes(param, 1))
|
|
49
50
|
|
|
50
51
|
|
|
51
52
|
def write_decoded_parameters(
|
|
@@ -92,7 +92,7 @@ def _read_decoded_tag(
|
|
|
92
92
|
return LMS_DecodedTag(definition, parameters)
|
|
93
93
|
|
|
94
94
|
|
|
95
|
-
def write_tag(writer: FileWriter, tag:
|
|
95
|
+
def write_tag(writer: FileWriter, tag: LMS_ControlTag) -> None:
|
|
96
96
|
start_indicator, close_indicator = get_tag_indicator(
|
|
97
97
|
writer.encoding, writer.is_big_endian
|
|
98
98
|
)
|
|
@@ -5,7 +5,7 @@ from lms.message.definitions.field.lms_field import LMS_FieldMap
|
|
|
5
5
|
from lms.message.tag.lms_tagexceptions import LMS_InvalidTagFormatError
|
|
6
6
|
from lms.titleconfig.definitions.tags import TagConfig, TagDefinition
|
|
7
7
|
|
|
8
|
-
TAG_PADDING_CHAR =
|
|
8
|
+
TAG_PADDING_CHAR = 0xCD
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class LMS_EncodedTag:
|
|
@@ -25,7 +25,7 @@ class LMS_EncodedTag:
|
|
|
25
25
|
self,
|
|
26
26
|
group_id: int,
|
|
27
27
|
tag_index: int,
|
|
28
|
-
parameters: list[
|
|
28
|
+
parameters: list[int] | None = None,
|
|
29
29
|
is_fallback: bool = False,
|
|
30
30
|
is_closing: bool = False,
|
|
31
31
|
):
|
|
@@ -50,13 +50,13 @@ class LMS_EncodedTag:
|
|
|
50
50
|
return self._tag_index
|
|
51
51
|
|
|
52
52
|
@property
|
|
53
|
-
def parameters(self) -> list[
|
|
54
|
-
"""The list of
|
|
53
|
+
def parameters(self) -> list[int] | None:
|
|
54
|
+
"""The list of parameters."""
|
|
55
55
|
return self._parameters
|
|
56
56
|
|
|
57
57
|
@property
|
|
58
58
|
def is_fallback(self) -> bool:
|
|
59
|
-
"""Determines if the tag is a fallback tag."""
|
|
59
|
+
"""Determines if the tag is a fallback tag. Fallback tags have a '!' prefix before the group index."""
|
|
60
60
|
return self._is_fallback
|
|
61
61
|
|
|
62
62
|
@property
|
|
@@ -73,7 +73,8 @@ class LMS_EncodedTag:
|
|
|
73
73
|
if self._parameters is None:
|
|
74
74
|
return f"[{self.group_id}:{self.tag_index}]"
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
# 02x format to convert any int to hexadecimal uppercase
|
|
77
|
+
parameters = "-".join(format(param, "02x").upper() for param in self._parameters)
|
|
77
78
|
return f"[{fallback_prefix}{self.group_id}:{self.tag_index} {parameters}]"
|
|
78
79
|
|
|
79
80
|
@classmethod
|
|
@@ -103,10 +104,13 @@ class LMS_EncodedTag:
|
|
|
103
104
|
|
|
104
105
|
if not cls.PARAMETER_FORMAT.match(param_str):
|
|
105
106
|
raise LMS_InvalidTagFormatError(
|
|
106
|
-
f"
|
|
107
|
+
f"Parameters located in the tag '{tag}'. Ensure all parameters are separated by dashes."
|
|
107
108
|
)
|
|
108
109
|
|
|
109
|
-
|
|
110
|
+
try:
|
|
111
|
+
parameters = [int(param.strip().upper()) for param in param_str.split("-")]
|
|
112
|
+
except ValueError:
|
|
113
|
+
raise LMS_InvalidTagFormatError(f"Malformed parameters in tag '{tag}'. Ensure all the parameters are integers.")
|
|
110
114
|
|
|
111
115
|
# Ensure 0xCD padding is added
|
|
112
116
|
if len(parameters) % 2 == 1:
|
|
@@ -15,7 +15,6 @@ from lms.project.section.syl3 import read_styles
|
|
|
15
15
|
from lms.project.section.tag2 import read_tag2
|
|
16
16
|
from lms.project.section.tgg2 import read_tgg2
|
|
17
17
|
from lms.project.section.tgp2 import read_tgp2
|
|
18
|
-
from PylibMS.lms.project.definitions.color import LMS_Color
|
|
19
18
|
|
|
20
19
|
__all__ = ["read_msbp", "read_msbp_path"]
|
|
21
20
|
|
|
@@ -4295,7 +4295,7 @@ attribute_definitions:
|
|
|
4295
4295
|
description: ''
|
|
4296
4296
|
definitions:
|
|
4297
4297
|
- name: FileID
|
|
4298
|
-
description: ''
|
|
4298
|
+
description: 'The ID (located in the filename) of for the texture of the item.'
|
|
4299
4299
|
datatype: int16
|
|
4300
4300
|
- name: RegionJP
|
|
4301
4301
|
description: 'Flag that determines if the item is enabled for Japenese regions of the game.'
|
|
@@ -4322,28 +4322,28 @@ attribute_definitions:
|
|
|
4322
4322
|
- Disable
|
|
4323
4323
|
- Enable
|
|
4324
4324
|
- name: Price
|
|
4325
|
-
description: ''
|
|
4325
|
+
description: 'The price of the item in the JP version.'
|
|
4326
4326
|
datatype: uint32
|
|
4327
4327
|
- name: PriceUS
|
|
4328
|
-
description: ''
|
|
4328
|
+
description: 'The price of the item in the US version.'
|
|
4329
4329
|
datatype: uint32
|
|
4330
4330
|
- name: PriceEU
|
|
4331
|
-
description: ''
|
|
4331
|
+
description: 'The price of the item in the EU version.'
|
|
4332
4332
|
datatype: uint32
|
|
4333
4333
|
- name: PriceKR
|
|
4334
|
-
description: ''
|
|
4334
|
+
description: 'The price of the item in the KR version.'
|
|
4335
4335
|
datatype: uint32
|
|
4336
4336
|
- name: Shop
|
|
4337
|
-
description: ''
|
|
4338
|
-
datatype:
|
|
4337
|
+
description: 'Determines if the item can be sold at the shop.'
|
|
4338
|
+
datatype: bool
|
|
4339
4339
|
- name: Mii
|
|
4340
4340
|
description: ''
|
|
4341
|
-
datatype:
|
|
4341
|
+
datatype: bool
|
|
4342
4342
|
- name: Food_FirstDaily
|
|
4343
4343
|
description: ''
|
|
4344
4344
|
datatype: uint8
|
|
4345
4345
|
- name: BoxSize
|
|
4346
|
-
description: ''
|
|
4346
|
+
description: 'How large the the item texture will appear when displayed.'
|
|
4347
4347
|
datatype: list
|
|
4348
4348
|
list_items:
|
|
4349
4349
|
- BoxSize_None
|
|
@@ -4351,7 +4351,7 @@ attribute_definitions:
|
|
|
4351
4351
|
- BoxSize_Small
|
|
4352
4352
|
- BoxSize_Big
|
|
4353
4353
|
- name: Effect
|
|
4354
|
-
description: ''
|
|
4354
|
+
description: 'The steam effect of the item.'
|
|
4355
4355
|
datatype: list
|
|
4356
4356
|
list_items:
|
|
4357
4357
|
- None
|
|
@@ -4359,7 +4359,7 @@ attribute_definitions:
|
|
|
4359
4359
|
- Steam01
|
|
4360
4360
|
- Steam02
|
|
4361
4361
|
- name: Food_Type_JP
|
|
4362
|
-
description: ''
|
|
4362
|
+
description: 'The food type of the item for the JP version.'
|
|
4363
4363
|
datatype: list
|
|
4364
4364
|
list_items:
|
|
4365
4365
|
- Japanese
|
|
@@ -4368,7 +4368,7 @@ attribute_definitions:
|
|
|
4368
4368
|
- Dessert
|
|
4369
4369
|
- Drink
|
|
4370
4370
|
- name: Food_Type_USEU
|
|
4371
|
-
description: ''
|
|
4371
|
+
description: 'The food type of the item for both EU and US versions.'
|
|
4372
4372
|
datatype: list
|
|
4373
4373
|
list_items:
|
|
4374
4374
|
- MainDishes
|
|
@@ -4376,7 +4376,7 @@ attribute_definitions:
|
|
|
4376
4376
|
- Refreshments
|
|
4377
4377
|
- Drinks
|
|
4378
4378
|
- name: Food_Type_KR
|
|
4379
|
-
description: ''
|
|
4379
|
+
description: 'The food type of the item for the KR version.'
|
|
4380
4380
|
datatype: list
|
|
4381
4381
|
list_items:
|
|
4382
4382
|
- Korean
|
|
@@ -4392,7 +4392,7 @@ attribute_definitions:
|
|
|
4392
4392
|
- Quantity_Mid
|
|
4393
4393
|
- Quantity_High
|
|
4394
4394
|
- name: Food_Season
|
|
4395
|
-
description: ''
|
|
4395
|
+
description: 'Determines which season the item falls into.'
|
|
4396
4396
|
datatype: list
|
|
4397
4397
|
list_items:
|
|
4398
4398
|
- Season_None
|
|
@@ -4401,94 +4401,94 @@ attribute_definitions:
|
|
|
4401
4401
|
- Season_Autumn
|
|
4402
4402
|
- Season_Winter
|
|
4403
4403
|
- name: Food_Attr_Sweet
|
|
4404
|
-
description: ''
|
|
4404
|
+
description: 'Flag that determines if the food is considered sweet.'
|
|
4405
4405
|
datatype: bool
|
|
4406
4406
|
- name: Food_Attr_Spicy
|
|
4407
|
-
description: ''
|
|
4407
|
+
description: 'Flag that determines if the food is considered spicy.'
|
|
4408
4408
|
datatype: bool
|
|
4409
4409
|
- name: Food_Attr_Salty
|
|
4410
|
-
description: ''
|
|
4410
|
+
description: 'Flag that determines if the food is considered salty.'
|
|
4411
4411
|
datatype: bool
|
|
4412
4412
|
- name: Food_Attr_Sour
|
|
4413
|
-
description: ''
|
|
4413
|
+
description: 'Flag that determines if the food is considered sour.'
|
|
4414
4414
|
datatype: bool
|
|
4415
4415
|
- name: Food_Attr_Oily
|
|
4416
|
-
description: ''
|
|
4416
|
+
description: 'Flag that determines if the food is considered oily.'
|
|
4417
4417
|
datatype: bool
|
|
4418
4418
|
- name: Food_Attr_Cool
|
|
4419
|
-
description: ''
|
|
4419
|
+
description: 'Flag that determines if the food is considered cool.'
|
|
4420
4420
|
datatype: bool
|
|
4421
4421
|
- name: Food_Attr_Hot
|
|
4422
|
-
description: ''
|
|
4422
|
+
description: 'Flag that determines if the food is considered hot.'
|
|
4423
4423
|
datatype: bool
|
|
4424
4424
|
- name: Food_Attr_Awful
|
|
4425
|
-
description: ''
|
|
4425
|
+
description: 'Flag that determines if the food is considered dog water.'
|
|
4426
4426
|
datatype: bool
|
|
4427
4427
|
- name: Food_Attr_Confectionery
|
|
4428
|
-
description: ''
|
|
4428
|
+
description: 'Flag that determines if the food is considered a confectionery.'
|
|
4429
4429
|
datatype: bool
|
|
4430
4430
|
- name: Food_Attr_Fruit
|
|
4431
|
-
description: ''
|
|
4431
|
+
description: 'Flag that determines if the food is a fruit or has fruits as a main ingredient..'
|
|
4432
4432
|
datatype: bool
|
|
4433
4433
|
- name: Food_Attr_Vegetable
|
|
4434
|
-
description: ''
|
|
4434
|
+
description: 'Flag that determines if the food is a vegetable or has vegetables as a main ingredient.'
|
|
4435
4435
|
datatype: bool
|
|
4436
4436
|
- name: Food_Attr_Rice
|
|
4437
|
-
description: ''
|
|
4437
|
+
description: 'Flag that determines if the food is rice or has rice as a main ingredient.'
|
|
4438
4438
|
datatype: bool
|
|
4439
4439
|
- name: Food_Attr_Bread
|
|
4440
|
-
description: ''
|
|
4440
|
+
description: 'Flag that determines if the food is bread or has bread as a main ingredient.'
|
|
4441
4441
|
datatype: bool
|
|
4442
4442
|
- name: Food_Attr_Meat
|
|
4443
|
-
description: ''
|
|
4443
|
+
description: 'Flag that determines if the food is meat or has meat as a main ingredient.'
|
|
4444
4444
|
datatype: bool
|
|
4445
4445
|
- name: Food_Attr_Fish
|
|
4446
|
-
description: ''
|
|
4446
|
+
description: 'Flag that determines if the food is fish or has fish as a main ingredient.'
|
|
4447
4447
|
datatype: bool
|
|
4448
4448
|
- name: Food_Attr_Egg
|
|
4449
|
-
description: ''
|
|
4449
|
+
description: 'Flag that determines if the food is egg or has egg as a main ingredient.'
|
|
4450
4450
|
datatype: bool
|
|
4451
4451
|
- name: Food_Attr_Japanese
|
|
4452
|
-
description: ''
|
|
4452
|
+
description: 'Flag that determines if the food considered Japanese.'
|
|
4453
4453
|
datatype: bool
|
|
4454
4454
|
- name: Food_Attr_Western
|
|
4455
|
-
description: ''
|
|
4455
|
+
description: 'Flag that determines if the food is considered western.'
|
|
4456
4456
|
datatype: bool
|
|
4457
4457
|
- name: Food_Attr_Chinese
|
|
4458
|
-
description: ''
|
|
4458
|
+
description: 'Flag that determines if the food is considered Chinese.'
|
|
4459
4459
|
datatype: bool
|
|
4460
4460
|
- name: Food_Attr_Italian
|
|
4461
|
-
description: ''
|
|
4461
|
+
description: 'Flag that determines if the food is considered Italian.'
|
|
4462
4462
|
datatype: bool
|
|
4463
4463
|
- name: Food_Attr_Noodle
|
|
4464
|
-
description: ''
|
|
4464
|
+
description: 'Flag that determines if the food has noodles as a main ingredient.'
|
|
4465
4465
|
datatype: bool
|
|
4466
4466
|
- name: Food_Attr_Luxury
|
|
4467
|
-
description: ''
|
|
4467
|
+
description: 'Flag that determines if the food is considered luxurious'
|
|
4468
4468
|
datatype: bool
|
|
4469
4469
|
- name: Food_Attr_American
|
|
4470
|
-
description: ''
|
|
4470
|
+
description: 'Flag that determines if the food is considered American.'
|
|
4471
4471
|
datatype: bool
|
|
4472
4472
|
- name: Food_Attr_Asian
|
|
4473
|
-
description: ''
|
|
4473
|
+
description: 'Flag that determines if the food is considered Asian.'
|
|
4474
4474
|
datatype: bool
|
|
4475
4475
|
- name: Food_Attr_British
|
|
4476
|
-
description: ''
|
|
4476
|
+
description: 'Flag that determines if the food is considered British.'
|
|
4477
4477
|
datatype: bool
|
|
4478
4478
|
- name: Food_Attr_French
|
|
4479
|
-
description: ''
|
|
4479
|
+
description: 'Flag that determines if the food is considered French.'
|
|
4480
4480
|
datatype: bool
|
|
4481
4481
|
- name: Food_Attr_German
|
|
4482
|
-
description: ''
|
|
4482
|
+
description: 'Flag that determines if the food is considered German.'
|
|
4483
4483
|
datatype: bool
|
|
4484
4484
|
- name: Food_Attr_Spanish
|
|
4485
|
-
description: ''
|
|
4485
|
+
description: 'Flag that determines if the food is considered Spanish.'
|
|
4486
4486
|
datatype: bool
|
|
4487
4487
|
- name: Food_Attr_Junk
|
|
4488
|
-
description: ''
|
|
4488
|
+
description: 'Flag that determines if the food is considered as junk food.'
|
|
4489
4489
|
datatype: bool
|
|
4490
4490
|
- name: Food_Attr_Korean
|
|
4491
|
-
description: ''
|
|
4491
|
+
description: 'Flag that determines if the food is considered Korean.'
|
|
4492
4492
|
datatype: bool
|
|
4493
4493
|
- name: Food_NTR_ID
|
|
4494
4494
|
description: ''
|
|
@@ -4574,7 +4574,7 @@ attribute_definitions:
|
|
|
4574
4574
|
- '14'
|
|
4575
4575
|
- '15'
|
|
4576
4576
|
- name: Food_Se_Type
|
|
4577
|
-
description: ''
|
|
4577
|
+
description: 'The sound effect played when the food is consumed.'
|
|
4578
4578
|
datatype: list
|
|
4579
4579
|
list_items:
|
|
4580
4580
|
- SE_MII_DRINK
|
|
@@ -4598,7 +4598,7 @@ attribute_definitions:
|
|
|
4598
4598
|
description: ''
|
|
4599
4599
|
datatype: uint8
|
|
4600
4600
|
- name: Treasure_Type
|
|
4601
|
-
description: ''
|
|
4601
|
+
description: 'The type the treasure falls into.'
|
|
4602
4602
|
datatype: list
|
|
4603
4603
|
list_items:
|
|
4604
4604
|
- TreasureToken
|
|
@@ -4636,7 +4636,7 @@ attribute_definitions:
|
|
|
4636
4636
|
description: ''
|
|
4637
4637
|
datatype: int32
|
|
4638
4638
|
- name: Food_FirstCatalog
|
|
4639
|
-
description: ''
|
|
4639
|
+
description: 'Flag that determines if the food will be displayed on the first shop event played on a new save.'
|
|
4640
4640
|
datatype: bool
|
|
4641
4641
|
- name: ForIslanderOnly
|
|
4642
4642
|
description: ''
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "PyLibMS"
|
|
7
|
-
version = "3.2.
|
|
7
|
+
version = "3.2.5"
|
|
8
8
|
requires-python = ">=3.12"
|
|
9
9
|
description = "Python library built for the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF."
|
|
10
10
|
readme = "README.md"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/Brain Age Concentration Training.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/Super Mario 3D World + Bowsers Fury.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{pylibms-3.2.3 → pylibms-3.2.5}/lms/titleconfig/presets/The Legend of Zelda Echos of Wisdom.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|