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

CC: Optical

Всё, что нужно для твоих турелей!

NeoForge
Загрузчики
NeoForge
Скачиваний на Modrinth
4 тыс.
Подписчиков на Modrinth
12
версии
2
Обновлён
14 августа 202614 авг.
Опубликован
в 2026
Banner · свайп

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

Работает на NeoForge
Для Minecraft 1.21.1
Нужен и в игре, и на сервере
Последняя версия — 1.1.0 от 14 августа 2026
Лицензия CC0-1.0 — бесплатно
Где нужен
В игреобязателенНа сервереобязателен

Нужен и в игре, и на сервере

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

CC:Optical

Добавляет периферию для управления сенсорами и пушками в CC:Tweaked, совместимо с Create:Aeronautics.

Все блоки

Сенсоры

Четыре варианта с динамическим зумом FOV, фильтрацией целей и методами сканирования:

Оптический сенсор (optical_sensor) — по умолчанию всенаправленный (FOV 360°) с базовой дальностью 96 блоков. Позволяет сужать FOV вплоть до 15° для увеличения дальности зума (до 192 блоков). Требует прямой линии видимости (только реальные блоки ландшафта; terrain подуровня прозрачен).

Направленный оптический сенсор (directional_optical_sensor) — направленное конусное поле зрения (по умолчанию 125°, регулируется вплоть до 10°), базовая дальность 90 блоков при полном FOV, зум до 512 блоков при минимальном FOV.

Дальнобойный оптический сенсор (long_range_optical_sensor) — направленное конусное поле зрения (по умолчанию 125°, регулируется вплоть до 10°), базовая дальность 96 блоков при полном FOV, зум до 900 блоков при минимальном FOV.

Радар (entity_radar) — всенаправленный, базовая дальность 64 блока, игнорирует линию видимости. Размещение рядом блоков Radar Booster (radar_booster) добавляет +224 блока за каждый бустер (до 2 бустеров, суммарно 512 блоков). Добавление 2-блочной антенны (громоотводы или железные прутья) сверху радара или на любом из его бустеров умножает эффект бустера, увеличивая дальность радара до ~900 блоков. Показания позиции имеют гауссов шум (растёт с расстоянием, зависит от высоты сенсора относительно уровня моря).

Обнаружение работает через границы подуровней. Сенсор на дирижабле может засечь другой дирижабль и сущностей внутри него. Каждое обнаружение несёт UUID подуровня, когда цель находится внутри него. Декоративные не-сущности (картины, рамки, дисплеи, маркеры) автоматически игнорируются.

Точность обнаружения снижается с дальностью, но дистанции распознавания динамически масштабируются с зумом FOV и улучшениями бустеров. За пределами точности цели классифицируются только по размеру (object_small/object_mid/object_large). Шум позиции радара растёт линейно с расстоянием и зависит от высоты сенсора относительно уровня моря.

Масштабирование дальности и распознавания

Сенсор / КонфигурацияFOV / ДополненияМакс. дальностьТочный тип (type)Имя игрока (name)
Оптический сенсор360° (всенаправленный)96 м≤ 56 м≤ 40 м
Оптический сенсор15° (зум)192 м≤ 112 м≤ 80 м
Направленный оптический125° (полный FOV)90 м≤ 56 м≤ 40 м
Направленный оптический10° (макс. зум)512 м≤ 318 м≤ 227 м
Дальнобойный оптический125° (полный FOV)96 м≤ 56 м≤ 40 м
Дальнобойный оптический10° (макс. зум)900 м≤ 525 м≤ 375 м
РадарБазовый (0 бустеров)64 м≤ 28 м≤ 18 м
Радар1 бустер288 м≤ 126 м≤ 81 м
Радар2 бустера (полный буст)512 м≤ 224 м≤ 144 м
Радар1 бустер + антенна482 м≤ 211 м≤ 135 м
Радар2 бустера + антенна900 м≤ 394 м≤ 253 м

Lua API

Методы сенсоров, доступные в CC:Tweaked:

