136 lines
7.5 KiB
HTML
136 lines
7.5 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<meta name="theme-color" content="#10130f" />
|
||
<meta name="description" content="Live Minecraft bot dashboard" />
|
||
<title>Mosfet · Minecraft Bot</title>
|
||
<link rel="stylesheet" href="/static/css/dashboard.css?v=19" />
|
||
<script defer src="/static/js/dashboard.js?v=19"></script>
|
||
</head>
|
||
<body>
|
||
<div class="shell">
|
||
<main>
|
||
<section class="hero panel">
|
||
<div class="hero-main">
|
||
<div class="eyebrow">LIVE SESSION <span class="eyebrow-line"></span></div>
|
||
<h1 id="bot-name">Mosfet<span class="name-period">.</span></h1>
|
||
<p id="session-subtitle" class="session-subtitle">Waiting for the bot connection</p>
|
||
</div>
|
||
<div class="hero-coordinates">
|
||
<div class="coordinate-label">CURRENT POSITION</div>
|
||
<div id="position" class="coordinate-value">—</div>
|
||
<div id="dimension" class="dimension-value">NO DIMENSION</div>
|
||
</div>
|
||
<div class="hero-grid" aria-hidden="true"></div>
|
||
<div class="hero-glow" aria-hidden="true"></div>
|
||
</section>
|
||
|
||
<section class="stats-grid" aria-label="Bot status">
|
||
<article class="stat-card panel">
|
||
<div class="stat-top"><span class="stat-label">HEALTH</span><span class="stat-icon heart">♥</span></div>
|
||
<div class="stat-value"><span id="health-value">—</span><small>/ 20</small></div>
|
||
<div class="meter"><span id="health-meter" class="meter-fill health-fill"></span></div>
|
||
</article>
|
||
<article class="stat-card panel">
|
||
<div class="stat-top"><span class="stat-label">HUNGER</span><span class="stat-icon food">◆</span></div>
|
||
<div class="stat-value"><span id="food-value">—</span><small>/ 20</small></div>
|
||
<div class="meter"><span id="food-meter" class="meter-fill food-fill"></span></div>
|
||
<div id="food-saturation" class="stat-caption">Saturation —</div>
|
||
</article>
|
||
<article class="stat-card panel">
|
||
<div class="stat-top"><span class="stat-label">MOVEMENT</span><span class="live-dot"></span></div>
|
||
<div id="movement-value" class="stat-value stat-word">IDLE</div>
|
||
<div id="movement-detail" class="stat-caption">No active path</div>
|
||
</article>
|
||
<article class="stat-card panel">
|
||
<div class="stat-top"><span class="stat-label">WORLD CACHE</span><span class="stat-icon cache-icon">▦</span></div>
|
||
<div class="stat-value"><span id="chunk-count">—</span><small> chunks</small></div>
|
||
<div id="chunk-detail" class="stat-caption">Waiting for world data</div>
|
||
</article>
|
||
</section>
|
||
|
||
<section class="content-grid">
|
||
<section class="inventory-panel panel">
|
||
<div class="section-heading">
|
||
<div>
|
||
<div class="eyebrow">PLAYER STORAGE</div>
|
||
<h2>Inventory</h2>
|
||
</div>
|
||
<div class="inventory-summary">
|
||
<span id="inventory-count">0 items</span>
|
||
<span class="heading-divider"></span>
|
||
<span id="inventory-slots">0 / 46 slots</span>
|
||
</div>
|
||
</div>
|
||
<div id="inventory-warning" class="inventory-warning" hidden>
|
||
Some item components are not decoded yet; displayed contents may be partial.
|
||
</div>
|
||
<div id="inventory-grid" class="inventory-grid" aria-label="Minecraft inventory"></div>
|
||
<div class="inventory-legend"><span class="legend-swatch"></span> Empty slot <span class="legend-selected"></span> Selected hotbar slot <span class="legend-note">Hover for details · click an item for actions</span></div>
|
||
</section>
|
||
|
||
<aside class="side-column">
|
||
<section id="minimap-panel" class="side-panel panel minimap-panel">
|
||
<div class="section-heading compact-heading">
|
||
<div><div class="eyebrow">WORLD · SURFACE</div><h2>Minimap</h2></div>
|
||
</div>
|
||
<canvas id="minimap-canvas" class="minimap-canvas" width="320" height="240" role="img" aria-label="Surface map centered on the bot"></canvas>
|
||
<div id="minimap-caption" class="minimap-caption">Waiting for world data</div>
|
||
<div class="minimap-controls" aria-label="Minimap controls">
|
||
<button id="minimap-zoom-out" type="button" aria-label="Zoom out" title="Zoom out">−</button>
|
||
<button id="minimap-zoom-in" type="button" aria-label="Zoom in" title="Zoom in">+</button>
|
||
<button id="minimap-north-lock" type="button" aria-label="Lock north to the top" aria-pressed="false" title="Lock north to the top">N ↑</button>
|
||
<button id="minimap-size" type="button" aria-label="Enlarge minimap" aria-pressed="false" title="Enlarge minimap">⤢</button>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="side-panel panel">
|
||
<div class="section-heading compact-heading">
|
||
<div><div class="eyebrow">MULTIPLAYER</div><h2>Players</h2></div>
|
||
<span id="player-count" class="count-badge">0</span>
|
||
</div>
|
||
<div id="player-list" class="player-list"><div class="empty-state">No player data yet</div></div>
|
||
</section>
|
||
|
||
<section class="side-panel panel">
|
||
<div class="section-heading compact-heading">
|
||
<div><div class="eyebrow">AUTOMATION</div><h2>Runtime</h2></div>
|
||
</div>
|
||
<dl class="runtime-list">
|
||
<div><dt>Game mode</dt><dd id="game-mode">—</dd></div>
|
||
<div><dt>Time</dt><dd id="world-time">—</dd></div>
|
||
<div><dt>Active job</dt><dd id="job-state">IDLE</dd></div>
|
||
<div><dt>Path nodes</dt><dd id="path-length">0</dd></div>
|
||
<div><dt>Entities</dt><dd id="entity-count">0 mobs · 0 drops</dd></div>
|
||
<div><dt>AFK</dt><dd id="afk-state">NO</dd></div>
|
||
</dl>
|
||
<div id="movement-error" class="error-box" hidden></div>
|
||
</section>
|
||
</aside>
|
||
</section>
|
||
|
||
<footer class="footer">
|
||
<span class="footer-brand"><span class="footer-mark">■</span> MOSFET / 26.3</span>
|
||
<span id="connection-pill" class="connection-pill is-offline"><i></i><span>OFFLINE</span></span>
|
||
<span id="last-update">Waiting for API data</span>
|
||
</footer>
|
||
</main>
|
||
</div>
|
||
<div id="item-tooltip" class="item-tooltip" role="tooltip" hidden></div>
|
||
<div id="inventory-menu" class="inventory-menu" role="menu" aria-label="Item actions" hidden>
|
||
<div class="inventory-menu-heading">
|
||
<strong id="inventory-menu-title">Item</strong>
|
||
<span id="inventory-menu-meta"></span>
|
||
</div>
|
||
<button type="button" data-inventory-action="one" role="menuitem">Drop one</button>
|
||
<button type="button" data-inventory-action="stack" role="menuitem">Drop whole stack</button>
|
||
<button type="button" data-inventory-action="matching" role="menuitem">Drop all matching</button>
|
||
<div id="inventory-menu-status" class="inventory-menu-status" aria-live="polite" hidden></div>
|
||
<button type="button" class="menu-cancel" data-inventory-action="cancel" role="menuitem">Cancel</button>
|
||
</div>
|
||
<div id="toast" class="toast" role="status" aria-live="polite"></div>
|
||
</body>
|
||
</html>
|