Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
023aec8
bevy-0.18 working
Zrocket Feb 3, 2026
8f3a470
feature parity
Zrocket Feb 7, 2026
8b6229b
fixed player
Zrocket Feb 8, 2026
fcdb523
Some cleanup; status bar shaders; etc
Zrocket Feb 17, 2026
9d44ebe
Controller support
Zrocket Feb 17, 2026
567d4eb
cleanup
Zrocket Feb 18, 2026
f3ea25d
animated camera
Zrocket Feb 21, 2026
ca6f9b3
CI/CD
Zrocket Feb 27, 2026
fd15265
level update
Zrocket Feb 27, 2026
84cf752
updated tnua controller and audio
Zrocket Feb 27, 2026
11e7f5a
Added ItemDetails; Cleanup
Zrocket Feb 27, 2026
fb1710d
Mana bar fixed
Zrocket Mar 5, 2026
ca44c05
Added hotpatching and scripting
Zrocket Mar 5, 2026
c02e8a4
State overhall; plus asset overhal
Zrocket Mar 5, 2026
5c25a17
addedd mana test
Zrocket Mar 5, 2026
d5b0c46
basic quest system
Zrocket Mar 5, 2026
a970c85
Reworked particle system
Zrocket Mar 5, 2026
3c1bf7b
Added ManaEvent and started work on Hunger/Thirst
Zrocket Mar 5, 2026
a70cdaf
minor adustments or widgets
Zrocket Mar 5, 2026
18640bc
added Mana uiasset
Zrocket Mar 5, 2026
2b732ba
Reworked door asset system
Zrocket Mar 5, 2026
db9b892
fixed resolution
Zrocket Mar 5, 2026
52eb4fd
Reworked crosshair asset loading
Zrocket Mar 5, 2026
14d28a4
Started work on loading screen
Zrocket Mar 5, 2026
aee8648
Quest ui work
Zrocket Mar 5, 2026
64f881e
Mana items
Zrocket Mar 5, 2026
8d9d0b4
Work on swim basis
Zrocket Mar 5, 2026
7dc7bbd
mana ui shader
Zrocket Mar 5, 2026
379fcb6
Devroom update
Zrocket Mar 5, 2026
c054730
Devroom update
Zrocket Mar 5, 2026
01176c5
Cargo lock
Zrocket Mar 5, 2026
8d82b5c
added fps overlay
Zrocket Mar 5, 2026
7d9aa58
tmp icons for comuputer
Zrocket Mar 12, 2026
afdff35
In game clock library and Rover crate
Zrocket Mar 12, 2026
9eb7264
cleanup
Zrocket Mar 12, 2026
507ca21
Computer stuff
Zrocket Mar 12, 2026
957666d
Rover work
Zrocket Mar 12, 2026
c689b7f
I forgor
Zrocket Mar 13, 2026
d08fe75
fixed ui icon size
Zrocket Mar 14, 2026
b77c31d
cleanup
Zrocket Mar 14, 2026
aa1624b
cleanup
Zrocket Mar 14, 2026
c8630c9
cleanup
Zrocket Mar 14, 2026
c8533d1
rover controls
Zrocket Mar 14, 2026
c512e31
initial rover computer controlls
Zrocket Mar 14, 2026
b0de8b0
level updaate
Zrocket Mar 14, 2026
da9a48d
player pickup distance edit
Zrocket Mar 15, 2026
3d3e34d
Rover hooked up to Computer and working
Zrocket Mar 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

env:
CARGO_TERM_COLOR: always

jobs:
# Run cargo test
test:
name: Test Suite
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Cache
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.toml') }}
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install Dependencies
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev
- name: Run cargo test
run: cargo test

# Run cargo clippy -- -D warnings
clippy_check:
name: Clippy
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Cache
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-clippy-${{ hashFiles('**/Cargo.toml') }}
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Install Dependencies
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev
- name: Run clippy
run: cargo clippy -- -D warnings

# Run cargo fmt --all -- --check
format:
name: Format
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run cargo fmt
run: cargo fmt --all -- --check
305 changes: 305 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,305 @@
name: Release

on:
push:
tags:
- '*'

env:
# update with the name of the main binary
binary: bevyrpg
add_binaries_to_github_release: true
itch_target: redpawn/bevyrpg

# 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: |
version=`cargo metadata --format-version 1 | jq --raw-output '.packages[] | select(.name=="wasm-bindgen") | .version'`
cargo install -f wasm-bindgen-cli --version $version

- 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@v4
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

# Build for Linux
release-linux:
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: x86_64-unknown-linux-gnu
- name: install dependencies
run: |
sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libwayland-dev

- name: Build
run: |
cargo build --release --target x86_64-unknown-linux-gnu

- name: Prepare package
run: |
mkdir linux
cp target/x86_64-unknown-linux-gnu/release/${{ env.binary }} linux/
cp -r assets linux/ || true # Try to copy, but ignore if it can't copy if source directory does not exist

- name: Package as a zip
working-directory: ./linux
run: |
zip --recurse-paths ../${{ env.binary }}.zip .

