72 lines
2.2 KiB
Markdown
72 lines
2.2 KiB
Markdown
# Favorite Place
|
|
|
|
Simple Minecraft Server that generates terrain based on simple mathematical
|
|
equations.
|
|
|
|
Imagine your favorite place. For me, it is a meadow with grass and some wild
|
|
flowers, and it is on a hill that can defined by a mathematical equation.
|
|
|
|
## Running
|
|
|
|
### Cloning
|
|
|
|
```
|
|
git clone https://purplecello.serveminecraft.net/git/KylerOlsen/favorite-place.git
|
|
```
|
|
|
|
### Dependencies
|
|
|
|
- Python 3
|
|
- It is recommended to use the [pypy](https://www.pypy.org/) distribution of
|
|
python for increased speed and performance.
|
|
- Python bitstring 3.1.9
|
|
- Anything newer is incompatible with quarry.
|
|
- Python quarry
|
|
- Python requests (Optional)
|
|
- Used to download the Minecraft 1.18.2 Java Server jar for the data
|
|
generator.
|
|
- Java 17+ (Optional)
|
|
- Used to run the data generator from the Minecraft 1.18.2 Java Server jar.
|
|
|
|
### Data Reports
|
|
|
|
The data reports are used by the server to encode game data correctly for the
|
|
client to receive it.
|
|
|
|
The reports from the data generator must be in
|
|
`generate_data\generated\reports`. If the optional dependencies are installed
|
|
and the `generate_data` directory does not exists, the sever will download the
|
|
jar and run the data generator.
|
|
|
|
### Running
|
|
|
|
In the root directory of the repository run:
|
|
```
|
|
python3 server/main.py
|
|
```
|
|
|
|
## Customizing
|
|
|
|
A way to change the equation may be implemented in the future, but currently it
|
|
is hard coded.
|
|
|
|
You can change the function `YTDServerFactory.func(x: int, y: int, z: int)` in
|
|
`server/main.py` to implement your own equation. This function accepts the world
|
|
coordinates and returns a dictionary representing the block at that location.
|
|
|
|
Here are examples of block representations accepted by quarry. These definitions
|
|
are from the top of `server/main.py`.
|
|
|
|
```
|
|
BLOCK_EMPTY = {'name': 'minecraft:air'}
|
|
BLOCK_SURFACE = {'name': 'minecraft:grass_block', 'snowy': 'false'}
|
|
BLOCK_SUBSURFACE = {'name': 'minecraft:dirt'}
|
|
BLOCK_UNDERGROUND = {'name': 'minecraft:stone'}
|
|
BLOCK_DEFAULT = {'name': 'minecraft:cobblestone'}
|
|
```
|
|
|
|
Information about blocks and block states can be found in
|
|
`generate_data\generated\reports\blocks.json` if the data generator has been
|
|
ran. You can also find this information online from the
|
|
[Minecraft Wiki](https://minecraft.wiki/).
|