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






Фотография
* * * * * 3 голосов

[OC] [Add-ons] Computronics! Полный обзор версии 1.5.5 [#2] (стандартные блоки)

Написано Fingercomp , в Add-ons, OpenComputers, Tutorials 11 Июль 2015 · 3 194 просмотров

OC Computronics Add-ons гайд tutorial обзор

ПОЛНЫЙ ОБЗОР

Computronics версии 1.5.5

Часть вторая: стандартные блоки.

И снова я приветствую Вас, уважаемый читатель этого блога! Вашему вниманию представляю вторую часть полного обзора CX версии 1.5.5, в которой я поведаю Вам о:
  • Cipher Block (шифратор)
  • Advanced Cipher Block (продвинутый шифратор)
  • Colorful Lamp (разноцветная лампочка)
  • Tape Drive + Cassette tapes (кассетный привод и, собственно, кассеты))
 

I. Cipher Block

a.k.a. "Шифратор"

Алгоритмов шифрования уже и так огороды, но суровые разрабы CX не сдаются) На самом деле, может быть очень полезным блоком для каких-нибудь там ивентов. Почему? Этот блок позволяет шифровать и дешифровать определённую строку, используя в качестве ключа... не что иное, как... предметы! Да, знаю, поворот весьма и весьма неожиданный, но так оно и есть на самом деле.

 

Функции.

  • cipher.decrypt(encrypted_string:String):String — пытается расшифровать строку, используя как "ключ" предметы в инвентаре шифратора. В случае неудачи (неправильный код) выдаёт ошибку.
  • cipher.encrypt(string_to_encrypt:String):String — шифрует данную строку, используя как "ключ" предметы в инвентаре шифратора. Возвращает зашифрованную строку.
  • cipher.setLocked(lock:Boolean) — блокирует/открывает доступ к инвентарю шифратора. При попытке открыть заблокированный шифратор, игроку выдаётся предупреждение в чат.
  • cipher.isLocked():Boolean — возвращает состояние блокировки шифратора на данный момент.

Скриншоты:

Спойлер

Спойлер

 

 

II. Advanced Cipher Block.

a.k.a. "Продвинутый шифратор"

Этот вариант шифратора отличается от предыдущего тем, что здесь нет необходимости задать предметы как ключ — для шифровки/расшифровки используется алгоритм 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.

 

 

III. Colorful Lamp.

a.k.a "Разноцветная лампочка"

Блок, испускающий свет, цвет которого можно менять программно (всего цветов 32768, включая чёрный).

Функции.

  • lamp.getLampColor():Number — возвращает текущий цвет лампочки.
  • lamp.setLampColor(color:Number):Boolean — устанавливает текущий цвет лампочки. Если цвет равен нулю, то лампочка выключается.

Скриншоты:

Спойлер

 

 

IV. Кассеты и всё, что с ними связано.

IV.1. Cassette Tapes.

a.k.a. "Кассеты"

Кассеты — мощное переносное хранилище информации, как текстовой, так и музыкальной. Всего видов кассет в CX — ни много, ни мало — 8 штук! И каждый тип различается требованиями по ресурсам и вместительностью музыки в минутах.
  • Деревянная — 2 минуты
  • Железная — 4 минуты
  • Стальная — 6 минут
  • Золотая дешёвая — 8 минут
  • Золотая дорогая — 16 минут
  • Алмазная — 32 минуты
  • "Дешёвая" незерстарровская — 64 минуты
  • И, наконец, самая ненажная и дорогущая одновременно вещь, которая когда-либо существовала в Майначе... Дорогущая незерстарровская — 128 минут. Это больше, чем на CD-диске!)) Но и качество хромает. Тем не менее, на такую кассету можно записать больше данных, чем на РЭЙД с 3 алмазными дисками)

 

IV.2. Tape Drive.

a.k.a. "Стример"

Но одной кассетой Вы удолевтвориться не сможете... Для считывания и записывания информации необходим аналог 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.

Скриншоты:

Спойлер

IV.3. Формат звуковых файлов DFPWM.

Прочитав рассказ о воспроизведении звука, наверняка, Вы уже начали искать тот самый файл с вашей любимой музыкой. Но не всё так просто! Дело в том, что используется странный и непонятный формат файлов — DFPWM... Но где его искать?

Шаг первый. Конвертер.

Первым делом, придётся открыть http://www.google.com/ в отдельной вкладке, ведь мороки с музыкой будет много. Сначала найдите в интернете конвертеры из формата Вашего файла в формат WAV (можно пропустить, если изначально в WAV). Для Линукса это ffmpeg, например.

Шаг второй. Получение файла DFPWM.

У вас должен быть на руках WAV-файл с музыкой. На всякий случай попробуйте открыть его в аудиопроигрывателе, дабы убедиться в "правильности" файла. Если всё ОК — закрываем Гугл и идём дальше. Загрузите данный файл на свой компьютер: https://dl.dropboxus...794/LionRay.jar Это конвертер из WAV в DFMPW. Выставьте права на исполнение, если они не соблюдены, и запустите файл через Java. Укажите расположение исходного WAV-файла и запустите процесс конвертации.

Шаг третий. Сохранение файла.

Если у Вас есть доступ к папке сохранения, то всё просто — откройте папку ~/saves/<имя_мира>/opencomputers/<адрес_диска>/ и переместите туда Ваш получившийся аудиофайл. Затем вставьте кассету в стример, подключите последний к компьютеру и пропишите tape write <имя_аудиофайла>. Иначе Вам придётся искать хостинг, выдающий прямые ссылки на файл. Загрузите файл и скопируйте ссылку. Затем вставьте интернет-карту в компьютер и пропишите следующее: tape write <ссылка_на_аудиофайл>. Дождитесь окончания загрузки.

 

 
Фух, вот я, наконец, и закончил. В сумме на написание этого гайда ушло около шести часов ночного времени, так что думаю, что он Вам понравится) Оставляйте оценки, лайки, жду комментариев! А в следующей части я расскажу о четырёх новых картах, которые добавляет CX.

 

