pages235/src/react/KeybindingsScreenProvider.tsx
Vitaly 9b72cdb8f0
feat: migrate to mc-assets & Rsbuild better resource pack support (#164)
The complete migration from `minecraft-assets` to [`mc-assets`](https://npmjs.com/mc-assets).

Now all block states & block models are processed dynamically! So it is now easily possible to implement custom models

- no post-install work anymore: the building is now 3x faster and 4x faster in docker
- drop 10x total deploy size
- display world ~1.5x faster
- fix snow & repeater state parser (they didn't render correctly)

rsbuild pipeline!

- the initial app load is faster ~1.2
- much fewer requests are made & cached
- dev reloads are fast now

Resource pack changes:

- now textures are reloaded much more quickly on the fly
- add hotkey to quickly reload textures (for debugging) assigned to F3+T (open dev widget is now assigned to F3+Y)
- add a way to disable resource pack instead of uninstalling it
- items render from resource pack are now support
- resource pack widgets & icons are now supported
2024-07-26 13:12:28 +03:00

22 lines
813 B
TypeScript

import { createContext, useState } from 'react'
import { contro, updateBinds } from '../controls'
import KeybindingsScreen from './KeybindingsScreen'
import { useIsModalActive } from './utilsApp'
const bindingActions = {
updateBinds
}
export const BindingActionsContext = createContext(bindingActions)
export default () => {
const [bindActions, setBindActions] = useState(bindingActions)
const isModalActive = useIsModalActive('keybindings')
if (!isModalActive) return null
const hasPsGamepad = [...(navigator.getGamepads?.() ?? [])].some(gp => gp?.id.match(/playstation|dualsense|dualshock/i)) // todo: use last used gamepad detection
return <BindingActionsContext.Provider value={bindActions}>
<KeybindingsScreen isPS={hasPsGamepad} contro={contro} />
</BindingActionsContext.Provider>
}