bc-deeplib 1.0.2 → 1.0.4
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.
- package/.types/declarations.d.ts +15 -0
- package/.types/elements.d.ts +38 -0
- package/.types/type-override.d.ts +3 -0
- package/README.md +1 -1
- package/dist/main.js +1894 -0
- package/dist/main.js.map +1 -0
- package/dist/public/styles/DeepLib.css +206 -0
- package/dist/public/styles/Gratitude.css +23 -0
- package/package.json +28 -12
- package/public/styles/DeepLib.css +206 -0
- package/public/styles/Gratitude.css +23 -0
- package/src/DeepLib.ts +33 -0
- package/dist/Base/BaseModule.d.ts +0 -13
- package/dist/Base/BaseModule.js +0 -41
- package/dist/Base/BaseSetting.d.ts +0 -29
- package/dist/Base/BaseSetting.js +0 -152
- package/dist/Base/Modules.d.ts +0 -5
- package/dist/Base/Modules.js +0 -17
- package/dist/Base/SettingDefinitions.d.ts +0 -8
- package/dist/Base/SettingDefinitions.js +0 -19
- package/dist/Base/SettingUtils.d.ts +0 -17
- package/dist/Base/SettingUtils.js +0 -101
- package/dist/DeepLib.d.ts +0 -17
- package/dist/DeepLib.js +0 -33
- package/dist/Models/Base.d.ts +0 -4
- package/dist/Models/Base.js +0 -2
- package/dist/Models/Settings.d.ts +0 -6
- package/dist/Models/Settings.js +0 -2
- package/dist/Modules/Version.d.ts +0 -13
- package/dist/Modules/Version.js +0 -62
- package/dist/Screens/MainMenu.d.ts +0 -11
- package/dist/Screens/MainMenu.js +0 -80
- package/dist/Screens/Support.d.ts +0 -14
- package/dist/Screens/Support.js +0 -99
- package/dist/Utils/Data.d.ts +0 -5
- package/dist/Utils/Data.js +0 -42
- package/dist/Utils/Logger.d.ts +0 -4
- package/dist/Utils/Logger.js +0 -6
- package/dist/Utils/Messages.d.ts +0 -2
- package/dist/Utils/Messages.js +0 -32
- package/dist/Utils/RibbonMenu.d.ts +0 -9
- package/dist/Utils/RibbonMenu.js +0 -32
- package/dist/Utils/SDK.d.ts +0 -21
- package/dist/Utils/SDK.js +0 -75
- package/dist/Utils/String.d.ts +0 -5
- package/dist/Utils/String.js +0 -30
- package/dist/Utils/Translation.d.ts +0 -10
- package/dist/Utils/Translation.js +0 -43
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
.deeplib-subscreen {
|
|
2
|
+
--deeplib-background-color: var(--main, white);
|
|
3
|
+
--deeplib-element-color: var(--element, white);
|
|
4
|
+
--deeplib-element-hover-color: var(--accentHover, cyan);
|
|
5
|
+
--deeplib-text-color: var(--text, black);
|
|
6
|
+
--deeplib-icon-color: var(--accent, white);
|
|
7
|
+
--deeplib-border-color: var(--accent, black);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/************/
|
|
11
|
+
/* ELEMENTS */
|
|
12
|
+
/************/
|
|
13
|
+
|
|
14
|
+
.deeplib-text {
|
|
15
|
+
color: var(--deeplib-text-color);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.deeplib-subscreen {
|
|
19
|
+
padding: 0;
|
|
20
|
+
margin: 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.deeplib-subscreen * {
|
|
24
|
+
box-sizing: border-box;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.deeplib-settings {
|
|
28
|
+
display: flex;
|
|
29
|
+
flex-direction: column;
|
|
30
|
+
padding: min(1.0dvh, 0.5dvw);
|
|
31
|
+
gap: 0.3em;
|
|
32
|
+
overflow-y: auto;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.deeplib-misc {
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
justify-content: space-between;
|
|
39
|
+
flex-direction: column-reverse;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.deeplib-button.button-styling {
|
|
43
|
+
border-radius: min(1.0dvh, 0.5dvw);
|
|
44
|
+
color: var(--deeplib-text-color);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.deeplib-button.button-styling img {
|
|
48
|
+
position: absolute;
|
|
49
|
+
top: 0%;
|
|
50
|
+
left: 0%;
|
|
51
|
+
width: 100%;
|
|
52
|
+
height: 100%;
|
|
53
|
+
background-position: left;
|
|
54
|
+
background-color: var(--deeplib-icon-color);
|
|
55
|
+
background-blend-mode: multiply;
|
|
56
|
+
background-size: contain;
|
|
57
|
+
mask-position: left;
|
|
58
|
+
mask-size: contain;
|
|
59
|
+
background-repeat: no-repeat;
|
|
60
|
+
mask-repeat: no-repeat;
|
|
61
|
+
color: transparent;
|
|
62
|
+
|
|
63
|
+
background-image: var(--image);
|
|
64
|
+
mask-image: var(--image);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.deeplib-button.button-styling .button-label {
|
|
68
|
+
width: 100%;
|
|
69
|
+
background-color: transparent;
|
|
70
|
+
color: var(--deeplib-text-color);
|
|
71
|
+
font-size: min(3.6dvh, 1.8dvw);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
#deeplib-subscreen-title {
|
|
75
|
+
text-align: center;
|
|
76
|
+
color: var(--deeplib-text-color);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
#deeplib-reset-button {
|
|
80
|
+
background-color: indianred;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
#deeplib-wiki-button {
|
|
84
|
+
background-color: #BDA203;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
#deeplib-support-button {
|
|
88
|
+
background-color: #5e4969;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.deeplib-checkbox-container {
|
|
92
|
+
display: flex;
|
|
93
|
+
flex-direction: row;
|
|
94
|
+
align-items: center;
|
|
95
|
+
gap: 0.3em;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.deeplib-input {
|
|
99
|
+
border-radius: min(1.0dvh, 0.5dvw);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.deeplib-input-container {
|
|
103
|
+
position: relative;
|
|
104
|
+
margin-top: min(1vh, 0.5vw);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.deeplib-input-container input.deeplib-input {
|
|
108
|
+
font-size: 20px;
|
|
109
|
+
width: 100%;
|
|
110
|
+
padding: 5px 0;
|
|
111
|
+
background-color: transparent;
|
|
112
|
+
outline: none;
|
|
113
|
+
padding-left: min(1vh, 0.5vw);
|
|
114
|
+
padding-right: min(1vh, 0.5vw);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.deeplib-input-container label.deeplib-text {
|
|
118
|
+
position: absolute;
|
|
119
|
+
top: min(0.6vh, 0.3vw);
|
|
120
|
+
left: min(0.6vh, 0.3vw);
|
|
121
|
+
transition: all 0.3s ease;
|
|
122
|
+
pointer-events: none;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.deeplib-input-container input.deeplib-input:focus~label,
|
|
126
|
+
.deeplib-input-container input.deeplib-input:not(:placeholder-shown)~label {
|
|
127
|
+
font-size: 0.7em;
|
|
128
|
+
transform: translate(20%, -70%);
|
|
129
|
+
background-color: var(--deeplib-background-color);
|
|
130
|
+
padding: 0px min(1vh, 0.5vw);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.deeplib-input-container .deeplib-underline {
|
|
134
|
+
position: absolute;
|
|
135
|
+
bottom: 0;
|
|
136
|
+
left: 0;
|
|
137
|
+
height: 2px;
|
|
138
|
+
width: 100%;
|
|
139
|
+
background-color: var(--deeplib-element-hover-color);
|
|
140
|
+
transform: scaleX(0);
|
|
141
|
+
transition: all 0.3s ease;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.deeplib-input-container input.deeplib-input:focus~.deeplib-underline,
|
|
145
|
+
.deeplib-input-container input.deeplib-input:not(:placeholder-shown)~.deeplib-underline {
|
|
146
|
+
transform: scaleX(0.98);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.deeplib-tooltip {
|
|
150
|
+
background-color: var(--deeplib-element-color);
|
|
151
|
+
color: var(--deeplib-text-color);
|
|
152
|
+
display: flex;
|
|
153
|
+
align-items: center;
|
|
154
|
+
justify-content: center;
|
|
155
|
+
border-radius: min(1.0dvh, 0.5dvw);
|
|
156
|
+
padding: min(1vh, 0.5vw);
|
|
157
|
+
font-size: 0.8em;
|
|
158
|
+
border: min(0.2vh, 0.1vw) solid var(--deeplib-border-color);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
input::-webkit-outer-spin-button,
|
|
162
|
+
input::-webkit-inner-spin-button {
|
|
163
|
+
-webkit-appearance: none;
|
|
164
|
+
margin: 0;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
input[type=number] {
|
|
168
|
+
appearance: textfield;
|
|
169
|
+
-moz-appearance: textfield;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/*************/
|
|
173
|
+
/* MESSAGES */
|
|
174
|
+
/*************/
|
|
175
|
+
|
|
176
|
+
.deeplib-highlight-text {
|
|
177
|
+
font-weight: bold;
|
|
178
|
+
color: rgb(203, 185, 23);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
#TextAreaChatLog[data-colortheme='dark'] div.ChatMessage.deeplib-message,
|
|
182
|
+
#TextAreaChatLog[data-colortheme='dark2'] div.ChatMessage.deeplib-message {
|
|
183
|
+
background-color: var(--deeplib-element-color);
|
|
184
|
+
border: min(0.2dvh, 0.1dvw) solid var(--deeplib-border-color);
|
|
185
|
+
color: var(--deeplib-text-color);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
#TextAreaChatLog div.ChatMessage.deeplib-message {
|
|
189
|
+
background-color: #eee;
|
|
190
|
+
border: min(0.2dvh, 0.1dvw) solid #440171;
|
|
191
|
+
color: #111;
|
|
192
|
+
padding-left: min(0.6dvh, 0.3dvw);
|
|
193
|
+
display: block;
|
|
194
|
+
white-space: normal;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
#TextAreaChatLog[data-colortheme='dark'] div.ChatMessage.deeplib-message a,
|
|
198
|
+
#TextAreaChatLog[data-colortheme='dark2'] div.ChatMessage.deeplib-message a {
|
|
199
|
+
color: var(--deeplib-text-color);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
#TextAreaChatLog div.ChatMessage.deeplib-message a {
|
|
203
|
+
cursor: pointer;
|
|
204
|
+
font-weight: bold;
|
|
205
|
+
color: #111;
|
|
206
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#deeplib-gratitude {
|
|
2
|
+
position: fixed;
|
|
3
|
+
width: 25%;
|
|
4
|
+
height: 50%;
|
|
5
|
+
top: 15%;
|
|
6
|
+
left: 50%;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
#deeplib-gratitude h1 {
|
|
10
|
+
font-size: 1em;
|
|
11
|
+
color: var(--text, #333);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
#deeplib-gratitude p {
|
|
15
|
+
font-size: 0.6em;
|
|
16
|
+
color: var(--text, #555);
|
|
17
|
+
line-height: 1.5;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
#deeplib-gratitude p:last-child {
|
|
21
|
+
font-size: 0.8em;
|
|
22
|
+
color: var(--text, #ff69b4);
|
|
23
|
+
}
|
package/src/DeepLib.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export * from './Base/BaseModule';
|
|
2
|
+
export * from './Base/BaseSubscreen';
|
|
3
|
+
export * from './Base/Initialization';
|
|
4
|
+
export * from './Base/Modules';
|
|
5
|
+
export * from './Base/SettingDefinitions';
|
|
6
|
+
|
|
7
|
+
export * from './Migrators/BaseMigrator';
|
|
8
|
+
|
|
9
|
+
export * from './Models/Base';
|
|
10
|
+
export * from './Models/Settings';
|
|
11
|
+
|
|
12
|
+
export * from './Modules/GUI';
|
|
13
|
+
export * from './Modules/Version';
|
|
14
|
+
|
|
15
|
+
export * from './Screens/Debug';
|
|
16
|
+
export * from './Screens/MainMenu';
|
|
17
|
+
export * from './Screens/Support';
|
|
18
|
+
|
|
19
|
+
export * from './Utilities/Data';
|
|
20
|
+
export * from './Utilities/Elements/.AdvancedElements';
|
|
21
|
+
export * from './Utilities/Elements/.ElementHelpers';
|
|
22
|
+
export * from './Utilities/Elements/Button';
|
|
23
|
+
export * from './Utilities/Elements/Checkbox';
|
|
24
|
+
export * from './Utilities/Elements/Input';
|
|
25
|
+
export * from './Utilities/Elements/Label';
|
|
26
|
+
export * from './Utilities/Elements/Tooltip';
|
|
27
|
+
export * from './Utilities/Logger';
|
|
28
|
+
export * from './Utilities/Messages';
|
|
29
|
+
export * from './Utilities/SDK';
|
|
30
|
+
export * from './Utilities/String';
|
|
31
|
+
export * from './Utilities/Style';
|
|
32
|
+
export * from './Utilities/Translation';
|
|
33
|
+
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { BaseSettingsModel } from "../Models/Base.js";
|
|
2
|
-
import { Subscreen } from "./SettingDefinitions.js";
|
|
3
|
-
export declare abstract class BaseModule {
|
|
4
|
-
get settingsScreen(): Subscreen | null;
|
|
5
|
-
get settingsStorage(): string | null;
|
|
6
|
-
get settings(): BaseSettingsModel;
|
|
7
|
-
get defaultSettings(): BaseSettingsModel | null;
|
|
8
|
-
Init(): void;
|
|
9
|
-
registerDefaultSettings(): void;
|
|
10
|
-
Load(): void;
|
|
11
|
-
Run(): void;
|
|
12
|
-
Unload(): void;
|
|
13
|
-
}
|
package/dist/Base/BaseModule.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseModule = void 0;
|
|
4
|
-
const Data_js_1 = require("../Utils/Data.js");
|
|
5
|
-
const SDK_js_1 = require("../Utils/SDK.js");
|
|
6
|
-
class BaseModule {
|
|
7
|
-
get settingsScreen() {
|
|
8
|
-
return null;
|
|
9
|
-
}
|
|
10
|
-
get settingsStorage() {
|
|
11
|
-
return this.constructor.name;
|
|
12
|
-
}
|
|
13
|
-
get settings() {
|
|
14
|
-
if (!this.settingsStorage)
|
|
15
|
-
return {};
|
|
16
|
-
if (!(0, Data_js_1.PlayerStorage)(SDK_js_1.bcSdkMod.ModInfo.name)) {
|
|
17
|
-
Player[SDK_js_1.bcSdkMod.ModInfo.name] = {};
|
|
18
|
-
this.registerDefaultSettings();
|
|
19
|
-
}
|
|
20
|
-
else if (!(0, Data_js_1.PlayerStorage)(SDK_js_1.bcSdkMod.ModInfo.name)[this.settingsStorage])
|
|
21
|
-
this.registerDefaultSettings();
|
|
22
|
-
return (0, Data_js_1.PlayerStorage)(SDK_js_1.bcSdkMod.ModInfo.name)[this.settingsStorage];
|
|
23
|
-
}
|
|
24
|
-
get defaultSettings() {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
Init() {
|
|
28
|
-
this.registerDefaultSettings();
|
|
29
|
-
}
|
|
30
|
-
registerDefaultSettings() {
|
|
31
|
-
const storage = this.settingsStorage;
|
|
32
|
-
const defaults = this.defaultSettings;
|
|
33
|
-
if (!storage || !defaults)
|
|
34
|
-
return;
|
|
35
|
-
(0, Data_js_1.PlayerStorage)(SDK_js_1.bcSdkMod.ModInfo.name)[storage] = Object.assign(defaults, (0, Data_js_1.PlayerStorage)(SDK_js_1.bcSdkMod.ModInfo.name)[storage] ?? {});
|
|
36
|
-
}
|
|
37
|
-
Load() { }
|
|
38
|
-
Run() { }
|
|
39
|
-
Unload() { }
|
|
40
|
-
}
|
|
41
|
-
exports.BaseModule = BaseModule;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Setting } from "../../.types/setting.js";
|
|
2
|
-
import { BaseSettingsModel } from "../Models/Base.js";
|
|
3
|
-
import { BaseModule } from "./BaseModule.js";
|
|
4
|
-
export declare abstract class GuiSubscreen {
|
|
5
|
-
static START_X: number;
|
|
6
|
-
static START_Y: number;
|
|
7
|
-
static X_MOD: number;
|
|
8
|
-
static Y_MOD: number;
|
|
9
|
-
static POS_BAK: number;
|
|
10
|
-
static TEXT_ALIGN_BAK: CanvasTextAlign;
|
|
11
|
-
readonly module: BaseModule | null;
|
|
12
|
-
constructor(module?: BaseModule);
|
|
13
|
-
get name(): string;
|
|
14
|
-
get icon(): string;
|
|
15
|
-
get SubscreenName(): string;
|
|
16
|
-
setSubscreen(screen: GuiSubscreen | string | null): GuiSubscreen | null;
|
|
17
|
-
get settings(): BaseSettingsModel;
|
|
18
|
-
get multipageStructure(): Setting[][];
|
|
19
|
-
get structure(): Setting[];
|
|
20
|
-
get character(): Character;
|
|
21
|
-
getYPos(ix: number): number;
|
|
22
|
-
getXPos(ix: number): number;
|
|
23
|
-
hideElements(): void;
|
|
24
|
-
Load(): void;
|
|
25
|
-
Run(): void;
|
|
26
|
-
Click(): void;
|
|
27
|
-
Exit(): void;
|
|
28
|
-
Unload(): void;
|
|
29
|
-
}
|
package/dist/Base/BaseSetting.js
DELETED
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GuiSubscreen = void 0;
|
|
4
|
-
const Modules_js_1 = require("./Modules.js");
|
|
5
|
-
const Data_js_1 = require("../Utils/Data.js");
|
|
6
|
-
const Translation_js_1 = require("../Utils/Translation.js");
|
|
7
|
-
const SettingDefinitions_js_1 = require("./SettingDefinitions.js");
|
|
8
|
-
const SettingUtils_js_1 = require("./SettingUtils.js");
|
|
9
|
-
class GuiSubscreen {
|
|
10
|
-
static START_X = 180;
|
|
11
|
-
static START_Y = 205;
|
|
12
|
-
static X_MOD = 950;
|
|
13
|
-
static Y_MOD = 75;
|
|
14
|
-
static POS_BAK = GuiSubscreen.START_X;
|
|
15
|
-
static TEXT_ALIGN_BAK;
|
|
16
|
-
module = null;
|
|
17
|
-
constructor(module) {
|
|
18
|
-
if (module)
|
|
19
|
-
this.module = module;
|
|
20
|
-
SettingDefinitions_js_1.SETTING_FUNC_NAMES.forEach((name) => {
|
|
21
|
-
const funcName = SettingDefinitions_js_1.SETTING_FUNC_PREFIX + SettingDefinitions_js_1.SETTING_NAME_PREFIX + this.name + name;
|
|
22
|
-
if (typeof this[name] === "function" && typeof window[funcName] !== "function")
|
|
23
|
-
window[funcName] = () => {
|
|
24
|
-
this[name]();
|
|
25
|
-
};
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
get name() {
|
|
29
|
-
return "UNKNOWN";
|
|
30
|
-
}
|
|
31
|
-
get icon() {
|
|
32
|
-
return "";
|
|
33
|
-
}
|
|
34
|
-
get SubscreenName() {
|
|
35
|
-
return SettingDefinitions_js_1.SETTING_NAME_PREFIX + this.constructor.name;
|
|
36
|
-
}
|
|
37
|
-
setSubscreen(screen) {
|
|
38
|
-
return (0, SettingDefinitions_js_1.setSubscreen)(screen);
|
|
39
|
-
}
|
|
40
|
-
get settings() {
|
|
41
|
-
return this.module?.settings;
|
|
42
|
-
}
|
|
43
|
-
get multipageStructure() {
|
|
44
|
-
return [[]];
|
|
45
|
-
}
|
|
46
|
-
get structure() {
|
|
47
|
-
return this.multipageStructure[Math.min(PreferencePageCurrent - 1, this.multipageStructure.length - 1)];
|
|
48
|
-
}
|
|
49
|
-
get character() {
|
|
50
|
-
return SettingUtils_js_1.GUI.instance?.currentCharacter;
|
|
51
|
-
}
|
|
52
|
-
getYPos(ix) {
|
|
53
|
-
return GuiSubscreen.START_Y + GuiSubscreen.Y_MOD * (ix % 9);
|
|
54
|
-
}
|
|
55
|
-
getXPos(ix) {
|
|
56
|
-
return GuiSubscreen.START_X + GuiSubscreen.X_MOD * Math.floor(ix / 9);
|
|
57
|
-
}
|
|
58
|
-
hideElements() {
|
|
59
|
-
this.multipageStructure.forEach((item, ix, arr) => {
|
|
60
|
-
if (ix != PreferencePageCurrent - 1) {
|
|
61
|
-
item.forEach((setting) => {
|
|
62
|
-
if (setting.type == "text" || setting.type == "number")
|
|
63
|
-
return;
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
Load() {
|
|
69
|
-
for (const module of (0, Modules_js_1.modules)()) {
|
|
70
|
-
if (!module.settingsScreen)
|
|
71
|
-
continue;
|
|
72
|
-
if (!Object.keys(module.settings).length)
|
|
73
|
-
module.registerDefaultSettings();
|
|
74
|
-
}
|
|
75
|
-
this.multipageStructure.forEach((s) => s.forEach((item) => {
|
|
76
|
-
switch (item.type) {
|
|
77
|
-
case "text":
|
|
78
|
-
let input = ElementCreateInput(item.id, "text", item.setting(), "255");
|
|
79
|
-
input.setAttribute("autocomplete", "off");
|
|
80
|
-
break;
|
|
81
|
-
case "number":
|
|
82
|
-
ElementCreateInput(item.id, "number", item.setting(), "255");
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
}));
|
|
86
|
-
CharacterAppearanceForceUpCharacter = Player.MemberNumber ?? -1;
|
|
87
|
-
}
|
|
88
|
-
Run() {
|
|
89
|
-
GuiSubscreen.POS_BAK = GuiSubscreen.START_X;
|
|
90
|
-
GuiSubscreen.TEXT_ALIGN_BAK = MainCanvas.textAlign;
|
|
91
|
-
GuiSubscreen.START_X = 550;
|
|
92
|
-
MainCanvas.textAlign = "left";
|
|
93
|
-
DrawCharacter(Player, 50, 50, 0.9, false);
|
|
94
|
-
DrawText((0, Translation_js_1.getText)(`${this.name}.title`), GuiSubscreen.START_X, GuiSubscreen.START_Y - GuiSubscreen.Y_MOD, "Black", "#D7F6E9");
|
|
95
|
-
DrawButton(1815, 75, 90, 90, "", "White", "Icons/Exit.png", "Responsive");
|
|
96
|
-
if (this.multipageStructure.length > 1) {
|
|
97
|
-
MainCanvas.textAlign = "center";
|
|
98
|
-
PreferencePageChangeDraw(1595, 75, this.multipageStructure.length);
|
|
99
|
-
MainCanvas.textAlign = "left";
|
|
100
|
-
}
|
|
101
|
-
this.hideElements();
|
|
102
|
-
GuiSubscreen.START_X = GuiSubscreen.POS_BAK;
|
|
103
|
-
MainCanvas.textAlign = GuiSubscreen.TEXT_ALIGN_BAK;
|
|
104
|
-
}
|
|
105
|
-
Click() {
|
|
106
|
-
GuiSubscreen.POS_BAK = GuiSubscreen.START_X;
|
|
107
|
-
GuiSubscreen.TEXT_ALIGN_BAK = MainCanvas.textAlign;
|
|
108
|
-
GuiSubscreen.START_X = 550;
|
|
109
|
-
MainCanvas.textAlign = "left";
|
|
110
|
-
if (MouseIn(1815, 75, 90, 90))
|
|
111
|
-
return this.Exit();
|
|
112
|
-
if (this.multipageStructure.length > 1)
|
|
113
|
-
PreferencePageChangeClick(1595, 75, this.multipageStructure.length);
|
|
114
|
-
this.structure.forEach((item, ix, arr) => {
|
|
115
|
-
switch (item.type) {
|
|
116
|
-
case "checkbox":
|
|
117
|
-
if (MouseIn(this.getXPos(ix) + 600, this.getYPos(ix) - 32, 64, 64) && !item.disabled) {
|
|
118
|
-
item.setSetting(!item.setting());
|
|
119
|
-
}
|
|
120
|
-
break;
|
|
121
|
-
case "button":
|
|
122
|
-
if (MouseIn(item.position[0], item.position[1], item.size[0], item.size[1]))
|
|
123
|
-
item.callback();
|
|
124
|
-
break;
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
GuiSubscreen.START_X = GuiSubscreen.POS_BAK;
|
|
128
|
-
MainCanvas.textAlign = GuiSubscreen.TEXT_ALIGN_BAK;
|
|
129
|
-
}
|
|
130
|
-
Exit() {
|
|
131
|
-
this.multipageStructure.forEach((s) => s.forEach((item) => {
|
|
132
|
-
switch (item.type) {
|
|
133
|
-
case "number":
|
|
134
|
-
if (!CommonIsNumeric(ElementValue(item.id))) {
|
|
135
|
-
ElementRemove(item.id);
|
|
136
|
-
break;
|
|
137
|
-
}
|
|
138
|
-
case "text":
|
|
139
|
-
item.setSetting(ElementValue(item.id));
|
|
140
|
-
ElementRemove(item.id);
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
}));
|
|
144
|
-
CharacterAppearanceForceUpCharacter = -1;
|
|
145
|
-
CharacterLoadCanvas(Player);
|
|
146
|
-
(0, SettingDefinitions_js_1.setSubscreen)("mainmenu");
|
|
147
|
-
(0, Data_js_1.dataStore)();
|
|
148
|
-
}
|
|
149
|
-
Unload() {
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
exports.GuiSubscreen = GuiSubscreen;
|
package/dist/Base/Modules.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { BaseModule } from "./BaseModule.js";
|
|
2
|
-
export declare const modulesMap: Map<string, BaseModule>;
|
|
3
|
-
export declare function modules(): BaseModule[];
|
|
4
|
-
export declare function registerModule<T extends BaseModule>(module: T): T;
|
|
5
|
-
export declare function getModule<T extends BaseModule>(moduleType: string): T;
|
package/dist/Base/Modules.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getModule = exports.registerModule = exports.modules = exports.modulesMap = void 0;
|
|
4
|
-
exports.modulesMap = new Map();
|
|
5
|
-
function modules() {
|
|
6
|
-
return [...exports.modulesMap.values()];
|
|
7
|
-
}
|
|
8
|
-
exports.modules = modules;
|
|
9
|
-
function registerModule(module) {
|
|
10
|
-
exports.modulesMap.set(module.constructor.name, module);
|
|
11
|
-
return module;
|
|
12
|
-
}
|
|
13
|
-
exports.registerModule = registerModule;
|
|
14
|
-
function getModule(moduleType) {
|
|
15
|
-
return exports.modulesMap.get(moduleType);
|
|
16
|
-
}
|
|
17
|
-
exports.getModule = getModule;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { BaseModule } from "./BaseModule.js";
|
|
2
|
-
import { GuiSubscreen } from "./BaseSetting.js";
|
|
3
|
-
export declare let SETTING_NAME_PREFIX: string;
|
|
4
|
-
export declare const SETTING_FUNC_PREFIX: string;
|
|
5
|
-
export declare const SETTING_FUNC_NAMES: string[];
|
|
6
|
-
export type Subscreen = new (module: BaseModule) => GuiSubscreen;
|
|
7
|
-
export declare function getCurrentSubscreen(): GuiSubscreen | null;
|
|
8
|
-
export declare function setSubscreen(subscreen: GuiSubscreen | string | null): GuiSubscreen | null;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setSubscreen = exports.getCurrentSubscreen = exports.SETTING_FUNC_NAMES = exports.SETTING_FUNC_PREFIX = exports.SETTING_NAME_PREFIX = void 0;
|
|
4
|
-
const SettingUtils_js_1 = require("./SettingUtils.js");
|
|
5
|
-
exports.SETTING_NAME_PREFIX = "Mod";
|
|
6
|
-
exports.SETTING_FUNC_PREFIX = "PreferenceSubscreen";
|
|
7
|
-
exports.SETTING_FUNC_NAMES = ["Load", "Run", "Click", "Unload", "Exit"];
|
|
8
|
-
function getCurrentSubscreen() {
|
|
9
|
-
return SettingUtils_js_1.GUI.instance && SettingUtils_js_1.GUI.instance.currentSubscreen;
|
|
10
|
-
}
|
|
11
|
-
exports.getCurrentSubscreen = getCurrentSubscreen;
|
|
12
|
-
function setSubscreen(subscreen) {
|
|
13
|
-
if (!SettingUtils_js_1.GUI.instance) {
|
|
14
|
-
throw new Error("Attempt to set subscreen before init");
|
|
15
|
-
}
|
|
16
|
-
SettingUtils_js_1.GUI.instance.currentSubscreen = subscreen;
|
|
17
|
-
return SettingUtils_js_1.GUI.instance.currentSubscreen;
|
|
18
|
-
}
|
|
19
|
-
exports.setSubscreen = setSubscreen;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { BaseModule } from "./BaseModule.js";
|
|
2
|
-
import { GuiSubscreen } from "./BaseSetting.js";
|
|
3
|
-
import { MainMenu } from '../Screens/MainMenu.js';
|
|
4
|
-
export declare class GUI extends BaseModule {
|
|
5
|
-
static instance: GUI | null;
|
|
6
|
-
private _subscreens;
|
|
7
|
-
private _mainMenu;
|
|
8
|
-
private _currentSubscreen;
|
|
9
|
-
get subscreens(): GuiSubscreen[];
|
|
10
|
-
get mainMenu(): MainMenu;
|
|
11
|
-
get currentSubscreen(): GuiSubscreen | null;
|
|
12
|
-
set currentSubscreen(subscreen: GuiSubscreen | string | null);
|
|
13
|
-
get currentCharacter(): Character;
|
|
14
|
-
constructor();
|
|
15
|
-
get defaultSettings(): null;
|
|
16
|
-
Load(): void;
|
|
17
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GUI = void 0;
|
|
4
|
-
const BaseModule_js_1 = require("./BaseModule.js");
|
|
5
|
-
const Modules_js_1 = require("./Modules.js");
|
|
6
|
-
const RibbonMenu_js_1 = require("../Utils/RibbonMenu.js");
|
|
7
|
-
const Translation_js_1 = require("../Utils/Translation.js");
|
|
8
|
-
const SettingDefinitions_js_1 = require("./SettingDefinitions.js");
|
|
9
|
-
const MainMenu_js_1 = require("../Screens/MainMenu.js");
|
|
10
|
-
const SDK_js_1 = require("../Utils/SDK.js");
|
|
11
|
-
class GUI extends BaseModule_js_1.BaseModule {
|
|
12
|
-
static instance = null;
|
|
13
|
-
_subscreens;
|
|
14
|
-
_mainMenu;
|
|
15
|
-
_currentSubscreen = null;
|
|
16
|
-
get subscreens() {
|
|
17
|
-
return this._subscreens;
|
|
18
|
-
}
|
|
19
|
-
get mainMenu() {
|
|
20
|
-
return this._mainMenu;
|
|
21
|
-
}
|
|
22
|
-
get currentSubscreen() {
|
|
23
|
-
return this._currentSubscreen;
|
|
24
|
-
}
|
|
25
|
-
set currentSubscreen(subscreen) {
|
|
26
|
-
if (this._currentSubscreen) {
|
|
27
|
-
this._currentSubscreen.Unload();
|
|
28
|
-
}
|
|
29
|
-
if (typeof subscreen === "string") {
|
|
30
|
-
const scr = this._subscreens?.find((s) => s.name === subscreen);
|
|
31
|
-
if (!scr)
|
|
32
|
-
throw `Failed to find screen name ${subscreen}`;
|
|
33
|
-
this._currentSubscreen = scr;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this._currentSubscreen = subscreen;
|
|
37
|
-
}
|
|
38
|
-
PreferenceMessage = "";
|
|
39
|
-
PreferencePageCurrent = 1;
|
|
40
|
-
let subscreenName = "";
|
|
41
|
-
if (this._currentSubscreen) {
|
|
42
|
-
subscreenName = SettingDefinitions_js_1.SETTING_NAME_PREFIX + this._currentSubscreen?.name;
|
|
43
|
-
this._currentSubscreen.Load();
|
|
44
|
-
}
|
|
45
|
-
PreferenceSubscreen = subscreenName;
|
|
46
|
-
}
|
|
47
|
-
get currentCharacter() {
|
|
48
|
-
return Player;
|
|
49
|
-
}
|
|
50
|
-
constructor() {
|
|
51
|
-
super();
|
|
52
|
-
if (GUI.instance) {
|
|
53
|
-
throw new Error("Duplicate initialization");
|
|
54
|
-
}
|
|
55
|
-
this._mainMenu = new MainMenu_js_1.MainMenu(this);
|
|
56
|
-
this._subscreens = [this._mainMenu];
|
|
57
|
-
GUI.instance = this;
|
|
58
|
-
}
|
|
59
|
-
get defaultSettings() {
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
Load() {
|
|
63
|
-
for (const module of (0, Modules_js_1.modules)()) {
|
|
64
|
-
if (!module.settingsScreen)
|
|
65
|
-
continue;
|
|
66
|
-
this._subscreens.push(new module.settingsScreen(module));
|
|
67
|
-
}
|
|
68
|
-
this._mainMenu.subscreens = this._subscreens;
|
|
69
|
-
let modIndex = RibbonMenu_js_1.RibbonMenu.getModIndex(SDK_js_1.bcSdkMod.ModInfo.name);
|
|
70
|
-
SDK_js_1.bcSdkMod.prototype.hookFunction("PreferenceRun", SDK_js_1.HookPriority.OverrideBehavior, (args, next) => {
|
|
71
|
-
if (this._currentSubscreen) {
|
|
72
|
-
MainCanvas.textAlign = "left";
|
|
73
|
-
this._currentSubscreen.Run();
|
|
74
|
-
MainCanvas.textAlign = "center";
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
next(args);
|
|
78
|
-
RibbonMenu_js_1.RibbonMenu.drawModButton(modIndex, (modIndex) => {
|
|
79
|
-
DrawButton(1815, RibbonMenu_js_1.RibbonMenu.getYPos(modIndex), 90, 90, "", "White", "Icons/Arousal.png", (0, Translation_js_1.getText)("infosheet.button.responsive_popup"));
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
SDK_js_1.bcSdkMod.prototype.hookFunction("PreferenceClick", SDK_js_1.HookPriority.OverrideBehavior, (args, next) => {
|
|
83
|
-
if (this._currentSubscreen) {
|
|
84
|
-
this._currentSubscreen.Click();
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
next(args);
|
|
88
|
-
RibbonMenu_js_1.RibbonMenu.handleModClick(modIndex, (modIndex) => {
|
|
89
|
-
(0, SettingDefinitions_js_1.setSubscreen)(new MainMenu_js_1.MainMenu(this));
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
SDK_js_1.bcSdkMod.prototype.hookFunction("InformationSheetExit", SDK_js_1.HookPriority.OverrideBehavior, (args, next) => {
|
|
93
|
-
if (this._currentSubscreen) {
|
|
94
|
-
this._currentSubscreen.Exit();
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
return next(args);
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
exports.GUI = GUI;
|