Настройка интерактивной карты на примере GMGame

В данном кратком руководстве пойдет речь о настройке и возможностях Overviewer. 

В данном руководстве речь идет о настройке карты. У вас уже должен быть установлен или скомпилирован Overviewer и вы в состоянии запустить хотябы базовый рендер карты. 

Начинаем готовить конфиг, берем текстовый редактор, называем файл config.py и вперед

1. Указываем директорию, где расположен файлы с миром майнкрафта и добавляем в словарь worlds

worlds['GMGameWorld'] = "/media/disk1/maps/worlds/gmgame/gmgame"

2. Настриваем освещение и высоту

smooth_lighting = [Base(), Depth(min=-64, max=256), EdgeLines(), SmoothLighting(color=True)]

3. Подготовим простую функцию фильтрации. Тут ничего сложного, сюда Overviewer будет передавать словарь меток, а функция вернет нужную нам строку:

def townFilter(poi):
   if poi['id']=='Города':
      poi['icon']='customwebassets/markers/города.png'
      try:
          return (poi['name'], poi['description'])
      except KeyError:
          return poi['name']

4. Теперь настраиваем наш первый рендер и добавляем с уникальным ключем в словарь renders следующие настройки

renders["over"] = {
    'world': 'GMGameWorld',
    'title': 'День',
    'rendermode': smooth_lighting,
    'dimension': 'overworld',
    'manualpois': [{'id':'Города', 'x':-555, 'y':64, 'z':422, 'name':'Pink Squad', 'description':''}],
    'markers': [
        dict(name='Города',filterFunction=townFilter, icon='customwebassets/markers/города.png', showIconInLegend=True)
    ],
    'defaultzoom': 7,
    "crop": (-12500, -12500, 12500, 12500),
    "imgformat": "webp"
}

Немного пояснений

Таких настроек достаточно для отображения простой карты, добавляем outputdir и texturepath, после чего запускаем Overviewer с получившемся конфигом.

Поскольку конфиг написан на питон, как и Overviewer, то дальше это все можно автоматизировать и кастомизировать. Например у нас метки создаются отдельно и импортируются как модули в конфиг. Подробнее об этом тут

Еще немного полезностей:

Например у нас есть рендер созданный на 4 шаге, можно добавить еще один ренде - renders["over_overlay"] c такими же настройками, как у renders["over"], только переопределив rendermode на smooth_lighting_overlay, в котором будет высота с 256 до 320.

После этого, на карте появится кнопка, по нажатию на которую, на нашу карту наложится все что находиться на высоте с 256 до 320.

Так сделана крыша незера у нас

Надеюсь материал был полезен или интересен. Помочь проекту можно тут


Версия #4
dalandis создал 11 января 2024 21:42:16
dalandis обновил 31 января 2024 11:31:59