APPLIED ENERGISTICS 2 | Гайд по моду | Часть 1. Основы. Создание МЭ сети. | GrandLegacy.Ru
Высекатель. Процесс создания процессоров полностью проходит в высекателе.
Высекатель работает на АЕ энергии, поэтому его также подключаем к нашей МЭ сети.
![[IMG]](http://s1.gle.su/img/articles/guides/ae2/scr%20(34).png)
Вычислительный процессор.
Инженерный процессор.
Логический процессор.
Гайд по Applied Energistics 2 1.12.2 #2 МЭ система
Отпечатанный кремний.
Терминал типа
me — Applied Energistics
Специализированная версия крафт-терминала ME, предназначенная для кодирования пустых шаблонов в закодированные шаблоны.
Позволяет просматривать содержимое вашей сети, как и другие терминалы, но также содержит область для разработки шаблонов. Есть два режима кодирования паттернов. Шаблоны крафта и шаблоны обработки. Шаблоны обработки предназначены для использования с машинами, не использующими стандартные рецепты изготовления; например, фурансы или другие машины.Для выбора между режимами нажмите кнопку справа от интерфейса; когда он показывает стандартный верстак, он создает шаблоны крафта, а когда показывает печь, он создает шаблоны обработки.
Для шаблонов крафтинга («Ремесла . ») вы указываете входные материалы для крафта в стандартной крафтовой сетке 3×3, и выходные материалы определяются автоматически.
Для шаблонов обработки («Создает . ») вы указываете входные и выходные материалы, включая количество, путем размещения стопок элементов в интерфейсе.Если нет гарантии, что операция обработки будет успешной (например, вторичные продукты с некоторых машин), она не будет правильно работать как шаблон обработки.
При разработке шаблонов крафта вы можете щелкнуть по выходу, чтобы извлечь созданный предмет, если у вас есть материалы, необходимые для его изготовления.
me crafting — Прикладная энергия
ME Крафт
Начать автоматическое создание не так уж и сложно, для начала вам понадобится как минимум работающая ME Network.
Построение камеры молекулярного ассемблера ME.
Палата состоит из следующих блоков:
Эта конструкция может быть построена в виде прямоугольника любого размера, если выполняются следующие критерии.
Как сделать МЭ систему? — Applied Energistics 2
Самая маленькая структура может быть 3x3x3, оставляя 1 пустой слот для поставщика шаблонов ME.Все сборщики имеют базовую ставку 1 крафт / 3 тика. Это означает, что вы получаете 1 процессор ME Crafting бесплатно!
Настройка камеры ассемблера
Следующий шаг — создать себе кодировщик паттернов ME и несколько пустых паттернов ME. Вы используете ME Pattern Encoder с ME Blank Pattern и другими ингредиентами, чтобы записать свои ремесленные шаблоны на ME Blank Pattern, это создаст ME Encoded Pattern.
ME затем использует этот кодированный шаблон ME в камере ассемблера (куда вы помещаете свои закодированные шаблоны.) Если узор внутри камеры сборки отображается красным, это означает, что система не может идентифицировать узор как действительный поддерживаемый рецепт стола для крафта.
Предметы для крафта
После того, как у вас есть закодированный образец в вашей камере ассемблера в вашей сети ME, даже если у вас закончится этот элемент, он все равно будет отображаться в терминале, но будет иметь слово «Craft», где обычно находится номер. Просто нажмите на ремесленный предмет, затем введите, сколько вы хотите, и нажмите «Начать», система начнет использовать все доступные ей ресурсы для обработки вашего запроса.
Если у вас нет необходимых предметов, он будет продолжать ждать ингредиентов, пока у него не появятся материалы для крафта, или пока вы не отмените задание по крафту. Вы можете сделать это с помощью ME Crafting Monitor, который может проверять статус требуемых или отсутствующих материалов для текущего задания или отменять его. Если у вас нет ME Crafting Monitor, вы можете отменить операции создания, вызвав перезагрузку ME Controller, добавив или сломав ME-блок в сети ME.
Это отлично подходит для обычных шаблонов крафта, но не помогает, если вам нужно топить печь или использовать блок крафта другого мода, вот где вступает внешняя обработка.
Создание с использованием внешней обработки
Интерфейс ME позволяет не только вводить, но и выводить данные для крафта, помещая закодированный шаблон ME в слоты обработки интерфейса ME, вы также увидите их как варианты крафта.
Но как это работает? Если у вас есть трубы BC, подключенные к ME-интерфейсу с вашим ME-закодированным шаблоном, или если ME-интерфейс касается инвентаря, такого как верх печи (более низкий приоритет, чем трубы.), Он отправит предметы в трубу / инвентарь.Бьюсь об заклад, вы думаете, что это звучит безумно, потому что нет «Ремесла» для песка -> стекла и другой подобной обработки? Что ж, это не имеет значения, вы можете кодировать все, что хотите, в ME Blank Pattern, даже если это невозможно! Но помните, что если вы добавите невозможные рецепты, ваши вещи могут не сработать . Кроме того, обратите особое внимание на количество требуемых и экспортируемых предметов. большинство руд дают две пыли при измельчении, например, но некоторые дают более или менее как Glowstone Dust или Certus Quartz Dust.
И последняя проблема: как только он попадает в печь, вам нужно вытащить его, вы можете использовать трубы BC или трубы RP2, чтобы вытащить его и отправить в интерфейс ME, или использовать шину импорта ME для извлечения предметов прямо обратно в сеть. Независимо от вашего выбора, не забывайте учитывать время, необходимое для того, чтобы предметы перемещались по трубам или вынимались из машин, а также насколько быстро сами машины.
GitHub — Терминал / ink.terminal.craft: «По крайней мере, я добавил один блок»
- Почему GitHub? Особенности →
- Обзор кода
- Управление проектами
- Интеграции
- Действия
- Пакеты
- Безопасность
- Управление командой
- Хостинг
- мобильный
- Истории клиентов →
- Безопасность →
Источник: minecraft-jobs.ru
Calltracking в Minecraft или как быстро сделать трехмерный UI
На этом история и закочнилась бы, но на днях мне довелось поучаствовать в хакатоне одного calltracking сервиса. Для тех, кто не в курсе, calltracking — эта такая штука, которая предоставляет статистику звонков. И что важно для нашей истории — эта статистика доступна по API.
В этот момент отдельные части сложились в цельную картину и я подумал — о! статистика звонков в Minecraft.
Ну что ж, формат хакатона располагает к безумным идеям, а эта идея показалась мне достаточно безумной, чтобы быть реализованной.
А если серьезно — то кто сказал что интерфейсы должны быть двумерными?
И кто сказал что трехмерный интерфейс это долго и сложно?
Вся затея у меня заняла 3 часа (57 строк на питоне), учитывая, что первые полчаса я разбирался как на python парсить джейсон.
Под катом — вся история целиком, видео с результатом и бонус для дочитавших до конца — все 3 часа разработки в 3 минутном time-lapse видео.
Чтобы это все заработало мне понадобилось 3 простых шага:
1. Поднимаем сервер Minecraft который позволяет взаимодействовать с миром Minecraft по API на Python
2. Берем статистику звонков по calltracking API
3. Создаем кубики в Minecraft.
1. Сервер Minecraft
Сервер майнкрафта с красивым названием bukkit у меня уже был готов (скачать его можно с сайта книги вместе с очень подробными видеоинструкциями).
Версия игры — 1.6.4, скрипты будем писать на Python, т.к. этот сервер их понимает.
2. Берем статистику звонков по API
Тут тоже все просто, пару строк на питоне и все готово:
import json, requests data = requests.get(«https://istat24.com.ua/api//calls.json?counter_start_date=2016-02-01) json = json.loads(data.content)
Пару слов про сам API.
Я использую API Calltracking сервиса iStat24 (в отделе разработки которого и происходил этот самый хакатон), он возвращает журнал звонков в JSON, а чтобы получить данные для определенного аккаунта нужно в этом самом аккаунте сгенерировать API_key, который у меня к хакатону был заготовлен заранее.
Пример звонка из JSON:
Из этого всего нас интересует:
wait_duration — время ожидания звонка (гудки, короче говоря)
speak_duration — время разговора
accepted — значение 1/0 определяет был звонок принят или пропущен.
Итого, имеем массив звонков. Теперь осталось их только представить визуально.
3. Создаем кубики в Minecraft
До этого все было просто, да? даже не просто — тривиально.
Вы наверное думаете что с этого места начнется какая-то магия? А вот и нет.
Дело в том, что все написано до нас.
Есть расчудесная библиотека на питоне — minecraftstuff, которая умеет делать все основные вещи в Minecraft.
Нам осталось только описать где и какого типа кубик мы хотим создать.
Подключаем и инициализируем библиотеку:
import mcpi.minecraft as minecraft import mcpi.block as block import mcpi.minecraftstuff as minecraftstuff mc = minecraft.Minecraft.create() mcdrawing = minecraftstuff.MinecraftDrawing(mc)
Теперь координаты. Minecraft — мир трехмерный, поэтому очевидно что нам нужны x,y и z.
Можно брать текущие координаты персонажа командой mc.player.getTilePos(), но я решил захардкодить определенное место в мире Minecrft (просто потому, что после каждой итерации мне нужно было очищать все пространство с предыдущей попыткой «строительства».) Для дебага удобнее, в общем.
Кубик рисуется командой mc.setBlock(x, y, z, blockType).
А как удалить кубик? Как оказалось — воздух в Minecraft — это тоже кубик. Поэтому вместо удаления кубиков — нужно просто нарисовать кубики с воздухом. Можно делать это поштучно при помощи это же команды mc.setBlock(x, y, z, block.AIR.id) — указывая тип блока «block.AIR.id». А можно использовать команду mc.setBlocks() которая забивает прямоугольную область кубиками нужного типа.
В книжке написано что это быстрее, чем рисовать кубики поштучно.
В итоге у меня получился вот такой код для очистки пространства:
mc.postToChat(«START») startX=146; startY=0; startZ=-30 // хардкод начальных координат # Clean up mc.setBlocks(startX-2, startY-20, startZ+5, startX+2, startY+200, startZ-250, 8) time.sleep(2) mc.setBlocks(startX-3, startY-1, startZ+6, startX+3, startY+210, startZ-551, block.AIR.id) time.sleep(2) # cleanUp(pos.x, pos.y, pos.z, 40) # Clean up self mc.postToChat(«Clean up is done»)
Лайвхак. Здесь я сначала забиваю пространство кубиками с а потом забиваю это же пространство воздухом.
Это делается исключительно для дебага, чтобы было видно какой же именно участок через 2 секунды будет очищен. Иначе это совершенно не очевидно и занимает кучу времени подгадать нужные координаты.
Вообще, весь этот участок кода можно заменить на всего одну команду: mc.setBlocks(startX-3, startY-1, startZ+6, startX+3, startY+210, startZ-551, block.AIR.id), все остальное исключительно для дебага.
Чтобы было красивее, я решил что каждый звонок будет представлен в виде башни шириной (и толщиной) в 2 кубика — а длительность звонка будет представлена высотой башни (1 секунда = 1 кубик). Поэтому простенькая процедурка которая рисует башню заданной высоты:
def drawCall(x, y, z, length, blockType): length = (length, 200)[length>200] for i in range(y, y+length): mc.setBlock(x, i, z, blockType) mc.setBlock(x+1, i, z, blockType) mc.setBlock(x+1, i, z+1, blockType) mc.setBlock(x, i, z+1, blockType)
Обратите внимание, что в нее встроен дисторшн — потому что высота мира в Minecraft, как оказалось, 255 кубиков, поэтому если звонок был длиннее 255 секунд (а таких конечно же много) — они уходят выше «крыши мира» и продолжаются с «дна мира», что конечно же не эстетично.
Теперь у нас готово все, чтобы нарисовать звонки.
Просто пробегаемся по массиву звонков полученному из API и рисуем башни (используя кубики разных типов, чтобы визуально представить время ожидания звонка, время разговора и пропущенные звонки — красным цветом).
for call in json: offset+=3 duration = get_sec(call[‘duration’]) wait_duration = get_sec(call[‘wait_duration’]) speak_duration = get_sec(call[‘speak_duration’]) if call[‘accepted’] == 1: drawCall(startX, startY, startZ-offset, wait_duration, 41) # wait_duration drawCall(startX, startY+wait_duration, startZ-offset, speak_duration, 133) #speak_duration else: drawCall(startX, startY, startZ-offset, duration, 152) # duration
На этом все, заходим в майнкрафт и любуемся трехмерной статистикой звонков.
Кстати, одно видео я записал сам, а второе — записал ребенок. Угадаете какое где?
Желтые кубики — время ожидания(гудки), зеленые — время разговора, красные — пропущенный звонок.
И обещанное в начале поста видео 3 часов разработки сжатое до 3 минут:
И напоследок вопрос, какие процессы/данные, по вашему, смотрелись бы лучше в трехмерном виде?
Навскидку:
— дашборд для отображения продакшн-серверов, в случае падения какого-либо из них — скрипт автоматически добавляет кубик-динамит и взрывает его 🙂 если Minecraft вывести на офисный монитор и настроить звук погромче — должно впечатлять.
Еще идеи?
Источник: habr.com
Команды для Терминала, который должен знать каждый
Несмотря на повсеместное распространение графических интерфейсов и всяких удобных манипуляторов вроде Magic Mouse и Magic Trackpad, приложение Терминал.app до сих пор является достаточно полезным и слегка «гиковым» инструментом для выполнения некоторых операций, с которым большинство из нас знакомы достаточно поверхностно. На самом деле, в его «укрощении» нет ничего сложного, поэтому для всех читателей МакРадара я подготовил команды для Терминала, которые могут оказаться полезными.
Для начала стоит сказать, что само приложение Терминал.app, как и все полезные служебные утилиты, располагается в каталоге Программы > Служебные программы. Сразу после его запуска вы увидите строку, в которой написано имя компьютера и текущего каталога, а после знака доллара ($) — приветливо мигающий курсор, который приглашает вас ввести свою первую команду…
Список файлов и папок — ls
По умолчанию, после запуска утилиты в качестве рабочего каталога выбирается домашняя папка пользователя. Для того, чтобы получить список файлов и папок в нем, достаточно запустить команду из двух букв ls .
Существует несколько вариаций данной команды, которые вызываются разными ключами (на самом деле их намного больше):
- ls -l отобразит подробные данные о каждом элементе, включая права доступа, размер файлов и т.д. Кроме того, первый символ каждой строки позволит определить тип данных: если это латинская буква «d», то перед нами каталог, а если дефис (-), то обычный файл.
- ls -a отобразит список всех файлов и каталогов в текущей папке, включая скрытые элементы (имена которых в Mac OS X начинаются с точки).
Хозяйке на заметку: ключи можно запросто комбинировать между собой, поэтому если вы хотите просмотреть подробные данные обо всех элементах каталога, включая скрытые файлы, то ваша команда должна выглядеть так: ls -la
Перемещение между каталогами — cd
Наименование этой команды происходит вовсе не от старых компакт-дисков, которые Apple успешно убила своим цифровым iTunes Store, а от двух английских слов «change directory» — именно этим она и занимается:
- Напишите cd Music — и Терминал перейдет в папку Music, если, конечно, она существует в вашем текущем каталоге.
- Для выхода в папку на уровень выше используется команда cd .. (с двумя точками).
- А выполнив команду cd вы моментально перенесетесь в домашний каталог пользователя.
Полный путь к рабочему каталогу — pwd
Название этой команды тоже происходит от первых букв фразы «print working directory». В каком бы каталоге вы не находились, результатом выполнения данной команды станет полный путь к текущему каталогу.
Создание каталога — mkdir
Данная команда создает директорию с указанным именем. К примеру, mkdir Temp создаст в текущей папке каталог Temp. Если вы забыли, в каком каталоге вы сейчас находитесь, воспользуйтесь pwd :
Удаление файлов и каталогов — rm, rmdir
Во время этого действия над файлами и каталогами через Терминал требуется учитывать небольшой, но важный нюанс: здесь нет Корзины, поэтому данные удаляются окончательно.
Но вообще команда rm test1.txt удалит файл test1.txt из текущего каталога. А если добавить, скажем, ключ «i» ( rm -i test2.txt ) пользователю потребуется подтвердить удаление.
К сожалению, удаление каталогов является более сложной задачей, потому что для этого действия существует сразу несколько видов команд:
- rmdir Test удалит каталог Test только в том случае, если он пустой и не содержит внутри себя подпапок или файлов.
- rm -r Test2 рекурсивно удаляет все находящиеся файлы и папки внутри Test2, а его удаляет в самом конце.
Перемещение и копирование фалов — mv и cp
Две команды выполняют практически аналогичные действия, поэтому и список параметров у них одинаков. Если я хочу переместить файл из одного каталога в другой, то мне потребуется воспользоваться такой командой:
mv ~/test1.txt ~/Documents/test1.txt
Первым параметром (~/test1.txt) выступает файл, который нам нужно переместить, а вторым — каталог назначения и результирующее имя файла.
И вновь хозяйке на заметку. Во-первых, как вы, возможно, уже догадались, не обязательно переходить в нужный каталог, чтобы совершать действия над файлами. Достаточно знать его имя, полный путь и использовать их в качестве параметров команды.
Во-вторых, чтобы каждый раз не писать путь к домашнему каталогу, достаточно воспользоваться тильдой (~). Например, запись ~/Documents равносильна /Users/имя пользователя/Documents .
Для копирования файлов достаточно заменить mv на cp :
Остальные команды
Естественно, описать все доступные команды (как и их ключи) не представляется возможным, поэтому я остановлюсь еще на нескольких интересных и полезных «экземплярах»:
- Запустить любое приложение в системе можно с помощью команды open , указав через пробел путь к приложению и его название. Например, open /Applications/Airfoil.app
- С помощью команды who можно посмотреть список пользователей, которые залогинились в систему. Естественно, это актуально лишь в том случае, если работа на данном компьютере подразумевает вход нескольких пользователей или активный SSH.
- Команда cat test.txt позволит вам вывести в окно Терминала содержимое файла с именем test.txt, но вы не сможете его отредактировать (для этого потребуется воспользоваться текстовым редактором вроде nano, vim или emacs), только просмотреть.
- Отменить процесс выполнения любой команды (будь то ping или работа шелл-скрипта) всегда можно с помощью универсальной комбинации клавиш Control+C .
- Очистить окно Терминала от большого количества текста достаточно просто, выполнив команду clear .
- Для выполнения некоторых команд вам могут потребоваться привилегии администратора. Быстрее всего это сделать путем добавления в начало строки команды sudo . В этом случае, Терминал попросит ввести пароль от вашей учетной записи.
- Посмотреть список запущенных процессов можно с помощью команды top , правда, в этом случае данные будут выглядеть менее наглядно, нежели в Мониторинге системы.
- Для вывода детальной справки по какой-либо команде можно воспользоваться man , указав через пробел имя интересующей команды.
- Чуть не забыл упомянуть о просто фантастической поисковой утилите grep , с помощью которой можно найти текстовую строку в файле или, скажем, конкретный процесс в списке процессов (например, ps ax|grep smbd ).
Пожалуй, на этом и остановимся, а если я что-то упустил или указал неправильно — милости просим в комментарии.
Источник: lifehacker.ru