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






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

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

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

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.2
Последняя: 1.6.2

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

Новые записи

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

Март 2017

В П В С Ч П С
   1234
567891011
12131415161718
19202122232425
262728 29 3031 

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

Официальный сайт 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 пользователей, 1 гостей, 0 анонимных

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

  • Фотография
    ZloyApelsihchik
    Вчера, 20:43
  • Фотография
    electronic_steve
    Вчера, 16:46
  • Фотография
    Laine_prikol
    Вчера, 16:18
  • Фотография
    Kid
    27 мар 2017 - 23:50
  • Фотография
    MeXaN1cK
    27 мар 2017 - 21:08
  • Фотография
    Nymda
    27 мар 2017 - 20:48
  • Фотография
    Andronio
    27 мар 2017 - 17:59
  • Фотография
    MineUbuntu
    27 мар 2017 - 17:15
  • Фотография
    Krutoy
    27 мар 2017 - 16:45
  • Фотография
    danshat
    27 мар 2017 - 12:03
  • Фотография
    Vait
    26 мар 2017 - 10:48
  • Фотография
    krovyaka
    25 мар 2017 - 15:07
  • Фотография
    jammer312
    25 мар 2017 - 12:31
  • Фотография
    LeshaInc
    24 мар 2017 - 17:56
  • Фотография
    Saintmare
    24 мар 2017 - 15:40
  • Фотография
    Sharplook
    24 мар 2017 - 09:30
  • Фотография
    eu_tomat
    23 мар 2017 - 22:15
  • Фотография
    Orlin
    23 мар 2017 - 13:07
  • Фотография
    bob558
    22 мар 2017 - 13:54
  • Фотография
    Totoro
    22 мар 2017 - 09:54
  • Фотография
    Trojan4ik
    21 мар 2017 - 14:24
  • Фотография
    Ex161
    20 мар 2017 - 23:29
  • Фотография
    vladgov
    20 мар 2017 - 16:07
  • Фотография
    lokin135
    20 мар 2017 - 11:59
  • Фотография
    Zer0Galaxy
    19 мар 2017 - 21:59
  • Фотография
    qwertyMAN
    19 мар 2017 - 19:04
  • Фотография
    _Star_Craft_
    19 мар 2017 - 18:10
  • Фотография
    Kusiyaki
    19 мар 2017 - 17:59
  • Фотография
    Doob
    19 мар 2017 - 17:55
  • Фотография
    BlakeyRose
    19 мар 2017 - 15:25
  • Фотография
    folder
    18 мар 2017 - 17:13
  • Фотография
    HeroBrine1st
    17 мар 2017 - 22:24
  • Фотография
    ProShow
    17 мар 2017 - 16:41
  • Фотография
    NEO
    17 мар 2017 - 15:56
  • Фотография
    FluttyProger
    17 мар 2017 - 15:40
  • Фотография
    Aex
    17 мар 2017 - 10:03
  • Фотография
    Asior
    15 мар 2017 - 18:32
  • Фотография
    i_ivanov10
    14 мар 2017 - 18:06
  • Фотография
    ivan52945
    14 мар 2017 - 15:10
  • Фотография
    Seryoga
    12 мар 2017 - 14:35
  • Фотография
    Santrope
    11 мар 2017 - 15:23
  • Фотография
    POMAH3
    09 мар 2017 - 14:33
  • Фотография
    GROZGRI
    08 мар 2017 - 20:56
  • Фотография
    Arseniy10
    08 мар 2017 - 20:27
  • Фотография
    MrSnake20_15
    08 мар 2017 - 18:55
  • Фотография
    serafim
    08 мар 2017 - 02:03
  • Фотография
    Ingr
    06 мар 2017 - 19:29
  • Фотография
    Samori
    06 мар 2017 - 17:04
  • Фотография
    Dilbert
    06 мар 2017 - 01:24
  • Фотография
    EddyDaarkShadow
    05 мар 2017 - 10:47

Лицензия


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