@steambrew/client
Version:
A support library for creating plugins with Millennium.
37 lines (36 loc) • 1.21 kB
JavaScript
export * from './patcher';
export * from './react/react';
export * from './react/fc';
export * from './react/treepatcher';
export * from './static-classes';
export function joinClassNames(...classes) {
return classes.join(' ');
}
export function sleep(ms) {
return new Promise((res) => setTimeout(res, ms));
}
/**
* Finds the SP window, since it is a render target as of 10-19-2022's beta
*/
export function findSP() {
// old (SP as host)
if (document.title == 'SP')
return window;
// new (SP as popup)
const navTrees = getGamepadNavigationTrees();
return navTrees?.find((x) => x.m_ID == 'root_1_').Root.Element.ownerDocument.defaultView;
}
/**
* Gets the correct FocusNavController, as the Feb 22 2023 beta has two for some reason.
*/
export function getFocusNavController() {
return window.GamepadNavTree?.m_context?.m_controller || window.FocusNavController;
}
/**
* Gets the gamepad navigation trees as Valve seems to be moving them.
*/
export function getGamepadNavigationTrees() {
const focusNav = getFocusNavController();
const context = focusNav.m_ActiveContext || focusNav.m_LastActiveContext;
return context?.m_rgGamepadNavigationTrees;
}