Ссылка на страницу мода: http://wiki.vex.tty....ki:computronics






Саня, Героя Труда надо тебе выдавать уже=)

Отличный гайд,всё понятно.Согласен с Алексом.

единственное, чего не указал - команда для перемотки в начало и запуск(именно функция).

И еще. tape.stop():Boolean. Не пойму. Зачем Boolean влепил?

Andronio

Я, конечно, понимаю. Краткость — сестра таланта, всё такое.

Однако слишком сокращать не следует.

 

Прошу пояснений и явного указания, что за функция, и почему так сложно понять, что :Boolean — это тип возвращаемого значения?

Для тех, у кого ссылка на конвертер не работает:
http://gamax92.pc-lo...com/LionRay.jar


Обратные ссылки на эту запись [ URL обратной ссылки ]

Обратных ссылок на эту запись нет

Последние версии

Стабильная: 1.6.1+hotfix.1
Последняя: 1.6.1+hotfix.1

Искать в моем блоге

Новые записи

Новые комментарии

Февраль 2017

В П В С Ч П С
   1234
567891011
12131415161718
19202122 23 2425
262728    

Полезные ссылки

Официальный сайт OpenComputers

http://oc.cil.li/

 

Официальный форум OpenComputers

http://oc.cil.li/index.php?/index

 

Репозиторий OpenComputers на ГитХабе

https://github.com/M...s/OpenComputers

 

Последние релизы OpenComputers

https://github.com/M...puters/releases

 

Jenkins-сервер

http://ci.cil.li/job...s-dev-MC1.7.10/
 

Репозиторий OpenPrograms

https://github.com/OpenPrograms

 

Репозиторий моих программ

https://github.com/O...rcomp-Programs/

1 посетителей

0 пользователей, 0 гостей, 0 анонимных


Yandex (1)

Последние посетители

  • Фотография
    qwertyMAN
    Сегодня, 12:00
  • Фотография
    win2flash
    Вчера, 20:51
  • Фотография
    Litvinov
    Вчера, 17:43
  • Фотография
    HeroBrine1st
    Вчера, 16:33
  • Фотография
    JLevi
    Вчера, 07:21
  • Фотография
    folder
    21 фев 2017 - 15:01
  • Фотография
    eu_tomat
    21 фев 2017 - 14:33
  • Фотография
    Doob
    21 фев 2017 - 05:30
  • Фотография
    DarthWirthe
    20 фев 2017 - 19:49
  • Фотография
    Dilbert
    20 фев 2017 - 14:58
  • Фотография
    Totoro
    20 фев 2017 - 14:42
  • Фотография
    BarBoss
    19 фев 2017 - 22:23
  • Фотография
    _Star_Craft_
    19 фев 2017 - 19:54
  • Фотография
    vx13
    19 фев 2017 - 18:44
  • Фотография
    doktorkrab
    19 фев 2017 - 14:20
  • Фотография
    Jelmazmo
    18 фев 2017 - 20:12
  • Фотография
    Misha123
    18 фев 2017 - 18:37
  • Фотография
    fumycat
    18 фев 2017 - 11:29
  • Фотография
    Saintmare
    18 фев 2017 - 11:20
  • Фотография
    SDV
    16 фев 2017 - 22:02
  • Фотография
    Laine_prikol
    16 фев 2017 - 18:22
  • Фотография
    FluttyProger
    15 фев 2017 - 21:16
  • Фотография
    MrDyuha
    15 фев 2017 - 18:19
  • Фотография
    MrSnake20_15
    15 фев 2017 - 17:34
  • Фотография
    Ex161
    15 фев 2017 - 07:01
  • Фотография
    Aex
    15 фев 2017 - 02:49
  • Фотография
    Asior
    15 фев 2017 - 01:58
  • Фотография
    Deadlyy
    14 фев 2017 - 16:53
  • Фотография
    ProShow
    14 фев 2017 - 16:50
  • Фотография
    electronic_steve
    14 фев 2017 - 14:35
  • Фотография
    Alex
    13 фев 2017 - 13:35
  • Фотография
    Zer0Galaxy
    12 фев 2017 - 09:25
  • Фотография
    MeXaN1cK
    12 фев 2017 - 02:20
  • Фотография
    NEO
    12 фев 2017 - 02:12
  • Фотография
    Gran
    12 фев 2017 - 01:02
  • Фотография
    radioegor146
    11 фев 2017 - 23:14
  • Фотография
    compto
    11 фев 2017 - 21:17
  • Фотография
    Femmin
    10 фев 2017 - 19:18
  • Фотография
    ivan52945
    08 фев 2017 - 22:26
  • Фотография
    HalfLolek
    08 фев 2017 - 18:41
  • Фотография
    titanium123
    08 фев 2017 - 14:59
  • Фотография
    lokin135
    07 фев 2017 - 23:39
  • Фотография
    Strateg
    07 фев 2017 - 20:16
  • Фотография
    Sharplook
    07 фев 2017 - 18:48
  • Фотография
    unknown
    07 фев 2017 - 18:18
  • Фотография
    LeshaInc
    07 фев 2017 - 16:14
  • Фотография
    Programist135
    06 фев 2017 - 20:10
  • Фотография
    kotik_prikol
    06 фев 2017 - 07:25
  • Фотография
    Arseniy10
    05 фев 2017 - 22:14
  • Фотография
    Quant
    05 фев 2017 - 12:37

Лицензия


Яндекс.Метрика