forked from AkkomaGang/akkoma-fe
whooops dropped my monstercondo
This commit is contained in:
parent
adafae977a
commit
5fdc4a1904
1 changed files with 37 additions and 0 deletions
37
src/services/ruffle_service/ruffle_service.js
Normal file
37
src/services/ruffle_service/ruffle_service.js
Normal file
|
@ -0,0 +1,37 @@
|
|||
const createRuffleService = () => {
|
||||
let ruffleInstance = null
|
||||
|
||||
const getRuffle = () => new Promise((resolve, reject) => {
|
||||
if (ruffleInstance) resolve(ruffleInstance)
|
||||
// Ruffle needs these to be set before it's loaded
|
||||
// https://github.com/ruffle-rs/ruffle/issues/3952
|
||||
window.RufflePlayer = {}
|
||||
window.RufflePlayer.config = {
|
||||
polyfills: false,
|
||||
publicPath: '/static/ruffle'
|
||||
}
|
||||
|
||||
// Currently it's seems like a better way of loading ruffle
|
||||
// because it needs the wasm publically accessible, but it needs path to it
|
||||
// and filename of wasm seems to be pseudo-randomly generated (is it a hash?)
|
||||
const script = document.createElement('script')
|
||||
// see webpack config, using CopyPlugin to copy it from node_modules
|
||||
// provided via ruffle-mirror
|
||||
script.src = '/static/ruffle/ruffle.js'
|
||||
script.type = 'text/javascript'
|
||||
script.onerror = (e) => { reject(e) }
|
||||
script.onabort = (e) => { reject(e) }
|
||||
script.oncancel = (e) => { reject(e) }
|
||||
script.onload = () => {
|
||||
ruffleInstance = window.RufflePlayer
|
||||
resolve(ruffleInstance)
|
||||
}
|
||||
document.body.appendChild(script)
|
||||
})
|
||||
|
||||
return { getRuffle }
|
||||
}
|
||||
|
||||
const RuffleService = createRuffleService()
|
||||
|
||||
export default RuffleService
|
Loading…
Reference in a new issue