Скачать PlayerWaypoints — Minecraft Моды — MetaMods

PlayerWaypoints

Активный

Установок

0

Последнее обновление

3 месяца назад

Версии

1.21.7
Сервер
Fabric

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]

Участники проекта
Feintha

Feintha

Разработчик

Создан: 21 июл 2025

ID: 257750