Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local modem = peripheral.wrap("back")
- local monitor = peripheral.wrap("top")
- modem.open(1)
- local source = peripheral.getNames()
- local last = nil
- local itemAliases = {
- ["projecte:item.pe_matter"] = "Red Matter",
- ["projecte:rm_furnace"] = "RM Furnace",
- ["projecte:matter_block"] = "RM Block",
- ["projecte:item.pe_fuel"] = "Mobius Fuel"
- }
- local function getItemAlias(itemName)
- return itemAliases[itemName] or itemName
- end
- local function formatEMCValue(emc)
- return string.format("%.2fB", emc / 1000000000)
- end
- local function getEMCValue(itemName, itemCount)
- local emcValues = {
- ["Red Matter"] = 466944,
- ["RM Furnace"] = 10059784,
- ["RM Block"] = 1867776,
- ["Mobius Fuel"] = 2048
- }
- return emcValues[itemName] and itemCount * emcValues[itemName] or 0
- end
- local function getItemsWithPrefix(prefix, items)
- local filteredItems = {}
- for _, item in pairs(items) do
- local itemName = item.name
- if string.sub(itemName, 1, #prefix) == prefix then
- local alias = getItemAlias(itemName)
- local emc = getEMCValue(alias, item.count)
- table.insert(filteredItems, { name = alias, count = item.count, emc = emc })
- end
- end
- return filteredItems
- end
- while true do
- local items = last and last.list() or {}
- local filteredItems = getItemsWithPrefix("projecte:", items)
- monitor.clear()
- monitor.setBackgroundColor(colors.black)
- monitor.setTextColor(colors.red)
- monitor.setCursorPos(1, 1)
- monitor.write("Chest Contents")
- local cursorPos = 3
- for _, item in ipairs(filteredItems) do
- monitor.setCursorPos(1, cursorPos)
- monitor.write(item.name .. ": " .. item.count)
- monitor.setCursorPos(1, cursorPos + 1)
- monitor.write("EMC: " .. formatEMCValue(item.emc))
- cursorPos = cursorPos + 2
- end
- local targetChests = {}
- local sourceChests = {}
- for _, name in ipairs(source) do
- if string.match(name, "projecte:condenser_mk2") then
- table.insert(targetChests, peripheral.wrap(name))
- elseif string.match(name, "projecte:condenser") and not string.match(name, "projecte:condenser_mk2") then
- table.insert(sourceChests, peripheral.wrap(name))
- elseif string.match(name, "black_hole_unit") then
- last = peripheral.wrap(name)
- end
- end
- for _, targetChest in ipairs(targetChests) do
- for _, sourceChest in ipairs(sourceChests) do
- for slot = 1, 5 do
- sourceChest.pushItems(peripheral.getName(targetChest), slot)
- end
- end
- if last then
- for slot = 42, 46 do
- targetChest.pushItems(peripheral.getName(last), slot)
- end
- end
- end
- sleep(0.01)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement