Integrate a PrismaUI_F4-based HTML server browser and related tooling. Adds a ThirdParty submodule (framework-F4-Conversion), UI views (CommonwealthOnline browser HTML/JS/CSS), and multiple plugin headers/sources to bridge PrismaUI/Scaleform, handle menu input, and manage server browser data and actions (mock server list, join/connect flow). Key changes: - New build/deploy scripts: build-prismaui.bat, build-all.bat, deploy-all.bat, deploy-ui.bat and a PowerShell helper for linking the Ultralight SDK (ULTRALIGHT_SDK_PATH, default F:\\UltralightSDK). - Plugin additions: F4TPrismaUI, F4TScaleformUI, F4TServerBrowserBridge, F4TServerBrowserData, F4TMenuInput, F4TDebugOverlay and implementations to create/show/hide the HTML view, forward controller input, register Scaleform functions (openManager/closeManager), and push UI events. - Networking: add ConnectToServer(host,port) and keep ConnectToLocalServer() as wrapper; update connection logs and error handling. - Main menu SWF/AS updates: updated MainMenu.swf and MainMenu.as to call closeManager() when leaving multiplayer and to integrate open/close hooks. - Documentation: plugin/setup.md updated with PrismaUI build/deploy instructions. - Removed Main_ModManager.swf (deleted). Primary intent: provide an in-game HTML server browser (toggleable with F9 or Scaleform calls), wire up controller input, and add build/deploy workflow for PrismaUI/Ultralight so developers can build and deploy the UI and plugin together. Mock server data is used for now; network join/connect plumbing is provided for local/dev servers.
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
(function () {
|
|
"use strict";
|
|
|
|
window.CO_ControllerPrompts = {
|
|
render: function (root, state) {
|
|
var el = root.querySelector(".co-prompts");
|
|
if (!el) return;
|
|
|
|
var prompts = CO_ControllerPrompts.getPrompts(state);
|
|
el.innerHTML = prompts.map(function (p) {
|
|
return (
|
|
'<div class="co-prompt">' +
|
|
'<span class="co-prompt-key">' + p.key + "</span>" +
|
|
"<span>" + p.label + "</span>" +
|
|
"</div>"
|
|
);
|
|
}).join("");
|
|
},
|
|
|
|
getPrompts: function (state) {
|
|
if (state.joinOverlay) {
|
|
if (state.joinOverlay.error) {
|
|
return [{ key: "B", label: "Dismiss" }];
|
|
}
|
|
return [];
|
|
}
|
|
|
|
if (state.activeTab === "direct-connect") {
|
|
return [
|
|
{ key: "A", label: "Connect" },
|
|
{ key: "B", label: "Back" }
|
|
];
|
|
}
|
|
|
|
var base = [
|
|
{ key: "A", label: "Join" },
|
|
{ key: "X", label: "Refresh" },
|
|
{ key: "Y", label: "Favorite" },
|
|
{ key: "B", label: "Back" }
|
|
];
|
|
|
|
if (state.focusZone === "tabs") {
|
|
return [
|
|
{ key: "LB", label: "Prev Tab" },
|
|
{ key: "RB", label: "Next Tab" },
|
|
{ key: "B", label: "Back" }
|
|
];
|
|
}
|
|
|
|
return base;
|
|
}
|
|
};
|
|
})();
|