Skip to content

Latest commit

 

History

History
79 lines (69 loc) · 4.38 KB

README.md

File metadata and controls

79 lines (69 loc) · 4.38 KB

Каркас системы для FoundryVTT v10

Создавался с целью минимизировать начальную подготовку к созданию системы. Практически, содержит код и базовые настройки, которые каждый раз руками перебиваю в каждую новую создаваемую систему. Многие куски кода написаны с универсальным подходом, ибо предполагается развитие - наработки от системы к системе копятся так или иначе, потому буду складывать их здесь, если есть возможность, что они продублируются в будущем.

Включает в себя заранее созданный функционал:

  • Основные настройки и код для Actors (Hero, Enemy и NPC), а так же для Items
  • Полиморфизм для вызова вышеперечисленных объектов
  • Gulpfile для компиляции LESS в CSS и для компиляции удобочитаемых json-файлов в нужный формат базы компендиума
  • Набор универсальных хелперов для Handlebars
  • Базовые шаблоны
  • Базовый CSS
  • Структура базовой локализации
  • Оперирование (добавление, удаление) вещами на листах Actor
  • Создание zip-билда для выкладки
  • Конвертация изображений в webp формат

Предподготовка

Установка зависимостей для корректной работы Gulp:

$ npm install

Компиляция LESS в CSS:

$ gulp compileLess

Также там есть наблюдатель(при изменении *.less будет автоматически собирать итоговый css файл), который можно настроить по этой инструкции.

Конвертация PNG, JPEG, JPG файлов в WebP(кладет по тому же пути в assets, рядом, меняется только расширение файла и формат):

$ gulp webp

Создание zip-дистрибутива:

$ gulp zip

Компиляция компендиумов:

$ gulp compilePacks

Как это работает? Скрипт смотрит в src/packs каталоги. Например, есть каталог items:

src/packs/items 

Дальше он смотрит в этом каталоге *.json файлы. Он их собирает в этом каталоге в единую кучу и называет свежесозданный компендиум так же, как имя у каталога. Т.е. если в каталоге items лежат файлы:

  • armor.json
  • weapon.json
  • equipment.json

То скрипт объеденит все файлы в один и положит преобразованный компендиум в packs/items.db На файлы разделение сделано затем, чтобы было удобно с ними работать - интуитивно понятно где-что смотреть. Можно всё держать и в одном файле, но мне удобно так. Плюс этот способ позволяет держать читаемые(пример ниже) json файлы. Содержание json файлов должно соответствовать структуре в корневом templates.json Пример:

[
  {
    "name": "Бронежилет охранника",
    "type": "armor",
    "img": "systems/systemname/assets/armor/heart-armor.png",
    "folder": null,
    "data": {
      "description": ""
     }    
  },
  {
    "name": "Армейский бронежилет",
    "type": "armor",
    "img": "systems/systemname/assets/armor/kevlar-vest.png",
    "folder": null,
    "data": {
      "description": "Oдин раз защищает от травмы Массированные повреждения."
     }    
  }
]