Skip to content

Мод Figura-Disfigured

Figura-Disfigured - это наша модификация обычной Figura. Из неё удалены все лишние фичи рассчитанные на обычного майнкрафтера и добавлено много новых рассчитанных для игроков Stargazer.

Мод можно найти в закрепах канала Фигурирование в Дискорде, либо в папке с модами Старгейзера.

Панель с кнопками

Она открывается на кнопку G.

В игре, на Панели с кнопками можно легко и быстро управлять проигрыванием анимаций вашей модели.
В отличии от колеса действий обычной Фигуры, Панель с кнопками не требует никаких Lua скриптов и делается визуально в Блокбенче.

Настройки этой панели хранятся в модели аватара и изменяются в Блокбенче. Подробнее о её редактировании в разделе про плагин.

Прочие отличия

  • Добавлены скейлы отдельных частей тела через ползунки как в MPM. Они находятся в настройках модели.
  • Удалено облако Фигуры. Ваши модельки не будут никуда загружаться.
  • Выбранные анимации продолжают играть и после перезахода.
  • Обрезано создание новой модельки. Теперь используется шаблон с анимациями.

Часто задаваемые Вопросы

В: Какой лимит размера модельки? О: 10 Мб.

В: Поскольку модель в открытом формате, то её украдет любой школьник? О: Не совсем. Для этого надо будет сделать специальный конвертер, что валидно и для ЦПМ. В нашу эпоху ИИ полностью защититься от этого нельзя.

В: Состояния анимации сохраняются между сессиями как CPM? О: На Панели с Кнопками сохраняются кнопки с лупами (длинная полоска). Однократные анимации нет. Через скрипты это тоже можно сделать (ищи про стейт в разделе с Lua).

В: Так теперь в скриптах лучше использовать стейт или пинг? О: Используйте стейт для переключающихся анимаций (лупов), а для однократных достаточно пинга.

В: А можно привязать анимации скиллов к боевке СГ? О: Это планируется.

В: Это все? Финальная версия мода? О: Нет, он еще будет развиваться в том числе на основе ваших отзывов.

Изменения в Lua скриптах

  • Удалено управление неймплейтами.

API стейтов

setState(key, value) / getState(key) / getStates() - синхронизированные стейты: були, числа и строки на общую сумму до 4Кб. Они запоминаются на сервере и раздаются появившимся игрокам чтобы они тоже увидели актуальное состояние аватара (в отличии от пингов). Отправка работает только на стороне хоста.

getModelScale() - рост персонажа относительно ванильного Стива. Это связано со скейлами частей тела в настройках модели в игре.

setHitbox(w, h) / resetHitbox() / getHitbox() - Sets an absolute hitbox in blocks (0.2–1.5 wide, 0.2–2.5 tall). Работает только на стороне хоста.

API Панели с Кнопками

Геттеры-сеттеры кнопок:

  • isControlOn(name) / getControlValue(name) Читает кнопки аватара: включена ли она и значение слайдера от 0 до 1.
  • setControl(name, on) / setControlValue(name, v) Переключает кнопки. Работает только на стороне хоста модели.

Аргументы ивент хендлера:

  • button: имя кнопки.
  • animation: название проигрывающейся анимации или nil.
  • state: принимает такие значения:
  • "INTRO", "MAIN" or "OUTRO" когда соответствуящая часть включается
  • "STOPPING" когда тоггл выключен, но финальный луп анимации еще проигрывается
  • "STOP" когда больше ничего не проигрывается
  • value: для слайдера это позиция от 0 до 1. Слайдер отправляет "MAIN" с новым значением каждый раз когда его двигают, и "STOP" когда выключают. Для других кнопок это nil.

Пример ивентов:

function events.control(button, animation, state, value)
  if button == "Hat" and state == "MAIN" then
    models.model.Head.Hat:setVisible(true)
  elseif button == "Hat" and state == "STOP" then
    models.model.Head.Hat:setVisible(false)
  end
end