PyLibMS 4.1.6__tar.gz → 4.1.7__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-4.1.6 → pylibms-4.1.7}/PKG-INFO +3 -3
- {pylibms-4.1.6 → pylibms-4.1.7}/PyLibMS.egg-info/PKG-INFO +3 -3
- {pylibms-4.1.6 → pylibms-4.1.7}/README.md +1 -1
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/flowchart/definitions/flowchart.py +5 -2
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/flowchart/definitions/node.py +2 -1
- {pylibms-4.1.6 → pylibms-4.1.7}/pyproject.toml +12 -2
- {pylibms-4.1.6 → pylibms-4.1.7}/LICENSE +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/MANIFEST.in +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/PyLibMS.egg-info/SOURCES.txt +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/PyLibMS.egg-info/dependency_links.txt +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/PyLibMS.egg-info/requires.txt +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/PyLibMS.egg-info/top_level.txt +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/common/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/common/field/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/common/field/io.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/common/field/lms_datatype.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/common/field/lms_field.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/common/lms_constants.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/common/lms_exceptions.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/common/lms_fileinfo.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/common/stream/fileinfo.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/common/stream/hashtable.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/common/stream/section.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/fileio/encoding.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/fileio/io.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/flowchart/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/flowchart/definitions/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/flowchart/definitions/lms_nodeexceptions.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/flowchart/definitions/node_type.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/flowchart/flw3.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/flowchart/msbf.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/flowchart/msbfio.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/definitions/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/definitions/field/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/lms_messagetext.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/msbt.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/msbtentry.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/msbtio.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/section/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/section/atr1.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/section/nli1.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/section/tsy1.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/section/txt2.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/tag/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/tag/io/param_io.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/tag/io/tag_io.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/tag/lms_tag.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/message/tag/lms_tagexceptions.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/definitions/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/definitions/attribute.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/definitions/color.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/definitions/style.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/definitions/tag.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/msbp.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/msbpread.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/section/ali2.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/section/ati2.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/section/clr1.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/section/string.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/section/syl3.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/section/tag2.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/section/tgg2.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/project/section/tgp2.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/config.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/definitions/__init__.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/definitions/attribute.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/definitions/nodes.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/definitions/tags.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/definitions/value.py +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/Badge Arcade.yaml +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/Brain Age Concentration Training.yaml +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/Kirby Planet Robobot.yaml +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/Super Mario 3D Land.yaml +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/Super Mario 3D World + Bowsers Fury.yaml +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/Super Mario Odyssey.yaml +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/The Legend of Zelda Echos of Wisdom.yaml +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/The Legend of Zelda a Link Between Worlds.yaml +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/Tomodachi Life Living The Dream.yaml +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/Tomodachi Life NA-EU.yaml +0 -0
- {pylibms-4.1.6 → pylibms-4.1.7}/setup.cfg +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyLibMS
|
|
3
|
-
Version: 4.1.
|
|
3
|
+
Version: 4.1.7
|
|
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-Expression: MIT
|
|
7
7
|
Project-URL: Documentation, https://github.com/AbdyyEee/PylibMS/wiki
|
|
8
8
|
Project-URL: Repository, https://github.com/AbdyyEee/PylibMS
|
|
9
|
-
Keywords: nintendo,
|
|
9
|
+
Keywords: nintendo,msbt,message text,msbp,message project,msbf,message flowchart,flw3,modding,libmessagestudio
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.10
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.11
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -30,7 +30,7 @@ The following is supported
|
|
|
30
30
|
|-------------|------|-------|-------------------------------------------------------------------------------------------|
|
|
31
31
|
| `MSBT` | ✅ | ✅ | Support for full attribute (`ATR1`) decoding. Tag decoding 1:1 with the official Nintendo `.mstxt` file format. |
|
|
32
32
|
| `MSBF` | ✅ | ✅ | Support for custom node definitions, attaching names and descriptions to nodes. Altering parameter datatypes for flexibility between games. |
|
|
33
|
-
| `MSBP` | ✅ | ❌ |
|
|
33
|
+
| `MSBP` | ✅ | ❌ | Generating configuration files for use with `MSBT` files. |
|
|
34
34
|
|
|
35
35
|
This library is designed to support LMS revision >=3.0. These include files generated for late **Wii** titles, **Nintendo 3DS**, **Wii U**, **Mobile**, **Nintendo Switch** and **Nintendo Switch 2** games.
|
|
36
36
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyLibMS
|
|
3
|
-
Version: 4.1.
|
|
3
|
+
Version: 4.1.7
|
|
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-Expression: MIT
|
|
7
7
|
Project-URL: Documentation, https://github.com/AbdyyEee/PylibMS/wiki
|
|
8
8
|
Project-URL: Repository, https://github.com/AbdyyEee/PylibMS
|
|
9
|
-
Keywords: nintendo,
|
|
9
|
+
Keywords: nintendo,msbt,message text,msbp,message project,msbf,message flowchart,flw3,modding,libmessagestudio
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.10
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.11
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -30,7 +30,7 @@ The following is supported
|
|
|
30
30
|
|-------------|------|-------|-------------------------------------------------------------------------------------------|
|
|
31
31
|
| `MSBT` | ✅ | ✅ | Support for full attribute (`ATR1`) decoding. Tag decoding 1:1 with the official Nintendo `.mstxt` file format. |
|
|
32
32
|
| `MSBF` | ✅ | ✅ | Support for custom node definitions, attaching names and descriptions to nodes. Altering parameter datatypes for flexibility between games. |
|
|
33
|
-
| `MSBP` | ✅ | ❌ |
|
|
33
|
+
| `MSBP` | ✅ | ❌ | Generating configuration files for use with `MSBT` files. |
|
|
34
34
|
|
|
35
35
|
This library is designed to support LMS revision >=3.0. These include files generated for late **Wii** titles, **Nintendo 3DS**, **Wii U**, **Mobile**, **Nintendo Switch** and **Nintendo Switch 2** games.
|
|
36
36
|
|
|
@@ -9,7 +9,7 @@ The following is supported
|
|
|
9
9
|
|-------------|------|-------|-------------------------------------------------------------------------------------------|
|
|
10
10
|
| `MSBT` | ✅ | ✅ | Support for full attribute (`ATR1`) decoding. Tag decoding 1:1 with the official Nintendo `.mstxt` file format. |
|
|
11
11
|
| `MSBF` | ✅ | ✅ | Support for custom node definitions, attaching names and descriptions to nodes. Altering parameter datatypes for flexibility between games. |
|
|
12
|
-
| `MSBP` | ✅ | ❌ |
|
|
12
|
+
| `MSBP` | ✅ | ❌ | Generating configuration files for use with `MSBT` files. |
|
|
13
13
|
|
|
14
14
|
This library is designed to support LMS revision >=3.0. These include files generated for late **Wii** titles, **Nintendo 3DS**, **Wii U**, **Mobile**, **Nintendo Switch** and **Nintendo Switch 2** games.
|
|
15
15
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from types import MappingProxyType
|
|
2
|
-
from typing import Callable
|
|
2
|
+
from typing import Callable, Iterator
|
|
3
3
|
|
|
4
4
|
from lms.flowchart.definitions.node import LMS_EntryNode, LMS_BranchNode, LMS_BaseNode
|
|
5
5
|
|
|
@@ -16,6 +16,9 @@ class LMS_Flowchart:
|
|
|
16
16
|
for node in entry_point.get_descendents():
|
|
17
17
|
self._nodes[node.id] = node
|
|
18
18
|
|
|
19
|
+
def __iter__(self) -> Iterator[LMS_BaseNode]:
|
|
20
|
+
return iter(self._nodes.values())
|
|
21
|
+
|
|
19
22
|
def __len__(self) -> int:
|
|
20
23
|
return len(self._nodes)
|
|
21
24
|
|
|
@@ -89,7 +92,7 @@ class LMS_Flowchart:
|
|
|
89
92
|
|
|
90
93
|
del self._nodes[node_id]
|
|
91
94
|
|
|
92
|
-
def get_dangling_nodes(self):
|
|
95
|
+
def get_dangling_nodes(self) -> list[LMS_BaseNode]:
|
|
93
96
|
"""
|
|
94
97
|
Retrieves all the nodes that do not have a parent in the flowchart.
|
|
95
98
|
"""
|
|
@@ -365,6 +365,7 @@ class LMS_EventNode(LMS_BaseNode):
|
|
|
365
365
|
|
|
366
366
|
:param parameter_type: the parameter type.
|
|
367
367
|
:param parameter_value: the parameter value.
|
|
368
|
+
:param action_id: the action_id of the node.
|
|
368
369
|
|
|
369
370
|
"""
|
|
370
371
|
verify_parameter_structure(parameter_value, parameter_type)
|
|
@@ -435,7 +436,7 @@ class LMS_JumpNode(LMS_BaseNode):
|
|
|
435
436
|
self.next_flowchart: LMS_EntryNode | None = None
|
|
436
437
|
|
|
437
438
|
# TODO: Document this unknown value at 0xA in the node
|
|
438
|
-
# This value is usually -1 in TL but is a set value in other games
|
|
439
|
+
# This value is usually -1 in TL 3DS but is a set value in other games
|
|
439
440
|
self.unknown_short0a = unknown_short0a
|
|
440
441
|
|
|
441
442
|
@classmethod
|
|
@@ -7,12 +7,22 @@ include = ["lms*"]
|
|
|
7
7
|
|
|
8
8
|
[project]
|
|
9
9
|
name = "PyLibMS"
|
|
10
|
-
version = "4.1.
|
|
10
|
+
version = "4.1.7"
|
|
11
11
|
requires-python = ">=3.10"
|
|
12
12
|
description = "Python library built for the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF."
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
authors = [{ name = "AbdyyEee" }]
|
|
15
|
-
keywords = [
|
|
15
|
+
keywords = [
|
|
16
|
+
"nintendo",
|
|
17
|
+
"msbt",
|
|
18
|
+
"message text",
|
|
19
|
+
"msbp",
|
|
20
|
+
"message project",
|
|
21
|
+
"msbf",
|
|
22
|
+
"message flowchart",
|
|
23
|
+
"flw3",
|
|
24
|
+
"modding",
|
|
25
|
+
"libmessagestudio"]
|
|
16
26
|
license = "MIT"
|
|
17
27
|
license-files = ["LICENSE*"]
|
|
18
28
|
classifiers = [
|
|
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
|
|
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-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/Brain Age Concentration Training.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/Super Mario 3D World + Bowsers Fury.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/The Legend of Zelda Echos of Wisdom.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{pylibms-4.1.6 → pylibms-4.1.7}/lms/titleconfig/presets/Tomodachi Life Living The Dream.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|