МетодПараметрыВозвращаетОписание
scanrelativeCoords: boolean (опционально)tableВыполняет немедленное сканирование. Если true, возвращённые позиции поворачиваются в локальную систему подуровня сенсора.
setFovfov: numbernumberЗадаёт оптическое поле зрения в градусах (ограничивается [minFov, maxFov]). Более узкий FOV увеличивает эффективную дальность. Только для оптических.
getFov—numberВозвращает текущее поле зрения в градусах.
getMinFov—numberВозвращает минимально допустимое поле зрения в градусах.
getMaxFov—numberВозвращает максимально допустимое поле зрения в градусах.
getRange—numberВозвращает текущую эффективную дальность обнаружения в блоках (динамически масштабируется с FOV).
setFiltertypeOrList: string|table (опционально)string[]Задаёт активный фильтр целей (по точному ID, короткому имени, "sublevel" или классу размера "object_small"/"object_mid"/"object_large"). Несовпавшие сущности не учитываются в лимитах целей. Передайте nil для сброса.
getFilter—string[]Возвращает массив текущих активных фильтров целей.
clearFilter—booleanСбрасывает все активные фильтры.
isOptical—booleanВозвращает true, если это оптический сенсор, поддерживающий FOV/зум/фильтрацию, false для радара.

Возвращаемая таблица scan()

ПолеТипОписание
countnumberКоличество обнаружений
lastScanTicknumberТик сервера, на котором выполнялось сканирование
relativeCoordsbooleanИспользовались ли относительные координаты
detectionstable[]Массив объектов обнаружения

Поля обнаружения

ПолеТипОписание
idstringUUID сущности (или UUID подуровня для ограничивающих рамок подуровня)
typestringРегистровое имя сущности (например, "minecraft:zombie"), класс размера ("object_small"/"object_mid"/"object_large") или "sublevel"
namestring или nilИмя игрока в таблице очков (если в пределах дистанции точности имени)
x, y, znumberСмещение от источника сенсора (в блоках)
distancenumberРасстояние по прямой
subLevelUUIDstring или nilUUID подуровня, внутри которого находится сущность
subLevelNamestring или nilНазвание подуровня

Пример

local sensor = peripheral.wrap("left")

-- Narrow FOV to boost range and focus only on sublevels
if sensor.isOptical() then
  sensor.setFov(15)
  sensor.setFilter("sublevel")
end

while true do
  local res = sensor.scan(true)
  print("Targets: " .. res.count)
  for _, t in ipairs(res.detections) do
    print(("%s @ %.1f m (x=%.1f, y=%.1f, z=%.1f)"):format(t.type, t.distance, t.x, t.y, t.z))
  end
  sleep(0.25)
end

CBC Cannon Mount

Оборачивает орудийные крепления из Create Big Cannons как периферийные устройства cbc_cannon_mount (дополнительный тип cannon_mount). Наводите, стреляйте и запрашивайте состояние из Lua.

МетодПараметрыВозвращаетОписание
assemble—booleanСобирает орудийную конструкцию
disassemble—booleanРазбирает
fire—booleanПроизводит выстрел из пушки
isRunning—booleanСобрана ли и работает ли
isAssembled—booleanТо же, что и isRunning
isLoaded—booleanМожет ли пушка стрелять
setPitchpitch: numberbooleanЗадать целевой тангаж (в градусах)
setYawyaw: numberbooleanЗадать целевой рыскание (в градусах)
getPitch—numberТекущий тангаж
getYaw—numberТекущее смещение рыскания
getX—number или nilПозиция контроллера по X
getY—number или nilПозиция контроллера по Y
getZ—number или nilПозиция контроллера по Z
getMaxDepress—number или nilМаксимальный угол склонения
getMaxElevate—number или nilМаксимальный угол возвышения
getDirection—string или nilНаправление (north/south/east/west)
getCannonWeight—number или nilНагрузочный вес пушки

Вращение может быть ограничено конфигом (cbcFreeRotationEnabled, cbcFreeRotationMaxWeight). При блокировке выбрасывает LuaException.

Полностью совместимо с CannonMountPeripheral из VS: Addition — тот же дополнительный тип "cannon_mount", те же формы методов.

Для владельцев серверов

Все функции настраиваются. Отключите периферийное устройство орудийного крепления CBC (cbcPeripheralEnabled: false), чтобы избежать конфликтов с другими модами, добавляющими такое же периферийное устройство (CC:CBC в качестве примера).

Если вы хотите перевести мод, нашли баг или хотите предложить что-то новое:

Discord: Cyber_Jellyfish

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

Как установить CC: Optical?

Установите NeoForge под свою версию Minecraft, скачайте CC: Optical под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть CC: Optical?

У CC: Optical есть сборки для Minecraft 1.21.1.

Нужен ли CC: Optical на сервере?

Нужен и в игре, и на сервере

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

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