- name: Upload binaries to artifacts
uses: actions/upload-artifact@v4
with:
path: ${{ env.binary }}.zip
name: linux
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 }}-linux-${{ steps.get_version.outputs.tag }}.zip
tag: ${{ github.ref }}
overwrite: true

# Build for Windows
release-windows:
runs-on: windows-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: x86_64-pc-windows-msvc

- name: Build
run: |
cargo build --release --target x86_64-pc-windows-msvc

- name: Prepare package
run: |
mkdir windows
cp target/x86_64-pc-windows-msvc/release/${{ env.binary }}.exe windows/
mkdir assets -ea 0 # create the assets directory if it does not exist, it will get ignored in the zip if empty
cp -r assets windows/

- name: Package as a zip
run: |
Compress-Archive -Path windows/* -DestinationPath ${{ env.binary }}.zip

- name: Upload binaries to artifacts
uses: actions/upload-artifact@v4
with:
path: ${{ env.binary }}.zip
name: windows
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 }}-windows-${{ steps.get_version.outputs.tag }}.zip
tag: ${{ github.ref }}
overwrite: true

# Build for MacOS x86_64
release-macOS-intel:
runs-on: macOS-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: x86_64-apple-darwin
- name: Environment Setup
run: |
export CFLAGS="-fno-stack-check"
export MACOSX_DEPLOYMENT_TARGET="10.9"

- name: Build
run: |
cargo build --release --target x86_64-apple-darwin

- name: Prepare Package
run: |
mkdir -p ${{ env.binary }}.app/Contents/MacOS
cp target/x86_64-apple-darwin/release/${{ env.binary }} ${{ env.binary }}.app/Contents/MacOS/
cp -r assets ${{ env.binary }}.app/Contents/MacOS/ || true # Try to copy, but ignore if it can't copy if source directory does not exist
hdiutil create -fs HFS+ -volname "${{ env.binary }}" -srcfolder ${{ env.binary }}.app ${{ env.binary }}-macOS-intel.dmg

- name: Upload binaries to artifacts
uses: actions/upload-artifact@v4
with:
path: ${{ env.binary }}-macOS-intel.dmg
name: macOS-intel
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 }}-macOS-intel.dmg
asset_name: ${{ env.binary }}-macOS-intel-${{ steps.get_version.outputs.tag }}.dmg
tag: ${{ github.ref }}
overwrite: true

# Build for MacOS Apple Silicon
release-macOS-apple-silicon:
runs-on: macOS-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: aarch64-apple-darwin
- name: Environment
# macOS 11 was the first version to support ARM
run: |
export MACOSX_DEPLOYMENT_TARGET="11"

- name: Build
run: |
cargo build --release --target aarch64-apple-darwin

- name: Prepare Package
run: |
mkdir -p ${{ env.binary }}.app/Contents/MacOS
cp target/aarch64-apple-darwin/release/${{ env.binary }} ${{ env.binary }}.app/Contents/MacOS/
cp -r assets ${{ env.binary }}.app/Contents/MacOS/ || true # Try to copy, but ignore if it can't copy if source directory does not exist
hdiutil create -fs HFS+ -volname "${{ env.binary }}-macOS-apple-silicon" -srcfolder ${{ env.binary }}.app ${{ env.binary }}-macOS-apple-silicon.dmg

- name: Upload binaries to artifacts
uses: actions/upload-artifact@v4
with:
path: ${{ env.binary }}-macOS-apple-silicon.dmg
name: macOS-apple-silicon
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 }}-macOS-apple-silicon.dmg
asset_name: ${{ env.binary }}-macOS-apple-silicon-${{ steps.get_version.outputs.tag }}.dmg
tag: ${{ github.ref }}
overwrite: true

check-if-upload-to-itch-is-configured:
runs-on: ubuntu-latest
outputs:
should-upload: ${{ steps.check-env.outputs.has-itch-target }}
steps:
- id: check-env
run: |
if [[ -z "$itch_target" ]]; then
echo "has-itch-target=no" >> $GITHUB_OUTPUT
else
echo "has-itch-target=yes" >> $GITHUB_OUTPUT
fi

upload-to-itch:
runs-on: ubuntu-latest
needs:
- check-if-upload-to-itch-is-configured
- release-wasm
- release-linux
- release-windows
- release-macOS-intel
- release-macOS-apple-silicon
if: ${{ needs.check-if-upload-to-itch-is-configured.outputs.should-upload == 'yes' }}

steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: ./builds

- name: Install butler
run: |
curl -L -o butler.zip https://broth.itch.zone/butler/linux-amd64/LATEST/archive/default
unzip butler.zip
chmod +x butler
./butler -V
- uses: olegtarasov/get-tag@v2.1.2
id: get_version
- name: Upload to itch.io
env:
BUTLER_API_KEY: ${{ secrets.BUTLER_CREDENTIALS }}
run: |
for channel in $(ls builds); do
./butler push \
--fix-permissions \
--userversion="${{ steps.get_version.outputs.tag }}" \
builds/$channel/* \
${{ env.itch_target }}:$channel
done
Loading
Loading