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

Вся активность

Этот поток обновляется автоматически     

  1. Ранее
  2. Кроме этого у каждого крафт-процессора МЕ сети может быть своё имя, получить которое он может прессом либо на наковальне. После чего при заказах крафта через ОС будет доступно указание на процессор по имени. В случае если именованные вычислительные блоки объединены в один массив, их имена так же будут отображаться объединенной строкой.
  3. Да, это единственный способ, да и hbm предоставляет клапаны для труб контролируемые через редстоун, просто у труб пропускная способность близкая бесконечности, поэтому расход будет диким, а через капсулы будет точнее Не, проверил все, да и разработчик ответил что так и должно быть
  4. Насколько помню craftables = component.me_interface.getCraftables() - - возвращающее объект с полями-функциями, через которые (в том числе) осуществляется доступ к списку объектов предметов доступных для крафта, через который заказывается крафт, при этом опять же возвращается объект с полем, эмм, вроде isDone, позволяющим ожидать завершения заказанного. Каких-либо адекватных примеров кода в сети не встречал, если не считать минифицированного кода (при этом с сохранением табуляции и переносов) без комментариев. Сам я собирался реализовать сие, но тогда руки не дошли. С сейчас вне сферы желаемого.
  5. Кроме этого, как подсказывает интуиция, карбон возможно заливать по трубам. А воду положить бесконечной бочкой (infinity water tank). Что полностью снимет необходимость как-либо оперировать с 25...28 тоанспозером.
  6. Возможно доступ осуществляется с другой стороны. Например снизу. Так, например, обычная ванильная печь (furnace) разрешает класть топливо сбоку, обрабатываемую продукцию сверху, а готовую можно забирать воронкой снизу.
  7. Проблема оказалась очень простой, эти слоты заблокированы во имя совместимости, если снять блокировку то все извлекатели/разгрузчики начнут пихать туда предметы или забирать их что полностью сломает мод
  8. Возник вопрос У цирнокса 28 слотов: 24 стержня, а 4 для загрузки/выгрузки воды/углекислого газа Первые 24 работают с транспозером нормально, но забрать можно только отработанные стержни, стержни в работе он не вернет, Но в последние 4 не получилось ни загрузить ни выгрузить Размер инвентаря проверил в нем 28 слотов, транспозер их видит, но последние 4 получить/забрать их не может Моды Ntm Space(замена на классическую версию ничего не дает) OpenComputers OpenPeripheral(integration, Addons) Inventory Tweaks Thermal(и его дополнения) Nei EndlessIDs local component = require("component") local sides = require("sides") print(component.transposer.getInventorySize(sides.down)) component.transposer.transferItem(sides.down, sides.up, 16, 28, 1) component.transposer.transferItem(sides.down, sides.up, 16, 27, 2) component.transposer.transferItem(sides.down, sides.up, 16, 26, 3) component.transposer.transferItem(sides.down, sides.up, 16, 25, 4) component.transposer.transferItem(sides.down, sides.up, 16, 24, 5)--тут уже работает Сталкивался ли кто то с подобной проблемой в других модах(Видит все слоты но не работает с некоторыми из них)
  9. ICF реактор конца игры. Мощный не взрывается, нет радиоактивных компонентов топливо можно брать из воздуха, но если загорячится можно разогнать до x9 раз, но у него несколько особенностей Производит только до 3 миллиардов энергии(не знаю почему но выше бойлеры и турбины дать не способны сколько не ставь) Быстро сжигает топливо Весомую часть от выработки сжирают лазер(сами они не отключаются даже если пеллеты нет) Производит столько тепла что необходимо подавать с перерывами Приблизительная Схема(обратите внимание на расположение транспозера и красного контролера) Код Полностью автоматизирует реактор Если пеллета есть и тепло в реакторе не содержится то вкоючаем Если пеллеты нет а тепло осталось ждем пока переработается все тепло, отключив лазеры дабы впустуе не работали Если пеллеты нет, тепла нет то загружаем новую Таким образом мы не теряем энергию впустую Есть ли у кого то гайд на работу с МЭ сетью?
  10. ВВЭР не взрывается(только плавится), по энергии меньше чем рбмк, но меньше потребляет, выхода отработки тоже меньше меньше Код пример ибо возникли проблемы с пониманием что он мне выводит пока без контроля Обратите внимание на обратную запись 100-полностью опущен 0-полностью поднят в интерфейсе наоборот https://ntm.fandom.com/ru/wiki/Водо-водяной_энергетический_реактор_(ВВЭР) PS с интерфейсами также плохо Стоит поискать функцию поиска максимального количества стержней local component = require('component') local powerControls = {} for address, _ in pairs(component.list('ntm_pwr_control')) do table.insert(powerControls, address) end for i, address in ipairs(powerControls) do local control = component.proxy(address) local level = control.getLevel() or 'N/A' local coolantInfoCold, coolantInfoColdMax, coolantInfoHot, coolantInfoHotMax = control.getCoolantInfo() local flux = control.getFlux() or 'N/A' local heatCore, heat = control.getHeat() local fuelInfo = control.getFuelInfo() or 'N/A' local controlType = control.type or 'N/A' print('+--------------------------------+') print('| Компонент: ' .. address .. ' ') print('| Тип: ' .. controlType .. ' ') print('| Уровень: ' .. level .. ' ') print('| Тепло: ' .. (heatCore or 'N/A') .. '/' .. (heat or 'N/A') .. ' ') print('| Флюс: ' .. flux .. ' ') print('| Охлаждение: ' .. (coolantInfoCold or 0) .. '/' .. (coolantInfoColdMax or 0) .. ', ' .. (coolantInfoHot or 0) .. '/' .. (coolantInfoHotMax or 0) .. ' ') print('+--------------------------------+') end
  11. Наконец получилось вытащить информацию о положении стержней и преобразовать ее в двух мерный массив единственное что надо указать левую верхнюю ячейку по отношению на EAST Во втором массиве уже хранятся и адрес и тип поэтому реализовать кнопки с методами будет просто Опять косячу с прокси поэтому пока оставил управление и обновления на потом local component = require("component") local gpu = require("component").gpu -- Список типов компонентов РБМК local rbmkComponentTypes = { "rbmk_fuel_rod", "rbmk_heater", "rbmk_control_rod", "rbmk_cooler", "rbmk_outgasser", "rbmk_boiler", "rbmk_emitter", } local componentsInfo = {} for _, componentType in ipairs(rbmkComponentTypes) do for address, type in component.list() do if type == componentType then local componentProxy = component.proxy(address) local x, y, z = componentProxy.getCoordinates() table.insert(componentsInfo, { type = componentType, address = address, coordinates = {x = x, y = y, z = z} }) end end end local gridSize = 15 local componentGrid = {} for i = 1, gridSize do componentGrid[i] = {} for j = 1, gridSize do componentGrid[i][j] = nil end end local offsetX = 22--левая верхняя ячейка local offsetZ = 34--левая верхняя ячейка for _, component in ipairs(componentsInfo) do local x, z = component.coordinates.x, component.coordinates.z local gridX = x - offsetX + 1 local gridY = z + offsetZ + 1 if gridX >= 1 and gridX <= gridSize and gridY >= 1 and gridY <= gridSize then componentGrid[gridX][gridY] = { address = component.address, type = component.type } end end local function drawComponentGrid() gpu.fill(1, 1, 80, 1, " ") gpu.set(1, 1, " Компоненты РБМК ") gpu.fill(1, 2, 80, 1, "-") for i = 1, gridSize do local rowOutput = "" for j = 1, gridSize do if componentGrid[i][j] then local symbol if componentGrid[i][j].type == "rbmk_fuel_rod" then symbol = "Т" -- Топливо elseif componentGrid[i][j].type == "rbmk_control_rod" then symbol = "К" -- Контролирующий стержень elseif componentGrid[i][j].type == "rbmk_boiler" then symbol = "П" -- Паровой канал elseif componentGrid[i][j].type == "rbmk_outgasser" then symbol = "О" -- Облучатель elseif componentGrid[i][j].type == "rbmk_cooler" then symbol = "Х" -- Охладитель else symbol = "?" -- Неизвестный тип end rowOutput = rowOutput .. "[" .. symbol .. "] " else rowOutput = rowOutput .. "[ ] " end end print(rowOutput) end end drawComponentGrid()
  12. Накатил мод. Исследовал Zirnox. Удалось выяснить, что путем установки адаптера на шапку реактора становится доступен инвентарь реактора, недоступный прямым подключением в это же место: stacks = component.container_zirnox.getAllStacks() позволяет получить информацию о содержании всех слотов реактора, с последующим stack = stacks[slotNumber].all() для таблицы с информацией о всех значениях для слота. Это получение текущей информации по всей видимости наиболее быстрое.
  13. На всякий случай, если не хочется ставить программу, то в OpenOS можно воспользоваться командной components: components -l | less Выводит все методы всех компонентов с документацией. Палка и less в команде, чтобы можно было скроллить.
  14. Очень много чего можно получить из компонентов многих на вики нет Тип компонента: ntm_coker, Адрес: 31f7c437-7da1-4068-8c4f-d957027b3bf6 Методы: - address - getHeat - type - getTypeStored - getInfo - slot - getFluidStored Коксовая установка Тип компонента: ntm_fluid_tank, Адрес: 084c94eb-bdfe-4565-81ff-6231d34acb50 Методы: - address - getMaxStored - type - getTypeStored - getInfo - slot - getFluidStored Любая цистерна или бочка Тип компонента: rbmk_fuel_rod, Адрес: cbad95b6-0e4f-4965-ae14-8f8f575139dc Методы: - getType - getHeat - type - getCoreHeat - getSkinHeat - slot - getModerated - address - getXenonPoison - getInfo - getDepletion - getFluxRatio - getFluxQuantity - getCoordinates Топливный стержень(не отличает реасим) Тип компонента: dfc_receiver, Адрес: 8be271ba-10f0-4cb9-989f-9c89149d0190 Методы: - address - type - getCryogel - getInfo - slot - getEnergyInfo Получатель РТС Тип компонента: rbmk_heater, Адрес: cd2a71f0-5efe-4b79-97e8-5b2086d037db Методы: - getExport - getHeat - getExportMax - slot - type - address - getFillMax - getInfo - getExportType - getFill - getFillType - getCoordinates Не отличает нагреватель от прогревателя Тип компонента: ntm_turbine, Адрес: 95dcf975-e7dc-457f-ab2a-15d171b832e8 Методы: - address - getType - type - getInfo - getFluid - slot - setType Только промышленая турбина и левиафан Тип компонента: ntm_fusion, Адрес: f03d43e6-bb93-42d8-b707-0163bea7795f Методы: - type - getFluid - slot - getBlanketDamage - address - getEnergyInfo - getMaxTemp - isActive - setActive - getPlasmaTemp Термоядерный реактор Тип компонента: dfc_injector, Адрес: a56cb751-5d0a-44ab-9dca-a3e625088d1e Методы: - address - type - getFuel - getInfo - slot - getTypes Инжектор РТС Тип компонента: ntm_combustion_engine, Адрес: 743f434d-31be-4cde-b346-88954268ad3e Методы: - getType - getThrottle - type - setThrottle - slot - stop - address - getFluid - getEfficiency - getState - getInfo - start - getPower Промышленный двигатель внутреннего сгорания Тип компонента: rbmk_control_rod, Адрес: 46579472-3fac-4106-949d-9316b0bf0845 Методы: - getLevel - type - getTargetLevel - slot - address - setColor - getInfo - getHeat - setLevel - getColor - getCoordinates Контролирующие стержни не отличает автоматические Тип компонента: ntm_power_gauge, Адрес: 4c766d98-2f92-4ac9-ba08-ecbc6441dda5 Методы: - address - type - getInfo - slot - getTransfer Датчик Мощности Тип компонента: dfc_emitter, Адрес: 5761d2d1-e720-43c0-b3dd-a1da1873a95b Методы: - setInput - type - setActive - slot - address - getInfo - getCryogel - isActive - getInput - getEnergyInfo Компонент РТС Тип компонента: rbmk_crane, Адрес: 3e4a748d-b557-4cfc-8a68-f0dd8c103d91 Методы: - type - slot - load - getXenonPoison - getDepletion - address - move - getCranePos Кран РБМК Тип компонента: ntm_energy_storage, Адрес: 82aae91a-63c5-4c9a-80ee-59a582fe54aa Методы: - address - type - getInfo - slot - getEnergyInfo Любое энерго хранилище Тип компонента: ntm_fluid_gauge, Адрес: 25d74115-4433-493a-8813-864134577f13 Методы: - address - type - getInfo - getFluid - slot - getTransfer Датчик Жидкости Тип компонента: ntm_geiger, Адрес: 9247cb6f-7fae-40d9-b061-e873a2dfa533 Методы: - address - type - getRads - slot Счетчик Гейгера Тип компонента: rbmk_cooler, Адрес: 86195305-110e-4683-935c-0812f0bf4b9a Методы: - getHeat - type - slot - address - getCryoMax - getInfo - getCryo - getCoordinates Охладитель рбмк Тип компонента: rbmk_outgasser, Адрес: c8569961-a7a5-4189-a4fa-e1ea566dded2 Методы: - getGasMax - type - slot - address - getInfo - getProgress - getGas - getGasType - getCoordinates Стержень облучения Тип компонента: rbmk_console, Адрес: 35a7aec9-99b5-41dd-9416-785825aa00f4 Методы: - setColumnLevel - pressAZ5 - slot - getRBMKPos - address - getColumnData - setColorLevel - setLevel - setColor - type Консоль рбмк Тип компонента: breeding_reactor, Адрес: 66d78cf9-be40-46dd-b480-893264a6194f Методы: - address - type - getProgress - getInfo - slot - getFlux Реактор Размножитель Тип компонента: ntm_pwr_control, Адрес: 2213412c-5edd-4ccc-98ce-527685a75510 Методы: - getLevel - getCoolantInfo - slot - getFlux - address - getInfo - getFuelInfo - setLevel - getHeat - type ВВЭР Тип компонента: ntm_icf_reactor, Адрес: 77069b71-c492-4aa4-9431-7d9bdb23f26f Методы: - getHeat - type - getFluid - slot - getPelletStats - getMaxHeat - getPower - address - getHeatingRate ИТС реактор Тип компонента: research_reactor, Адрес: 7db4d45d-1295-4752-bb10-f70c50e7437d Методы: - getLevel - type - getTargetLevel - slot - getFlux - address - getInfo - setLevel - getTemp Иследовательский реактор Тип компонента: dfc_stabilizer, Адрес: 3e492bc1-bd2c-4b7d-b9fd-3dbda323f752 Методы: - setInput - type - getInput - slot - getDurability - address - getInfo - getEnergyInfo Стабилизатор РТС Тип компонента: ntm_gas_turbine, Адрес: 891dbcef-5b2f-4410-9106-720dcead6e63 Методы: - getType - getThrottle - getAuto - stop - setThrottle - slot - getFluid - address - start - getInfo - getState - getPower - setAuto - type Газовая турбина Тип компонента: rbmk_boiler, Адрес: e1a12722-8750-4d91-a818-b68c5208c4f0 Методы: - getHeat - type - getSteam - getWaterMax - slot - address - getCoordinates - getInfo - setSteamType - getSteamMax - getWater - getSteamType Паровой канал Тип компонента: zirnox_reactor, Адрес: 470a4fe2-c2e8-4f74-b0b6-06b813cbd55a Методы: - type - getSteam - setActive - getTemp - getWater - getCarbonDioxide - getPressure - getInfo - ventCarbonDioxide - isActive - address - slot Цирнокс
  15. На вики сильно устаревшая информация поэтому решил написать код который выводит все компоненты и аккуратно оформляет их методы local component = require("component") local file = io.open("components_info.txt", "w") if not file then print("Не удалось открыть файл для записи.") return end local encounteredTypes = {} for address, componentType in component.list() do if not encounteredTypes[componentType] then encounteredTypes[componentType] = true file:write("Тип компонента: " .. componentType .. ", Адрес: " .. address .. "\n") local componentProxy = component.proxy(address) local methods = {} for methodName in pairs(componentProxy) do table.insert(methods, methodName) end file:write("Методы:\n") for _, method in ipairs(methods) do file:write(" - " .. method .. "\n") end file:write("\n") end end file:close() print("Информация о компонентах записана в components_info.txt.")
  16. Можешь посмотреть канал Ocelot на ютубе он очень хорошо рассказывает
  17. Фокус в том что его нет или он относится к другому реактору есть только rbmk_console, но он без методов Upd в вики полностью наврали, инфа устарела, а я в первый раз с прокси накосячил local component = require("component") local file = io.open("components_info.txt", "w") if not file then print("Не удалось открыть файл для записи.") return end local encounteredTypes = {} for address, componentType in component.list() do if not encounteredTypes[componentType] then encounteredTypes[componentType] = true file:write("Тип компонента: " .. componentType .. ", Адрес: " .. address .. "\n") local componentProxy = component.proxy(address) local methods = {} for methodName in pairs(componentProxy) do table.insert(methods, methodName) end file:write("Методы:\n") for _, method in ipairs(methods) do file:write(" - " .. method .. "\n") end file:write("\n") end end file:close() print("Информация о компонентах записана в components_info.txt.") Код ниже методы Тип компонента: rbmk_console, Адрес: 7136f1b3-5e86-4e8e-bcbd-f10bb528f7cb Методы: - setColorLevel - setLevel - address - setColor - getRBMKPos - getColumnData - type - slot - setColumnLevel - pressAZ5 Тип компонента: rbmk_control_rod, Адрес: ac95789c-0726-40bd-acdb-862bc9641d57 Методы: - getHeat - getInfo - setColor - getTargetLevel - slot - getColor - getCoordinates - setLevel - getLevel - address - type Тип компонента: rbmk_outgasser, Адрес: 426395ec-fe8b-46fb-b003-e14fa5329ea3 Методы: - getInfo - getGasType - slot - getProgress - getGas - getCoordinates - getGasMax - address - type Тип компонента: rbmk_cooler, Адрес: f01807ad-f2fe-4dc9-9afa-0fa2bf260d94 Методы: - getHeat - getInfo - getCryo - slot - getCoordinates - getCryoMax - address - type Тип компонента: rbmk_fuel_rod, Адрес: 9c5ac831-1f59-46db-806c-8be97db6bfa5 Методы: - getHeat - getSkinHeat - getFluxRatio - getDepletion - getInfo - getXenonPoison - slot - getModerated - getType - type - getCoordinates - getCoreHeat - getFluxQuantity - address Тип компонента: rbmk_boiler, Адрес: 54eb8e49-9d97-4549-b393-4696f770c864 Методы: - getHeat - getInfo - setSteamType - getWaterMax - slot - getSteamMax - address - type - getWater - getSteam - getCoordinates - getSteamType Нормально он координаты получает судя по всему а вики этого нет Я на это полчаса угробил но все получилось Вики если кто то захочет исправить https://ntm.fandom.com/ru/wiki/Интеграция_OpenComputers
  18. Никакой дискриминации нет. Поэтому все желающие обычно используют ссылки, размещая изображения на внешних ресурсах. Например imgur.
  19. Возможно поможет serialization.serialize таблицы значений состояний элементов реактора и дальнейшее её сохранение в файл. С последующим serialization.unserialize при чтении из файла. Либо можно использовать свой формат хранения данных в строго фиксированном порядке, дабы сократить объем вычислений Кстати говоря дня 3 назад нашел канал по HBM NTM в telegram, но пока сам не исследовал.
  20. reactor_control.getReactor - возвращает массив значений реактора (уровень стержня, поток, тепло. Применимо ли для получения той информации которую получает код выше? P.S: Насколько понимаю, для использование этой команды необходимо подключить элемент управления.
  21. Сейчас программа считает что стержни изначально загружены, хранилище свежих полностью заполнено, хранилище пустых полностью свободно, и при при перезапуске всё возвращается к исходному, а получать данные из реактора пока адекватно не получается, данные хранятся в 4 массивах(положение компонентов, наличие стержня, заполнение 2-х типов хранилищ), можно сохранять в txt, но интересно есть ли другой способ дабы не забивать код лишними функциями. Да Было бы удивительно, если бы с РБМК не было проблем
  22. Что ты имеешь в виду под состоянием? Что именно требуется хранить? Быстро вряд ли получится. Если компоненты устанавливаются автоматически, то их координаты можно узнать в момент установки. Робот знает, что он устанавливает, по каким координатам, и в какой момент времени. А управляющий компьютер знает, в какой момент новые компоненты появляются в сети. Сопоставив моменты времени, можно получить соответствие адресов компонентов их коородинатам. А что за загрузка файлов? Прикреплённые к сообщению картинки? Попробую позвать @cyber01, он должен знать.
  23. Новички приходят, но и они тоже быстро вырастают из Майнкрафта. Справедливости ради надо сказать, что жизнь на серверах не особо кипела ещё до ухода админа. На EvilWorld перед его закрытием играли 1-2 человека, а более-менее регулярно играл вообще один. А причина всё та же: старожилы ушли в более взрослые проекты, а поток новичков был мизерным.
  24. Старые игроки выросли из майнкрафта, а свежее мяско не прибывает. Активность на форуме была в основном за счет игровых серверов, админу надоело возиться, форум следом стух. К тому же мод не очень популярный и не развивается.
  25. Базовый контроль крана Красный - точка начала работы крана координата 1 - 1 Зеленый соответствующая сторона реактора в мире и на панели управления Карта стержней уже повернута на нужный угол Кран и консоль повернуты спиной к востоку Стержни пока не используются Записываем компоненты реактора с левого верхнего угла(Если кран стоит спиной к рбмк) Обозначения 1 - стержень 2 - стержень остывания 3 - хранилище отработки 4 - облучатель 5 - хранилище Проблемы Не понятно как связать проверку стержней и их извлечение(если просто перебирать стержни краном рванет или остановится да и долго это) Авто проверки истощения нет(как бы есть но на отдельном компе(а координаты получить не могу поэтому не знаю как передать крану что ему нужно достать и куда поместить)) Нет авто сканера(выше проверяет только стержни и работает 30 минут) Функция для манипулирования 1 стержнем нет UPD Вынесено все в функции, Теперь умеет автоматически загружать разгружать все стержни Пока не отслеживает перемещение из/в хранилищ другими методами И напоследок пару вопросов Как красиво сохранять состояния? Можно ли быстро узнать координату и адрес компонента если метода не предусмотрено? Ограничение на загрузку файлов позже снимется или возрастет? Сейчас не сезон, тут всегда так тихо или все что можно уже написали?
  26. Сканер стержней рбмк https://ntm.fandom.com/ru/wiki/РБМК вики ибо много текста Суть проста проверил область 15 на 15 занес в массив(в колоннах должны быть стержни для проверки). сканирует достаточно долго из за особенностей проверки. Кабель подключается снизу Как оказалось достаточно бесполезно из-за Времени Если кто сможет оптимизировать код буду только рад
  1. Загрузить больше активности
×
×
  • Создать...