OpenComputers/Конфигурация мода

Файл настроек модификации OpenComputers находится в папке .minecraft\config\opencomputers. Он позволяет провести более тонкую настройку модификации.

Ниже приведен полный текст этого файла, с переводом комментариев на русский язык.


settings.conf
# Конфигурации OpenComputers. Этот файл использует типизированный синтаксис HOCON. # Вы можете включить подсветку кода Ruby, для простоты чтения конфигураций. # Обратите внимание, что этот файл перезаписывается когда вы запускаете игру! # Изменения комментариев могут исчезнуть. # Примечание: "KB" или "килобайт" означает 1024 байта. opencomputers { # Настройки клиента. Отображение, производительность и т.д. client { # Это масштаб символов на экране. По умолчанию установлен на небольшое # увеличение, во избежание fontCharScale=1.01 # Максимальная дистанция, на которой рендерится текст на мониторах. # Рендеринг текста может отразиться на производительности, особенно, # если у вас много мониторов. Обратите внимание, что эта настройка # относится только к производительности на стороне клиента. maxScreenTextRenderDistance=20 # Отображает названия роботов в виде меток сверху, когда вы рядом robotLabels=true # Расстояние, на котором текст на экранах начинает темнеть. Это # декоративный эффект, сделанный, чтобы текст не исчезал с мониторов # внезапно. Не оказывает особенного эффекта на производительность. # Внимание: для отображения эффекта необходим OpenGL 1.4. screenTextFadeStartDistance=15 # Громкость звуков модификации. (Например — жужжание компьютера.) # Установка параметра в 0 — отключает звуки. soundVolume=1 # Если вы предпочитаете не сглаженный текст на мониторах # (без анти-алиасинга) отключите этот параметр textAntiAlias=true # Применяется ли линейная фильтрация для текста на мониторах, когда # изменяется разрешение монитора, или игрок смотрит на текст издалека. # Функция сгладит текстуру, но символы могут плохо соединяться вместе. # (Например при отображении псевдографики) textLinearFiltering=false } # Параметры компьютеров, производительность серверов и безопасность. computer { # Активно ли используется сборщик мусора Lua каждый раз, перед запуском # Lua на компьютере. Это имеет два преимущества: во-первых, освобождается # оперативная память, и программы меньше рискуют ее переполнить. Во-вторых # программы могут точнее определять объем доступной памяти через # os.freeMemory() (в противном случае это значение может немного "скакать"). # Недостатки: на это тратится немного больше ресурсов процессора. # Тем не менее, в условиях небольших объемов оперативной памяти по умолчанию, # этот параметр очень важен. activeGC=true # Позволяет ли загружать прекомпилированный байт-код через Lua 'load', # или аналогичные функции (`loadfile`, `dofile`). Включайте это, только # если вы абсолютно уверены во всех пользователях вашего сервера и загружаемом # Lua-коде. Это может оказаться БОЛЬШОЙ УЯЗВИМОСТЬЮ, т.к. прекомпилированный # код легко может содержать эксплойты и запускать произвольный код на реальном # сервере! # Итак: используйте это, только если вы знаете на что идете! allowBytecode=false # Это определяет, используются ли компьютеры только зарегистрированными # пользователями. По умолчанию, новый компьютер не имеет пользователей. # Т.е. он доступен для любого игрока. Аккаунтами можно управлять через # Lua API (computer.addUser, computer.removeUser, computer.users). # Для пользователей доступно: # — ввод с клавиатуры и тач-скрин # — доступ к инвентарю # — удаление блоков компьютера # Если параметр установлен в false, все компьютеры всегда будут доступны # всем игрокам, вне зависимости от списка зарегистрированных пользователей. # См. также: `maxUsers` и `maxUsernameLength`. canComputersBeOwned=true # Количество компонентов, которые поддерживают ЦПУ разных уровней # Список должен содержать ровно три числа. cpuComponentCount=[ 8, 12, 16 ] # Удаляется ли содержимое папки /tmp при "мягкой" перезагрузке # (при помощи computer.shutdown(true)). При выключении компьютера # или системном крахе, папка /tmp очищается в любом случае. eraseTmpOnReboot=false # Эта настройка используется для отслеживания ошибок, которые возникают # при вызове функций Lua. По умолчанию, сообщения об ошибках возвращаются # обратно в Lua. Если вы получили странную ошибку, или разрабатываете дополнение, # вы захотите получить подробный список ошибок. Включение этого параметра # позволяет вести подробный лог ошибок в игровом логе. По умолчанию, параметр # отключен, чтобы не спамить в лог сообщениями о незначительных # событиях вроде IllegalArgumentException. logCallbackErrors=false # Профилактическое ограничение на длину никнейма для пользователей компьютеров. # См. также: `canComputersBeOwned`. maxUsernameLength=32 # Максимальное количество пользователей, которых можно зарегистрировать # на одном компьютере. Параметр введен для того, чтобы компьютер не # выделял тратил неограниченное количество памяти на регистрацию # бесконечного количества пользователей. # См. также: `canComputersBeOwned`. maxUsers=16 # Этот параметр позволяет вам произвести точную настройку размеров RAM # на 64 битных машинах. (Когда сервер Minecraft запущен в 64 битной VM). # Для чего это нужно? Объекты занимают больше памяти в 64 битном окружении, # по сравнению с 32 битным, т.к. указатели и возможно некоторые числовые типы # имеют вдвое больший размер. Невозможно свести все к точному параметру, # поэтому его необходимо подобрать. Если вы заметите, что значение параметра # не соответствует необходимому, поменяйте его и сообщите мне свои наблюдения! # Примечание: значения отображаемые computer.totalMemory и computer.freeMemory # всегда соответствуют заданным объемам установленных планок памяти. К примеру, # на компьютере с 64KB RAM, даже если они модифицированы этим параметром # до 96KB, computer.totalMemory вернет 64KB, а если там свободно 45KB, # computer.freeMemory вернет 32KB. ramScaleFor64Bit=1.8 # Объемы планок памяти разных уровней, в килобайтах. Список должен # содержать шесть значений, или будет проигнорирован. ramSizes=[ 64, 96, 128, 256, 512, 1024 ] # Время в секундах, которое компьютер ждет после загрузки локации, прежде # чем заработать. Сделано во избежание непрогрузки некоторых частей сети, # и прочих странных глюков. startupDelay=0.25 # Общее количество потоков в компьютерах. Какое бы действие не произошло, # например — получен сигнал, или истекло время таймера, оно попадает в # очередь рабочего потока. Большее число потоков уменьшит вероятность # блокирования события, но повысит нагрузку на систему. threads=4 # Время в секундах, которое программа может работать вхолостую, пока ее не # прервут принудительно. # Используется для того, чтобы избежать глупых или злоумышленных программ, # которые блокируют другие компьютеры, закрывая стартовый поток. # Этот параметр не влияет на уже запущенные компьютеры и будет применен # к ним только после перезагрузки. timeout=5 } # Параметры файловой системы, производительность и баланс. filesystem { # Сохраняются ли данные постоянных файловых систем (таких как дисководы) # в буфер, который записывается на винчестер, только при сохранении # игрового мира. Этот параметр влияет на все жесткие диски. Плюсы: # данные никогда не "рассинхронизируются" в случае краха игры. # Минусы: большее потребление оперативной памяти, т.к. все загруженные # файлы игра будет держать в памяти. bufferChanges=true # Базовый "вес" одного файла или папки в ограниченной файловой системе, # такой как жесткие диски. Когда вычисляется занятое пространство, это # значение добавляется к реальному весу файла (папки). Это сделано для того # чтобы пользователь не мог "спамить" в файловую систему бесконечным числом # папок или файлов. При этом значение, возвращаемое функциями API всегда # отображает настоящий "вес" файла. fileCost=512 # Размер дискет, в килобайтах. floppySize=512 # Размеры трех поколений жестких дисков, в килобайтах. Список должен # содержать ровно три значения, иначе будет проигнорирован. hddSizes=[ 1024, 2048, 4096 ] # Максимальное число файлов, которые каждый компьютер может держать открытыми # одновременно, на одну файловую систему. Поскольку файловые системы виртуальны, # этот параметр не сильно влияет на производительность. maxHandles=16 # Максимальный размер блока, который может быть прочтен за один вызов # "read". Сделано для ограничения объемов памяти, которые Lua выделяет для # чтения файлов. Также влияет на производительность работы с файловой # системой. maxReadBuffer=2048 # Размер временной файловой системы /tmp, которую предоставляет каждый # компьютер. Если установить отрицательное число, временная файловая система # не будет создана. tmpSize=64 } # Настройки интернета, безопасность. internet { # Черный список доменов. Если имя домена в HTTP запросе совпадет с одним из # этих шаблонов, запрос будет блокирован. Все шаблоны в списке — регулярные # выражения, которые применяются только к имени хоста (домену) заданного URL. blacklist=[ "^127\\.0\\.0\\.1$", "^10\\.\\d+\\.\\d+\\.\\d+$", "^192\\.\\d+\\.\\d+\\.\\d+$", "^localhost$" ] # Разрешены ли HTTP запросы интернет платами. Если разрешены, # метод 'request' интернет-компонента будет доступен. enableHttp=true # Разрешены ли TCP соединения через интернет плату. Если разрешены, # метод 'connect' интернет-компонента будет доступен. enableTcp=true # Максимальное число одновременных TCP подключений на одну интернет плату. maxTcpConnections=4 # Число потоков, которые используются для обработки HTTP запросов # в фоне. Чем оно выше, тем больше подключений может обрабатывать компьютер # одновременно, и меньше время ожидания. requestThreads=4 # Время в секундах, ожидания ответа на запрос, прежде чем произойдет # таймаут и будет возвращено сообщение об ошибке. Если это 0 (по умолчанию), # запрос будет обрабатываться вечно. requestTimeout=0 # Белый список доменов. Запросы могут быть посланы только на домены, # которые совпадают с шаблонами в списке. Если список пуст, разрешены все # домены, которые не содержатся в черном списке. Черный список используется # всегда, так что, если домен содержится в обоих списках, черный побеждает. # Все шаблоны в списке — регулярные выражения, которые применяются только # к имени хоста (домену) заданного URL. Примеры: # "^gist\\.github\\.com$", "^(:?www\\.)?pastebin\\.com$" whitelist=[] } # Другие полезные параметры. misc { # На некоторых платформах нативные библиотеки могут вызывать падение игры, поэтому # здесь встроена проверка загрузки таких библиотек. Это касается # Windows XP и Windows Server 2003. Если вы считаете, что-то может заработать # неправильно, установите параметр 'true'. Используйте его на # свой страх и риск. Если игра вылетела после установки флага 'true', # НЕ СООБЩАЙТЕ МНЕ ОБ ЭТОМ. alwaysTryNative=false # Передавать ли имя пользователя, который вызвал сигнал ввода данных # (клавиатура или мышь). Отключите, если это мешает погружению в игру. inputUsername=true # Возможность (или скорее, взвешенный шанс), что диск с программой # появится в сундуке с сокровищами. Для справки, железные слитки имеют # шанс 10, золотые слитки — 5, а алмазы — 3. Какой именно диск это будет, # определяет генератор случайных чисел. lootProbability=5 # Максимальная длина строки, которую можно вставить. Ограничивает размер данных, # которые посылаются на сервер, когда пользователь пытается вставить # строку из буфера обмена (Shift+Ins на мониторе с клавиатурой). maxClipboard=1024 # Максимальный размер сетевых пакетов, которые могут быть посланы # через сетевую плату. Это не имеет отношения к реальному сетевому трафику. # Ограничение установлено для того, чтобы избежать потери данных при # пересылке пакетов большого размера компьютером с небольшим количеством # оперативной памяти. Не имеет отношения к HTTP трафику. maxNetworkPacketSize=8192 # Максимальная высота мультиблочного экрана, в блоках. Ограничено, чтобы # избежать затратных вычислений при объединении мониторов. Если вам # требуется монитор большего размера, попробуйте увеличивать параметр # постепенно (по одному блоку), пока не появятся проблемы. maxScreenHeight=6 # Максимальная ширина мультиблочных мониторов, в блоках. # См. также: `maxScreenHeight`. maxScreenWidth=8 # Максимальное расстояние, на которое может быть послан беспроводной сигнал. # Другими словами, это максимальная сила сигнала, который может послать # беспроводная сетевая плата. Ограничивает радиус, в котором производится # поиск модемов, чтобы избежать смешных ситуаций, когда например, радиус # обнаружения больше, чем радиус загружаемых чанков. # См. также: `wirelessStrength`. maxWirelessRange=400 # Количество беспроводных терминалов, которое поддерживает сервер каждого # уровня. terminalsPerTier=[ 2, 4, 8 ] # Проверять и информировать ли о наличии новых версий (соединяется с Guthub # один раз, когда первый игрок входит на сервер или запускается первая # локальная игра). updateCheck=true } # Настройки энергии, размеры буферов и расход. power { # Размеры буферов по умолчанию. Например, сколько энергии могут хранить # те или иные блоки. buffer { # Количество энергии, которое может хранить один аккумулятор. capacitor=1600 # Количество дополнительной энергии, которую может накопить аккумулятор, # когда присоединен вплотную к другому аккумулятору. Бонус делится # между несколькими "соседями". Так, три аккумулятора в ряд могут # накопить 8.8к энергии по умолчанию: # (1.6 + 0.8 + 0.4)k + (0.8 + 1.6 + 0.8)k + (0.4 + 0.8 + 1.6)k capacitorAdjacencyBonus=800 # Количество энергии, которую может хранить компьютер. computer=500 # Количество энергии, которое может хранить конвертер. converter=1000 # Количество энергии, которое может хранить каждая сторона распределителя. # Если параметр равен 0, два соединенных вместе распределителя не смогут # передавать энергию. distributor=500 # Количество энергии, которое может хранить робот. robot=50000 } # Количество энергии, которое зарядное устройство передает каждому # соседнему роботу за один "такт" при максимальном сигнале редстоуна. chargerChargeRate=100 # Расход энергии по умолчанию на разные операции. cost { # Затраты на один пакет посланный устройству StargateTech 2. abstractBusPacket=1 # Количество энергии, потребляемой компьютером за один "такт". computer=0.5 # Энергия, которую тратит монитор на заливку экрана "пробелами". gpuClear=0.1 # Энергия, которую тратит монитор на копирование половины # базового экрана командой 'copy'. gpuCopy=0.25 # Энергия, которую тратит монитор на заливку базового экрана # командой 'fill'. gpuFill=1 # Энергия, которую монитор тратит на то, чтобы поменять каждый # пиксель командой 'set' на базовом экране. gpuSet=2 # Энергия, которую занимает чтение одного килобайта из файловой # системы. При этом, не операции ввода/вывода, такие как 'list' # или 'getFreeSpace' не тратят энергию. Этот параметр также # определяет, сколько энергии должно быть в сети, для того, чтобы # запустить компьютер и загрузить все библиотеки (на момент # написания — около 60KB). hddRead=0.1 # Энергия, которую тратит запись одного килобайта в файловую # систему. hddWrite=0.25 # Энергия, которую тратит голографический проектор за один "такт". # Это стоимость каждой "колонны" которая высвечена. Если не # активен ни один воксель, проектор не потребляет энергию. hologram=0.2 # Количество энергии, потребляемой роботом за одни "такт". Это значение # по умолчанию меньше, чем для компьютера. (Что же... робот лучше # оптимизирован). robot=0.25 # Коэффициент энергетических затрат при использовании предметов. # Ноль означает, что на это не тратится энергии. Один — что энергия # расходуется один к одному (к "усталости"). Например — усталость # при добыче блока — 0.025, атака существа — 0.3, и т.д. robotExhaustion=10 # Энергия, которую робот тратит при перемещении на один блок. robotMove=15 # Энергия, которую робот тратит при повороте на 90 градусов. robotTurn=2.5 # Количество энергии, потребляемой монитором на один "такт". За каждый # освещенный пиксель (каждый символ, отличный от пробела) затраты # возрастают линейно: это число означает затраты базового монитора # полностью заполненного символами за один "такт". Мониторы больших # уровней могут тратить больше энергии, т.к. имеют большее разрешение. # Недостаточное количество энергии приведет к отключению монитора. # При этом он не "забудет" свое изображение, и после восстановления # питания покажет все снова (вместе с изменениями, которые произошли # за время отключения). # Примечание: в мультиблочных мониторах, каждый составной монитор # тратит энергию. screen=0.05 # Затраты на работу для роботов и компьютеров домножаются на это # значение, при работе в "спящем" режиме. Они могут включить такой # режим командой 'os.sleep()' или ожидая сигналов. # Примечание: этот параметр не распространяется на "такт" в который # происходит пробуждение, т.е. фейковый "сон" командой 'os.sleep(0)' # не подействует. sleepFactor=0.1 # Энергия на отправку беспроводного сообщения мощность один (т.е. на # один блок расстоянием). Это значение линейно увеличивается, например, # на отправку сигнала на 400 блоков, будет задействовано # wirelessStrength * 400 энергии. wirelessStrength=0.05 } # Эффективность апгрейда-генератора. 1.0 означает, что он будет # вырабатывать столько же, сколько паровой двигатель (Stirling # Engine) из BuildCraft (1MJ за один "такт"). По умолчанию, # это значение немного снижено. generatorEfficiency=0.8 # Игнорировать ли все требования энергии. Когда устройство требует энергию # для работы, оно ищет ее в сети, к которой подключено. Этот параметр # будет всегда возвращать положительный ответ. При этом вся сеть будет # функционировать в обычном режиме (кроме конвертера, который перестанет # принимать энергию других модификаций). ignorePower=false # Эффективность апгрейда-солнечной панели. 1.0 означает, что она будет # вырабатывать столько же, сколько паровой двигатель (Stirling # Engine) из BuildCraft. По умолчанию это значение сильно снижено. solarGeneratorEfficiency=0.2 # Этот параметр определяет, колебания спадов энергии какой частоты # заставят устройство искать ее в сети. Это касается роботов, # компьютеров и мониторов. Кроме того, этот параметр регулирует, с # какой частотой распределители обновляют свое глобальное состояние, # и как часто конвертер забирает энергию с ее источников (теперь: # только BuildCraft). Значение 1 — каждый такт. Значение по умолчанию — # каждые 20 тактов, т.е. — раз в секунду. # Значение больше означает более точное обновление данных по энергии # в сети, при этом чуть больше вычислений каждый такт (не должно # сильно влиять на производительность). # Примечание: этот параметр не влияет на энергопотребление отдельных # устройств. Затраты вычисляются по формуле `tickFrequency * cost`. tickFrequency=10 } # Настройки роботов, что они могут делать, и общий баланс. robot { # Может ли робот активировать блоки в мире. Например, нажимать кнопки # или поворачивать рычаги. Отключите этот параметр, если он вызывает # конфликты в каких-либо модификациях (дайте мне знать о этом!) или если # вы считаете, что это слишком круто для роботов. allowActivateBlocks=true # Определяет, могут ли роботы использовать предметы с определенной # продолжительностью. Например — натягивать луки. allowUseItemsWithDuration=true # Могут ли роботы наносить урон игрокам, если те оказываются на пути робота. # Это касается всех существ 'player', которые могут быть не только # реальными игроками в игре. canAttackPlayers=false # Тонкая настройка скорости выполнения роботом разных действий. delays { # Время в секундах, на задержку после успешной выгрузки одного # предмета из инвентаря робота. drop=0.5 # Задержка при сборе блоков по отношению ко времени, которое тратит # на это игрок. Учтите, что роботы не могут ломать блоки, которые # они не могут собрать. Таким образом, время на добычу одного блока # вычисляется как: breakTime * harvestRatio. # Добыча одного блока всегда тратит хотя бы один такт (0.05 секунд). harvestRatio=1 # Задержка в секундах после успешного движения на один блок. # Этот параметр влияет на скорость робота, определяя длительность # анимации движения. move=0.4 # Задержка в секундах после успешного размещения блока в игровом # мире. place=0.4 # Задержка в секундах, после успешного поглощения блока роботом, # при выполнении команды 'suck'. suck=0.5 # Задержка в секундах после успешного "взмаха" инструментом. # (Или "манипулятором" если у робота нет инструмента). "Успешный" # означает, что робот что-то ударил, например, атаковал врага, или # потушил огонь. # При добыче блоков время домножается на 'harvestRatio' (см. ниже). swing=0.4 # Задержка в секундах, после поворота робота влево или вправо. # Определяет скорость вращения робота, и длительность анимации # поворота. turn=0.4 # Задержка в секундах, после успешного применения предмета. # Например — активации кнопки, или метания зелья. use=0.4 } # Степень разрушения предметов при использовании их роботами. Значение # 1 означает, что они ломаются с той же скоростью, что и при использовании # игроком. 0 означает, что инструменты не ломаются вообще. # Этот параметр влияет только на те инструменты, которые можно сломать. itemDamageRate=0.1 # Формат имен для роботов. Подстрока '$player$' заменяется именем # игрока, которому принадлежит робот. Таким образом, для робота, # только что размещенного в игровом мире, это будет тот игрок, # которые его поставил. Это значение передается, если один робот # ставит другого. Подстрока '$random$' будет заменена случайным числом # в интервале [1, 0xFFFFFF]. # Если робот поставлен не игроком (или другим роботом), то имя по # умолчанию будет 'OpenComputers'. nameFormat="$player$.robot" # Определяет "крутизну" роботов. Обычно паутина — проклятие для любого, # у кого нет меча или ножниц. Чтобы избежать головной боли, в виде # застрявших в паутине роботов с кирками, этот параметр позволяет роботам # рвать паутину, вне зависимости от экипированного инструмента. # P.S. Такая прочность паутины имеет лишь одно рациональное объяснение — # Стив боится пауков! notAfraidOfSpiders=true # Радиус, в пределах которого роботы могут использовать инструменты # (левый клик). Это значение определяет расстояние от центра робота, # до той стороны блока, по направлению к которой был произведен "взмах". # Т.е. при определения столкновений через трассировку луча, это # конечная точка луча. Формула: # `block_center + unit_vector_towards_side * swingRange` # Значение параметра по умолчанию — чуть меньше 0.5. swingRange=0.49 # Радиус, в пределах которого роботы могут использовать предметы # (правый клик) или ставить блоки. См. `robot.swingRange`. # По умолчанию, установлено значение достаточное для того, чтобы # робот мог достать до вскопанной земли (чтобы посадить семена, # например). useAndPlaceRange=0.65 # Определяет скорость получения роботами "опыта", и как этот опыт влияет на # его параметры. xp { # Этот параметр определяет, на сколько более продвинутым робот становится # при каждом успешном действии. "Действия" — это: "взмахи" инструментами # и убийство живых существ, или разрушение блоков или установка новых. actionXp=0.05 # Количество опыта в каждом уровне вычисляется по формуле: # xp(level) = baseValue + (level * constantGrowth) ^ exponentialGrowth baseValue=50 # Количество дополнительного места в аккумуляторах робота, которое он # получает за каждый уровень. При значениях по умолчанию, и максимальном # уровне (30), робот будет иметь энергозапас в 200 000. bufferPerLevel=5000 # Количество опыта в каждом уровне вычисляется по формуле: # xp(level) = baseValue + (level * constantGrowth) ^ exponentialGrowth constantGrowth=8 # Параметр определяет влияние "усталости" робота на опыт. # Это значение добавляется в опыту. Например, добыча блока даст # по умолчанию 0.05 + 0.025 [усталость] * 1.0 = 0.075 XP. exhaustionXpRate=1 # Количество опыта в каждом уровне вычисляется по формуле: # xp(level) = baseValue + (level * constantGrowth) ^ exponentialGrowth exponentialGrowth=2 # Повышение скорости добычи блоков за уровень. Новое время вычисляется # по формуле actualTime * (1 — bonus). Например, при уровне 20, с # бонусом 0.4 вместо 0.3 секунд на добычу блока камня алмазной # киркой будет потрачено всего 0.12. harvestSpeedBoostPerLevel=0.02 # Определяет, сколько опыта робот получает за каждую сферу опыта, которую # он собрал при добыче руды. Например, уголь стоит 2 игровых очка опыта, # а редстоун — 5. oreXpRate=4 # Дополнительная "эффективность" при использовании инструментов # за каждый уровень. Повышает шанс на то, что инструмент не будет # поврежден при использовании. Например, робот уровня 15, получает # бонус 0.15 и урон 0.1 * (1 — 0.15) = 0.085. toolEfficiencyPerLevel=0.01 } } } 
В данной статье используются материалы из статьи «OpenComputers/Конфигурация мода» с вики-сайта Minecraft Wiki, расположенного на Фэндоме, и они распространяются согласно лицензии Creative Commons Attribution-Share Alike. Авторы статьи.