Compare commits
6 Commits
b1c22a2973
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d7f7df2c4 | ||
|
|
191fe49c64 | ||
|
|
cc6a1a4c6a | ||
|
|
0338188e94 | ||
|
|
a60d309a66 | ||
|
|
203a5c0e2e |
|
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
2
.github/workflows/build.yaml
vendored
@@ -38,7 +38,7 @@ jobs:
|
|||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Setup Rust Toolchain
|
- name: Setup Rust Toolchain
|
||||||
uses: dtolnay/rust-toolchain@master
|
uses: dtolnay/rust-toolchain@master
|
||||||
|
|||||||
2
.github/workflows/checks.yaml
vendored
@@ -19,7 +19,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Install Rust toolchain
|
- name: Install Rust toolchain
|
||||||
uses: dtolnay/rust-toolchain@master
|
uses: dtolnay/rust-toolchain@master
|
||||||
|
|||||||
11
.github/workflows/coverage.yaml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Install Rust toolchain
|
- name: Install Rust toolchain
|
||||||
uses: dtolnay/rust-toolchain@master
|
uses: dtolnay/rust-toolchain@master
|
||||||
@@ -56,7 +56,16 @@ jobs:
|
|||||||
just coverage
|
just coverage
|
||||||
working-directory: pacman
|
working-directory: pacman
|
||||||
|
|
||||||
|
- name: Check Coveralls Token
|
||||||
|
run: |
|
||||||
|
if [ -z "${{ secrets.COVERALLS_REPO_TOKEN }}" ]; then
|
||||||
|
echo "::warning::COVERALLS_REPO_TOKEN not available - coverage upload skipped (common for Dependabot PRs)"
|
||||||
|
else
|
||||||
|
echo "COVERALLS_REPO_TOKEN is available - will upload coverage"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Coveralls upload
|
- name: Coveralls upload
|
||||||
|
if: ${{ secrets.COVERALLS_REPO_TOKEN != '' }}
|
||||||
uses: coverallsapp/github-action@v2
|
uses: coverallsapp/github-action@v2
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
github-token: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
||||||
|
|||||||
11
.github/workflows/deploy.yaml
vendored
@@ -22,7 +22,7 @@ jobs:
|
|||||||
digest: ${{ steps.docker_build.outputs.digest }}
|
digest: ${{ steps.docker_build.outputs.digest }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Setup Emscripten SDK
|
- name: Setup Emscripten SDK
|
||||||
uses: pyodide/setup-emsdk@v15
|
uses: pyodide/setup-emsdk@v15
|
||||||
@@ -132,8 +132,17 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
|
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
|
- name: Check Railway Token
|
||||||
|
run: |
|
||||||
|
if [ -z "$RAILWAY_TOKEN" ]; then
|
||||||
|
echo "::warning::RAILWAY_TOKEN not available - deployment skipped (common for Dependabot PRs)"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Generate proxy Dockerfile
|
- name: Generate proxy Dockerfile
|
||||||
|
if: env.RAILWAY_TOKEN != ''
|
||||||
run: echo "FROM ghcr.io/xevion/pac-man@${{ needs.build-and-deploy.outputs.digest }}" > Dockerfile
|
run: echo "FROM ghcr.io/xevion/pac-man@${{ needs.build-and-deploy.outputs.digest }}" > Dockerfile
|
||||||
|
|
||||||
- name: Deploy to Railway
|
- name: Deploy to Railway
|
||||||
|
if: env.RAILWAY_TOKEN != ''
|
||||||
run: railway up --service pac-man
|
run: railway up --service pac-man
|
||||||
|
|||||||
2
.github/workflows/tests.yaml
vendored
@@ -19,7 +19,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Install Rust toolchain
|
- name: Install Rust toolchain
|
||||||
uses: dtolnay/rust-toolchain@master
|
uses: dtolnay/rust-toolchain@master
|
||||||
|
|||||||
447
Cargo.lock
generated
2
Justfile
@@ -52,7 +52,7 @@ push:
|
|||||||
|
|
||||||
# Create a postgres container for the server
|
# Create a postgres container for the server
|
||||||
server-postgres:
|
server-postgres:
|
||||||
bun run .scripts/postgres.ts
|
bun run pacman-server/scripts/postgres.ts
|
||||||
|
|
||||||
# Build the server image
|
# Build the server image
|
||||||
server-image:
|
server-image:
|
||||||
|
|||||||
10
README.md
@@ -2,7 +2,7 @@
|
|||||||
<!-- markdownlint-disable MD041 -->
|
<!-- markdownlint-disable MD041 -->
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="assets/banner.png" alt="Pac-Man Banner Screenshot">
|
<img src=".github/assets/banner.png" alt="Pac-Man Banner Screenshot">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
# Pac-Man
|
# Pac-Man
|
||||||
@@ -49,16 +49,16 @@ However, every commit has build artifacts, so you can grab the [latest build art
|
|||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="assets/screenshots/0.png" alt="Screenshot 0 - Starting Game">
|
<img src=".github/assets/screenshots/0.png" alt="Screenshot 0 - Starting Game">
|
||||||
<p><em>Starting a new game</em></p>
|
<p><em>Starting a new game</em></p>
|
||||||
|
|
||||||
<img src="assets/screenshots/1.png" alt="Screenshot 1 - Eating Dots">
|
<img src=".github/assets/screenshots/1.png" alt="Screenshot 1 - Eating Dots">
|
||||||
<p><em>Pac-Man collecting dots and avoiding ghosts</em></p>
|
<p><em>Pac-Man collecting dots and avoiding ghosts</em></p>
|
||||||
|
|
||||||
<img src="assets/screenshots/2.png" alt="Screenshot 2 - Game Over">
|
<img src=".github/assets/screenshots/2.png" alt="Screenshot 2 - Game Over">
|
||||||
<p><em>Game over screen after losing all lives</em></p>
|
<p><em>Game over screen after losing all lives</em></p>
|
||||||
|
|
||||||
<img src="assets/screenshots/3.png" alt="Screenshot 3 - Debug Mode">
|
<img src=".github/assets/screenshots/3.png" alt="Screenshot 3 - Debug Mode">
|
||||||
<p><em>Debug mode showing hitboxes, node graph, and performance details.</em></p>
|
<p><em>Debug mode showing hitboxes, node graph, and performance details.</em></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ dashmap = "6.1"
|
|||||||
axum-cookie = "0.2"
|
axum-cookie = "0.2"
|
||||||
async-trait = "0.1"
|
async-trait = "0.1"
|
||||||
jsonwebtoken = { version = "9.3", default-features = false }
|
jsonwebtoken = { version = "9.3", default-features = false }
|
||||||
tracing = "0.1.41"
|
tracing = "0.1.43"
|
||||||
tracing-subscriber = { version = "0.3.20", features = ["env-filter", "json"] }
|
tracing-subscriber = { version = "0.3.22", features = ["env-filter", "json"] }
|
||||||
tracing-futures = { version = "0.2.5", features = ["tokio"] }
|
tracing-futures = { version = "0.2.5", features = ["tokio"] }
|
||||||
tower-http = { version = "0.6", features = ["trace", "fs", "normalize-path"] }
|
tower-http = { version = "0.6", features = ["trace", "fs", "normalize-path"] }
|
||||||
time = { version = "0.3", features = ["macros", "formatting"] }
|
time = { version = "0.3", features = ["macros", "formatting"] }
|
||||||
@@ -51,7 +51,7 @@ s3-tokio = { version = "0.39.6", default-features = false }
|
|||||||
rustls = { version = "0.23", features = ["ring"] }
|
rustls = { version = "0.23", features = ["ring"] }
|
||||||
image = { version = "0.25", features = ["png", "jpeg"] }
|
image = { version = "0.25", features = ["png", "jpeg"] }
|
||||||
sha2 = "0.10"
|
sha2 = "0.10"
|
||||||
mockall = "0.13.1"
|
mockall = "0.14.0"
|
||||||
# validator = { version = "0.16", features = ["derive"] }
|
# validator = { version = "0.16", features = ["derive"] }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|||||||
@@ -19,19 +19,19 @@ default-run = "pacman"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bevy_ecs = "0.16.1"
|
bevy_ecs = "0.16.1"
|
||||||
glam = "0.30.5"
|
glam = "0.30.9"
|
||||||
pathfinding = "4.14"
|
pathfinding = "4.14"
|
||||||
tracing = { version = "0.1.41", features = ["max_level_trace", "release_max_level_debug"]}
|
tracing = { version = "0.1.43", features = ["max_level_trace", "release_max_level_debug"]}
|
||||||
tracing-error = "0.2.0"
|
tracing-error = "0.2.0"
|
||||||
tracing-subscriber = {version = "0.3.20", features = ["env-filter"]}
|
tracing-subscriber = {version = "0.3.22", features = ["env-filter"]}
|
||||||
time = { version = "0.3.43", features = ["formatting", "macros"] }
|
time = { version = "0.3.44", features = ["formatting", "macros"] }
|
||||||
thiserror = "2.0.16"
|
thiserror = "2.0.17"
|
||||||
anyhow = "1.0"
|
anyhow = "1.0"
|
||||||
smallvec = "1.15.1"
|
smallvec = "1.15.1"
|
||||||
bitflags = "2.9.4"
|
bitflags = "2.9.4"
|
||||||
micromap = "0.1.0"
|
micromap = "0.1.0"
|
||||||
circular-buffer = "=1.1.0"
|
circular-buffer = "=1.1.0"
|
||||||
parking_lot = "0.12.3"
|
parking_lot = "0.12.5"
|
||||||
strum = "0.27.2"
|
strum = "0.27.2"
|
||||||
strum_macros = "0.27.2"
|
strum_macros = "0.27.2"
|
||||||
thousands = "0.2.0"
|
thousands = "0.2.0"
|
||||||
@@ -42,8 +42,8 @@ phf = { version = "0.13.1", features = ["macros"] }
|
|||||||
# Windows-specific dependencies
|
# Windows-specific dependencies
|
||||||
[target.'cfg(windows)'.dependencies]
|
[target.'cfg(windows)'.dependencies]
|
||||||
# Used for customizing console output on Windows; both are required due to the `windows` crate having poor Result handling with `GetStdHandle`.
|
# Used for customizing console output on Windows; both are required due to the `windows` crate having poor Result handling with `GetStdHandle`.
|
||||||
windows = { version = "0.62.0", features = ["Win32_Security", "Win32_Storage_FileSystem", "Win32_System_Console"] }
|
windows = { version = "0.62.1", features = ["Win32_Security", "Win32_Storage_FileSystem", "Win32_System_Console"] }
|
||||||
windows-sys = { version = "0.61.0", features = ["Win32_System_Console"] }
|
windows-sys = { version = "0.61.2", features = ["Win32_System_Console"] }
|
||||||
|
|
||||||
# Desktop-specific dependencies
|
# Desktop-specific dependencies
|
||||||
[target.'cfg(not(target_os = "emscripten"))'.dependencies]
|
[target.'cfg(not(target_os = "emscripten"))'.dependencies]
|
||||||
@@ -59,7 +59,7 @@ spin_sleep = "1.3.3"
|
|||||||
sdl2 = { version = "0.38", default-features = false, features = ["image", "ttf", "gfx", "mixer", "unsafe_textures"] }
|
sdl2 = { version = "0.38", default-features = false, features = ["image", "ttf", "gfx", "mixer", "unsafe_textures"] }
|
||||||
# TODO: Document why Emscripten cannot use `os_rng`.
|
# TODO: Document why Emscripten cannot use `os_rng`.
|
||||||
rand = { version = "0.9.2", default-features = false, features = ["small_rng", "os_rng"] }
|
rand = { version = "0.9.2", default-features = false, features = ["small_rng", "os_rng"] }
|
||||||
libc = "0.2.175" # TODO: Describe why this is required.
|
libc = "0.2.177" # TODO: Describe why this is required.
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
pretty_assertions = "1.4.1"
|
pretty_assertions = "1.4.1"
|
||||||
@@ -67,7 +67,7 @@ speculoos = "0.13.0"
|
|||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
phf = { version = "0.13.1", features = ["macros"] }
|
phf = { version = "0.13.1", features = ["macros"] }
|
||||||
serde = { version = "1.0.225", features = ["derive"] }
|
serde = { version = "1.0.228", features = ["derive"] }
|
||||||
serde_json = "1.0.145"
|
serde_json = "1.0.145"
|
||||||
|
|
||||||
# phf generates runtime code which machete will not detect
|
# phf generates runtime code which machete will not detect
|
||||||
|
|||||||