PlayerWaypoints
Активный0.0
Установок
Последнее обновление
Версии
PlayerWaypoints
Серверный мод для создания пользовательских точек навигации
Этот серверный мод позволяет добавлять собственные метки на панель локатора, используя технологию виртуальных сущностей от Polymer. Вы можете создавать точки навигации как для всего мира, так и для отдельных игроков, прикрепляя их аналогично другим виртуальным объектам.
Типы точек навигации
Глобальные метки
Глобальные точки навигации отображаются у всех игроков, находящихся в том же мире, где размещена метка.
PlayerWaypointManager.addGlobalWaypoint(serverWorld, pos, id) -> WaypointElement
PlayerWaypointManager.addGlobalWaypoint(serverWorld, waypointElement) -> WaypointElement
Удаление метки:
PlayerWaypointManager.removeGlobalWaypoint(serverWorld, waypointElement) -> void
Персональные метки
Индивидуальные точки навигации видны только конкретному игроку при условии нахождения в том же мире.
PlayerWaypointManager.addPlayerWaypoint(player, serverWorld, pos, id) -> WaypointElement
PlayerWaypointManager.addPlayerWaypoint(player, serverWorld, waypointElement) -> WaypointElement
Удаление метки:
PlayerWaypointManager.removePlayerWaypoint(player, serverWorld, waypointElement) -> void
Интеграция с Polymer
Точки навигации построены на основе виртуальных сущностей Polymer, поэтому вы можете добавлять WaypointElement
так же, как и любой другой элемент.
Класс WaypointElement
Класс WaypointElement является основным способом представления точек навигации для панели локатора.
<ctor> WaypointElement(ServerWorld, Identifier)
Настройки
WaypointElement::getConfig(ServerPlayerEntity)
: Получает конфигурацию точки для клиента
WaypointElement::setColor(int)
: Устанавливает цвет метки - RGB
WaypointElement::setStyle(RegistryKey<WaypointStyle>)
: Задает стиль точки навигации См.: Minecraft Wiki / Стили точек
- Примечание по стилям точек: расчет расстояния не работает, поэтому всегда отображается спрайт "самой дальней" точки. Это известная ошибка.
- Однако вы можете переопределить getConfig(...)
и вручную изменить стиль в зависимости от расстояния, используя getDistanceTo
.
Позиционирование и передача
WaypointElement::setWaypointTransmitRange(double)
: Устанавливает дальность видимости точки. Метка перестанет передаваться за пределами этого расстояния.
WaypointElement::setPosition(Vec3d)
: Задает позицию точки навигации.
- Также можно использовать setOffset(...)
для аналогичного результата.
WaypointElement::isPlayerInRange(PlayerEntity) -> boolean
: Определяет, должна ли точка передаваться данному игроку.
WaypointElement::getObservers() -> Set<PlayerEntity>
: Получает всех игроков, которым в данный момент передается эта точка
WaypointElement::getDistanceTo(PlayerEntity)
WaypointElement::getSquaredDistanceTo(PlayerEntity
Получает расстояние от точки до указанного игрока
Голограммы точек (в разработке)
К WaypointElements можно прикреплять голограммы для отображения информации пользователю.
По умолчанию голограммы отображаются непосредственно над точкой навигации.
Эта функция находится на экспериментальной стадии и может работать некорректно. Рекомендуется создавать голограммы отдельно.
Позиционирование можно изменить с помощью getHologramElementPosition
WaypointElement::setHologram(List<Text>)
: Устанавливает голограмму точки с использованием MarkerElements
WaypointElement::setHologram(List<HologramData>)
: Задает голограмму точки
WaypointElement::removeHologram(HologramData)
: Удаляет голограмму из точки
getHologramElementPosition(Vec3d origin, int line, HologramData) -> Vec3d
: Получает позицию элемента голограммы
По умолчанию: origin.offset(Direction.UP, (line * 0.25f))
Дополнительные утилиты
SVPlayerWaypoints.getHolderForWorld(ServerWorld)
: Получает контейнер точно в позиции [0,0,0]