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

Генератор обсидиана

Рекомендуемые сообщения

Не так давно решил я немного нафармить обсидиана, но прыгать по озерам лавы, тушить её водой, а потом долго и нудно собирать как-то не то.
Хотелось автоматизировать этот процесс. Да есть специальные генераторы обсидиана, но там требуются расходники в виде красной пыли или другого горючего материала, что для меня было неприемлимо. Поэтому был собран первый прототип генератора обсидиана. 

 

Портатип генератора обсидианта Version 1.0

Довольно сложная но красивая конструкция.

Время генерации 1 стака ~ 2 минуты 30 сек.

Внешний вид:

lG5mXVR.gif

Инструкции по сборке:

Скрытый текст

В комплект к роботу требуется некая емкость для которая будет хранить лаву (я использовал барабан на 256 литров из мода Extra Utilities) и ведро охладителя (обычная вода). В робота необходимо вставить:

RXYFI89.png

  • Системный блок Т-2
  • Монитор Т-1
  • Клавиатура
  • Видеокарта Т-1
  • ЦП Т-1
  • Память Т-2.5 (2 штуки)
  • EEPROM (Lua BIOS)
  • Жесткий диск Т-1 (OpenOS) (УСТАНОВИТЬ ЗАРАНЕЕ!)
  • Улучшение "Инвентарь"
  • Бак для жидкостей"
  • Улучшение "Контроллер бака"

Так же не забываем про бур/молот который может выбирать сразу территорию 3х3. Для работы необходима постройка как на скрине.

cgik7Ct.png

Ставим как на скрине сундук и зарядку, выдаем роботу в 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 сек.

Внешний вид:

weKQTTZ.gif

Инструкции по сборке:

Скрытый текст

Немного подумав и внеся пару раз изменения в программу, добились нереального результата: стак обсидиана за 14~16 секунд!
Итак, конфигурация робота:

cvqGiLw.png

  • Системный блок Т-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()

Установка:

SVnWqoe.png


Под роботом разместите бочку, над роботом сундук. Сзади можно установить зарядку. Сбоку рядом с роботом разлить воду, а рядом с местом где будет ставиться лава убрать 1 блок, чтобы вода туда стекала. Роботу вручите самую быструю кирку, желательно с чарами на эффективность. При желании можете напихать в робота прокачанных апгрейдов опыта, чтобы увеличить скорость разрушения блоков, но тут уже конфигурацию робота и как апгрейды прокачать, сами продумаете.

Генератор обсидиана Version 2.1

Довольно легкая конструкция, дорогой робот. Внешняя бочка не требуется.
Время генерации 1 стака ~ 15 сек.
Внешний вид:

sOSg0sT.png

 

Инструкции по сборке:

Скрытый текст

В данной установке лава забирается напрямую из инвентаря робота, но тогда сложность робота повысится и программа изменится.
Итак, конфигурация робота:

RXYFI89.png

  • Системный блок Т-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 сек.
Внешний вид:

KMeo4VY.png

 

Инструкции по сборке:

Скрытый текст

Все предыдущие версии фермы работают стабильно, но у них есть одно ограничение, как только разрядится бур, ферма перестает нормально работать. Вернее она вообще не работает. Или второй вариант, закончилась лава в бочке.
3 версия программы справляется с этой задачей на ура, но сложность робота возрастает в разы.
Итак, для сборки нам потребуется робот следующей конструкции:

 

yE89S7S.png

  • Системный блок Т-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()

 

Теперь переходим к настройкам и структуре.

EvU5gcw.png

Структура почти не изменилась, если не помните как собирать, глядите инструкцию №2. Бочку запихиваем в 1 слот, в руку (роботу) бур скоростной, под роботом устанавливаем буфер зарядки (смотрите сами по своему буру), или если совсем все плохо с ресурсами, устанавливайте саму зарядку (она медленно но верно зарядит немного ваш бур). Справа(слева) устанавливаете сундук в который будут поставляться бочки с лавой.
Соответственно в зависимости от конструкции производите настройку программы, ну там в комментариях все подробно описано.
Запускаем, и радуемся! Теперь ваша ферма будет работать до бесконечности (ну или пока поставки лавы не прервутся).

Собственно такие вот получились варианты сборки фермы обсидиана, я конечно хз зачем вам столько его потребуется, но, коль уж есть программа почему бы ею не воспользоваться.
Всем удачи, копайте обсидиан быстрее, чем вам сосед :)

P.S. Большое спасибо за демонстрацию и помощь в написании программы @Romanok2805, за информацию по багам @M_O_R_F_I_K

Изменено пользователем Asior
Обновление, правка багов, опьечаток

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Небольшое обновление:

  • обновлено оформление
  • исправлены баги (защита от лагов сервера)
  • добавлена продвинутая версия генератора
  • добавлена возможность настройки сторон ввода/вывода ресурсов

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет, я новичок в этом моде, никак не получается запустить твою программу .( 

Пытался через пастебин, однако получаю вот такую ошибку

Что я делаю не так? 

Скрытый текст

330005288_screenshot_61581.png.6ae62977f60af90ff96b2ac21dfa9a4f.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...