0ad/binaries/data/mods/public/gui/session/developer_overlay/DeveloperOverlayEntityState.js
Ralph Sennhauser 8c20405274
Fix eslint rule 'prefer-const' in gui/session/[a-l]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/session/campaigns \
    binaries/data/mods/public/gui/session/chat \
    binaries/data/mods/public/gui/session/developer_overlay \
    binaries/data/mods/public/gui/session/diplomacy \
    binaries/data/mods/public/gui/session/lobby

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 16:52:52 +02:00

51 lines
1.2 KiB
JavaScript

/**
* This class manages the developer overlay which displays the state of the first selected entity.
*/
class DeveloperOverlayEntityState
{
constructor(selection)
{
this.developerOverlayEntityState = Engine.GetGUIObjectByName("developerOverlayEntityState");
this.selection = selection;
this.updater = this.update.bind(this);
}
setEnabled(enabled)
{
this.developerOverlayEntityState.hidden = !enabled;
if (enabled)
{
registerSimulationUpdateHandler(this.updater);
registerEntitySelectionChangeHandler(this.updater);
}
else
{
unregisterSimulationUpdateHandler(this.updater);
unregisterEntitySelectionChangeHandler(this.updater);
}
}
update()
{
const simState = clone(g_SimState);
simState.players = "<<<omitted>>>";
let text = "simulation: " + uneval(simState);
const selection = this.selection.toList();
if (selection.length)
{
const entState = GetEntityState(selection[0]);
if (entState)
{
const template = GetTemplateData(entState.template);
text += "\n\nentity: {\n";
for (const k in entState)
text += " " + k + ":" + uneval(entState[k]) + "\n";
text += "}\n\ntemplate: " + uneval(template);
}
}
this.developerOverlayEntityState.caption = text.replace(/\[/g, "\\[");
}
}