Skip to content

Commit

Permalink
Replace switch blocks
Browse files Browse the repository at this point in the history
  • Loading branch information
omvjro committed May 28, 2024
1 parent deeef60 commit 9cad114
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 12 deletions.
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,16 @@

目前游戏中多出空格的原因:

- 有文字输出的 widget 内换行(`\n`)和缩进(`\t`
- 有文字输出的 widget 内换行(`\n`)和缩进(`\t` 或空格
- 无文字输出的 widget
- 正文中 `switch``if` 代码块内换行和缩进

故结合使用以下方法删去:

- 删去有文字输出的 widget 内的换行和缩进
- 在无文字输出的 widget 内使用 `<<silently>>`
- 根据实际显示删除正文内换行和缩进

### TODO

- `preload.js` 根据数据自动生成
2 changes: 1 addition & 1 deletion mods/eliminateSpaces/boot.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Eliminate Spaces",
"version": "0.0.1",
"version": "0.1.1",
"styleFileList": [],
"scriptFileList": [],
"tweeFileList": [],
Expand Down
50 changes: 40 additions & 10 deletions mods/eliminateSpaces/preload.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,30 @@
(() => {
const modUtils = window.modUtils;
const start = Date.now();

function deleteTandN(passages) {
for (let passage of passages) {
let replaced = modUtils.getPassageData(passage).content.replaceAll(/\/\*(.|\n)*?\*\//g, '').replaceAll(/<!--(\n|.)*?-->/g, '').replaceAll('\n', '').replaceAll('\t', '');
modUtils.updatePassageData(passage, replaced, ['widget'], 0);
function del(passages, ...patterns) {
for (let passage of passages) {
let passageContent = modUtils.getPassageData(passage).content;
for (let pattern of patterns) {
passageContent = passageContent.replaceAll(pattern, '');
}
modUtils.updatePassageData(passage, passageContent, modUtils.getPassageData(passage).tags, 0);
}
}

function delTN(passages) {
del(passages, '\t', '\n');
}

function delTNS(passages) {
del(passages, '\t', '\n', ' ');
}

function addSilently(passages) {
for (let [passage, widgets] of Object.entries(passages)) {
let passageContent = modUtils.getPassageData(passage).content;
let re = new RegExp(`(?<=<<widget "(${widgets.join('|')})">>)(.|\n)+?(?=<<\/widget>>)`, 'g');
let patterns = passageContent.match(re);
for (let pattern of patterns) {
passageContent = passageContent.replace(pattern, `<<silently>>${pattern}<</silently>>`);
}
passageContent = passageContent.replace(re, '<<silently>>$&<</silently>>');
modUtils.updatePassageData(passage, passageContent, ['widget'], 0);
}
}
Expand All @@ -35,7 +44,28 @@
]
});

// let allWidgetPassages = modUtils.getAllPassageData().filter(passage => passage.tags.includes('widget')).map(passage => passage.name);
deleteTandN(['Widgets Text']);
const start2 = Date.now();
console.log(`EliminateSpaces: ${start2 - start}`);

delTN([
'Bog Lost',
'Danube House Work',
'English Play Late Role',
'English Play Role Select',
'Estate Cards Kiss',
'Hospital Penis Enlargement',
'Hospital Penis Reduction',
'Moor Quicksand',
'Street Bully Flash 2',
'Whitney Rescue 2',
'Whitney Rescue Break',
'Widgets Text',
]);

delTNS([
'Domus Tech Support Accept',
]);

console.log(`EliminateSpaces: ${Date.now() - start2}`);

})();

0 comments on commit 9cad114

Please sign in to comment.