-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathmodinfo.lua
7997 lines (7906 loc) · 250 KB
/
modinfo.lua
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
--[[
Copyright (C) 2020, 2021 penguin0616
This file is part of Insight.
The source code of this program is shared under the RECEX
SHARED SOURCE LICENSE (version 1.0).
The source code is shared for referrence and academic purposes
with the hope that people can read and learn from it. This is not
Free and Open Source software, and code is not redistributable
without permission of the author. Read the RECEX SHARED
SOURCE LICENSE for details
The source codes does not come with any warranty including
the implied warranty of merchandise.
You should have received a copy of the RECEX SHARED SOURCE
LICENSE in the form of a LICENSE file in the root of the source
directory. If not, please refer to
<https://raw.githubusercontent.com/Recex/Licenses/master/SharedSourceLicense/LICENSE.txt>
]]
---------------------------------------
-- Mod information for the game to process.
-- @script modinfo
-- @author penguin0616
-- DS 2081254154
-- DST 2189004162
-- loadstring is present
local IsDST = folder_name == "workshop-2189004162" -- https://forums.kleientertainment.com/forums/topic/150829-game-update-571392/ manifest: 506706240727140821
local IsDS = folder_name == "workshop-2081254154"
if IsDST == false and IsDS == false then
-- Probable reasons:
-- #1: Pre2023 update branch in DS.
-- #2: Using one of those mods that nukes the modinfo.
-- #3: Using an unofficial/stolen version of Insight.
if folder_name == nil then
-- Hopefully #1 or #2.
IsDST = false
IsDS = true
else
-- Unofficial/stolen version of Insight.
end
end
name = "Insight"
-- Major.Minor.Patch
version = "4.8.4" -- dst is 4.6.2, ds is 4.5.0
author = "penguin0616"
forumthread = ""
icon_atlas = "modicon.xml"
icon = "modicon.tex"
id = "Insight"
priority = -10000 --[[ rezecib's Geometric Placement has -10, chinese++, has -9999. assuming the rest of the chinese translation mods use a similar enough priority.
ideally, we come last in the mod loading order to make life easier.
that way, I can try to be compatible with other mods without them having to worry about compatibility with Insight. after all, probably better if I handle it.
--]]
-- DS
api_version = 6
dont_starve_compatible = true
reign_of_giants_compatible = true -- DLC0001
shipwrecked_compatible = true -- DLC0002
hamlet_compatible = true -- DLC0003
-- DST
api_version_dst = 10
dst_compatible = true
server_only_mod = true
client_only_mod = false
all_clients_require_mod = true
forge_compatible = true
server_filter_tags = {"insight_" .. version}
forcemanifest = false -- TODO: REMOVE THIS
-- Clear some environment stuff out.
local a = ChooseTranslationTable
ChooseTranslationTable = nil
local ChooseTranslationTable, a = a, nil
local STRINGS
-- Documentation
--[==[
]==]
--[==[
Tags:
"dynamic_option_strings":
If a configuration has this tag, that means the options table for the configuration in STRINGS is a function.
The function gets called in AddConfigurationOptionStrings, which ***isn't*** called on complex configuration here in modinfo.
It's called by clientmodmain after the options and default functions are run.
In other words, STRINGS for complex configuration functions with this tag don't get calculated.
]==]
--====================================================================================================================================================
--====================================================================================================================================================
--====================================================================================================================================================
--[[ Some Functions ]]
--====================================================================================================================================================
--====================================================================================================================================================
--====================================================================================================================================================
local HasTag
-- from stringutil.lua
local function subfmt(s, tab)
return (s:gsub('(%b{})', function(w) return tab[w:sub(2, -2)] or w end))
end
local string_format = name.format
local string_match = name.match
local string_gmatch = name.gmatch
local string_sub = name.sub
local function ipairs(tbl)
return function(tbl, index)
index = index + 1
local next = tbl[index]
if next then
return index, next
end
end, tbl, 0
end
local function IsString(arg)
return arg.sub == string_sub
end
local function tostring(arg)
if arg == true then
return "true"
elseif arg == false then
return "false"
elseif arg == nil then
return "nil"
end
return arg .. ""
end
local function T(tbl, key)
if locale and ChooseTranslationTable then
return ChooseTranslationTable(tbl, key)
else
return tbl["en"] or tbl[1]
end
--return GetTranslation
end
function AddConfigurationOptionStrings(entry)
local name = entry.name
--entry.label = T(entry.name .. ".LABEL")
entry.label = T(STRINGS[name].label)
--entry.hover = T(entry.name .. ".HOVER")
entry.hover = T(STRINGS[name].hover)
if HasTag(entry, "dynamic_option_strings") then
STRINGS[name].options = STRINGS[name].options(entry)
end
for j = 1, #entry.options do
local option = entry.options[j]
--option.description = T(string_format("%s.OPTIONS.%s.DESCRIPTION", entry.name, tostring(option.data)))
local dsc = STRINGS[name].options[option.data].description
option.description = dsc and T(dsc) or nil
--option.hover = T(string_format("%s.OPTIONS.%s.HOVER", entry.name, tostring(option.data)))
local hvr = STRINGS[name].options[option.data].hover
option.hover = hvr and T(hvr) or nil
end
end
local function AddSectionTitle(title) -- 100% stole this idea from ReForged. Didn't know this was possible!
if IsDST then
return {
name = title:upper(), -- avoid conflicts
label = title,
options = {{description = "", data = 0}},
default = 0,
tags = {"ignore"},
}
else
return {
-- the _ is processed by the insightconfigurationscreen for DS sectionheaders.
_ = {
name = title:upper(),
label = title,
options = {{description = "", data = 0}},
default = 0,
},
tags = {"ignore"}
}
end
end
local function GetDefaultSetting(entry)
-- the "error messages" are to prevent hypothetical crashing on startup if I make grevious errors
if not entry then
local msg = "MAJOR ERROR. ENTRY IS NIL. PLEASE REPORT TO MOD CREATOR."
return { description = msg, data = false, hover = msg}
end
for i = 1, #entry.options do
if entry.options[i].data == entry.default then
return entry.options[i]
end
end
local msg = "[DEFAULT???]: \n" .. entry.name .. "|" .. tostring(entry.default)
return { description = msg, data = false, hover = msg}
end
local function GetConfigurationOptionByName(name)
for i = 1, #configuration_options do
local v = configuration_options[i]
if v.name == name then
return v
end
end
end
function HasTag(entry, tag) -- Localized above
if entry.tags then
for i = 1, #entry.tags do
if entry.tags[i] == tag then
return true
end
end
end
end
-- Only appends to end of table
local function table_append(tbl, val)
tbl[#tbl+1] = val
end
local function table_remove(tbl, index) -- it worked first try wow nice job me.
tbl[index] = nil
for i = index, #tbl do
tbl[i] = tbl[i + 1]
end
end
--==========================================================================================
--[[ Config Primers ]]
--==========================================================================================
local HOVERER_TRUNCATION_AMOUNTS = { "None", 1, 2, 3, 4, 5 }
--[[ Font Sizes ]]
local FONT_SIZE = {
INSIGHT = {
HOVERER = {20, 30},
INVENTORYBAR = {20, 25},
FOLLOWTEXT = {20, 28}
}
}
-- Just plucked some ones in common in DS/T
local FONTS = {"UIFONT", "TITLEFONT", "DIALOGFONT", "NUMBERFONT", "BODYTEXTFONT", "TALKINGFONT"}
--- Generates options from a list.
---@param for_config boolean If false, will generate results suitable for the translation table. true generates the option for the configuration option.
---@param list table The list of stuff to be generating from.
---@param hoverfn function|nil The hover table.
local function GenerateOptionsFromList(for_config, list, hoverfn)
local t = {}
for i = 1, #list do
local opt = list[i]
if for_config == false then
local hover = hoverfn and hoverfn(i, opt)
t[opt] = {
description = {
tostring(opt) -- English
},
hover = hover
}
elseif for_config == true then
t[#t+1] = {
data = opt
}
else
-- Just to get us to trigger an error.
unknown_arg_detected()
end
end
return t
end
local function GenerateFontSizeTexts(which)
local t = {}
for i = which[1], which[2] do
t[i] = { description={tostring(i)} } -- This doesn't need localization.
end
return t
end
local function GenerateFontSizeOptions(which)
local t = {}
for i = which[1], which[2] do
t[#t+1] = { data=i }
end
return t
end
--[[ Indicator stuff ]]
local BOSSES = {"minotaur", "bearger", "deerclops", "dragonfly"}
local BOSSES_DST = {"antlion", "beequeen", "crabking", "klaus", "malbatross", "moose", "stalker_atrium", "toadstool", "eyeofterror", "twinofterror1", "twinofterror2", "daywalker"}
local BOSSES_DS = {"ancient_herald", "ancient_hulk", "pugalisk", "twister", "twister_seal", "tigershark", "kraken", "antqueen"}
local BOSSES_ALL = {}
do
-- Go through every miniboss table and add the val to ALL
for i,v in ipairs(BOSSES) do
table_append(BOSSES_ALL, v)
end
for i,v in ipairs(BOSSES_DST) do
table_append(BOSSES_ALL, v)
end
for i,v in ipairs(BOSSES_DS) do
table_append(BOSSES_ALL, v)
end
-- Setup Minibosses to have only the vanilla prefabs for the current game.
local t = IsDST and BOSSES_DST or BOSSES_DS
for i,v in ipairs(t) do
table_append(BOSSES, v)
end
end
local MINIBOSSES = {"leif", "warg", "spat", "spiderqueen"} -- Common across both; used further ("leif_sparse" has handling elsewhere)
local MINIBOSSES_DST = {"claywarg", "gingerbreadwarg", "lordfruitfly", "stalker"}
local MINIBOSSES_DS = {"ancient_robot_ribs", "ancient_robot_claw", "ancient_robot_leg", "ancient_robot_head", "treeguard"}
local MINIBOSSES_ALL = {}
do
-- Go through every miniboss table and add the val to ALL
for i,v in ipairs(MINIBOSSES) do
table_append(MINIBOSSES_ALL, v)
end
for i,v in ipairs(MINIBOSSES_DST) do
table_append(MINIBOSSES_ALL, v)
end
for i,v in ipairs(MINIBOSSES_DS) do
table_append(MINIBOSSES_ALL, v)
end
-- Setup Minibosses to have only the vanilla prefabs for the current game.
local t = IsDST and MINIBOSSES_DST or MINIBOSSES_DS
for i,v in ipairs(t) do
table_append(MINIBOSSES, v)
end
end
local NOTABLE_INDICATORS = {"chester_eyebone", "hutch_fishbowl"}
local NOTABLE_INDICATORS_DST = {"atrium_key", "klaus_sack", "gingerbreadpig"}
local NOTABLE_INDICATORS_DS = {} -- TODO: The carrier things in SW and Hamlet
local NOTABLE_INDICATORS_ALL = {}
do
for i,v in ipairs(NOTABLE_INDICATORS) do
table_append(NOTABLE_INDICATORS_ALL, v)
end
for i,v in ipairs(NOTABLE_INDICATORS_DST) do
table_append(NOTABLE_INDICATORS_ALL, v)
end
for i,v in ipairs(NOTABLE_INDICATORS_DS) do
table_append(NOTABLE_INDICATORS_ALL, v)
end
-- Yep
if IsDST then
for i,v in ipairs(NOTABLE_INDICATORS_DST) do
table_append(NOTABLE_INDICATORS, v)
end
end
end
-- Unique Prefabs
local UNIQUE_INFO_PREFABS = {
"alterguardianhat", "batbat", "eyeplant", "ancient_statue", "armordreadstone", "voidcloth_scythe", "lunarthrall_plant",
"shadow_battleaxe",
}
--====================================================================================================================================================
--====================================================================================================================================================
--====================================================================================================================================================
--[[ Strings ]]
--====================================================================================================================================================
--====================================================================================================================================================
--====================================================================================================================================================
local COMMON_STRINGS = {
NO = {
DESCRIPTION = {
"No",
["zh"] = "否",
["br"] = "Não",
["es"] = "Desactivado",
["ru"] = "Нет",
["ko"] = "아니요",
},
},
YES = {
DESCRIPTION = {
"Yes",
["zh"] = "是",
["br"] = "Sim",
["es"] = "Activado",
["ru"] = "Да",
["ko"] = "예",
},
}
}
--[[
example = {
label = {
"Example",
["zh"] = nil,
["br"] = nil,
["es"] = nil,
["ru"] = nil,
["ko"] = nil,
},
hover = {
"Description",
["zh"] = nil,
["br"] = nil,
["es"] = nil,
["ru"] = nil,
["ko"] = nil,
},
options = {
[false] = {
description = COMMON_STRINGS.NO.DESCRIPTION,
hover = {
"Hover",
["zh"] = nil,
["br"] = nil,
["es"] = nil,
["ru"] = nil,
["ko"] = nil,
},
},
[true] = {
description = COMMON_STRINGS.YES.DESCRIPTION,
hover = {
"Hover",
["zh"] = nil,
["br"] = nil,
["es"] = nil,
["ru"] = nil,
["ko"] = nil,
},
},
},
},
]]
STRINGS = {
--==========================================================================================
--[[ Misc Strings ]]
--==========================================================================================
ds_not_enabled = {
"Mod must be enabled for functioning modinfo",
["zh"] = nil,
["br"] = "O mod deve estar ativado para o funcionamento do modinfo",
["es"] = "El mod debe estar habilitado para que funcione el modinfo.",
["ru"] = "Для работы modinfo мод должен быть включен",
["ko"] = "modinfo가 작동하려면 모드를 활성화해야합니다.",
},
update_info = {
"See Steam changelog for more info.",
["zh"] = nil,
["br"] = "Uma *tonelada* de coisas. Você deve **realmente** verificar as Notas de Alterações do Steam.",
["es"] = nil,
["ru"] = "Добавлена информация об обновлениях From Beyond и других вещах. Смотрите список изменений Steam для получения дополнительной информации.",
["ko"] = "자세한 내용은 Steam 변경 로그를 참조하세요.",
},
update_info_ds = {
"A *ton* of stuff. You should **really** check the Steam Change Notes.",
["zh"] = nil,
["br"] = "Uma *tonelada* de coisas. Você deve **realmente** verificar as Notas de Alterações do Steam.",
["es"] = nil,
["ru"] = "*Куча* всего. Вам **действительно** стоит ознакомиться с Steam Change Notes.",
["ko"] = "*엄청* 많은 것들이 있습니다. **반드시** Steam 변경 사항을 확인하세요.",
},
crashreporter_info = {
"Insight has a crash reporter you can enable in the client & server config",
["zh"] = "添加了崩溃报告器, 你可以在客户端或服务器设置界面来开启它。",
["br"] = "O Insight tem um relatório de falhas que você pode ativar na configuração do cliente e do servidor",
["es"] = "Insight tiene un informe de fallos que puedes activar en la configuración del cliente y del servidor.",
["ru"] = "В Insight есть функция отслеживания сбоев, которую вы можете включить в конфигурации клиента и сервера",
["ko"] = "Insight에는 충돌 보고 기능이 있습니다. 클라이언트 & 서버 모드 설정에서 활성화할 수 있습니다",
},
mod_explanation = {
"Basically Show Me but with more features.",
["zh"] = "以 Show Me 为基础,但功能更全面",
["br"] = "Basicamente o Show Me, mas com mais recursos.",
["es"] = "Básicamente Show Me pero con más funciones.",
["ru"] = "В основном Show Me, но с большим количеством функций.",
["ko"] = "기본적으로 Show Me 모드의 기능을 제공하지만 더 많은 기능이 포함되어 있습니다.",
},
config_paths = {
"Server Configuration: Main Menu -> Host Game -> Mods -> Server Mods -> Insight -> Configure Mod\n-------------------------\nClient Configuration: Main Menu -> Mods -> Server Mods -> Insight -> Configure Mod",
["zh"] = "服务器设置方法: 主界面 -> 创建世界-> 模组 -> 服务器模组 -> Insight -> 模组设置\n-------------------------\n客户端设置方法: 主界面 -> 模组 -> 服务器模组 -> Insight -> 模组设置",
["br"] = "Configuração do Servidor: Main Menu -> Host Game -> Mods -> Server Mods -> Insight -> Configure Mod\n-------------------------\nConfiguração do Client: Main Menu -> Mods -> Server Mods -> Insight -> Configure Mod",
["es"] = "Configuración de servidor: Menú principal -> Crear partida -> Mods -> Mods servidor -> Insight -> Configurar mod\n-------------------------\nConfiguración del cliente: Menú principal -> Mods -> Mods servidor -> Insight -> Configurar mod",
["ru"] = "Конфигурация сервера: Главное меню -> Создать игру -> Моды -> Моды сервера -> Insight -> Настроить мод\n-------------------------\nКонфигурация клиента: Главное меню -> Моды -> Моды сервера -> Insight -> Настроить мод",
["ko"] = "서버 모드 설정: 메인 메뉴 -> 게임 열기 -> 모드 -> 서버 모드 -> Insight -> 모드 설정\n-------------------------\n클라이언트 모드 설정: 메인 메뉴 -> 모드 -> 서버 모드 -> Insight -> 모드 설정",
},
config_disclaimer = {
"Make sure to check out the configuration options.",
["zh"] = "请确认你设置的各个选项, 尤其是设置好显示的和设置不再显示的信息,需要格外注意。",
["br"] = "Certifique-se de verificar as opções de configuração.",
["es"] = "Asegúrese de comprobar las opciones de configuración.",
["ru"] = "Убедитесь, что проверили параметры конфигурации.",
["ko"] = "설정 옵션을 확인하세요.",
},
version = {
"Version",
["zh"] = "版本",
["br"] = "Versão",
["es"] = "Versión",
["ru"] = "Версия",
["ko"] = "버전",
},
latest_update = {
"Latest update",
["zh"] = "最新更新",
["br"] = "Última atualização",
["es"] = "Última actualización",
["ru"] = "Последнее обновление",
["ko"] = "최근 업데이트",
},
undefined = {
"Undefined",
["zh"] = "默认",
["br"] = "Indefinido",
["es"] = "Indefinido",
["ru"] = "Неопределено",
["ko"] = "미정",
},
undefined_description = {
"Defaults to: ",
["zh"] = "默认为:",
["br"] = "Padrões para: ",
["es"] = "Por defecto es: ",
["ru"] = "По умолчанию: ",
["ko"] = "기본값",
},
--==========================================================================================
--[[ Section Titles ]]
--==========================================================================================
sectiontitle_formatting = {
"Formatting",
["zh"] = "格式",
["br"] = "Formações",
["es"] = "Formato",
["ru"] = "Форматирование",
["ko"] = "형식",
},
sectiontitle_indicators = {
"Indicators",
["zh"] = "指示器",
["br"] = "Indicadores",
["es"] = "Indicadores",
["ru"] = "Форматирование",
["ko"] = "표시",
},
sectiontitle_foodrelated = {
"Food Related",
["zh"] = "食物相关",
["br"] = "Relacionado a comidas",
["es"] = "Alimentos",
["ru"] = "Связанные с едой",
["ko"] = "식품 관련",
},
sectiontitle_informationcontrol = {
"Information Control",
["zh"] = "信息控制",
["br"] = "Informações de controle",
["es"] = "Información",
["ru"] = "Управление информацией",
["ko"] = "정보 관리",
},
sectiontitle_miscellaneous = {
"Miscellaneous",
["zh"] = "杂项",
["br"] = "Diversos",
["es"] = "Varios",
["ru"] = "Разное",
["ko"] = "기타 옵션",
},
sectiontitle_debugging = {
"Debugging",
["zh"] = "调试",
["br"] = "Debugging",
["es"] = "Depuración",
["ru"] = "Отладка",
["ko"] = "디버깅",
},
sectiontitle_complexconfiguration = {
"Special Configuration",
["zh"] = "特殊配置",
["br"] = "Configuração Especial",
["es"] = nil,
["ru"] = "Особая конфигурация",
["ko"] = "특수 설정",
},
--==========================================================================================
--[[ Complex Configuration Options ]]
--==========================================================================================
boss_indicator_prefabs = {
label = {
"Boss Indicator Prefabs",
["zh"] = "Boss 指示器预设",
["br"] = "Prefabs de Indicadores de Chefões",
["es"] = nil,
["ru"] = "Префабы индикаторов боссов",
["ko"] = "Boss Indicator Prefabs",
},
hover = {
"Enabled boss indicator prefabs.",
["zh"] = "启用 Boss 指示器的生物。",
["br"] = "Prefabs de Indicadores de Chefões ativados",
["es"] = nil,
["ru"] = "Включены префабы индикаторов боссов.",
["ko"] = "Boss Indicator Prefabs 활성화",
},
options = function(config)
local t = {}
for i,v in ipairs(config.options) do
t[v.data] = {
description = {"<prefab=" .. v.data .. ">"},
hover = nil,
}
end
return t
end,
},
miniboss_indicator_prefabs = {
label = {
"Miniboss Indicator Prefabs",
["zh"] = "小 Boss 指示器预设",
["br"] = "Prefabs de Indicadores de Mini-Chefões",
["es"] = nil,
["ru"] = "Префабы индикаторов мини-боссов",
["ko"] = "Miniboss Indicator Prefabs",
},
hover = {
"Enabled miniboss indicator prefabs.",
["zh"] = "启用小 Boss 指示器的生物。",
["br"] = "Prefabs de Indicadores de Mini-Chefões ativados",
["es"] = nil,
["ru"] = "Включены префабы индикаторов мини-боссов.",
["ko"] = "Miniboss Indicator Prefabs 활성화",
},
options = function(config)
local t = {}
for i,v in ipairs(config.options) do
t[v.data] = {
description = {"<prefab=" .. v.data .. ">"},
hover = nil,
}
end
return t
end,
},
notable_indicator_prefabs = {
label = {
"Notable Indicator Prefabs",
["zh"] = "其他物品指示器预设",
["br"] = "Prefabs de Indicadores Notáveis",
["es"] = nil,
["ru"] = "Префабы примечательных индикаторов",
["ko"] = "기타 항목 Indicator Prefabs",
},
hover = {
"Enabled notable indicator prefabs.",
["zh"] = "启用指示器的其他物品。",
["br"] = "Prefabs de Indicadores Notáveis ativados",
["es"] = nil,
["ru"] = "Включены префабы примечательных индикаторов.",
["ko"] = "기타 항목 Indicator Prefabs 활성화",
},
options = function(config)
local t = {}
for i,v in ipairs(config.options) do
t[v.data] = {
description = {"<prefab=" .. v.data .. ">"},
hover = nil,
}
end
return t
end,
},
unique_info_prefabs = {
label = {
"Unique Information",
["zh"] = "特定信息",
["br"] = "Informações Únicas",
["es"] = "Información única",
["ru"] = "Уникальная информация",
["ko"] = "고유 정보",
},
hover = {
"Whether to display unique information for certain entities.",
["zh"] = "是否显示特定实体的特定信息。",
["br"] = "Se vai exibir informações exclusivas para determinadas entidades.",
["es"] = "Configura si se muestra información única de ciertas entidades.",
["ru"] = "Отображать ли уникальную информацию для определенных сущностей.",
["ko"] = "특정 개체에 대한 고유 정보를 표시할지 여부",
},
options = function(config)
local t = {}
for i,v in ipairs(config.options) do
t[v.data] = {
description = {"<prefab=" .. v.data .. ">"},
hover = nil,
}
end
return t
end,
},
--==========================================================================================
--[[ Configuration Options ]]
--==========================================================================================
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--[[ Formatting ]]
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
language = {
label = {
"Language",
["zh"] = "语言",
["br"] = "Idioma",
["es"] = "Idioma",
["ru"] = "Язык",
["ko"] = "언어",
},
hover = {
"The language you want information to display in.",
["zh"] = "你希望以哪种语言显示信息",
["br"] = "O idioma em que você deseja que as informações sejam exibidas.",
["es"] = "El idioma en el que se muestra la información.",
["ru"] = "Язык, на котором вы хотите отображать информацию.",
["ko"] = "원하는 언어로 정보를 표시합니다.",
},
options = {
["automatic"] = {
description = {
"Automatic",
["zh"] = "自动",
["br"] = "Automático",
["es"] = "Automático",
["ru"] = "Автоматически",
["ko"] = "자동",
},
hover = {
"Uses your current language settings.",
["zh"] = "使用游戏当前的语言设定",
["br"] = "Usa suas configurações de idioma atuais.",
["es"] = "Utiliza tu configuración de idioma actual.",
["ru"] = "Использует текущие настройки языка.",
["ko"] = "현재 언어 설정을 사용합니다.",
},
},
["en"] = {
description = {
"English",
["zh"] = "英语",
["br"] = "English",
["es"] = "Inglés",
["ru"] = "Английский",
["ko"] = "영어",
},
hover = {
"English",
["zh"] = "英语",
["br"] = "Inglês",
["es"] = "Inglés",
["ru"] = "Английский",
["ko"] = "영어",
},
},
["zh"] = {
description = {
"Chinese",
["zh"] = "中文",
["br"] = "Chinese",
["es"] = "Chino",
["ru"] = "Китайский",
["ko"] = "중국어",
},
hover = {
"Chinese",
["zh"] = "中文",
["br"] = "Chinês",
["es"] = "Chino",
["ru"] = "Китайский",
["ko"] = "중국어",
},
},
["br"] = {
description = {
"Portuguese",
["zh"] = "Portuguese",
["br"] = "Português",
["es"] = "Portugués",
["ru"] = "Португальский",
["ko"] = "포르투갈어",
},
hover = {
"Portuguese",
["zh"] = "Portuguese",
["br"] = "Português",
["es"] = "Portugués",
["ru"] = "Португальский",
["ko"] = "포르투갈어",
},
},
["es"] = {
description = {
"Spanish",
["zh"] = "Spanish",
["br"] = "Spanish",
["es"] = "Español",
["ru"] = "Испанский",
["ko"] = "스페인어",
},
hover = {
"Spanish",
["zh"] = "Spanish",
["br"] = "Spanish",
["es"] = "Español",
["ru"] = "Испанский",
["ko"] = "스페인어",
},
},
["ru"] = {
description = {
"Русский",
["zh"] = "Russian",
["br"] = "Russian",
["es"] = "Ruso",
["ru"] = "Русский",
["ko"] = "러시아어",
},
hover = {
"Русский",
["zh"] = "Russian",
["br"] = "Russian",
["es"] = "Ruso",
["ru"] = "Русский",
["ko"] = "러시아어",
},
},
["ko"] = {
description = {
"Korean",
["zh"] = "韩国语",
["br"] = "Korean",
["es"] = "Coreano",
["ru"] = "Корейский язык",
["ko"] = "한국어",
},
hover = {
"Korean",
["zh"] = "韩国语",
["br"] = "Korean",
["es"] = "Coreano",
["ru"] = "Корейский язык",
["ko"] = "한국어",
},
},
},
},
info_style = {
label = {
"Display style",
["zh"] = "信息类型",
["br"] = "Estilo de exibição",
["es"] = "Estilo de información",
["ru"] = "Стиль отображения",
["ko"] = "표시 스타일",
},
hover = {
"Whether you want to use icons or text.",
["zh"] = "选择图标模式还是文字模式。",
["br"] = "Se você deseja usar ícones ou texto.",
["es"] = "Configura el uso de texto o iconos en la información.",
["ru"] = "Хотите использовать иконки или текст.",
["ko"] = "아이콘을 사용할지 텍스트를 사용할지 선택하세요.",
},
options = {
["text"] = {
description = {
"Text",
["zh"] = "文字",
["br"] = "Texto",
["es"] = "Texto",
["ru"] = "Текст",
["ko"] = "텍스트",
},
hover = {
"Text will be used",
["zh"] = "显示纯文字",
["br"] = "Texto será usado",
["es"] = "Solo se utiliza texto.",
["ru"] = "Будет использоваться текст.",
["ko"] = "텍스트가 사용됩니다.",
},
},
["icon"] = {
description = {
"Icon",
["zh"] = "图标",
["br"] = "Ícone",
["es"] = "Iconos",
["ru"] = "Иконка",
["ko"] = "아이콘",
},
hover = {
"Icons will be used over text where possible.",
["zh"] = "显示图标替代文字",
["br"] = "Os ícones são usados sobre o texto sempre que possível.",
["es"] = "Se usan iconos cuando sea posible.",
["ru"] = "Иконки будут использоваться вместо текста, где это возможно.",
["ko"] = "아이콘이 텍스트를 대체할 수 있는 경우 아이콘이 사용됩니다.",
},
},
},
},
text_coloring = {
label = {
"Text Coloring",
["zh"] = "文字着色",
["br"] = "Colorir Texto",
["es"] = "Coloreado de textos",
["ru"] = "Окраска текста",
["ko"] = "텍스트 색상",
},
hover = {
"Whether text coloring is enabled.",
["zh"] = "是否启用文字着色。",
["br"] = "Se a coloração do texto está habilitada.",
["es"] = "Configura el uso de coloreado de texto.",
["ru"] = "Включение окраски текста.",
["ko"] = "텍스트 색상을 사용할지 선택합니다.",
},
options = {
[false] = {
description = {
"Disabled",
["zh"] = "禁用",
["br"] = "Desabilitado",
["es"] = "Desactivado",
["ru"] = "Отключено",
["ko"] = "사용 안함",
},
hover = {
"Text coloring will not be used. :(",
["zh"] = "禁用文字着色 :(",
["br"] = "A coloração do texto não será usada.",
["es"] = "No se utiliza el coloreado de texto. :(",
["ru"] = "Окраска текста не будет использоваться. :(",
["ko"] = "텍스트 색상이 사용되지 않습니다. :(",
},
},
[true] = {
description = {
"Enabled",
["zh"] = "启用",
["br"] = "Habilitado",
["es"] = "Activado",
["ru"] = "Включено",
["ko"] = "사용",
},
hover = {
"Text coloring will be used.",
["zh"] = "启用文字着色",
["br"] = "A coloração do texto será usada.",
["es"] = "Se utiliza el coloreado de texto.",
["ru"] = "Окраска текста будет использоваться.",
["ko"] = "텍스트 색상이 사용됩니다.",