Machines give a building input/output slots and their own timed recipes.
The server processes them, replicates their state and saves it with the
world. The furnace becomes a machine and an assembler is added as an
example with a custom window layout. The client window follows with the
new UI.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Windows workflows now ship the dedicated server alongside the client
and publish the archive produced by xtask instead of packaging by hand.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
`cargo xtask pack [--target T] [--format zip|tar.gz] [--out-dir DIR] [--debug]`
builds the client and dedicated server and packs them with assets,
README and changelog into dist/station-<version>-<target>.(zip|tar.gz).
Windows targets default to zip, others to tar.gz.
Packaging uses a new `dist` profile (release + strip), which shrinks the
binaries considerably without changing regular release builds.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a nextest config with a ci profile (JUnit report) and test
workflows for GitHub and Gitea that run clippy and nextest.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
GitHub builds natively on windows-latest; Gitea cross-compiles with MinGW
on a Linux runner. Both upload the client with its assets and publish a
zip for v* tags.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Bevy ECS workspace with three crates:
- game_core: rsn data definitions, components, Tiled map loader, protocol
- game_server: authoritative simulation, Rune scripting, persistence,
dedicated server binary
- game_client: rendering, UI and input; embeds the server for
singleplayer and hosting
Items, recipes, buildings and skills are defined in assets/data, behavior
in Rune scripts under assets/scripts, and maps are made in Tiled.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>