-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a01f86f
commit fdc0921
Showing
5 changed files
with
147 additions
and
69 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
name: Release | ||
|
||
on: | ||
push: | ||
tags: | ||
- '*' | ||
|
||
env: | ||
# update with the name of the main binary | ||
binary: nback | ||
add_binaries_to_github_release: true | ||
#itch_target: <itch.io-username>/<game-name> | ||
|
||
# Before enabling LFS, please take a look at GitHub's documentation for costs and quota limits: | ||
# https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-storage-and-bandwidth-usage | ||
use_git_lfs: false | ||
|
||
|
||
jobs: | ||
|
||
# Build for wasm | ||
release-wasm: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: olegtarasov/get-tag@v2.1.2 | ||
id: get_version | ||
- uses: actions/checkout@v4 | ||
with: | ||
lfs: ${{ env.use_git_lfs }} | ||
- uses: dtolnay/rust-toolchain@stable | ||
with: | ||
targets: wasm32-unknown-unknown | ||
- name: install wasm-bindgen-cli | ||
run: | | ||
cargo install wasm-bindgen-cli | ||
- name: Build | ||
run: | | ||
cargo build --release --target wasm32-unknown-unknown | ||
- name: Prepare package | ||
run: | | ||
wasm-bindgen --no-typescript --out-name bevy_game --out-dir wasm --target web target/wasm32-unknown-unknown/release/${{ env.binary }}.wasm | ||
cp -r assets wasm/ || true # Try to copy, but ignore if it can't copy if source directory does not exist | ||
- name: Package as a zip | ||
working-directory: ./wasm | ||
run: | | ||
zip --recurse-paths ../${{ env.binary }}.zip . | ||
- name: Upload binaries to artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
path: ${{ env.binary }}.zip | ||
name: wasm | ||
retention-days: 1 | ||
|
||
- name: Upload binaries to release | ||
if: ${{ env.add_binaries_to_github_release == 'true' }} | ||
uses: svenstaro/upload-release-action@v2 | ||
with: | ||
repo_token: ${{ secrets.GITHUB_TOKEN }} | ||
file: ${{ env.binary }}.zip | ||
asset_name: ${{ env.binary }}-wasm-${{ steps.get_version.outputs.tag }}.zip | ||
tag: ${{ github.ref }} | ||
overwrite: true |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
<!doctype html> | ||
<html lang="en"> | ||
|
||
<body style="margin: 0px;"> | ||
<script type="module"> | ||
import './restart-audio-context.js' | ||
import init from './bevy_game.js' | ||
|
||
init().catch((error) => { | ||
if (!error.message.startsWith("Using exceptions for control flow, don't mind me. This isn't actually an error!")) { | ||
throw error; | ||
} | ||
}); | ||
</script> | ||
</body> | ||
|
||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
// taken from https://developer.chrome.com/blog/web-audio-autoplay/#moving-forward | ||
(function () { | ||
// An array of all contexts to resume on the page | ||
const audioContextList = []; | ||
|
||
// An array of various user interaction events we should listen for | ||
const userInputEventNames = [ | ||
'click', | ||
'contextmenu', | ||
'auxclick', | ||
'dblclick', | ||
'mousedown', | ||
'mouseup', | ||
'pointerup', | ||
'touchend', | ||
'keydown', | ||
'keyup', | ||
]; | ||
|
||
// A proxy object to intercept AudioContexts and | ||
// add them to the array for tracking and resuming later | ||
self.AudioContext = new Proxy(self.AudioContext, { | ||
construct(target, args) { | ||
const result = new target(...args); | ||
audioContextList.push(result); | ||
return result; | ||
}, | ||
}); | ||
|
||
// To resume all AudioContexts being tracked | ||
function resumeAllContexts(event) { | ||
let count = 0; | ||
|
||
audioContextList.forEach(context => { | ||
if (context.state !== 'running') { | ||
context.resume(); | ||
} else { | ||
count++; | ||
} | ||
}); | ||
|
||
// If all the AudioContexts have now resumed then we | ||
// unbind all the event listeners from the page to prevent | ||
// unnecessary resume attempts | ||
if (count == audioContextList.length) { | ||
userInputEventNames.forEach(eventName => { | ||
document.removeEventListener(eventName, resumeAllContexts); | ||
}); | ||
} | ||
} | ||
|
||
// We bind the resume function for each user interaction | ||
// event on the page | ||
userInputEventNames.forEach(eventName => { | ||
document.addEventListener(eventName, resumeAllContexts); | ||
}); | ||
})(); |