58 lines
3.3 KiB
Markdown
58 lines
3.3 KiB
Markdown
# 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
|