luanti-server-programmable/README.md
2024-12-07 01:59:27 +03:00

58 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Luanti (ex. minetest) programmable
## What is it?
It's a Luanti (minetest) server with additionally included lua libraries.
It is based on [official minetest docker image](https://github.com/minetest/minetest/blob/master/Dockerfile) distributing [by maintainers](https://github.com/minetest/minetest/blob/master/doc/docker_server.md).
## How does it work?
Docker image includes lua-socket addon to provide a possibility to listen to the TCP port.
It's strongly necessary for [mineysocket](https://github.com/bvn13/mineysocket/tree/dev) to be run.
Mineysocket is a Network API for Luanti server.
# Что это?
Помните, в майнкрафте был мод, позволяющий писать код на питоне и модифицировать мир? Этот мод активно используется в обучательных программах для детей.
То, что я представляю, - мод для Luanti (ex. minetest), нацеленный на тот же результат.
# Как работает?
Поднимается сервер Luanti, в мир подключается мод, и можно подключаться к порту, чтобы творить.
За основу берется официальный сервер Luanti.
# Как установить?
Я не создавал стартеров, которые развернут из коробки все добро, поэтому придется чуть руками:
1. Подготовить папку/директорию для хранения мира (`~/minetest`)
2. Создать сервер `DATA=~/minetest docker compose up -d`
3. Развернуть мир, скачав его из [официальных источников](https://content.luanti.org/packages/?type=game), [дефолтный этот](https://content.luanti.org/packages/Minetest/minetest_game/)
3. Подключить мод в игру `cd /home/bvn13/minetest/games/minetest_game/mods && git clone https://gitea.bvn13.me/luanti-programmable/luanti-mod-network-api.git mineysocket`
4. Дать привелегированные права для мода - в файле `/home/bvn13/minetest/main-config/minetest.conf` добавить/поменять строку `secure.trusted_mods = mineysocket`
5. Указать IP для мода - в файле `/home/bvn13/minetest/main-config/minetest.conf` добавить строку `mineysocket.host_ip = 0.0.0.0`
# Клиент
Писать код на питоне и управлять сервером можно, взяв за основу [проект](https://gitea.bvn13.me/luanti-programmable/luanti-network-api-client).
## Примеры
- Пример 1 - [следит за позицией игрока](https://gitea.bvn13.me/luanti-programmable/luanti-network-api-client/src/branch/master/examples/02_player_locator.py)
- Пример 2 - [создает пончик](https://gitea.bvn13.me/luanti-programmable/luanti-network-api-client/src/branch/master/examples/donut.py)
# Все репы
тут https://gitea.bvn13.me/luanti-programmable
клоны:
- https://github.com/bvn13/luanti-server-programmable
- https://github.com/bvn13/luanti-mod-network-api
- https://github.com/bvn13/luanti-network-api-client