Asior 586 Опубликовано: 14 марта, 2019 (изменено) Не так давно решил я немного нафармить обсидиана, но прыгать по озерам лавы, тушить её водой, а потом долго и нудно собирать как-то не то. Хотелось автоматизировать этот процесс. Да есть специальные генераторы обсидиана, но там требуются расходники в виде красной пыли или другого горючего материала, что для меня было неприемлимо. Поэтому был собран первый прототип генератора обсидиана. Портатип генератора обсидианта Version 1.0 Довольно сложная но красивая конструкция. Время генерации 1 стака ~ 2 минуты 30 сек. Внешний вид: Инструкции по сборке: Скрытый текст В комплект к роботу требуется некая емкость для которая будет хранить лаву (я использовал барабан на 256 литров из мода Extra Utilities) и ведро охладителя (обычная вода). В робота необходимо вставить: Системный блок Т-2 Монитор Т-1 Клавиатура Видеокарта Т-1 ЦП Т-1 Память Т-2.5 (2 штуки) EEPROM (Lua BIOS) Жесткий диск Т-1 (OpenOS) (УСТАНОВИТЬ ЗАРАНЕЕ!) Улучшение "Инвентарь" Бак для жидкостей" Улучшение "Контроллер бака" Так же не забываем про бур/молот который может выбирать сразу территорию 3х3. Для работы необходима постройка как на скрине. Ставим как на скрине сундук и зарядку, выдаем роботу в 1 слот охладитель, во второй бочку с лавой. Рекомендую заменить дно этой установки на какой то материал прочнее обсидиана, на крайняк обсидианом, причем в 2 слоя. Дело в том, что иногда происходит сбой в буре (зачастую из за ошибок сервера), из за чего он вскапывает не только по горизонтали но и по вертикали. Вы же не хотите в один прекрасный день обнаружить что от вашего генератора растекается лава по всему домику. Устанавливаем следующую программу: --1 слот ведро воды --2 слот бочка лавы --апгрейды: контроллер бочки, бочка, инвентарь local com = require("component") local r = require("robot") local tc = com.tank_controller local function go() while not r.forward() do os.sleep(0) end end local function goUp() while not r.up() do os.sleep(0) end end local function goDown() while not r.down() do os.sleep(0) end end local function dropFluid(slot) r.select(slot) if tc.drain() then --1000 мл r.fillDown() else if slot == 1 then r.select(2) else r.select(1) end tc.fill() dropFluid(slot) end end goDown() r.swingDown(0) repeat r.fillDown() print('обнуление!') until r.tankLevel() == 0 while true do go() r.turnLeft() dropFluid(2) go() r.turnLeft() dropFluid(2) go() dropFluid(2) go() r.turnLeft() dropFluid(2) go() dropFluid(2) go() r.turnLeft() dropFluid(2) go() dropFluid(2) go() r.turnLeft() dropFluid(2) go() r.turnLeft() go() r.turnAround() dropFluid(2) goUp() os.sleep(1) r.select(1) dropFluid(1) os.sleep(1) r.drainDown() tc.fill() goDown() r.swingDown(0) if r.count(3) == 64 then print('опустошаю инвентарь') goUp() for i=3, r.inventorySize() do if r.count(i) > 0 then r.select(i) r.dropUp(64) end end os.sleep(5) goDown() end if r.durability() < 0.1 then os.exit() end end ВНИМАНИЕ! Для тех кто копирует, внимательно после вставки проглядите код, там могут встретиться такие символы "?" из за этого программа не запустится (тапки кидать в кривой html код) Запускаем программу и наслаждаемся результатом. Прогон на время с разными бурами (Синий бур из Graviation Suite и Бур из Immersive Engineering) показал слабый результат, стак обсидиана за 2 минуты и 30~35 секунд. По времени работы меня такой результат вполне устраивал, но потом @Romanok2805 показал свою версию похожего генератора. Описывать его я не буду, поясню что смысл работы того генератора, он черпает ведром лаву из бочки, выливает её рядом с источником воды, меняет ведро на бур и разрушает обсидиан. И так по кругу. Обмозговав алгоритм его работы, был придуман улучшенный генератор обсидиана. Генератор обсидианта Version 2.0 Довольно легкая конструкция, дешевый робот. Время генерации 1 стака ~ 15 сек. Внешний вид: Инструкции по сборке: Скрытый текст Немного подумав и внеся пару раз изменения в программу, добились нереального результата: стак обсидиана за 14~16 секунд! Итак, конфигурация робота: Системный блок Т-1 Монитор Т-1 Клавиатура Видеокарта Т-1 ЦП Т-1 Память Т-1.5 (2 штуки) EEPROM (Lua BIOS) Жесткий диск Т-1 (OpenOS) (УСТАНОВИТЬ ЗАРАНЕЕ!) Улучшение "Инвентарь" Контейнер для улучшения Т-1 (в него устанавливается Бак для жидкостей) Код программы: --обсидиановый майнер с внешней бочкой --обязательный компонент: инвентарь, расширение бака Т-1 dropSide = 1 --сброс обсидиана 0 = низ; 1 = верх; impLava = 0 --забор лавы 0 = низ; 1 = верх; local r = require("component").robot local slots = r.inventorySize() local function drop() for i=1, slots do if r.count(i) > 0 then r.select(i) r.drop(dropSide) end end r.select(1) end r.fill(impLava,16000) drop() while r.drain(impLava) do r.fill(3) while r.swing(3) do os.sleep(0) end if r.count(slots) > 0 then drop() end end drop() Установка: Под роботом разместите бочку, над роботом сундук. Сзади можно установить зарядку. Сбоку рядом с роботом разлить воду, а рядом с местом где будет ставиться лава убрать 1 блок, чтобы вода туда стекала. Роботу вручите самую быструю кирку, желательно с чарами на эффективность. При желании можете напихать в робота прокачанных апгрейдов опыта, чтобы увеличить скорость разрушения блоков, но тут уже конфигурацию робота и как апгрейды прокачать, сами продумаете. Генератор обсидиана Version 2.1 Довольно легкая конструкция, дорогой робот. Внешняя бочка не требуется. Время генерации 1 стака ~ 15 сек. Внешний вид: Инструкции по сборке: Скрытый текст В данной установке лава забирается напрямую из инвентаря робота, но тогда сложность робота повысится и программа изменится. Итак, конфигурация робота: Системный блок Т-2 Монитор Т-1 Клавиатура Видеокарта Т-1 ЦП Т-1 Память Т-2.5 (2 штуки) EEPROM (Lua BIOS) Жесткий диск Т-1 (OpenOS) (УСТАНОВИТЬ ЗАРАНЕЕ!) Улучшение "Инвентарь" Бак для жидкостей Улучшение "Контроллер бака" Код программы: --обсидиановый майнер с внутренней бочкой --обязательный компонент: инвентарь, расширение бака Т-1, контроллер бака dropSide = 1 --сброс обсидиана 0 = низ; 1 = верх; local r = require("component").robot local tc = require("component").tank_controller local slots = r.inventorySize() local function drop() for i=2, slots do if r.count(i) > 0 then r.select(i) r.drop(dropSide) end end r.select(1) end while tc.drain() do r.fill(3) r.swing(3) if r.count(slots) > 0 then drop() end end drop() Установка: Постройку структуры гляди в предыдущей инструкции. Бочку необходимо положить в 1 слот. О том что можно такую ферму расширить до 2 роботов, думаю упоминать даже не стоит. Генератор обсидиана промышленный Version 3.0 Дорогая конструкция, дорогой робот. Навешано чуть больше расчетов, в связи с чем время генерации обсидиана увеличено, но зато данный генератор может обновлять расходники. Время генерации 1 стака ~ 17 сек. Внешний вид: Инструкции по сборке: Скрытый текст Все предыдущие версии фермы работают стабильно, но у них есть одно ограничение, как только разрядится бур, ферма перестает нормально работать. Вернее она вообще не работает. Или второй вариант, закончилась лава в бочке. 3 версия программы справляется с этой задачей на ура, но сложность робота возрастает в разы. Итак, для сборки нам потребуется робот следующей конструкции: Системный блок Т-2 Монитор Т-1 Клавиатура Видеокарта Т-1 ЦП Т-1 Память Т-1.5 (2 штуки) EEPROM (Lua BIOS) Жесткий диск Т-1 (OpenOS) (УСТАНОВИТЬ ЗАРАНЕЕ!) Улучшение "Инвентарь" Улучшение "Контроллер инвентаря" Бак для жидкостей Улучшение "Контроллер бака" Контейнер для улучшения Т-3 (в него устанавливается Улучшение "Опыт") После сборки в контейнер можно вставить Улучшение "Опыт", которое довольно быстро прокачается и добавит роботу не только дополнительную емкость батареи, но и повысит немного скорость копки, а также уменьшит расход энергии в буре. Хотя если ресурсов на него не хватает, то можно и не устанавливать. Планки памяти как вы заметили тоже снизили свой уровень, впринципе программа не сильно критично относится к памяти, но если захотите побольше, то не забудьте смерить Процессор на Т-2. Устанавливаем программу: --обсидиановый майнер с внутренней бочкой. Продвинутый! --обязательные улучшения: инвентарь, контроллер инвентаря, расширение бака, контроллер бака --справа или слева не забудьте установить сундук с бочками, откуда они будут забираться --снизу зарядка из мода вашего бура или зарядка ОС (она медленная но универсальная) dropObsSide = 1 --сброс обсидиана 0 = низ; 1 = верх; dropBoerSide = 0 --сброс бура 0 = низ; 1 = верх; importBar = true --взять бочку true = справа; false = слева local r = require("component").robot local tc = require("component").tank_controller local i_c = require("component").inventory_controller local slots = r.inventorySize() local function drop() for i=2, slots do if r.count(i) > 0 then r.select(i) r.drop(dropObsSide) end end r.select(1) end local function charging() r.select(2) i_c.equip() r.drop(dropBoerSide) os.sleep(30) r.suck(dropBoerSide) i_c.equip() r.select(1) end local function barrelUp() r.drop(dropObsSide) r.turn(importBar) r.suck(3) r.turn(not importBar) end drop() local i = 0 while true do if r.tankLevel() < 1500 then tc.drain() end r.fill(3) while r.swing(3) do os.sleep(0) end i = i+1 if i > 64 then i = 0 if r.count(slots) > 0 then drop() elseif r.durability() and r.durability() <= 0.1 then drop() charging() elseif not tc.getTankLevelInSlot(1) then barrelUp() end end end drop() Теперь переходим к настройкам и структуре. Структура почти не изменилась, если не помните как собирать, глядите инструкцию №2. Бочку запихиваем в 1 слот, в руку (роботу) бур скоростной, под роботом устанавливаем буфер зарядки (смотрите сами по своему буру), или если совсем все плохо с ресурсами, устанавливайте саму зарядку (она медленно но верно зарядит немного ваш бур). Справа(слева) устанавливаете сундук в который будут поставляться бочки с лавой. Соответственно в зависимости от конструкции производите настройку программы, ну там в комментариях все подробно описано. Запускаем, и радуемся! Теперь ваша ферма будет работать до бесконечности (ну или пока поставки лавы не прервутся). Собственно такие вот получились варианты сборки фермы обсидиана, я конечно хз зачем вам столько его потребуется, но, коль уж есть программа почему бы ею не воспользоваться. Всем удачи, копайте обсидиан быстрее, чем вам сосед P.S. Большое спасибо за демонстрацию и помощь в написании программы @Romanok2805, за информацию по багам @M_O_R_F_I_K Изменено 1 апреля, 2019 пользователем Asior Обновление, правка багов, опьечаток 8 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior Автор темы 586 Опубликовано: 1 апреля, 2019 Небольшое обновление: обновлено оформление исправлены баги (защита от лагов сервера) добавлена продвинутая версия генератора добавлена возможность настройки сторон ввода/вывода ресурсов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Sivarius 0 Опубликовано: 16 июля, 2019 Привет, я новичок в этом моде, никак не получается запустить твою программу .( Пытался через пастебин, однако получаю вот такую ошибку Что я делаю не так? Скрытый текст Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 16 июля, 2019 @Sivarius Какая версия OpenComputers и Майнкрафта? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
whiskas 144 Опубликовано: 16 июля, 2019 (изменено) тупой генератор, есть способ генерить на красной пыли. https://minecraft-ru.gamepedia.com/Генератор_обсидиана прочти силочку и если зохочеш апдейтни прожку под нее Жду версии прожки v4 Изменено 17 июля, 2019 пользователем whiskas Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Sivarius 0 Опубликовано: 16 июля, 2019 15 минут назад, eu_tomat сказал: @Sivarius Какая версия OpenComputers и Майнкрафта? Понял в чём проблема была, робот просто не мог работать с эндер танком, взял версию кода где под роботом стоит бак с лавой (и уже к баку подключил эндер танк) - проблема решена, всё работает) Но спасибо за быстрый ответ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 16 июля, 2019 2 часа назад, whiskas сказал: тупой генератор, есть способ генерить на красной пыли А чем генератор на красной пыли острее этого? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
whiskas 144 Опубликовано: 17 июля, 2019 9 часов назад, eu_tomat сказал: А чем генератор на красной пыли острее этого? Ну какбы всегда когда играеш не хватает лавы, а красной пыли дофига Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior Автор темы 586 Опубликовано: 17 июля, 2019 9 минут назад, whiskas сказал: Ну какбы всегда когда играеш не хватает лавы, а красной пыли дофига Да, хороший способ получения обсидиана, НО только для одиночки. На серверах такие машины фиксят и они не работают. Так же это ж чистый дюп, а в случае с роботом расход 1 ведро лавы на 1 обсидиант. Выгодно и совсем не читерно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 17 июля, 2019 19 минут назад, whiskas сказал: Ну какбы всегда когда играеш не хватает лавы, а красной пыли дофига Лавы не хватает, если закрыт доступ в Нижний мир, или же в нём очень трудно выжить. Обычно же и доступ открыт, и выжить не проблема, особенно, если можно стоять в укрытии, пока роботы осушают лавовые озёра. А озёр там много, и лава является не более дефицитным ресурсом, чем красная пыль. Что ещё мешает добыче лавы в больших объёмах? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
monkey 7 Опубликовано: 18 июля, 2019 в ВК пишут, что ее сложно найти, легко потерять и невозможно забыть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya 415 Опубликовано: 18 июля, 2019 6 часов назад, monkey сказал: в ВК пишут, что ее сложно найти, легко потерять и невозможно забыть но на деле: Сложно потерять, легко найти и невозможно забыть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах