luanti-server-programmable/README.md

58 lines
3.3 KiB
Markdown
Raw Normal View History

2024-12-07 01:04:18 +03:00
# 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).
2024-12-07 01:05:56 +03:00
## How does it work?
2024-12-07 01:04:18 +03:00
2024-12-07 01:06:26 +03:00
Docker image includes lua-socket addon to provide a possibility to listen to the TCP port.
2024-12-07 01:04:18 +03:00
It's strongly necessary for [mineysocket](https://github.com/bvn13/mineysocket/tree/dev) to be run.
Mineysocket is a Network API for Luanti server.
2024-12-07 01:59:27 +03:00
# Что это?
Помните, в майнкрафте был мод, позволяющий писать код на питоне и модифицировать мир? Этот мод активно используется в обучательных программах для детей.
То, что я представляю, - мод для 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