Files
Commonwealth-Online-Public/ui/views/CommonwealthOnline/browser/index.html
T
andrew fe620020be Add PrismaUI HTML server browser & integration
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.
2026-06-08 14:02:49 +12:00

100 lines
3.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Commonwealth Online</title>
<link rel="stylesheet" href="./styles.css">
</head>
<body>
<div class="co-root" id="coRoot">
<div class="co-panel" id="coPanel">
<header class="co-header">
<h1>Commonwealth Online</h1>
<div class="co-subtitle">Server Browser</div>
</header>
<nav class="co-tabs"></nav>
<div class="co-body">
<div class="co-tab-content">
<div class="co-tab-pane" data-pane="direct-connect"></div>
<div class="co-tab-pane active" data-pane="server-browser">
<div class="co-browser-layout">
<aside class="co-filters"></aside>
<div class="co-server-list-wrap">
<div class="co-server-list-header">
<span></span>
<span>Server Name</span>
<span>Players</span>
<span>Ping</span>
<span>Worldspace</span>
<span>Mode</span>
<span>Status</span>
</div>
<div class="co-server-list"></div>
</div>
<aside class="co-details"></aside>
</div>
</div>
<div class="co-tab-pane" data-pane="favorites">
<div class="co-browser-layout co-favorites-layout">
<div class="co-server-list-wrap">
<div class="co-server-list-header">
<span></span>
<span>Server Name</span>
<span>Players</span>
<span>Ping</span>
<span>Worldspace</span>
<span>Mode</span>
<span>Status</span>
</div>
<div class="co-server-list co-favorites-list"></div>
</div>
</div>
</div>
<div class="co-tab-pane" data-pane="recent">
<div class="co-browser-layout co-recent-layout">
<div class="co-server-list-wrap">
<div class="co-server-list-header">
<span></span>
<span>Server Name</span>
<span>Players</span>
<span>Ping</span>
<span>Worldspace</span>
<span>Mode</span>
<span>Status</span>
</div>
<div class="co-server-list co-recent-list"></div>
</div>
</div>
</div>
</div>
</div>
<footer class="co-action-bar">
<div class="co-status-text">
Status: <span id="coConnectionStatus">Online</span>
<span class="co-count" id="coServerCount"></span>
</div>
<div class="co-prompts"></div>
</footer>
<div class="co-join-overlay hidden" id="coJoinOverlay">
<div class="co-spinner"></div>
<p id="coJoinMessage">Connecting...</p>
</div>
</div>
</div>
<script src="./components/mock-data.js"></script>
<script src="./components/tabs.js"></script>
<script src="./components/filters.js"></script>
<script src="./components/server-list.js"></script>
<script src="./components/server-details.js"></script>
<script src="./components/controller-prompts.js"></script>
<script src="./components/direct-connect.js"></script>
<script src="./app.js"></script>
</body>
</html>