@bf6mods/sdk 1.0.2 → 1.1.1

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.
@@ -0,0 +1,247 @@
1
+ import { t as __export } from "./chunk-Bp6m_JJh.js";
2
+
3
+ //#region src/std/message.ts
4
+ var message_exports = /* @__PURE__ */ __export({ MakeMessage: () => MakeMessage });
5
+ function MakeMessage(message, ...args) {
6
+ switch (args.length) {
7
+ case 0: return mod.Message(message);
8
+ case 1: return mod.Message(message, args[0]);
9
+ case 2: return mod.Message(message, args[0], args[1]);
10
+ case 3: return mod.Message(message, args[0], args[1], args[2]);
11
+ default: throw new Error("Invalid number of arguments");
12
+ }
13
+ }
14
+
15
+ //#endregion
16
+ //#region src/modlib/index.ts
17
+ var ConditionState = class {
18
+ constructor() {
19
+ this.lastState = false;
20
+ }
21
+ update(newState) {
22
+ if (!newState) {
23
+ this.lastState = false;
24
+ return false;
25
+ }
26
+ if (this.lastState) return false;
27
+ this.lastState = true;
28
+ return true;
29
+ }
30
+ };
31
+ var Conditions = class {
32
+ constructor() {
33
+ this.conditionStates = [];
34
+ }
35
+ getConditionState(n) {
36
+ while (n >= this.conditionStates.length) this.conditionStates.push(new ConditionState());
37
+ return this.conditionStates[n];
38
+ }
39
+ };
40
+ let globalConditions = new Conditions();
41
+ function __asModVector(param) {
42
+ if (Array.isArray(param)) return mod.CreateVector(param[0], param[1], param.length == 2 ? 0 : param[2]);
43
+ else return param;
44
+ }
45
+ function __asModMessage(param) {
46
+ if (typeof param === "string") return mod.Message(param);
47
+ return param;
48
+ }
49
+ function __fillInDefaultArgs(params) {
50
+ if (!params.hasOwnProperty("name")) params.name = "";
51
+ if (!params.hasOwnProperty("position")) params.position = mod.CreateVector(0, 0, 0);
52
+ if (!params.hasOwnProperty("size")) params.size = mod.CreateVector(100, 100, 0);
53
+ if (!params.hasOwnProperty("anchor")) params.anchor = mod.UIAnchor.TopLeft;
54
+ if (!params.hasOwnProperty("parent")) params.parent = mod.GetUIRoot();
55
+ if (!params.hasOwnProperty("visible")) params.visible = true;
56
+ if (!params.hasOwnProperty("padding")) params.padding = params.type == "Container" ? 0 : 8;
57
+ if (!params.hasOwnProperty("bgColor")) params.bgColor = mod.CreateVector(.25, .25, .25);
58
+ if (!params.hasOwnProperty("bgAlpha")) params.bgAlpha = .5;
59
+ if (!params.hasOwnProperty("bgFill")) params.bgFill = mod.UIBgFill.Solid;
60
+ }
61
+ function __setNameAndGetWidget(uniqueName, params) {
62
+ let widget = mod.FindUIWidgetWithName(uniqueName);
63
+ mod.SetUIWidgetName(widget, params.name);
64
+ return widget;
65
+ }
66
+ const __cUniqueName = "----uniquename----";
67
+ function __addUIContainer(params) {
68
+ __fillInDefaultArgs(params);
69
+ let restrict = params.teamId ?? params.playerId;
70
+ if (restrict) mod.AddUIContainer(__cUniqueName, __asModVector(params.position), __asModVector(params.size), params.anchor, params.parent, params.visible, params.padding, __asModVector(params.bgColor), params.bgAlpha, params.bgFill, restrict);
71
+ else mod.AddUIContainer(__cUniqueName, __asModVector(params.position), __asModVector(params.size), params.anchor, params.parent, params.visible, params.padding, __asModVector(params.bgColor), params.bgAlpha, params.bgFill);
72
+ let widget = __setNameAndGetWidget(__cUniqueName, params);
73
+ if (params.children) params.children.forEach((childParams) => {
74
+ childParams.parent = widget;
75
+ __addUIWidget(childParams);
76
+ });
77
+ return widget;
78
+ }
79
+ function __fillInDefaultTextArgs(params) {
80
+ if (!params.hasOwnProperty("textLabel")) params.textLabel = "";
81
+ if (!params.hasOwnProperty("textSize")) params.textSize = 0;
82
+ if (!params.hasOwnProperty("textColor")) params.textColor = mod.CreateVector(1, 1, 1);
83
+ if (!params.hasOwnProperty("textAlpha")) params.textAlpha = 1;
84
+ if (!params.hasOwnProperty("textAnchor")) params.textAnchor = mod.UIAnchor.CenterLeft;
85
+ }
86
+ function __addUIText(params) {
87
+ __fillInDefaultArgs(params);
88
+ __fillInDefaultTextArgs(params);
89
+ let restrict = params.teamId ?? params.playerId;
90
+ if (restrict) mod.AddUIText(__cUniqueName, __asModVector(params.position), __asModVector(params.size), params.anchor, params.parent, params.visible, params.padding, __asModVector(params.bgColor), params.bgAlpha, params.bgFill, __asModMessage(params.textLabel), params.textSize, __asModVector(params.textColor), params.textAlpha, params.textAnchor, restrict);
91
+ else mod.AddUIText(__cUniqueName, __asModVector(params.position), __asModVector(params.size), params.anchor, params.parent, params.visible, params.padding, __asModVector(params.bgColor), params.bgAlpha, params.bgFill, __asModMessage(params.textLabel), params.textSize, __asModVector(params.textColor), params.textAlpha, params.textAnchor);
92
+ return __setNameAndGetWidget(__cUniqueName, params);
93
+ }
94
+ function __fillInDefaultImageArgs(params) {
95
+ if (!params.hasOwnProperty("imageType")) params.imageType = mod.UIImageType.None;
96
+ if (!params.hasOwnProperty("imageColor")) params.imageColor = mod.CreateVector(1, 1, 1);
97
+ if (!params.hasOwnProperty("imageAlpha")) params.imageAlpha = 1;
98
+ }
99
+ function __addUIImage(params) {
100
+ __fillInDefaultArgs(params);
101
+ __fillInDefaultImageArgs(params);
102
+ let restrict = params.teamId ?? params.playerId;
103
+ if (restrict) mod.AddUIImage(__cUniqueName, __asModVector(params.position), __asModVector(params.size), params.anchor, params.parent, params.visible, params.padding, __asModVector(params.bgColor), params.bgAlpha, params.bgFill, params.imageType, __asModVector(params.imageColor), params.imageAlpha, restrict);
104
+ else mod.AddUIImage(__cUniqueName, __asModVector(params.position), __asModVector(params.size), params.anchor, params.parent, params.visible, params.padding, __asModVector(params.bgColor), params.bgAlpha, params.bgFill, params.imageType, __asModVector(params.imageColor), params.imageAlpha);
105
+ return __setNameAndGetWidget(__cUniqueName, params);
106
+ }
107
+ function __fillInDefaultButtonArgs(params) {
108
+ if (!params.hasOwnProperty("buttonEnabled")) params.buttonEnabled = true;
109
+ if (!params.hasOwnProperty("buttonColorBase")) params.buttonColorBase = mod.CreateVector(.7, .7, .7);
110
+ if (!params.hasOwnProperty("buttonAlphaBase")) params.buttonAlphaBase = 1;
111
+ if (!params.hasOwnProperty("buttonColorDisabled")) params.buttonColorDisabled = mod.CreateVector(.2, .2, .2);
112
+ if (!params.hasOwnProperty("buttonAlphaDisabled")) params.buttonAlphaDisabled = .5;
113
+ if (!params.hasOwnProperty("buttonColorPressed")) params.buttonColorPressed = mod.CreateVector(.25, .25, .25);
114
+ if (!params.hasOwnProperty("buttonAlphaPressed")) params.buttonAlphaPressed = 1;
115
+ if (!params.hasOwnProperty("buttonColorHover")) params.buttonColorHover = mod.CreateVector(1, 1, 1);
116
+ if (!params.hasOwnProperty("buttonAlphaHover")) params.buttonAlphaHover = 1;
117
+ if (!params.hasOwnProperty("buttonColorFocused")) params.buttonColorFocused = mod.CreateVector(1, 1, 1);
118
+ if (!params.hasOwnProperty("buttonAlphaFocused")) params.buttonAlphaFocused = 1;
119
+ }
120
+ function __addUIButton(params) {
121
+ __fillInDefaultArgs(params);
122
+ __fillInDefaultButtonArgs(params);
123
+ let restrict = params.teamId ?? params.playerId;
124
+ if (restrict) mod.AddUIButton(__cUniqueName, __asModVector(params.position), __asModVector(params.size), params.anchor, params.parent, params.visible, params.padding, __asModVector(params.bgColor), params.bgAlpha, params.bgFill, params.buttonEnabled, __asModVector(params.buttonColorBase), params.buttonAlphaBase, __asModVector(params.buttonColorDisabled), params.buttonAlphaDisabled, __asModVector(params.buttonColorPressed), params.buttonAlphaPressed, __asModVector(params.buttonColorHover), params.buttonAlphaHover, __asModVector(params.buttonColorFocused), params.buttonAlphaFocused, restrict);
125
+ else mod.AddUIButton(__cUniqueName, __asModVector(params.position), __asModVector(params.size), params.anchor, params.parent, params.visible, params.padding, __asModVector(params.bgColor), params.bgAlpha, params.bgFill, params.buttonEnabled, __asModVector(params.buttonColorBase), params.buttonAlphaBase, __asModVector(params.buttonColorDisabled), params.buttonAlphaDisabled, __asModVector(params.buttonColorPressed), params.buttonAlphaPressed, __asModVector(params.buttonColorHover), params.buttonAlphaHover, __asModVector(params.buttonColorFocused), params.buttonAlphaFocused);
126
+ return __setNameAndGetWidget(__cUniqueName, params);
127
+ }
128
+ function __addUIWidget(params) {
129
+ if (params == null) return void 0;
130
+ if (params.type == "Container") return __addUIContainer(params);
131
+ else if (params.type == "Text") return __addUIText(params);
132
+ else if (params.type == "Image") return __addUIImage(params);
133
+ else if (params.type == "Button") return __addUIButton(params);
134
+ }
135
+ function ParseUI(...params) {
136
+ let widget;
137
+ for (let a = 0; a < params.length; a++) widget = __addUIWidget(params[a]);
138
+ return widget;
139
+ }
140
+
141
+ //#endregion
142
+ //#region src/std/ui/countdown.ts
143
+ var countdown_exports = /* @__PURE__ */ __export({
144
+ CountdownUI: () => CountdownUI,
145
+ bf6Strings: () => bf6Strings
146
+ });
147
+ var CountdownUI = class CountdownUI {
148
+ static #uniqueID = 0;
149
+ #playerId;
150
+ #playerProfileId;
151
+ constructor(playerId) {
152
+ this.#playerProfileId = CountdownUI.#uniqueID++;
153
+ this.#playerId = playerId;
154
+ const bfBlueColor = [
155
+ .678,
156
+ .753,
157
+ .8
158
+ ];
159
+ const height = 125;
160
+ this.headerWidget = ParseUI({
161
+ type: "Container",
162
+ size: [150, height],
163
+ position: [0, 50],
164
+ name: `countdown_${this.#playerProfileId}`,
165
+ anchor: mod.UIAnchor.TopCenter,
166
+ bgFill: mod.UIBgFill.Blur,
167
+ bgColor: [
168
+ .2,
169
+ .2,
170
+ .3
171
+ ],
172
+ bgAlpha: .9,
173
+ playerId: this.#playerId,
174
+ visible: false,
175
+ children: [
176
+ {
177
+ type: "Container",
178
+ name: `countdown_line_right_${this.#playerProfileId}`,
179
+ size: [2, height],
180
+ position: [75, 0],
181
+ anchor: mod.UIAnchor.Center,
182
+ bgFill: mod.UIBgFill.Solid,
183
+ bgColor: bfBlueColor,
184
+ bgAlpha: 1
185
+ },
186
+ {
187
+ type: "Container",
188
+ name: `countdown_line_left_${this.#playerProfileId}`,
189
+ size: [2, height],
190
+ position: [-75, 0],
191
+ anchor: mod.UIAnchor.Center,
192
+ bgFill: mod.UIBgFill.Solid,
193
+ bgColor: bfBlueColor,
194
+ bgAlpha: 1
195
+ },
196
+ {
197
+ type: "Text",
198
+ name: `countdown_text${this.#playerProfileId}`,
199
+ size: [100, height],
200
+ position: [0, 0],
201
+ anchor: mod.UIAnchor.Center,
202
+ bgFill: mod.UIBgFill.None,
203
+ textColor: bfBlueColor,
204
+ textAnchor: mod.UIAnchor.Center,
205
+ textLabel: MakeMessage(mod.stringkeys.__sdk__CountdownUI),
206
+ textSize: 85
207
+ }
208
+ ]
209
+ });
210
+ this.textWidget = mod.FindUIWidgetWithName(`countdown_text${this.#playerProfileId}`);
211
+ }
212
+ delete() {
213
+ this.headerWidget && mod.DeleteUIWidget(this.headerWidget);
214
+ }
215
+ open(text, countdowntime) {
216
+ this.headerWidget && mod.SetUIWidgetVisible(this.headerWidget, true);
217
+ this.textWidget && mod.SetUITextLabel(this.textWidget, MakeMessage(text, countdowntime));
218
+ }
219
+ update(text, countdowntime) {
220
+ this.textWidget && mod.SetUITextLabel(this.textWidget, MakeMessage(text, countdowntime));
221
+ }
222
+ async close(delayclose = 0) {
223
+ await mod.Wait(delayclose);
224
+ this.headerWidget && mod.SetUIWidgetVisible(this.headerWidget, false);
225
+ }
226
+ };
227
+ const bf6Strings = { __sdk__CountdownUI: "{}" };
228
+
229
+ //#endregion
230
+ //#region src/std/ui/index.ts
231
+ var ui_exports = /* @__PURE__ */ __export({
232
+ CountdownUI: () => CountdownUI,
233
+ bf6Strings: () => bf6Strings,
234
+ default: () => ui_default
235
+ });
236
+ var ui_default = { countdown: countdown_exports };
237
+
238
+ //#endregion
239
+ //#region src/std/index.ts
240
+ var std_default = {
241
+ message: message_exports,
242
+ ui: ui_exports
243
+ };
244
+
245
+ //#endregion
246
+ export { CountdownUI, MakeMessage, bf6Strings, std_default as default };
247
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["globalConditions: Conditions","widget: mod.UIWidget | undefined","#uniqueID","#playerProfileId","#playerId"],"sources":["../../src/std/message.ts","../../src/modlib/index.ts","../../src/std/ui/countdown.ts","../../src/std/ui/index.ts","../../src/std/index.ts"],"sourcesContent":["export function MakeMessage(\n\tmessage: string,\n\t...args: (string | number | mod.Player)[]\n) {\n\tswitch (args.length) {\n\t\tcase 0:\n\t\t\treturn mod.Message(message);\n\t\tcase 1:\n\t\t\treturn mod.Message(message, args[0]);\n\t\tcase 2:\n\t\t\treturn mod.Message(message, args[0], args[1]);\n\t\tcase 3:\n\t\t\treturn mod.Message(message, args[0], args[1], args[2]);\n\t\tdefault:\n\t\t\tthrow new Error(\"Invalid number of arguments\");\n\t}\n}\n","// export * from './store';\r\n\r\nexport function Concat(s1: string, s2: string) {\r\n return s1 + s2;\r\n}\r\n\r\nexport function And(...rest: boolean[]): boolean {\r\n for (let i = 0; i < rest.length; i++) {\r\n const cond = rest[i];\r\n if (!cond) return false;\r\n }\r\n return true;\r\n}\r\n\r\ntype ConditionFunction = () => boolean;\r\n\r\nexport function AndFn(...rest: ConditionFunction[]): boolean {\r\n for (let i = 0; i < rest.length; i++) {\r\n const condFn = rest[i];\r\n if (!condFn()) return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport function getPlayerId(player: mod.Player): number {\r\n return mod.GetObjId(player);\r\n}\r\n\r\nexport function getTeamId(team: mod.Team): number {\r\n return mod.GetObjId(team);\r\n}\r\n\r\nexport function ConvertArray(array: mod.Array): any[] {\r\n let v = [];\r\n let n = mod.CountOf(array);\r\n for (let i = 0; i < n; i++) {\r\n let currentElement = mod.ValueInArray(array, i);\r\n v.push(currentElement);\r\n }\r\n return v;\r\n}\r\n\r\nexport function FilteredArray(array: mod.Array, cond: (currentElement: any) => boolean): mod.Array {\r\n const arr = ConvertArray(array);\r\n let v = mod.EmptyArray();\r\n let n = arr.length;\r\n for (let i = 0; i < n; i++) {\r\n let currentElement = arr[i];\r\n if (cond(currentElement)) mod.AppendToArray(v, currentElement);\r\n }\r\n return v;\r\n}\r\n\r\nexport function IndexOfFirstTrue(array: mod.Array, cond: (element: any, arg: any) => boolean, arg: any = null): number {\r\n const arr = ConvertArray(array);\r\n let n = arr.length;\r\n for (let i = 0; i < n; i++) {\r\n let currentArrayElement = arr[i];\r\n if (cond(currentArrayElement, arg)) return i;\r\n }\r\n return -1;\r\n}\r\n\r\nexport function IfThenElse<T>(condition: boolean, ifTrue: () => T, ifFalse: () => T) {\r\n if (condition) return ifTrue();\r\n else return ifFalse();\r\n}\r\n\r\nexport function IsTrueForAll(array: mod.Array, condition: (element: any, arg: any) => boolean, arg: any = null) {\r\n const arr = ConvertArray(array);\r\n let n = arr.length;\r\n for (let i = 0; i < n; i++) {\r\n let currentArrayElement = arr[i];\r\n if (!condition(currentArrayElement, arg)) return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport function IsTrueForAny(array: mod.Array, condition: (element: any, arg: any) => boolean, arg: any = null) {\r\n const arr = ConvertArray(array);\r\n let n = arr.length;\r\n for (let i = 0; i < n; i++) {\r\n let currentArrayElement = arr[i];\r\n if (condition(currentArrayElement, arg)) return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport function SortedArray(array: any[], compare: (a: any, b: any) => number) {\r\n let v1 = array.slice();\r\n v1.sort(compare);\r\n let v2 = [];\r\n for (let e of v1) v2.push(e);\r\n return v2;\r\n}\r\n\r\nexport function Equals(a: any, b: any) {\r\n if (a == null || b == null) debugger;\r\n return mod.Equals(a, b);\r\n}\r\n\r\nexport async function WaitUntil(delay: number, cond: () => boolean) {\r\n // complete rush hack. this will likely wait way too long and other problems.\r\n let deltaCount = 10;\r\n let deltaWait = delay / deltaCount;\r\n for (let t = 0; t < deltaCount; t++) {\r\n if (!cond()) break;\r\n await mod.Wait(deltaWait);\r\n }\r\n}\r\n\r\nexport class ConditionState {\r\n lastState: boolean;\r\n\r\n constructor() {\r\n this.lastState = false;\r\n }\r\n\r\n update(newState: boolean): boolean {\r\n // if the new state is false then reset last state and don't trigger action\r\n if (!newState) {\r\n this.lastState = false;\r\n return false;\r\n }\r\n // if last state was already true then don't trigger\r\n if (this.lastState) return false;\r\n // if the state just transitioned to true then trigger\r\n this.lastState = true;\r\n return true;\r\n }\r\n}\r\n\r\nclass Conditions {\r\n constructor() {\r\n this.conditionStates = [];\r\n }\r\n\r\n conditionStates: ConditionState[];\r\n\r\n getConditionState(n: number): ConditionState {\r\n while (n >= this.conditionStates.length) {\r\n this.conditionStates.push(new ConditionState());\r\n }\r\n return this.conditionStates[n];\r\n }\r\n}\r\n\r\nlet playerConditions: Conditions[] = [];\r\nlet teamConditions: Conditions[] = [];\r\nlet capturePointConditions: Conditions[] = [];\r\nlet mcomConditions: Conditions[] = [];\r\nlet vehicleConditions: Conditions[] = [];\r\nlet globalConditions: Conditions = new Conditions();\r\n\r\nfunction getObjectCondition(id: number, objectConditions: Conditions[], n: number) {\r\n while (id >= objectConditions.length) {\r\n objectConditions.push(new Conditions());\r\n }\r\n let conditions = objectConditions[id];\r\n return conditions.getConditionState(n);\r\n}\r\n\r\nexport function getPlayerCondition(obj: mod.Player, n: number) {\r\n let id = getPlayerId(obj);\r\n while (id >= playerConditions.length) {\r\n playerConditions.push(new Conditions());\r\n }\r\n let conditions = playerConditions[id];\r\n return conditions.getConditionState(n);\r\n}\r\n\r\nexport function getTeamCondition(team: mod.Team, n: number) {\r\n let id = getTeamId(team);\r\n while (id >= teamConditions.length) {\r\n teamConditions.push(new Conditions());\r\n }\r\n let conditions = teamConditions[id];\r\n return conditions.getConditionState(n);\r\n}\r\n\r\nexport function getCapturePointCondition(obj: mod.CapturePoint, n: number) {\r\n let id = mod.GetObjId(obj);\r\n return getObjectCondition(id, capturePointConditions, n);\r\n}\r\n\r\nexport function getMCOMCondition(obj: mod.MCOM, n: number) {\r\n let id = mod.GetObjId(obj);\r\n return getObjectCondition(id, mcomConditions, n);\r\n}\r\n\r\nexport function getVehicleCondition(obj: mod.Vehicle, n: number) {\r\n let id = mod.GetObjId(obj);\r\n return getObjectCondition(id, vehicleConditions, n);\r\n}\r\n\r\nexport function getGlobalCondition(n: number) {\r\n return globalConditions.getConditionState(n);\r\n}\r\n\r\nexport function getPlayersInTeam(team: mod.Team) {\r\n const allPlayers = mod.AllPlayers();\r\n const n = mod.CountOf(allPlayers);\r\n let teamMembers = [];\r\n\r\n for (let i = 0; i < n; i++) {\r\n let player = mod.ValueInArray(allPlayers, i) as mod.Player;\r\n if (mod.GetTeam(player) == team) {\r\n teamMembers.push(player);\r\n }\r\n }\r\n return teamMembers;\r\n}\r\n\r\n//-----------------------------------------------------------------------------------------------//\r\n//-----------------------------------------------------------------------------------------------//\r\n//-----------------------------------------------------------------------------------------------//\r\n//-----------------------------------------------------------------------------------------------//\r\n// Helper functions to create UI from a JSON object tree:\r\n//-----------------------------------------------------------------------------------------------//\r\n\r\ntype UIVector = mod.Vector | number[];\r\n\r\ninterface UIParams {\r\n name: string;\r\n type: string;\r\n position: any;\r\n size: any;\r\n anchor: mod.UIAnchor;\r\n parent: mod.UIWidget;\r\n visible: boolean;\r\n textLabel: string;\r\n textColor: UIVector;\r\n textAlpha: number;\r\n textSize: number;\r\n textAnchor: mod.UIAnchor;\r\n padding: number;\r\n bgColor: UIVector;\r\n bgAlpha: number;\r\n bgFill: mod.UIBgFill;\r\n imageType: mod.UIImageType;\r\n imageColor: UIVector;\r\n imageAlpha: number;\r\n teamId?: mod.Team;\r\n playerId?: mod.Player;\r\n children?: any[];\r\n buttonEnabled: boolean;\r\n buttonColorBase: UIVector;\r\n buttonAlphaBase: number;\r\n buttonColorDisabled: UIVector;\r\n buttonAlphaDisabled: number;\r\n buttonColorPressed: UIVector;\r\n buttonAlphaPressed: number;\r\n buttonColorHover: UIVector;\r\n buttonAlphaHover: number;\r\n buttonColorFocused: UIVector;\r\n buttonAlphaFocused: number;\r\n}\r\n\r\nfunction __asModVector(param: number[] | mod.Vector) {\r\n if (Array.isArray(param)) return mod.CreateVector(param[0], param[1], param.length == 2 ? 0 : param[2]);\r\n else return param;\r\n}\r\n\r\nfunction __asModMessage(param: string | mod.Message) {\r\n if (typeof param === 'string') return mod.Message(param);\r\n return param;\r\n}\r\n\r\nfunction __fillInDefaultArgs(params: UIParams) {\r\n if (!params.hasOwnProperty('name')) params.name = '';\r\n if (!params.hasOwnProperty('position')) params.position = mod.CreateVector(0, 0, 0);\r\n if (!params.hasOwnProperty('size')) params.size = mod.CreateVector(100, 100, 0);\r\n if (!params.hasOwnProperty('anchor')) params.anchor = mod.UIAnchor.TopLeft;\r\n if (!params.hasOwnProperty('parent')) params.parent = mod.GetUIRoot();\r\n if (!params.hasOwnProperty('visible')) params.visible = true;\r\n if (!params.hasOwnProperty('padding')) params.padding = params.type == 'Container' ? 0 : 8;\r\n if (!params.hasOwnProperty('bgColor')) params.bgColor = mod.CreateVector(0.25, 0.25, 0.25);\r\n if (!params.hasOwnProperty('bgAlpha')) params.bgAlpha = 0.5;\r\n if (!params.hasOwnProperty('bgFill')) params.bgFill = mod.UIBgFill.Solid;\r\n}\r\n\r\nfunction __setNameAndGetWidget(uniqueName: any, params: any) {\r\n let widget = mod.FindUIWidgetWithName(uniqueName) as mod.UIWidget;\r\n mod.SetUIWidgetName(widget, params.name);\r\n return widget;\r\n}\r\n\r\nconst __cUniqueName = '----uniquename----';\r\n\r\nfunction __addUIContainer(params: UIParams) {\r\n __fillInDefaultArgs(params);\r\n let restrict = params.teamId ?? params.playerId;\r\n if (restrict) {\r\n mod.AddUIContainer(\r\n __cUniqueName,\r\n __asModVector(params.position),\r\n __asModVector(params.size),\r\n params.anchor,\r\n params.parent,\r\n params.visible,\r\n params.padding,\r\n __asModVector(params.bgColor),\r\n params.bgAlpha,\r\n params.bgFill,\r\n restrict\r\n );\r\n } else {\r\n mod.AddUIContainer(\r\n __cUniqueName,\r\n __asModVector(params.position),\r\n __asModVector(params.size),\r\n params.anchor,\r\n params.parent,\r\n params.visible,\r\n params.padding,\r\n __asModVector(params.bgColor),\r\n params.bgAlpha,\r\n params.bgFill\r\n );\r\n }\r\n let widget = __setNameAndGetWidget(__cUniqueName, params);\r\n if (params.children) {\r\n params.children.forEach((childParams: any) => {\r\n childParams.parent = widget;\r\n __addUIWidget(childParams);\r\n });\r\n }\r\n return widget;\r\n}\r\n\r\nfunction __fillInDefaultTextArgs(params: UIParams) {\r\n if (!params.hasOwnProperty('textLabel')) params.textLabel = '';\r\n if (!params.hasOwnProperty('textSize')) params.textSize = 0;\r\n if (!params.hasOwnProperty('textColor')) params.textColor = mod.CreateVector(1, 1, 1);\r\n if (!params.hasOwnProperty('textAlpha')) params.textAlpha = 1;\r\n if (!params.hasOwnProperty('textAnchor')) params.textAnchor = mod.UIAnchor.CenterLeft;\r\n}\r\n\r\nfunction __addUIText(params: UIParams) {\r\n __fillInDefaultArgs(params);\r\n __fillInDefaultTextArgs(params);\r\n let restrict = params.teamId ?? params.playerId;\r\n if (restrict) {\r\n mod.AddUIText(\r\n __cUniqueName,\r\n __asModVector(params.position),\r\n __asModVector(params.size),\r\n params.anchor,\r\n params.parent,\r\n params.visible,\r\n params.padding,\r\n __asModVector(params.bgColor),\r\n params.bgAlpha,\r\n params.bgFill,\r\n __asModMessage(params.textLabel),\r\n params.textSize,\r\n __asModVector(params.textColor),\r\n params.textAlpha,\r\n params.textAnchor,\r\n restrict\r\n );\r\n } else {\r\n mod.AddUIText(\r\n __cUniqueName,\r\n __asModVector(params.position),\r\n __asModVector(params.size),\r\n params.anchor,\r\n params.parent,\r\n params.visible,\r\n params.padding,\r\n __asModVector(params.bgColor),\r\n params.bgAlpha,\r\n params.bgFill,\r\n __asModMessage(params.textLabel),\r\n params.textSize,\r\n __asModVector(params.textColor),\r\n params.textAlpha,\r\n params.textAnchor\r\n );\r\n }\r\n return __setNameAndGetWidget(__cUniqueName, params);\r\n}\r\n\r\nfunction __fillInDefaultImageArgs(params: any) {\r\n if (!params.hasOwnProperty('imageType')) params.imageType = mod.UIImageType.None;\r\n if (!params.hasOwnProperty('imageColor')) params.imageColor = mod.CreateVector(1, 1, 1);\r\n if (!params.hasOwnProperty('imageAlpha')) params.imageAlpha = 1;\r\n}\r\n\r\nfunction __addUIImage(params: UIParams) {\r\n __fillInDefaultArgs(params);\r\n __fillInDefaultImageArgs(params);\r\n let restrict = params.teamId ?? params.playerId;\r\n if (restrict) {\r\n mod.AddUIImage(\r\n __cUniqueName,\r\n __asModVector(params.position),\r\n __asModVector(params.size),\r\n params.anchor,\r\n params.parent,\r\n params.visible,\r\n params.padding,\r\n __asModVector(params.bgColor),\r\n params.bgAlpha,\r\n params.bgFill,\r\n params.imageType,\r\n __asModVector(params.imageColor),\r\n params.imageAlpha,\r\n restrict\r\n );\r\n } else {\r\n mod.AddUIImage(\r\n __cUniqueName,\r\n __asModVector(params.position),\r\n __asModVector(params.size),\r\n params.anchor,\r\n params.parent,\r\n params.visible,\r\n params.padding,\r\n __asModVector(params.bgColor),\r\n params.bgAlpha,\r\n params.bgFill,\r\n params.imageType,\r\n __asModVector(params.imageColor),\r\n params.imageAlpha\r\n );\r\n }\r\n return __setNameAndGetWidget(__cUniqueName, params);\r\n}\r\n\r\nfunction __fillInDefaultArg(params: any, argName: any, defaultValue: any) {\r\n if (!params.hasOwnProperty(argName)) params[argName] = defaultValue;\r\n}\r\n\r\nfunction __fillInDefaultButtonArgs(params: any) {\r\n if (!params.hasOwnProperty('buttonEnabled')) params.buttonEnabled = true;\r\n if (!params.hasOwnProperty('buttonColorBase')) params.buttonColorBase = mod.CreateVector(0.7, 0.7, 0.7);\r\n if (!params.hasOwnProperty('buttonAlphaBase')) params.buttonAlphaBase = 1;\r\n if (!params.hasOwnProperty('buttonColorDisabled')) params.buttonColorDisabled = mod.CreateVector(0.2, 0.2, 0.2);\r\n if (!params.hasOwnProperty('buttonAlphaDisabled')) params.buttonAlphaDisabled = 0.5;\r\n if (!params.hasOwnProperty('buttonColorPressed')) params.buttonColorPressed = mod.CreateVector(0.25, 0.25, 0.25);\r\n if (!params.hasOwnProperty('buttonAlphaPressed')) params.buttonAlphaPressed = 1;\r\n if (!params.hasOwnProperty('buttonColorHover')) params.buttonColorHover = mod.CreateVector(1, 1, 1);\r\n if (!params.hasOwnProperty('buttonAlphaHover')) params.buttonAlphaHover = 1;\r\n if (!params.hasOwnProperty('buttonColorFocused')) params.buttonColorFocused = mod.CreateVector(1, 1, 1);\r\n if (!params.hasOwnProperty('buttonAlphaFocused')) params.buttonAlphaFocused = 1;\r\n}\r\n\r\nfunction __addUIButton(params: UIParams) {\r\n __fillInDefaultArgs(params);\r\n __fillInDefaultButtonArgs(params);\r\n let restrict = params.teamId ?? params.playerId;\r\n if (restrict) {\r\n mod.AddUIButton(\r\n __cUniqueName,\r\n __asModVector(params.position),\r\n __asModVector(params.size),\r\n params.anchor,\r\n params.parent,\r\n params.visible,\r\n params.padding,\r\n __asModVector(params.bgColor),\r\n params.bgAlpha,\r\n params.bgFill,\r\n params.buttonEnabled,\r\n __asModVector(params.buttonColorBase),\r\n params.buttonAlphaBase,\r\n __asModVector(params.buttonColorDisabled),\r\n params.buttonAlphaDisabled,\r\n __asModVector(params.buttonColorPressed),\r\n params.buttonAlphaPressed,\r\n __asModVector(params.buttonColorHover),\r\n params.buttonAlphaHover,\r\n __asModVector(params.buttonColorFocused),\r\n params.buttonAlphaFocused,\r\n restrict\r\n );\r\n } else {\r\n mod.AddUIButton(\r\n __cUniqueName,\r\n __asModVector(params.position),\r\n __asModVector(params.size),\r\n params.anchor,\r\n params.parent,\r\n params.visible,\r\n params.padding,\r\n __asModVector(params.bgColor),\r\n params.bgAlpha,\r\n params.bgFill,\r\n params.buttonEnabled,\r\n __asModVector(params.buttonColorBase),\r\n params.buttonAlphaBase,\r\n __asModVector(params.buttonColorDisabled),\r\n params.buttonAlphaDisabled,\r\n __asModVector(params.buttonColorPressed),\r\n params.buttonAlphaPressed,\r\n __asModVector(params.buttonColorHover),\r\n params.buttonAlphaHover,\r\n __asModVector(params.buttonColorFocused),\r\n params.buttonAlphaFocused\r\n );\r\n }\r\n return __setNameAndGetWidget(__cUniqueName, params);\r\n}\r\n\r\nfunction __addUIWidget(params: UIParams) {\r\n if (params == null) return undefined;\r\n if (params.type == 'Container') return __addUIContainer(params);\r\n else if (params.type == 'Text') return __addUIText(params);\r\n else if (params.type == 'Image') return __addUIImage(params);\r\n else if (params.type == 'Button') return __addUIButton(params);\r\n return undefined;\r\n}\r\n\r\nexport function ParseUI(...params: any[]) {\r\n let widget: mod.UIWidget | undefined;\r\n for (let a = 0; a < params.length; a++) {\r\n widget = __addUIWidget(params[a] as UIParams);\r\n }\r\n return widget;\r\n}\r\n\r\nexport function DisplayCustomNotificationMessage(msg: mod.Message, custom: mod.CustomNotificationSlots, duration: number, target?: mod.Player | mod.Team) {\r\n const CreateHeader = async (widgetId: string, msg: mod.Message, targetPlayer: mod.Player, slot: number) => {\r\n mod.AddUIText(\r\n widgetId,\r\n mod.CreateVector(50, 250 + slot * (40 + 5), 0),\r\n mod.CreateVector(250, 60, 0),\r\n mod.UIAnchor.TopRight,\r\n mod.GetUIRoot(),\r\n true,\r\n 8,\r\n mod.CreateVector(1, 1, 1),\r\n 1,\r\n mod.UIBgFill.Blur,\r\n msg,\r\n 30,\r\n mod.CreateVector(1, 1, 1),\r\n 1,\r\n mod.UIAnchor.Center,\r\n targetPlayer\r\n );\r\n if (duration > 0) {\r\n await mod.Wait(duration);\r\n mod.DeleteUIWidget(mod.FindUIWidgetWithName(widgetId));\r\n }\r\n };\r\n const CreateSubText = async (widgetId: string, msg: mod.Message, targetPlayer: mod.Player, slot: number) => {\r\n mod.AddUIText(\r\n widgetId,\r\n mod.CreateVector(85, 270 + slot * (40 + 3), 0),\r\n mod.CreateVector(125, 40, 0),\r\n mod.UIAnchor.TopRight,\r\n mod.GetUIRoot(),\r\n true,\r\n 8,\r\n mod.CreateVector(1, 1, 1),\r\n 1,\r\n mod.UIBgFill.Blur,\r\n msg,\r\n 20,\r\n mod.CreateVector(1, 1, 1),\r\n 1,\r\n mod.UIAnchor.Center,\r\n targetPlayer\r\n );\r\n if (duration > 0) {\r\n await mod.Wait(duration);\r\n mod.DeleteUIWidget(mod.FindUIWidgetWithName(widgetId));\r\n }\r\n };\r\n const createNotificationFunction = custom < 1 ? CreateHeader : CreateSubText;\r\n\r\n if (target) {\r\n // if target is player, fill message in their slot\r\n if (mod.IsType(target, mod.Types.Player)) {\r\n const widgetId = custom + String(target);\r\n createNotificationFunction(widgetId, msg, target as mod.Player, custom);\r\n }\r\n // if target is team, fill message in slot for all players on team\r\n else if (mod.IsType(target, mod.Types.Team)) {\r\n const teamMates = getPlayersInTeam(target as mod.Team);\r\n teamMates.forEach((player) => {\r\n const widgetId = custom + String(player);\r\n createNotificationFunction(widgetId, msg, player, custom);\r\n });\r\n }\r\n } else {\r\n const allPlayers = mod.AllPlayers();\r\n const n = mod.CountOf(allPlayers);\r\n for (let i = 0; i < n; i++) {\r\n let player = mod.ValueInArray(allPlayers, i) as mod.Player;\r\n const widgetId = custom + String(player);\r\n createNotificationFunction(widgetId, msg, player, custom);\r\n }\r\n }\r\n}\r\n\r\nexport function ShowEventGameModeMessage(event: mod.Message, target?: mod.Player | mod.Team) {\r\n //TODO: restore these once DisplayGameModeMessage is fixed\r\n // if (target) {\r\n // mod.DisplayGameModeMessage(event, target as mod.Player );\r\n // } else{\r\n // mod.DisplayGameModeMessage(event);\r\n // }\r\n\r\n const MakeShiftDisplayGameModeMessage = async (message: mod.Message, target?: mod.Player | mod.Team) => {\r\n const widgetId = 'GameModeMessage';\r\n if (target) {\r\n mod.AddUIText(\r\n widgetId,\r\n mod.CreateVector(0, 0, 0),\r\n mod.CreateVector(2500, 80, 0),\r\n mod.UIAnchor.TopCenter,\r\n mod.GetUIRoot(),\r\n true,\r\n 8,\r\n mod.CreateVector(1, 1, 1),\r\n 1,\r\n mod.UIBgFill.Blur,\r\n message,\r\n 30,\r\n mod.CreateVector(1, 1, 1),\r\n 1,\r\n mod.UIAnchor.Center,\r\n target as mod.Player\r\n );\r\n } else {\r\n mod.AddUIText(\r\n widgetId,\r\n mod.CreateVector(0, 0, 0),\r\n mod.CreateVector(2500, 80, 0),\r\n mod.UIAnchor.TopCenter,\r\n mod.GetUIRoot(),\r\n true,\r\n 8,\r\n mod.CreateVector(1, 1, 1),\r\n 1,\r\n mod.UIBgFill.Blur,\r\n message,\r\n 30,\r\n mod.CreateVector(1, 1, 1),\r\n 1,\r\n mod.UIAnchor.Center\r\n );\r\n }\r\n\r\n await mod.Wait(6);\r\n mod.DeleteUIWidget(mod.FindUIWidgetWithName(widgetId));\r\n };\r\n\r\n if (target) {\r\n MakeShiftDisplayGameModeMessage(event, target as mod.Player);\r\n } else {\r\n MakeShiftDisplayGameModeMessage(event);\r\n }\r\n}\r\n\r\nexport function ShowHighlightedGameModeMessage(event: mod.Message, target?: mod.Player | mod.Team) {\r\n if (target) {\r\n mod.DisplayHighlightedWorldLogMessage(event, target as mod.Player);\r\n } else {\r\n mod.DisplayHighlightedWorldLogMessage(event);\r\n }\r\n}\r\n\r\nexport function ShowNotificationMessage(msg: mod.Message, target?: mod.Player | mod.Team) {\r\n if (target) {\r\n mod.DisplayNotificationMessage(msg, target as mod.Player);\r\n } else {\r\n mod.DisplayNotificationMessage(msg);\r\n }\r\n}\r\n\r\nexport function ClearAllCustomNotificationMessages(target: mod.Player) {\r\n try {\r\n ClearCustomNotificationMessage(mod.CustomNotificationSlots.HeaderText, target);\r\n } catch {}\r\n try {\r\n ClearCustomNotificationMessage(mod.CustomNotificationSlots.MessageText1, target);\r\n } catch {}\r\n try {\r\n ClearCustomNotificationMessage(mod.CustomNotificationSlots.MessageText2, target);\r\n } catch {}\r\n try {\r\n ClearCustomNotificationMessage(mod.CustomNotificationSlots.MessageText3, target);\r\n } catch {}\r\n try {\r\n ClearCustomNotificationMessage(mod.CustomNotificationSlots.MessageText4, target);\r\n } catch {}\r\n}\r\n\r\nexport function ClearCustomNotificationMessage(custom: mod.CustomNotificationSlots, target?: mod.Player | mod.Team) {\r\n try {\r\n if (target) {\r\n // if target is player, just delete message in their slot\r\n if (mod.IsType(target, mod.Types.Player)) {\r\n mod.DeleteUIWidget(mod.FindUIWidgetWithName(custom + String(target as mod.Player)));\r\n }\r\n // if target is team, delete message in slot for all players on team\r\n else if (mod.IsType(target, mod.Types.Team)) {\r\n const teamMembers = getPlayersInTeam(target as mod.Team);\r\n for (let i = 0; i < teamMembers.length; i++) {\r\n let player = teamMembers[i];\r\n mod.DeleteUIWidget(mod.FindUIWidgetWithName(custom + String(player)));\r\n }\r\n }\r\n } else {\r\n // if no target, delete for all players\r\n const allPlayers = mod.AllPlayers();\r\n const n = mod.CountOf(allPlayers);\r\n for (let i = 0; i < n; i++) {\r\n let player = mod.ValueInArray(allPlayers, i) as mod.Player;\r\n mod.DeleteUIWidget(mod.FindUIWidgetWithName(custom + String(player)));\r\n }\r\n }\r\n } catch {\r\n console.error('Could not clear custom message for specified target(s)');\r\n }\r\n}\r\n","import { ParseUI } from \"../../modlib/index.ts\";\nimport { MakeMessage } from \"../message.ts\";\n\nexport class CountdownUI {\n\tstatic #uniqueID = 0;\n\t#playerId: mod.Player;\n\t#playerProfileId: number;\n\n\theaderWidget: mod.UIWidget | undefined;\n\ttextWidget: mod.UIWidget | undefined;\n\n\tconstructor(playerId: mod.Player) {\n\t\tthis.#playerProfileId = CountdownUI.#uniqueID++;\n\t\tthis.#playerId = playerId;\n\n\t\tconst bfBlueColor = [0.678, 0.753, 0.8];\n\t\tconst height = 125;\n\t\tthis.headerWidget = ParseUI({\n\t\t\ttype: \"Container\",\n\t\t\tsize: [150, height],\n\t\t\tposition: [0, 50],\n\t\t\tname: `countdown_${this.#playerProfileId}`,\n\t\t\tanchor: mod.UIAnchor.TopCenter,\n\t\t\tbgFill: mod.UIBgFill.Blur,\n\t\t\tbgColor: [0.2, 0.2, 0.3],\n\t\t\tbgAlpha: 0.9,\n\t\t\tplayerId: this.#playerId,\n\t\t\tvisible: false,\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttype: \"Container\",\n\t\t\t\t\tname: `countdown_line_right_${this.#playerProfileId}`,\n\t\t\t\t\tsize: [2, height],\n\t\t\t\t\tposition: [75, 0],\n\t\t\t\t\tanchor: mod.UIAnchor.Center,\n\t\t\t\t\tbgFill: mod.UIBgFill.Solid,\n\t\t\t\t\tbgColor: bfBlueColor,\n\t\t\t\t\tbgAlpha: 1,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: \"Container\",\n\t\t\t\t\tname: `countdown_line_left_${this.#playerProfileId}`,\n\t\t\t\t\tsize: [2, height],\n\t\t\t\t\tposition: [-75, 0],\n\t\t\t\t\tanchor: mod.UIAnchor.Center,\n\t\t\t\t\tbgFill: mod.UIBgFill.Solid,\n\t\t\t\t\tbgColor: bfBlueColor,\n\t\t\t\t\tbgAlpha: 1,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: \"Text\",\n\t\t\t\t\tname: `countdown_text${this.#playerProfileId}`,\n\t\t\t\t\tsize: [100, height],\n\t\t\t\t\tposition: [0, 0],\n\t\t\t\t\tanchor: mod.UIAnchor.Center,\n\t\t\t\t\tbgFill: mod.UIBgFill.None,\n\t\t\t\t\ttextColor: bfBlueColor,\n\t\t\t\t\ttextAnchor: mod.UIAnchor.Center,\n\t\t\t\t\ttextLabel: MakeMessage(mod.stringkeys.__sdk__CountdownUI),\n\t\t\t\t\ttextSize: 85,\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t\tthis.textWidget = mod.FindUIWidgetWithName(\n\t\t\t`countdown_text${this.#playerProfileId}`,\n\t\t);\n\t}\n\n\tdelete() {\n\t\tthis.headerWidget && mod.DeleteUIWidget(this.headerWidget);\n\t\t//this.textWidget && mod.DeleteUIWidget(this.textWidget)\n\t}\n\n\topen(text: string, countdowntime: number) {\n\t\tthis.headerWidget && mod.SetUIWidgetVisible(this.headerWidget, true);\n\t\tthis.textWidget &&\n\t\t\tmod.SetUITextLabel(this.textWidget, MakeMessage(text, countdowntime));\n\t}\n\n\tupdate(text: string, countdowntime: number) {\n\t\tthis.textWidget &&\n\t\t\tmod.SetUITextLabel(this.textWidget, MakeMessage(text, countdowntime));\n\t}\n\n\tasync close(delayclose: number = 0) {\n\t\tawait mod.Wait(delayclose);\n\t\tthis.headerWidget && mod.SetUIWidgetVisible(this.headerWidget, false);\n\t}\n}\n\nexport const bf6Strings = {\n\t__sdk__CountdownUI: \"{}\",\n};\n","import * as countdown from \"./countdown.ts\";\n\nexport * from \"./countdown.ts\";\n\nexport default {\n\tcountdown,\n};\n","import * as message from \"./message.ts\";\n\nexport * from \"./message.ts\";\n\nimport * as ui from \"./ui/index.ts\";\n\nexport * from \"./ui/index.ts\";\n\nexport default {\n\tmessage,\n\tui,\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bf6mods/sdk",
3
- "version": "1.0.2",
3
+ "version": "1.1.1",
4
4
  "description": "TypeScript definitions for the BF6 modding API",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -8,6 +8,10 @@
8
8
  ".": {
9
9
  "types": "./dist/index.d.ts",
10
10
  "import": "./dist/index.js"
11
+ },
12
+ "./std": {
13
+ "types": "./dist/std/index.d.ts",
14
+ "import": "./dist/std/index.js"
11
15
  }
12
16
  },
13
17
  "repository": {
@@ -18,7 +22,7 @@
18
22
  "dist/"
19
23
  ],
20
24
  "scripts": {
21
- "build": "tsup"
25
+ "build": "tsdown"
22
26
  },
23
27
  "keywords": [
24
28
  "bf6",