Implement dependencies system
Update PatternSelector(v0.2.0) [GMSJ01] Update metadata to use drawText [GMSJ01]
This commit is contained in:
parent
8943d44f4d
commit
c8410d8b2c
5 changed files with 106 additions and 190 deletions
265
Codes.xml
265
Codes.xml
|
@ -2865,9 +2865,10 @@
|
||||||
<title lang="de-CH">Position/Winkel/Geschw. Display</title>
|
<title lang="de-CH">Position/Winkel/Geschw. Display</title>
|
||||||
<title lang="fr-FR">Affichage de position/angle/vitesse</title>
|
<title lang="fr-FR">Affichage de position/angle/vitesse</title>
|
||||||
<title lang="ja-JP">位置/角度/速度表示</title>
|
<title lang="ja-JP">位置/角度/速度表示</title>
|
||||||
<author>Noki Doki</author>
|
<author>Noki Doki, sup39(サポミク)</author>
|
||||||
<version>1.3</version>
|
<version>1.4</version>
|
||||||
<date>Oct 28, 2019</date>
|
<date>Mar 24, 2022</date>
|
||||||
|
<dependencies version="GMSJ01">drawText</dependencies>
|
||||||
<description lang="en-US">
|
<description lang="en-US">
|
||||||
Shows Mario's position, angle and speed at any given time.
|
Shows Mario's position, angle and speed at any given time.
|
||||||
|
|
||||||
|
@ -2958,57 +2959,23 @@
|
||||||
60000000 00000000
|
60000000 00000000
|
||||||
</source>
|
</source>
|
||||||
<source version="GMSJ01">
|
<source version="GMSJ01">
|
||||||
060F9B64 00000010
|
04206734 495F38CD
|
||||||
49700515 60000000
|
077FA000 000000B5
|
||||||
60000000 60000000
|
9421FFF0 7C0802A6
|
||||||
040ECE3C 4970D1C5
|
90010014 93E1000C
|
||||||
04206734 495F39E9
|
7C7F1B78 4A83B215
|
||||||
077FA000 000001E8
|
3D208041 8149A378
|
||||||
9421FFE0 7C0802A6
|
3D008180 38600010
|
||||||
90010024 93E1001C
|
3908A074 C0AA00A8
|
||||||
4A91239D 38E00200
|
38E0FFFF C08A00B0
|
||||||
38C00320 38A0FFD8
|
38C0FFFF A12A0096
|
||||||
3880000A 38610008
|
38A00014 C06A0018
|
||||||
4A8191F5 814D97F8
|
388000C8 C04A0014
|
||||||
3FE08180 3BFFA1EC
|
C02A0010 4CC63242
|
||||||
39200000 39000002
|
4BFF61E1 80010014
|
||||||
3CE08180 38E7A164
|
7FE3FB78 83E1000C
|
||||||
80CA0048 38A10008
|
7C0803A6 38210010
|
||||||
38800000 7FE3FB78
|
4A83B1B8 5820506F
|
||||||
4A81F8AD 39200001
|
|
||||||
913F01B0 80010024
|
|
||||||
7C0803A6 83E1001C
|
|
||||||
38210020 4E800020
|
|
||||||
9421FFE8 7C0802A6
|
|
||||||
9001001C 93A1000C
|
|
||||||
93C10010 93E10014
|
|
||||||
7C7F1B78 81230000
|
|
||||||
83A90064 3D208180
|
|
||||||
8129A39C 2F890000
|
|
||||||
409E002C 7FE3FB78
|
|
||||||
7FA903A6 4E800421
|
|
||||||
8001001C 7C0803A6
|
|
||||||
83A1000C 83C10010
|
|
||||||
83E10014 38210018
|
|
||||||
4E800020 3D208040
|
|
||||||
6129A378 83C90000
|
|
||||||
3C608180 3863A1EC
|
|
||||||
4A81FC35 C0BE00A8
|
|
||||||
C09E00B0 A0DE0096
|
|
||||||
C07E0018 C05E0014
|
|
||||||
C03E0010 3CA08180
|
|
||||||
38A5A164 38800080
|
|
||||||
4CC63242 4A889FB1
|
|
||||||
4BFFFF94 9421FFF0
|
|
||||||
7C0802A6 90010014
|
|
||||||
93E1000C 7C7F1B78
|
|
||||||
4A83B0F9 38E00081
|
|
||||||
7FE6FB78 38A00000
|
|
||||||
38800000 3C608180
|
|
||||||
3863A1EC 4A81ED19
|
|
||||||
80010014 7C0803A6
|
|
||||||
83E1000C 38210010
|
|
||||||
4E800020 5820506F
|
|
||||||
7320252E 30660A59
|
7320252E 30660A59
|
||||||
20506F73 20252E30
|
20506F73 20252E30
|
||||||
660A5A20 506F7320
|
660A5A20 506F7320
|
||||||
|
@ -3016,19 +2983,7 @@
|
||||||
6C652025 68750A48
|
6C652025 68750A48
|
||||||
20537064 20252E32
|
20537064 20252E32
|
||||||
660A5620 53706420
|
660A5620 53706420
|
||||||
252E3266 20202020
|
252E3266 00000000
|
||||||
20202020 20202020
|
|
||||||
20202020 20202020
|
|
||||||
20202020 20202020
|
|
||||||
20202020 20202020
|
|
||||||
20202020 20202020
|
|
||||||
20202020 20202020
|
|
||||||
20202020 20202020
|
|
||||||
20202000 00000000
|
|
||||||
C20FA0F8 00000003
|
|
||||||
38600000 3D808180
|
|
||||||
906CA39C 807F0040
|
|
||||||
60000000 00000000
|
|
||||||
</source>
|
</source>
|
||||||
<source version="GMSJ0A">
|
<source version="GMSJ0A">
|
||||||
06285FBC 00000010
|
06285FBC 00000010
|
||||||
|
@ -3183,9 +3138,10 @@
|
||||||
<title lang="de-CH">Geschwindigkeits-Display</title>
|
<title lang="de-CH">Geschwindigkeits-Display</title>
|
||||||
<title lang="fr-FR">Affichage de vitesse</title>
|
<title lang="fr-FR">Affichage de vitesse</title>
|
||||||
<title lang="ja-JP">速度表示</title>
|
<title lang="ja-JP">速度表示</title>
|
||||||
<author>Noki Doki</author>
|
<author>Noki Doki, sup39(サポミク)</author>
|
||||||
<version>1.4</version>
|
<version>1.5</version>
|
||||||
<date>Nov 28, 2021</date>
|
<date>Mar 24, 2022</date>
|
||||||
|
<dependencies version="GMSJ01">drawText</dependencies>
|
||||||
<description lang="en-US">
|
<description lang="en-US">
|
||||||
Shows Mario's speed at any given time.
|
Shows Mario's speed at any given time.
|
||||||
|
|
||||||
|
@ -3264,65 +3220,24 @@
|
||||||
60000000 00000000
|
60000000 00000000
|
||||||
</source>
|
</source>
|
||||||
<source version="GMSJ01">
|
<source version="GMSJ01">
|
||||||
060F9B64 00000010
|
04206734 495F38CD
|
||||||
49700515 60000000
|
077FA000 0000007C
|
||||||
60000000 60000000
|
9421FFF0 7C0802A6
|
||||||
040ECE3C 4970D1C5
|
90010014 93E1000C
|
||||||
04206734 495F39D9
|
7C7F1B78 4A83B215
|
||||||
077FA000 00000188
|
3D208041 8129A378
|
||||||
9421FFE0 7C0802A6
|
3D008180 38600010
|
||||||
90010024 93E1001C
|
3908A064 C04900A8
|
||||||
4A91239D 38E00200
|
38E0FFFF C02900B0
|
||||||
38C00320 38A0FFD8
|
38C0FFFF 38A00014
|
||||||
3880000A 38610008
|
388000F0 4CC63242
|
||||||
4A8191F5 814D97F8
|
4BFF61F1 80010014
|
||||||
3FE08180 3BFFA214
|
7FE3FB78 83E1000C
|
||||||
39200000 39000002
|
7C0803A6 38210010
|
||||||
3CE08180 38E7A154
|
4A83B1C8 48205370
|
||||||
80CA0048 38A10008
|
|
||||||
38800000 7FE3FB78
|
|
||||||
4A81F8AD 39200001
|
|
||||||
913F01B0 80010024
|
|
||||||
7C0803A6 83E1001C
|
|
||||||
38210020 4E800020
|
|
||||||
9421FFE8 7C0802A6
|
|
||||||
9001001C 93C10010
|
|
||||||
93E10014 7C7F1B78
|
|
||||||
81230000 83C90064
|
|
||||||
3D208180 8129A3C4
|
|
||||||
2C090000 40820028
|
|
||||||
7FE3FB78 7FC903A6
|
|
||||||
4E800421 8001001C
|
|
||||||
7C0803A6 83C10010
|
|
||||||
83E10014 38210018
|
|
||||||
4E800020 93A1000C
|
|
||||||
3D208040 6129A378
|
|
||||||
83A90000 3C608180
|
|
||||||
3863A214 4A81FC39
|
|
||||||
C05D00A8 C03D00B0
|
|
||||||
3CA08180 38A5A154
|
|
||||||
38800030 4CC63242
|
|
||||||
4A889FC5 83A1000C
|
|
||||||
4BFFFFA0 9421FFF0
|
|
||||||
7C0802A6 90010014
|
|
||||||
93E1000C 7C7F1B78
|
|
||||||
4A83B109 38E00081
|
|
||||||
7FE6FB78 38A00000
|
|
||||||
38800000 3C608180
|
|
||||||
3863A214 4A81ED29
|
|
||||||
80010014 7C0803A6
|
|
||||||
83E1000C 38210010
|
|
||||||
4E800020 48205370
|
|
||||||
6420252E 32660A56
|
6420252E 32660A56
|
||||||
20537064 20252E32
|
20537064 20252E32
|
||||||
66202020 20202020
|
66000000 00000000
|
||||||
20202020 20202020
|
|
||||||
20202020 20202020
|
|
||||||
20202000 00000000
|
|
||||||
C20FA0F8 00000003
|
|
||||||
38600000 3D808180
|
|
||||||
906CA3C4 807F0040
|
|
||||||
60000000 00000000
|
|
||||||
</source>
|
</source>
|
||||||
<source version="GMSJ0A">
|
<source version="GMSJ0A">
|
||||||
06285FBC 00000010
|
06285FBC 00000010
|
||||||
|
@ -3844,9 +3759,10 @@
|
||||||
<presets>recommended</presets>
|
<presets>recommended</presets>
|
||||||
<title lang="en-US">Pattern Selector</title>
|
<title lang="en-US">Pattern Selector</title>
|
||||||
<title lang="ja-JP">パターン選択</title>
|
<title lang="ja-JP">パターン選択</title>
|
||||||
<author>sup39[サポミク]</author>
|
<author>sup39(サポミク)</author>
|
||||||
<version>0.1.3</version>
|
<version>0.2.0</version>
|
||||||
<date>Feb 06, 2022</date>
|
<date>Mar 04, 2022</date>
|
||||||
|
<dependencies>drawText</dependencies>
|
||||||
<description lang="en-US">
|
<description lang="en-US">
|
||||||
![Preview](/img/PatternSelector/preview.jpg)
|
![Preview](/img/PatternSelector/preview.jpg)
|
||||||
|
|
||||||
|
@ -3928,44 +3844,6 @@
|
||||||
%object[]{data="/img/PatternSelector/PV1-3.svg"}
|
%object[]{data="/img/PatternSelector/PV1-3.svg"}
|
||||||
</description>
|
</description>
|
||||||
<source version="GMSJ01">
|
<source version="GMSJ01">
|
||||||
<!-- drawText -->
|
|
||||||
077F0238 00000114
|
|
||||||
9421FED8 7C0802A6
|
|
||||||
BF810118 7C7F1B78
|
|
||||||
9001012C 7C9E2378
|
|
||||||
90C100B8 7CBD2B78
|
|
||||||
90E100BC 7D1C4378
|
|
||||||
912100C0 914100C4
|
|
||||||
40860024 D82100C8
|
|
||||||
D84100D0 D86100D8
|
|
||||||
D88100E0 D8A100E8
|
|
||||||
D8C100F0 D8E100F8
|
|
||||||
D9010100 39200600
|
|
||||||
390100BC B12100A0
|
|
||||||
39210130 912100A4
|
|
||||||
392100A8 912100A8
|
|
||||||
808D97F8 38E100B8
|
|
||||||
7FA6EB78 38A00000
|
|
||||||
38610008 6FDE8000
|
|
||||||
4A826AF5 3D204330
|
|
||||||
91210108 3D40817F
|
|
||||||
93C1010C 6FFF8000
|
|
||||||
C00A0348 38610070
|
|
||||||
C9810108 91210110
|
|
||||||
3D20817F 93E10114
|
|
||||||
FC4C0028 C0690344
|
|
||||||
C9810110 93A10064
|
|
||||||
FC2C0028 93A10060
|
|
||||||
4A8A43E9 38800000
|
|
||||||
38610070 4A8BD419
|
|
||||||
38C100A0 7F85E378
|
|
||||||
388000FF 38610008
|
|
||||||
4A826951 38610008
|
|
||||||
38210128 BB81FFF0
|
|
||||||
80010004 7C0803A6
|
|
||||||
4A826AEC 00000000
|
|
||||||
59800004 00000000
|
|
||||||
|
|
||||||
0420675C 495F2A79
|
0420675C 495F2A79
|
||||||
0424F32C 495A9CED
|
0424F32C 495A9CED
|
||||||
077F9018 000003BA
|
077F9018 000003BA
|
||||||
|
@ -4114,4 +3992,55 @@
|
||||||
0402BF98 60000000
|
0402BF98 60000000
|
||||||
</source>
|
</source>
|
||||||
</code>
|
</code>
|
||||||
|
<code>
|
||||||
|
<id>drawText</id>
|
||||||
|
<category>lib</category>
|
||||||
|
<title lang="en-US">drawText</title>
|
||||||
|
<author>sup39(サポミク)</author>
|
||||||
|
<version>0.1.3</version>
|
||||||
|
<date>Mar 04, 2022</date>
|
||||||
|
<description lang="en-US">
|
||||||
|
```c
|
||||||
|
void drawText(int x, int y, int fontSize, uint32_t colorTop, uint32_t colorBot, const char *fmt, ...);
|
||||||
|
```
|
||||||
|
</description>
|
||||||
|
<source version="GMSJ01">
|
||||||
|
077F0238 00000114
|
||||||
|
9421FED8 7C0802A6
|
||||||
|
BF810118 7C7F1B78
|
||||||
|
9001012C 7C9E2378
|
||||||
|
90C100B8 7CBD2B78
|
||||||
|
90E100BC 7D1C4378
|
||||||
|
912100C0 914100C4
|
||||||
|
40860024 D82100C8
|
||||||
|
D84100D0 D86100D8
|
||||||
|
D88100E0 D8A100E8
|
||||||
|
D8C100F0 D8E100F8
|
||||||
|
D9010100 39200600
|
||||||
|
390100BC B12100A0
|
||||||
|
39210130 912100A4
|
||||||
|
392100A8 912100A8
|
||||||
|
808D97F8 38E100B8
|
||||||
|
7FA6EB78 38A00000
|
||||||
|
38610008 6FDE8000
|
||||||
|
4A826AF5 3D204330
|
||||||
|
91210108 3D40817F
|
||||||
|
93C1010C 6FFF8000
|
||||||
|
C00A0348 38610070
|
||||||
|
C9810108 91210110
|
||||||
|
3D20817F 93E10114
|
||||||
|
FC4C0028 C0690344
|
||||||
|
C9810110 93A10064
|
||||||
|
FC2C0028 93A10060
|
||||||
|
4A8A43E9 38800000
|
||||||
|
38610070 4A8BD419
|
||||||
|
38C100A0 7F85E378
|
||||||
|
388000FF 38610008
|
||||||
|
4A826951 38610008
|
||||||
|
38210128 BB81FFF0
|
||||||
|
80010004 7C0803A6
|
||||||
|
4A826AEC 00000000
|
||||||
|
59800004 00000000
|
||||||
|
</source>
|
||||||
|
</code>
|
||||||
</codes>
|
</codes>
|
||||||
|
|
20
package-lock.json
generated
20
package-lock.json
generated
|
@ -17,7 +17,6 @@
|
||||||
"@vuepress/plugin-back-to-top": "1.9.7",
|
"@vuepress/plugin-back-to-top": "1.9.7",
|
||||||
"@vuepress/plugin-medium-zoom": "1.9.7",
|
"@vuepress/plugin-medium-zoom": "1.9.7",
|
||||||
"jsdom": "19.0.0",
|
"jsdom": "19.0.0",
|
||||||
"markdown-it-attrs": "4.1.3",
|
|
||||||
"pre-commit": "1.2.2",
|
"pre-commit": "1.2.2",
|
||||||
"prettier": "2.6.0",
|
"prettier": "2.6.0",
|
||||||
"serve": "^13.0.2",
|
"serve": "^13.0.2",
|
||||||
|
@ -9530,18 +9529,6 @@
|
||||||
"markdown-it": "*"
|
"markdown-it": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/markdown-it-attrs": {
|
|
||||||
"version": "4.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-4.1.3.tgz",
|
|
||||||
"integrity": "sha512-d5yg/lzQV2KFI/4LPsZQB3uxQrf0/l2/RnMPCPm4lYLOZUSmFlpPccyojnzaHkfQpAD8wBHfnfUW0aMhpKOS2g==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"markdown-it": ">= 9.0.0 < 13.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/markdown-it-chain": {
|
"node_modules/markdown-it-chain": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz",
|
||||||
|
@ -23972,13 +23959,6 @@
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"markdown-it-attrs": {
|
|
||||||
"version": "4.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-4.1.3.tgz",
|
|
||||||
"integrity": "sha512-d5yg/lzQV2KFI/4LPsZQB3uxQrf0/l2/RnMPCPm4lYLOZUSmFlpPccyojnzaHkfQpAD8wBHfnfUW0aMhpKOS2g==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {}
|
|
||||||
},
|
|
||||||
"markdown-it-chain": {
|
"markdown-it-chain": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz",
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
"@vuepress/plugin-back-to-top": "1.9.7",
|
"@vuepress/plugin-back-to-top": "1.9.7",
|
||||||
"@vuepress/plugin-medium-zoom": "1.9.7",
|
"@vuepress/plugin-medium-zoom": "1.9.7",
|
||||||
"jsdom": "19.0.0",
|
"jsdom": "19.0.0",
|
||||||
"markdown-it-attrs": "4.1.3",
|
|
||||||
"pre-commit": "1.2.2",
|
"pre-commit": "1.2.2",
|
||||||
"prettier": "2.6.0",
|
"prettier": "2.6.0",
|
||||||
"serve": "^13.0.2",
|
"serve": "^13.0.2",
|
||||||
|
|
|
@ -47,7 +47,7 @@ const validateXML = (xmlString) => {
|
||||||
if (!codeCategory || !codeCategory.textContent)
|
if (!codeCategory || !codeCategory.textContent)
|
||||||
throw new Error(`Missing code category in ${codeTitle.textContent}`);
|
throw new Error(`Missing code category in ${codeTitle.textContent}`);
|
||||||
|
|
||||||
if (!codeCategories.map((c) => c.identifier).includes(codeCategory.textContent))
|
if (!['lib', ...codeCategories.map((c) => c.identifier)].includes(codeCategory.textContent))
|
||||||
throw new Error(`Invalid code category for ${codeTitle.textContent}`);
|
throw new Error(`Invalid code category for ${codeTitle.textContent}`);
|
||||||
|
|
||||||
const codePresets = codes[i].querySelector('presets');
|
const codePresets = codes[i].querySelector('presets');
|
||||||
|
@ -279,6 +279,7 @@ const parseXml = (xmlString, gameVersion = null) => {
|
||||||
|
|
||||||
return codes
|
return codes
|
||||||
.map((code) => ({
|
.map((code) => ({
|
||||||
|
id: code.querySelector('id')?.textContent ?? null,
|
||||||
author: readTextNode(code, 'author'),
|
author: readTextNode(code, 'author'),
|
||||||
title: localizeNode(code, 'title'),
|
title: localizeNode(code, 'title'),
|
||||||
description: localizeMarkdown(code, 'description'),
|
description: localizeMarkdown(code, 'description'),
|
||||||
|
@ -288,6 +289,9 @@ const parseXml = (xmlString, gameVersion = null) => {
|
||||||
presets: readPresetList(code, gameVersion),
|
presets: readPresetList(code, gameVersion),
|
||||||
category: readTextNode(code, 'category'),
|
category: readTextNode(code, 'category'),
|
||||||
dependsOn: code.querySelector('depends-on')?.textContent ?? null,
|
dependsOn: code.querySelector('depends-on')?.textContent ?? null,
|
||||||
|
dependencies:
|
||||||
|
code.querySelector('dependencies:not([version])')?.textContent.split(',') ??
|
||||||
|
code.querySelector(`dependencies[version=${gameVersion}]`)?.textContent.split(',') ?? [],
|
||||||
}))
|
}))
|
||||||
.filter((code) => code.source != null);
|
.filter((code) => code.source != null);
|
||||||
};
|
};
|
||||||
|
|
|
@ -105,6 +105,10 @@ export default {
|
||||||
},
|
},
|
||||||
emitChangeEvent() {
|
emitChangeEvent() {
|
||||||
const selectedCodes = this.availableCodes.filter((c) => c.selected);
|
const selectedCodes = this.availableCodes.filter((c) => c.selected);
|
||||||
|
// add dependencies
|
||||||
|
const deps = new Set(selectedCodes.flatMap(c => c.dependencies));
|
||||||
|
selectedCodes.push(...this.codes.filter(c => deps.has(c.id)));
|
||||||
|
// emit
|
||||||
this.onSelectionChanged(selectedCodes);
|
this.onSelectionChanged(selectedCodes);
|
||||||
},
|
},
|
||||||
loadPreset(identifier) {
|
loadPreset(identifier) {
|
||||||
|
|
Loading…
Reference in a new issue