# 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/).