Removed print statement, and improved readme.

This commit is contained in:
Andrew Lalis 2022-07-27 16:47:18 +02:00
parent a7010e24ea
commit 4d98291079
2 changed files with 44 additions and 14 deletions

View File

@ -1,17 +1,12 @@
# ace-of-shades-2 # Ace of Shades 2
A simple 3D voxel-based shooter inspired by Ace of Spades. A simple 3D voxel-based shooter inspired by Ace of Spades. With some basic weapons and tools, fight against players in other teams!
## Configuration ## Quick-Start Guide
Both the client and server use a similar style of YAML-based configuration, where upon booting up, the program will look for a configuration file in the current working directory with one of the following names: `configuration`, `config`, `cfg`, ending in either `.yaml` or `.yml`. Alternatively, you can provide the path to a configuration file at a different location via a single command-line argument. For example: _Read this guide to get started and join a server in just a minute or two!_
```bash
java -jar server.jar /path/to/my/custom/config.yaml
```
If no configuration file is found, and none is explicitly provided, then a set of default configuration options is loaded.
## Running the Game 1. Make sure you've got at least Java 17 installed. You can get it [here](https://adoptium.net/temurin/releases).
Ace of Shades 2 uses Java 17. You'll need to install that first (or any later version), if you don't have it already. 2. Download the `aos2-client` JAR file from the [releases page](https://github.com/andrewlalis/ace-of-shades-2/releases) that's compatible with your system.
3. Create a file named `config.yaml` in the same directory as the JAR file, and place the following text in it:
To run the client, go to the [releases](https://github.com/andrewlalis/ace-of-shades-2/releases) page and download the `aos2-client` file that corresponds to your system. You'll need to make a configuration file in the same directory as the JAR file, something like this:
```yaml ```yaml
serverHost: localhost serverHost: localhost
serverPort: 25565 serverPort: 25565
@ -23,4 +18,40 @@ display:
captureCursor: true captureCursor: true
fov: 80 fov: 80
``` ```
To connect to a particular server, you'll need to update this config file and then you can start the game with `java -jar <jarfile>` or by double-clicking on it. 4. Set the `serverHost`, `serverPort`, and `username` properties accordingly for the server you want to join.
5. Run the game by double-clicking the `aos2-client` JAR file, or enter `java -jar aos2-client-{version}.jar` in a terminal.
## Setting up a Server
Setting up a server is quite easy. Just go to the [releases page](https://github.com/andrewlalis/ace-of-shades-2/releases) and download the latest `aos2-server` JAR file. Similar to the client, it's best if you provide a `config.yaml` file to the server, in the same directory. The following snippet shows the structure and default values of a server's configuration.
```yaml
port: 25565
connectionBacklog: 5
ticksPerSecond: 20.0
physics:
gravity: 29.43
walkingSpeed: 4
crouchingSpeed: 1.5
sprintingSpeed: 9
movementAcceleration: 2
movementDeceleration: 1
jumpVerticalSpeed: 8
actions:
blockBreakCooldown: 0.25
blockPlaceCooldown: 0.1
blockBreakReach: 5
blockPlaceReach: 5
blockBulletDamageResistance: 3
blockBulletDamageCooldown: 10
resupplyCooldown: 30
resupplyRadius: 3
teamSpawnProtection: 10
movementAccuracyDecreaseFactor: 0.01
friendlyFire: false
```
## Configuration
Both the client and server use a similar style of YAML-based configuration, where upon booting up, the program will look for a configuration file in the current working directory with one of the following names: `configuration`, `config`, `cfg`, ending in either `.yaml` or `.yml`. Alternatively, you can provide the path to a configuration file at a different location via a single command-line argument. For example:
```bash
java -jar server.jar /path/to/my/custom/config.yaml
```
If no configuration file is found, and none is explicitly provided, then a set of default configuration options is loaded.

View File

@ -17,7 +17,6 @@ public class PlayerInputMouseScrollCallback implements GLFWScrollCallbackI {
@Override @Override
public void invoke(long window, double xoffset, double yoffset) { public void invoke(long window, double xoffset, double yoffset) {
System.out.println(yoffset);
if (client.getMyPlayer().getInventory().getSelectedItemStack() instanceof BlockItemStack stack) { if (client.getMyPlayer().getInventory().getSelectedItemStack() instanceof BlockItemStack stack) {
if (yoffset < 0) { if (yoffset < 0) {
stack.setSelectedValue((byte) (stack.getSelectedValue() - 1)); stack.setSelectedValue((byte) (stack.getSelectedValue() - 1));