Перейти к содержимому

i113w's Camera Lib

Библиотека, предоставляющая систему камеры в стиле RTS, которую использует команда Better Mine.

от i113w
NeoForgeForge
Загрузчики
NeoForgeForge
Скачиваний на Modrinth
567
Подписчиков на Modrinth
0
версий
7
Обновлён
5 сентября 20265 сент.
Опубликован
в 2026

Коротко о моде

Работает на NeoForge и Forge
Для Minecraft 1.21.1, 26.1.2 …
Ставится только в игру; на сервер ставить не нужно
Последняя версия — 1.20.1-0.0.4 от 5 сентября 2026
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа серверене нужен

Ставится только в игру; на сервер ставить не нужно

Версии игры1.20.1, 1.21.1, 26.1.2
Описание переведено автоматическиПоказать оригинал (EN)

i113w's Camera Lib

Клиентская библиотека для NeoForge 1.21.1, предоставляющая полноценную камеру в стиле RTS — включая перемещение камеры, выделение сущностей рамкой, зоны команд по правому клику, рейкаст и отрисовку подсветки.

Создана для использования другими модами (например, Better Mine Team) через тонкий слой API.


Требования

КомпонентВерсия
Minecraft1.21.1
NeoForge21.1.209+
Java21
СторонаТолько клиент

Подключение библиотеки

Локальный JAR (положите JAR в папку libs/ вашего мода):

dependencies {
    implementation files('libs/i113w_camera_lib-0.0.1.jar')
}

Объявите зависимость в META-INF/neoforge.mods.toml:

[[dependencies."your_mod_id"]]
    modId = "i113w_camera_lib"
    type = "required"
    versionRange = "[0.0.1,)"
    ordering = "BEFORE"
    side = "CLIENT"

Ключевые интерфейсы и классы

CameraLibAPI — единая точка входа

CameraLibAPI api = CameraLibAPI.get();

// Register your delegate
api.setInteractionDelegate(new MyDelegate());

// Sync selected entity IDs to the library (drives outline rendering)
api.setSelectedEntities(Set<Integer> ids);

// Query hovered entity (-1 if none)
int id = api.getHoveredEntityId();

// Clear selection and hover state
api.clearSelection();

IRTSInteractionDelegate — внедрение игровой логики

public interface IRTSInteractionDelegate {
    boolean isSelectable(Entity entity);
    ResourceLocation getCursorIcon(@Nullable Entity hoveredEntity, boolean isAttackDragging);
}

Регистрируется через CameraLibAPI.get().setInteractionDelegate(impl).


События (вызываются на NeoForge.EVENT_BUS)

RTSBoxSelectEvent — завершено выделение левым кликом или рамкой

@SubscribeEvent
public static void onSelect(RTSBoxSelectEvent event) {
    List<Entity> candidates = event.getCandidates(); // pre-filtered by isSelectable()
}

RTSRightClickEvent — завершён правый клик или протяжка правой кнопкой

@SubscribeEvent
public static void onRightClick(RTSRightClickEvent event) {
    if (event.isDrag()) {
        List<Entity> targets = event.getDragTargets();
    } else {
        HitResult hit = event.getSingleHitResult(); // BlockHitResult or EntityHitResult
    }
}

RTSCameraController — состояние камеры

RTSCameraController cam = RTSCameraController.get();

cam.toggleRTSMode();      // activate / deactivate
cam.toggleCameraStyle();  // switch RTS <-> FREE (while active)
cam.isActive();           // boolean
cam.reset();              // force-exit, use on logout / level unload

Режимы камеры

РежимFOVЗумПоворот рыскания
RTS25° (фиксированный)Колесо мышиУдерживайте Left Ctrl + тяните (с шагом rtsSnapAngle)
FREEСтандартныйКолесо мыши (движение вперёд)Удерживайте Left Ctrl + тяните (плавно)

Отрисовка подсветки

Библиотека автоматически рисует контуры сущностей, когда камера активна. Никакого кода отрисовки в моде-потребителе не нужно — просто синхронизируйте CameraLibAPI.setSelectedEntities(...).

ЦветУсловие
БелыйID сущности в выделенном наборе
ЖёлтыйСущность под курсором (не в выделенном наборе)

Конфигурация

Настраиваемые игроком значения в .minecraft/config/i113w_camera_lib-client.toml:

КлючПо умолчаниюОписание
rtsPitchMin / Max35 / 45Диапазон ограничения наклона в режиме RTS
freePitchMin / Max10 / 90Диапазон ограничения наклона в режиме FREE
rtsZoomMin / Max10 / 80Ограничение дистанции зума в режиме RTS
rtsZoomSpeedMultiplier3.5Чувствительность зума колесом мыши
rtsSnapAngle90Градусов на шаг фиксации рыскания
freeRotationSpeed5.0Чувствительность рыскания мышью в режиме FREE
thresholdPx20Дистанция срабатывания панорамирования от края (пикселей от края экрана)
baseSpeed1.0Скорость движения WASD
sprintMultiplier2.0Множитель скорости при удержании клавиши спринта

Лицензия

MIT — см. LICENSE

Автор: i113w

Частые вопросы

Как установить i113w's Camera Lib?

Установите NeoForge под свою версию Minecraft, скачайте i113w's Camera Lib под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть i113w's Camera Lib?

У i113w's Camera Lib есть сборки для Minecraft 1.20.1, 1.21.1, 26.1.2.

Нужен ли i113w's Camera Lib на сервере?

Ставится только в игру; на сервер ставить не нужно

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Другие моды автора

BetterMineTeam↓ 1,9 тыс.AttributeFix-Sync↓ 1 тыс.

Часто нужны вместе

BetterMineTeam↓ 1,9 тыс.

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее