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

Программа "Очень много электричества"

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

8 минут назад, Alex сказал:

а где вы столько этого ляписа берете? он же вроде не так, чтобы уж спавнится тоннами. Или вы его как-то синтезируете из чего-то? Это же довольно таки вроде не дешманский рес. Или нет?

В выживании в сингле я обычно не трачу лазурит так бездарно. Но если админ люто ограничил количество реакторов, то приходится чем-то жертвовать. Лазурит, может, и не лишний, но он есть. А иридия пока ещё нет.

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


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

А если про лазурит то если есть форестри то там изи с пчел лазурит)

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


Ссылка на сообщение
Поделиться на других сайтах
20 минут назад, whiskas сказал:

А если про лазурит то если есть форестри то там изи с пчел лазурит)

а я всегда думал, что ты в маджикалКропс играешь. А ты вон оно как.... по хардкору пошел.

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


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

Ну какбы маджикКропс имбанутый мод. Не интересно с ним играть)

А с форестри 2 большой улея + пчелки = 200к лазурита за неделю

Изменено пользователем whiskas

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


Ссылка на сообщение
Поделиться на других сайтах
13 минуты назад, whiskas сказал:

Не интересно с ним играть)

А с форестри 2 большой улея + пчелки = 200к лазурита за неделю

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

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


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

Иридий не могут вопше, редстоуна в рази меньше, урана немножко могут)

И их долго делать (пчел) но если сделать пасивний доход ресурсов

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


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

Написал автокрафт конденсаторов IC2 на роботе к предыдущему посту  <<= ссылка на пост

 

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

--[[opencomputers автокрафт конденсаторов IC2 by serafim
    pastebin.com/WgcCKBFn              update 03.06.2019

требования:
робот второго уровня, улучшение верстак,
инвентарь, контроллер инвентаря.

использование:
поставить робота к сундку (можно передом, сверху, снизу сундкука),
положить в сундук блоки лазурита (для лазуритовх конденсаторов)
или блоки редстоуна (для редстоун конденсаторов).
указать в программе тип конденсаторов.
--]]

local condensator = "lapis" -- тип конденсатора "lapis" или "redstone"

local com = require("component")
local term = require("term")

if not com.isAvailable("robot") then
  print("только роботы могут использовать эту программу")
  os.exit()
end
local r = require("robot")

if not com.isAvailable("crafting") then
  print("нет улучшения верстак")
  os.exit()
end
local craft = com.crafting

if not com.isAvailable("inventory_controller") then
  print("нет контроллера инвентаря")
  os.exit()
end
local i_c = com.inventory_controller

local conden,block
if condensator == "lapis" then
  print("тип конденсатора: лазурит")
  conden = "IC2:reactorCondensatorLap"
  block = "minecraft:lapis_block"
else
  print("тип конденсатора: редстоун")
  conden = "IC2:reactorCondensator"
  block = "minecraft:redstone_block"
end
os.sleep(1)

local chestside,side = {3,1,0} --"front","up","down"
for k,n in pairs(chestside) do
  local chest = i_c.getInventorySize(n)
  if chest then
    side = n
    break
  end
end
if side then
  print("сундук в стороне: "..side)
  os.sleep(1)
else
  print("сундук не найден")
  os.exit()
end

if side == 3 then
  drop = function() if r.drop() then return true end end
elseif side == 1 then
  drop = function() if r.dropUp() then return true end end
elseif side == 0 then
  drop = function() if r.dropDown() then return true end end
end

local sizeInv = i_c.getInventorySize(side)
local dropCount = 0

local function unload(all)
  if all then
    print("выгрузка всего инвентаря")
    for i = 1,r.inventorySize() do
      if r.count(i) > 0 then
        r.select(i)
        drop()
      end
    end
    return
  end
  if drop() then
    print("выгрузка")
    r.setLightColor(0x008000)
    dropCount = dropCount + 1
  else
    print("в сундуке нет места :(")
  end
end

while true do
  r.setLightColor(0xFFFFFF)
  term.clear()
  if r.count(1) == 0 then
    r.select(1)
    for slot = 1,sizeInv do
      local item = i_c.getStackInSlot(side, slot)
      if item and item.name == block then
        print("блок в слоте: "..slot)
        i_c.suckFromSlot(side, slot)
        break
      end
      if slot == sizeInv then
        print("в сундуке нет блоков для крафта")
        r.setLightColor(0xFF0000)
      end
    end
  else
    local slotConden = {}
    for i = 1,sizeInv do
      local item = i_c.getStackInSlot(side, i)
      if item and item.name == conden and item.damage > 9000 then -- MaxDamage 10000
        print("конденсатор в слоте: "..i.."  износ: "..math.ceil(100*item.damage/10000).." %")
        slotConden[i] = i
      end
    end  
    if r.count(4) > 0 then
      r.select(4)
      unload()
    end
    for i,n in pairs(slotConden) do
      print("крафт слота: "..i)
      if r.count(2) == 0 then
        r.select(2)
        i_c.suckFromSlot(side, i)
      end
      r.select(4)
      if craft.craft() then
        r.setLightColor(0xFF00FF)
        unload()
      else
        print("ошибка крафта :(")
        r.setLightColor(0xFF0000)
        unload(true)
        break
      end
    end
  end
  print("всего скрафтил конденсаторов: "..dropCount.."\n".."жду 5 секунд...")
  os.sleep(5)
end

 

pastebin get WgcCKBFn craft.lua
Скрытый текст

x545jGA.gif

 

Изменено пользователем serafim

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


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

Добавил в программу контроля реактора немного функционала:  

pastebin get kfRBNS0w ic.lua

Проверку на то что конденсатор был заменён. 

в прошлом варианте если в сундуке не было свободного места, сгоревший конденсатор оставался в реакторе, а программа считала что замена была произведена, в результате взрыв :)

 

Проверки при старте программы:

на поиск реактора, сундука, сгоревших конденсаторов в реакторе, перегрева, чтоб в случае проблем не включать реактор

 

В очередной раз переделал логику на оптимальную(по крайне мере пока)

 

Провёл оптимизацию кода насколько хватило терпения

 

Если в работе программы заметите ошибки или недоработки, пишите, по возможности исправлю

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


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

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

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

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

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

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

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

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

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


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