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

CC:Gamepad

CC: Gamepads добавляет блок-периферию для CC:Tweaked, который позволяет компьютерам ComputerCraft считывать реальный ввод с геймпадов/контроллеров игроков.

NeoForge
Загрузчики
NeoForge
Скачиваний на Modrinth
1,2 тыс.
Подписчиков на Modrinth
3
версии
3
Обновлён
16 июня 202616 июн.
Опубликован
в 2026
Gamepad 3d renderer. — gamepad 3d · свайп

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

Работает на NeoForge
Для Minecraft 1.21.1
Нужен и в игре, и на сервере
Последняя версия — 1.0.2-neoforge-1.21.1 от 16 июня 2026
Лицензия MPL-2.0 — бесплатно
Где нужен
В игреобязателенНа сервереобязателен

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

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

CC: Gamepads добавляет периферийный блок для CC:Tweaked, который позволяет компьютерам ComputerCraft считывать реальный ввод с геймпадов/контроллеров игроков.

Контроллер считывается на клиенте игрока, отправляется на сервер и становится доступен в Lua через привязанную периферию Gamepad. Работает в одиночной игре, по LAN и на выделенных серверах. Требования

Minecraft 1.21.1 NeoForge 21.1.x CC:Tweaked 1.117.1

Как использовать

Поставьте блок Gamepad Peripheral рядом с компьютером CC:Tweaked или подключите его через модем. Возьмите в руку предмет Gamepad. Присядьте и щёлкните правой кнопкой по Gamepad Peripheral с предметом Gamepad, чтобы привязать его. Держите привязанный предмет Gamepad в основной или во второй руке. Подключите контроллер (по проводу или Bluetooth) и запустите Lua-код на компьютере.

До 4 игроков могут одновременно отправлять ввод на один и тот же Gamepad Peripheral. Каждый игрок получает слот от 1 до 4. Периферия Lua

Оборачивайте периферию как любую другую периферию CC:Tweaked:

local pad = peripheral.find("gamepad")

Функции getPlayers()

Возвращает список состояний подключённых контроллеров.

Каждая запись содержит:

slot: слот игрока, от 1 до 4 player: имя игрока playerId: UUID игрока controllerId: id контроллера на клиенте controllerName: название контроллера guid: GUID контроллера buttons: таблица кнопок по номерам buttonNames: таблица кнопок по именам axes: таблица осей по номерам axisNames: таблица осей по именам updatedAt: серверная метка времени

getState(slot)

Возвращает полную таблицу состояния для одного слота.

Выбрасывает ошибку, если к этому слоту не привязан контроллер. isDown(slot, button)

Возвращает true, если кнопка с указанным номером нажата.

Кнопки:

A B X Y Left bumper Right bumper Back/select Start Guide/home Left stick Right stick D-pad up D-pad right D-pad down D-pad left

isButtonDown(slot, name)

Возвращает true, если кнопка с указанным именем нажата.

Имена:

a b x y leftBumper rightBumper back select start guide home leftStick rightStick dpadUp dpadRight dpadDown dpadLeft

getAxis(slot, axis)

Возвращает значение оси с указанным номером.

Оси:

Left X, от -1 до 1 Left Y, от -1 до 1 Right X, от -1 до 1 Right Y, от -1 до 1 Left trigger, от 0 до 1 Right trigger, от 0 до 1

getAxisValue(slot, name)

Возвращает значение оси с указанным именем.

Имена:

leftX leftY rightX rightY leftTrigger rightTrigger

getMaxPlayers()

Возвращает 4. getButtonCount()

Возвращает 15. getAxisCount()

Возвращает 6. События

При изменении состояния контроллера подключённые компьютеры получают:

cc_events, "gamepad", slot, playerName, controllerId

Пример:

local event, kind, slot, player, controllerId = os.pullEvent("cc_events") if kind == "gamepad" then print(player .. " updated slot " .. slot) end

Пример программы на Lua

Она выводит базовое состояние для слота 1 и завершается при нажатии Start.

local pad = peripheral.find("gamepad") if not pad then error("No gamepad peripheral found") end

print("Waiting for gamepad input...")

while true do local event, kind, slot, player = os.pullEvent("cc_events") if kind == "gamepad" and slot == 1 then local lx = pad.getAxisValue(1, "leftX") local ly = pad.getAxisValue(1, "leftY") local a = pad.isButtonDown(1, "a") local b = pad.isButtonDown(1, "b")

term.clear() term.setCursorPos(1, 1) print("Player: " .. player) print(("Left stick: %.2f %.2f"):format(lx, ly)) print("A: " .. tostring(a)) print("B: " .. tostring(b)) print("Start exits")

if pad.isButtonDown(1, "start") then break end end end

Заметки о мультиплеере

Ввод с контроллера принимается только от того игрока, который его отправил. Игрок должен держать предмет Gamepad, привязанный к нужной периферии. ID и GUID контроллеров проверяются на стороне сервера. Размеры пакетов, длины строк, количество кнопок и осей, а также значения осей проверяются перед принятием состояния. Состояние игрока очищается при его отключении или при изменении списка его контроллеров.

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

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

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

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

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

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

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

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

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