Эта библиотека позволяет добавлять пользовательские элементы в компас.
Чтобы установить библиотеку, вы можете либо включить её в свой аддон и загрузить файлы из манифеста, либо установить библиотеку как любой другой обычный аддон.
Если вы полагаетесь на то, что библиотека устанавливается отдельно и не внедряете ее, то вы должны включить эту строку в манифест аддона :
## DependsOn: CustomCompassPins
В любом случае, в память будет загружена только одна копия библиотеки (самая новая версия).
Как использовать:Сначала вы должны добавить pinType:
COMPASS_PINS:AddCustomPin( pinType, pinCallback, layout )
pinType является уникальной строкой например«MySkyshards»
pinCallback является функцией обратного вызовакоторая получает pinManager (более ниже)
layout представляет собой таблицукоторая определяет текстуру и другие параметры для штифтов этого pinType
Функции обратного вызоваФункция обратного вызова вызывается каждый, то Компас обновляется.
Эта функция создает контакты с помощью заданного pinManager (первый и единственный параметр).
пример:
function( pinManager )
for _, pin in pairs( pins ) do
pinManager:CreatePin( pinType, pinTag, pin.x, pin.y )
end
end
У pinManager есть только один метод: CreatePin (pinType, pinTag, xLoc, yLoc)
pinType pinType созданный пин принадлежит
pinTag уникальный идентификатор для пин. Вы можете передавать дополнительные атрибуты на вывод через pinTag, который впоследствии можно будет использовать (см. Макет для получения дополнительной информации).
xLoc , yLoc положение штифта в нормализованных координатах карты. (0,0 = topleft, 1,1 = снизу справа)
Таблица раскладкираскладки должна иметь следующие ключи:
maxDistance максимальное расстояние (в нормализованных единицах карты) для того, чтобы вывод был видимым (он будет постепенно затухать, когда штырьковый приближается к maxDistance)
текстуры Путь к файлу с текстурой
Дополнительные клавиши:FOV поле зрения в радианах. например, 2pi приведет к тому, что булавка будет всегда видна, пи означает, что булавка видна, пока она не находится позади проигрывателя.
sizeCallback - функция, которая получает вывод, угол между игроком и выводом, нормализованный угол (-1 = левая граница компаса, 1 = правая граница компаса, 0 = центр компаса), normalizedDistance (0 = та же позиция, что и у игрока, 1 = вывод находится на максимальном расстоянии).
Эта функция может изменять размер вывода с помощью вывода: SetDimension (ширина, высота).
Если функция не указана, размер вывода составляет 32x32, и он уменьшается, если abs ( normalizedAngle)> 0,25
AdditionalLayout другую таблицу с 2 компонентами, каждый из которых должен быть функцией.
Первый получает те же параметры, что и функция sizeCallback. Может использоваться для реализации дополнительных визуальных эффектов. Например: вы можете сделать что-то вроде pin: SetColor (1,0,0,1), чтобы сделать вывод красным.
Вторая функция получает только пин-код в качестве параметра. Поскольку выводы объединены (сохранены для повторного использования), необходимо снова очистить дополнительные модификации вывода. Таким образом, в предыдущем примере эта функция должна вызывать pin: SetColor (1,1,1,1), чтобы сделать вывод снова белым.
The pin objectдля pin имеет следующие атрибуты:
pin.xLoc x координата
pin.yLoc y координата
pin.pinType pinType
pin.pinTag pinTag
Поскольку pin является первым заданным параметром в функциях обратного вызова макета, вы можете передавать любые данные этим функциям через pinTag (например, альтернативную текстуру, отличную от указанной в таблице макетов). Pin
Важные функций : SetAlpha (значение) 1 = контакт непрозрачный, 0 = контакт прозрачный. Полезно для эффектов затухания.
pin: SetHidden (bool), если значение bool равно true, то pin является невидимым
pin: SetDimensions (width, height) устанавливает ширину и высоту pin (полезно, если вы хотите реализовать собственный эффект масштабирования вблизи границы или что-то в этом роде). )
pin: SetColor (r, g, b, a) меняет цвет контактов. Вы можете создать какой-то эффект подсветки с этим.
pin: GetNamedChild ("Фон")возвращает текстурный контроль