termcraft 0.1.0

Terminal-based 2D sandbox survival game
Documentation
# Installation

> Version: `0.1.0`
>
> Status: early alpha. The recommended way to play right now is local single-player.

## Requirements

You need:

- Rust stable toolchain
- a terminal with raw input support
- mouse support for the best local experience

Install Rust via:

- [rustup.rs]https://rustup.rs/

Confirm your toolchain:

```bash
rustc --version
cargo --version
```

## Install From Crates.io

```bash
cargo install termcraft
termcraft
```

Cargo installs the binary into your local Cargo bin directory, typically `~/.cargo/bin`.

## Clone The Repository

```bash
git clone https://github.com/pagel-s/termcraft.git
cd termcraft
```

## Run From Source

From the repo root:

```bash
cargo run --release
```

This is the simplest way to test local source changes.

## Build A Reusable Binary

If you want the optimized binary directly:

```bash
cargo build --release
./target/release/termcraft
```

## Install From A Local Checkout

If you want to run `termcraft` directly from your shell after cloning locally:

```bash
cargo install --path .
termcraft
```

Cargo installs that binary into your local Cargo bin directory, typically `~/.cargo/bin`.

## First Launch

- start the game
- press any key at the splash screen
- use `A` / `D` or arrow keys to move
- use `W`, `Up`, or `Space` to jump
- use `E` to open inventory
- use `Left Click` to mine or attack
- use `Right Click` to place or interact

If right-click is unreliable in your terminal, use `F` as the explicit hovered-block interaction fallback.

## Save Location

Saves are written to the per-user data directory:

- Linux: `$XDG_DATA_HOME/termcraft/saves`, or `~/.local/share/termcraft/saves` when `XDG_DATA_HOME` is unset
- macOS: `~/Library/Application Support/termcraft/saves`
- Windows: `%APPDATA%\termcraft\saves`

Set `TERMCRAFT_SAVE_DIR` to override this location. Existing repo-local `./saves` files are copied into the default user data directory on first run.

## Experimental Networking

The repo contains a server/client path, but it is still experimental and should not be treated as a polished public feature yet.

Examples:

```bash
cargo run --release -- server 0.0.0.0:25565
cargo run --release -- client 127.0.0.1:25565
```

Use local single-player as the primary supported mode.