Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local c = require("component")
- local sides = require("sides")
- local t = c.transposer
- local var_com = "transposer"
- local tra_main = {"7242", "d684",}
- local tra = {}
- local var_side = {}
- --===== добавление в масив адреса компонентов начиная со 2 места =====--
- --===== добавить полный адрес для главного компонента который раздаём предметы =====--
- local function ToFindComponent()
- local var_2 = 1
- for var_1,_ in pairs(c.list(var_com)) do
- -- if var_1 ~= c.get(tra_main[индекс масива], var_com) дописать если делаете ещё ряд схемы например тут описано 2 ряда
- if var_1 ~= c.get(tra_main[1], var_com) then
- if var_1 ~= c.get(tra_main[2], var_com) then
- --if var_1 ~= c.get(tra_main[3], var_com) then
- tra[var_2] = var_1
- var_2 = var_2 + 1
- --end
- end
- end
- for i = 1, #tra_main do
- tra_main[i] = c.get(tra_main[i], var_com)
- end
- end
- -- for a,b in pairs(tra) do print(a,b) end
- end
- --===== Перемещаем предметы в воронки =====--
- local function invenToinven(var_index)
- local var_side = {sides.back, sides.front, sides.right, sides.left, sides.top}
- local var_7, var_8, var_9, var_10
- for t = 1, #var_side - 1 do
- for k = 1, 5 do
- -- получаем размер сундука
- for var_7 = 1, c.invoke(tra_main[var_index], "getInventorySize", var_side[5]) do
- -- проверяем есть ли в слоте в сундуке который находиться сверху
- var_8 = c.invoke(tra_main[var_index], "getStackInSlot", var_side[5], var_7)
- if var_8 ~= nil then
- for var_name, var_size in pairs(var_8) do
- if var_name == "size" and var_size == 64 then
- -- проверяем есть ли в слоте в воронке который находиться по заданую сторону
- var_9 = c.invoke(tra_main[var_index], "getStackInSlot", var_side[t], k)
- if var_9 == nil then
- var_10 = c.invoke(tra_main[var_index], "transferItem", var_side[5], var_side[t], 64, var_7)
- print("Lap:", t, "Side:", var_side[t], "Slot:", var_7, "Drop:", var_10)
- break
- end
- end
- end
- end
- end
- end
- end
- return print("конец функции")
- end
- --===== Определяем где Печка, где Генератор =====--
- local function determine(var_address_com)
- --===== var_3 номер ячейки в массиве для записи сторон =====--
- local var_3 = 2
- for var_4 = 0, 5 do
- if c.invoke(var_address_com, "getTankCapacity", var_4) == 16000 then
- var_side[1] = var_4
- elseif c.invoke(var_address_com, "getTankCapacity", var_4) == 8000 then
- var_side[var_3] = var_4
- var_3 = var_3 + 1
- end
- end
- end
- local function fluidTofluid(var_address)
- local var_tank_size = c.invoke(var_address, "getTankLevel", var_side[1])
- for var_5 = 2, #var_side do
- print("Side:"..var_side[var_5], c.invoke(var_address, "transferFluid", var_side[1], var_side[var_5], var_tank_size/4))
- end
- end
- ToFindComponent()
- while true do
- for k = 1, #tra_main do
- invenToinven(k)
- for var_6 = 2, #tra do
- print("|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|")
- print(" "..tra[var_6])
- determine(tra[var_6])
- fluidTofluid(tra[var_6])
- print("|_____________________________________|\n")
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment