-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ygo-json-loader.mjs
97 lines (84 loc) · 3.12 KB
/
ygo-json-loader.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import ltable_ocg from './data/lflist.json' with { type: 'json' };
import ltable_tcg from './data/lflist_tcg.json' with { type: 'json' };
import ltable_md from './data/lflist_md.json' with { type: 'json' };
import md_card_list from './data/CardList.json' with { type: 'json' };
import cid_json from './data/cid_table.json' with { type: 'json' };
import ae_table from './data/name_table_ae.json' with { type: 'json' };
import en_table from './data/name_table_en.json' with { type: 'json' };
import jp_table from './data/name_table_jp.json' with { type: 'json' };
import kr_table from './data/name_table_kr.json' with { type: 'json' };
import md_en_table from './data/md_name_en.json' with { type: 'json' };
import md_jp_table from './data/md_name_jp.json' with { type: 'json' };
import md_sc from './data/md_name.json' with { type: 'json' };
import lang_ae from './lang/ae.json' with { type: 'json' };
import lang_en from './lang/en.json' with { type: 'json' };
import lang_ja from './lang/ja.json' with { type: 'json' };
import lang_ko from './lang/ko.json' with { type: 'json' };
import lang_zhtw from './lang/zh-tw.json' with { type: 'json' };
function object_to_map(obj) {
const map = new Map();
for (const [key, value] of Object.entries(obj))
map.set(Number.parseInt(key), value);
return map;
}
const cid_table = object_to_map(cid_json);
const name_table_ae = object_to_map(ae_table);
const name_table_en = object_to_map(en_table);
const name_table_jp = object_to_map(jp_table);
const name_table_kr = object_to_map(kr_table);
const md_table_en = object_to_map(md_en_table);
const md_table_jp = object_to_map(md_jp_table);
const md_table_sc = object_to_map(md_sc);
for (const [cid, id] of cid_table) {
if (!name_table_en.has(cid) && !name_table_jp.has(cid)) {
console.error('cid_table: invalid cid', cid);
cid_table.delete(id);
}
}
const official_name = Object.create(null);
official_name['ae'] = 'ae_name';
official_name['en'] = 'en_name';
official_name['ja'] = 'jp_name';
official_name['ko'] = 'kr_name';
const lang = Object.create(null);
lang['ae'] = lang_ae;
lang['en'] = lang_en;
lang['ja'] = lang_ja;
lang['ko'] = lang_ko;
lang['zh-tw'] = lang_zhtw;
const collator_locale = Object.create(null);
collator_locale['ae'] = 'en-US';
collator_locale['en'] = 'en-US';
collator_locale['ja'] = 'ja-JP';
collator_locale['ko'] = 'ko-KR';
collator_locale['zh-tw'] = 'zh-Hant';
const bls_postfix = Object.create(null);
bls_postfix['ae'] = ' (Normal)';
bls_postfix['en'] = ' (Normal)';
bls_postfix['ja'] = '(通常モンスター)';
bls_postfix['ko'] = ' (일반)';
bls_postfix['zh-tw'] = '(通常怪獸)';
const game_name = Object.create(null);
game_name['en'] = 'md_name_en';
game_name['ja'] = 'md_name_jp';
const name_table = Object.create(null);
name_table['ae'] = name_table_ae;
name_table['en'] = name_table_en;
name_table['ja'] = name_table_jp;
name_table['ko'] = name_table_kr;
const md_table = Object.create(null);
md_table['en'] = md_table_en;
md_table['ja'] = md_table_jp;
export {
ltable_ocg, ltable_tcg, ltable_md,
md_card_list,
cid_table,
lang,
collator_locale,
bls_postfix,
official_name,
game_name,
name_table,
md_table,
md_table_sc,
}