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

Управление энергохранилищами

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

Нужна программка для сервера с 12 адаптерами которые подсоединены к энергохранителям.

 Что должна делать программа:

  1.Проверять текущий заряд энергохранителей и выводить их показания по порядку.

  2.Возможность избирательно отключить тот или иной энергохранитель.

 

Награда: 32 золотых слитка

 

Комплектация: Серверная стойка с подсоединёнными снизу 12 адаптерами, сервер T1 с деталями Т1 и платой красного камня Т1.

Вроде всё. 

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

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


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

Заказ №11 [ожидание] Программа для сервера.Заказ №012 [ожидание] Управление энергохранилищами

Учитесь подбирать заголовки!
 

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


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

Могу хоть сейчас сделать на чистом энтузиазме(эти 32 слитка мне...)

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


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

12 адаптеров? Может быть 12 хранилищ? Потому-что 60 компонентов ни один сервер не потянет.

 

Сделал небольшой скрипт вывода информации, можно добавлять компоненты в определенном порядке, воспользовавшись функцией 'add'

 

 

local component = require('component')
local event = require('event')
local term = require('term')
local e
local tType = {
  'batbox',
  'cesu',
  'mfe',
  'mfsu',
  'chargepad_batbox',
  'chargepad_cesu',
  'chargepad_mfe',
  'chargepad_mfsu'
}

local tStore = {}

local function add()
  while 1 do
    e = {event.pull()}
    for i = 1, #tType do
      if e[1] == 'component_added' and tType[i] == e[3] then
        table.insert(tStore, e[2])
        print('added', e[2])
      elseif e[1] == 'key_down' then
        return true
      end
    end
  end
end

local function status()
  tStore = {}
  for i = 1, #tType do
    for j in pairs(component.list(tType[i])) do
      table.insert(tStore, j)
    end
  end
  print('#', 'type', 'address', 'stored', 'output')
  for s = 1, #tStore do
    print(s, component.proxy(tStore[s]).getInventoryName(), string.sub(tStore[s], 1, 7),
      string.sub((component.proxy(tStore[s]).getEUStored()/component.proxy(tStore[s]).getEUCapacity())*100, 1, 4) .. '%',
      component.proxy(tStore[s]).getEUOutputPerTick())
  end
end

local function main()
  term.clear()
  status()
  while 1 do
    print('Команды: [L]ist, [A]dd')
    local cmd = io.read()
    if cmd:upper() == 'L' or cmd:upper() == 'LIST' then
      term.clear()
      status()
    elseif cmd:upper() == 'A' or cmd:upper() == 'ADD' then
      print('Press any key to continue.')
      add()
    end
  end
end

main()

 

 

 

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

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

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


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

12 адаптеров? Может быть 12 хранилищ? Потому-что 60 компонентов ни один сервер не потянет.

4 алмазные шины в сервере = 64 компонента же.

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


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

-7 базовых компонентов, итого: 57 батбоксов максимум

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


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

Что-то много компонентов насчитали. Всего 12 хранилищ и столькоже адаптеров, хотя планирую побольше. Включение выключение идёт через цветные провода(слева) желательно сделать на все цвета.

Добавлю 5 алмазов, если сделаете поддержку реактора адаптером.

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


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

В общем Doob спасибо за программку, с включением/выключением сам уже разобрался.

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


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

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