[OC] [Add-ons] Computronics! Полный обзор версии 1.5.5 [#2] (стандартные блоки)
ПОЛНЫЙ ОБЗОР
Computronics версии 1.5.5
Часть вторая: стандартные блоки.
И снова я приветствую Вас, уважаемый читатель этого блога! Вашему вниманию представляю вторую часть полного обзора CX версии 1.5.5, в которой я поведаю Вам о:
- Cipher Block (шифратор)
- Advanced Cipher Block (продвинутый шифратор)
- Colorful Lamp (разноцветная лампочка)
-
Tape Drive + Cassette tapes (кассетный привод и, собственно, кассеты))
Алгоритмов шифрования уже и так огороды, но суровые разрабы CX не сдаются) На самом деле, может быть очень полезным блоком для каких-нибудь там ивентов. Почему? Этот блок позволяет шифровать и дешифровать определённую строку, используя в качестве ключа... не что иное, как... предметы! Да, знаю, поворот весьма и весьма неожиданный, но так оно и есть на самом деле.
- cipher.decrypt(encrypted_string:String):String — пытается расшифровать строку, используя как "ключ" предметы в инвентаре шифратора. В случае неудачи (неправильный код) выдаёт ошибку.
- cipher.encrypt(string_to_encrypt:String):String — шифрует данную строку, используя как "ключ" предметы в инвентаре шифратора. Возвращает зашифрованную строку.
- cipher.setLocked(lock:Boolean) — блокирует/открывает доступ к инвентарю шифратора. При попытке открыть заблокированный шифратор, игроку выдаётся предупреждение в чат.
-
cipher.isLocked():Boolean — возвращает состояние блокировки шифратора на данный момент.
Интерфейс шифратора. Имеется шесть слотов под предметы. Тем не менее, если инвентарь заполнен частично, шифратор всё равно может шифровать сообщения. Размер стэка в шифраторе на процесс не влияет, в отличии от места расположения предмета.
Заблокированный шифратор
Этот вариант шифратора отличается от предыдущего тем, что здесь нет необходимости задать предметы как ключ — для шифровки/расшифровки используется алгоритм RSA.
-
adv_cipher.createKeySet(prime1:Number, prime2:Number):Keygen — создаёт и запускает процесс генерации пары ключей на основе двух простых чисел. Возвращается структура, содержашая данные методы:
- key_set.finished():Boolean — так как процесс генерации ключей не мгновенный, использовать ключи сразу же после создания генератора нельзя. Данная функция возвращает готовность ключей: true при завершённом процессе генерации и false, если процесс генерации не завершён.
-
key_set.getKeys():Table, Table — данная функция возвращает пару сгенерированных ключей или nil при незавершённом процессе генерации.
[*]adv_cipher.createRandomKeySet():Keygen — идентичен полностью прошлой функции за исключением того, что числа простые указывать не нужно — они выберутся случайно. [*]adv_cipher.decrypt(encrypted_string:String, private_key:Table):String — дешифрует данную строку, используя приватный ключ RSA. [*]adv_cipher.encrypt(string_to_encrypt:String, public_key:Table):String — шифрует данную строку, используя публичный ключ RSA.
Блок, испускающий свет, цвет которого можно менять программно (всего цветов 32768, включая чёрный).
- lamp.getLampColor():Number — возвращает текущий цвет лампочки.
-
lamp.setLampColor(color:Number):Boolean — устанавливает текущий цвет лампочки. Если цвет равен нулю, то лампочка выключается.
Здесь лампе был присвоен цвет 16384.
IV. Кассеты и всё, что с ними связано.
Кассеты — мощное переносное хранилище информации, как текстовой, так и музыкальной. Всего видов кассет в CX — ни много, ни мало — 8 штук! И каждый тип различается требованиями по ресурсам и вместительностью музыки в минутах.
- Деревянная — 2 минуты
- Железная — 4 минуты
- Стальная — 6 минут
- Золотая дешёвая — 8 минут
- Золотая дорогая — 16 минут
- Алмазная — 32 минуты
- "Дешёвая" незерстарровская — 64 минуты
- И, наконец, самая ненажная и дорогущая одновременно вещь, которая когда-либо существовала в Майначе... Дорогущая незерстарровская — 128 минут. Это больше, чем на CD-диске!)) Но и качество хромает. Тем не менее, на такую кассету можно записать больше данных, чем на РЭЙД с 3 алмазными дисками)
Но одной кассетой Вы удолевтвориться не сможете... Для считывания и записывания информации необходим аналог CD-ROM'а, но для кассет — кассетный проигрыватель, называемый стримером.
- tape.stop():Boolean — останавливает проигрывание кассеты.
- tape.setSpeed(speed:Number):Boolean — устанавливает скорость воспроизведения (от 0.25 до 2).
- tape.getLabel():String — возвращает метку касссеты. Если не задано, равно "".
- tape.setLabel(label:String):String — устанавливает метку кассеты. Она видна в тултипе кассеты и в кассетном приводе, если там вставлена дискета. Возвращается новая установленная метка кассеты.
- tape.getState():String — возвращает текущий статус кассетного привода: "RUNNING", если проигрывается кассета, или "STOPPED", если нет дискеты, или воспроизведение было остановлено.
- tape.seek(amount:Number) — перематывает кассету на данное количество байтов вперёд/назад (при отрицательном значении).
- tape.setVolume(volume:Number) — устанавливает громкость кассеты от 0 до 1 (принимаются дробные значения).
- tape.getSize():Number — возвращает размер музыкального содержимого кассеты в байтах. Полезно вместе с функцией tape.seek() для перемотки в начало.
- tape.play() — начинает проигрывание музыкального содержимого кассеты.
- tape.isEnd():Boolean — возвращает true, если проигрывание содержимого завершилось. Полезно для зацикливания музыки на дискете в совокупности с tape.getSize() и tape.seek().
- tape.isReady():Boolean — возвращает true, если в приводе присутствует дискета.
- tape.read([length:Number]):Number|String — читает всё (или определённое кол-во байтов), что записано на кассету.
-
tape.write(data:Number|String) — записывает на кассету данные.
При вставке кассеты в привод, появляется программа tape, которая позволяет совершать базовые операции над кассетой без необходимости использовать интерпретатор Lua. Доступно следующее:
- tape play — начать проигрывание.
- tape pause — приостановить проигрывание.
- tape stop — остановить проигрывание и перемотать в начало.
- tape rewind — перемотать кассету в начало.
- tape label — получить метку кассеты.
- tape label label — установить метку label кассете в приводе.
- tape volume volume — установить громкость volume музыке на кассете.
- tape speed speed — установить скорость speed проигрывания.
- tape write path/to/audio/file — записать на кассету файл с жёсткого диска компьютера.
-
tape write URL — записать на кассету музыку с удалённого сервера, доступную по адресу URL.
Интерфейс кассетного привода.
Прочитав рассказ о воспроизведении звука, наверняка, Вы уже начали искать тот самый файл с вашей любимой музыкой. Но не всё так просто! Дело в том, что используется странный и непонятный формат файлов — DFPWM... Но где его искать?
Первым делом, придётся открыть http://www.google.com/ в отдельной вкладке, ведь мороки с музыкой будет много. Сначала найдите в интернете конвертеры из формата Вашего файла в формат WAV (можно пропустить, если изначально в WAV). Для Линукса это ffmpeg, например.
У вас должен быть на руках WAV-файл с музыкой. На всякий случай попробуйте открыть его в аудиопроигрывателе, дабы убедиться в "правильности" файла. Если всё ОК — закрываем Гугл и идём дальше. Загрузите данный файл на свой компьютер: https://dl.dropboxusercontent.com/u/93572794/LionRay.jar Это конвертер из WAV в DFMPW. Выставьте права на исполнение, если они не соблюдены, и запустите файл через Java. Укажите расположение исходного WAV-файла и запустите процесс конвертации.
Если у Вас есть доступ к папке сохранения, то всё просто — откройте папку ~/saves/<имя_мира>/opencomputers/<адрес_диска>/ и переместите туда Ваш получившийся аудиофайл. Затем вставьте кассету в стример, подключите последний к компьютеру и пропишите tape write <имя_аудиофайла>. Иначе Вам придётся искать хостинг, выдающий прямые ссылки на файл. Загрузите файл и скопируйте ссылку. Затем вставьте интернет-карту в компьютер и пропишите следующее: tape write <ссылка_на_аудиофайл>. Дождитесь окончания загрузки.
Фух, вот я, наконец, и закончил. В сумме на написание этого гайда ушло около шести часов ночного времени, так что думаю, что он Вам понравится) Оставляйте оценки, лайки, жду комментариев! А в следующей части я расскажу о четырёх новых картах, которые добавляет CX.
Ссылка на страницу мода: http://wiki.vex.tty.sh/wiki:computronics
-
11
20 комментариев
Рекомендуемые комментарии