BlackBurn
Игрок
Достаточно много игроков играет на сервере с модом Open Computers, но не каждый может\хочет или умеет программировать на языке Lua.
Здесь я хочу разместить, как пример парочку своих программ, которые написал сам. Так же, буду очень рад, если кто-то так же сможет дополнить мою статью.
П.С. У кого есть интересные 3д модели для OC пишите)
Для создания программы необходимо ввести в консоли
Для вставки кода в программу необходимо воспользоваться не стандартным Ctrl+V, а клавишей Insert.
Итак, первая программа.
Программа довольно таки простая, предназначена для контроля реактора.
Для работы этой программы нужен адаптер, поставленный впритык к любой из ядерных камер.
В коде программы вам нужно будет в определенных местах прописать разрешение вашего экрана и адрес вашего реактора(первые 3 символа). Что бы получить адрес реактора необходимо с анализатором в руках кликнуть Shift+ПКМ по адаптеру.
Следующая программа создана для просмотра количества энергии на энергохранителях(МФЭ,МФСУ).
Подключение к определенному устройству производится с помощью того же адреса.
Еще одна интересная и полезная программа. На данный момент автокрафт из мода ProjectRed невозможен в связи с запретом использования Project Bench.Что же тогда делать? Не пользоваться автокрафтом вообще или использовать медленные верстаки из BuildCraft? А вот и нет. Ведь собрав своего робота из OC мы можем настроить его на автокрафт.
И так, что нам понадобится для этого:
В самом низу - зарядное устройство. Красный факел служит для его включения. Вы можете делать это по другому.
Потом создаем новую программу:
Когда программа создана и уже записана в памяти робота, то пора записать рецепт вещи, которую он будет крафтить. Для этого ингредиенты крафта следует разместить следующим образом:
Когда мы все разместили, то запустим нашу программу еще раз. Нам напишет, что рецепт записан. Убираем мотыгу и запускаем её снова. И робот начнет крафтить вещи и складывать их в тот же сундук.
Последняя программа написана не мною. Она является очень удобным файловым менеджером. Который позволит вам даже без MineOS в графическом интерфейсе перемещать\копировать файлы и папки.
Статья будет дополнятся
Так же могу выместить некоторые свои 3д модели, если это будет нужно.(Пишите ниже, нужно или нет)
Надеюсь эта короткая статья поможет кому-то из новичков в OpenComputers
Здесь я хочу разместить, как пример парочку своих программ, которые написал сам. Так же, буду очень рад, если кто-то так же сможет дополнить мою статью.
П.С. У кого есть интересные 3д модели для OC пишите)
Для создания программы необходимо ввести в консоли
Код:
edit название программы без пробелов
Итак, первая программа.
Программа довольно таки простая, предназначена для контроля реактора.
Для работы этой программы нужен адаптер, поставленный впритык к любой из ядерных камер.
В коде программы вам нужно будет в определенных местах прописать разрешение вашего экрана и адрес вашего реактора(первые 3 символа). Что бы получить адрес реактора необходимо с анализатором в руках кликнуть Shift+ПКМ по адаптеру.
Код:
local com=require("component")
com.gpu.setResolution(РАЗРЕШЕНИЕ,РАЗРЕШЕНИЕ);
com.gpu.fill(1,1,РАЗРЕШЕНИЕ,РАЗРЕШЕНИЕ," ");
while true do
proxReactor=com.proxy(com.get("Адрес реактора"));
local p=proxReactor.producesEnergy();
local eu=proxReactor.getReactorEUOutput()
if eu > 0 then
com.gpu.set(1,1,"Выход EU:");
com.gpu.set(11,1,eu.." ");
end;
if p==true then
com.gpu.set(1,2,"Включен");
else
com.gpu.set(1,2,"Выключен");
end;
os.sleep(0,1)
end;
Следующая программа создана для просмотра количества энергии на энергохранителях(МФЭ,МФСУ).
Подключение к определенному устройству производится с помощью того же адреса.
Код:
local com = require("component")
com.gpu.setResolution(80,25);
com.gpu.fill(1,1,80,2," ");
while true do
--В случае подключения большего количества строк нужно скопировать все следующие строки
--с изменением координат до os.sleep
proxmfsu1=com.proxy(com.get("АДРЕС МФСУ"));
local eu1=proxmfsu1.getStored();
com.gpu.fill(1,3,80,25," ");
com.gpu.setForeground(0x66FF33);
com.gpu.set(1,3,"МФСУ 1");
com.gpu.set(1,4,eu1.." EU");
os.sleep(0.001);
end;
com.gpu.setBackground(0);
Еще одна интересная и полезная программа. На данный момент автокрафт из мода ProjectRed невозможен в связи с запретом использования Project Bench.Что же тогда делать? Не пользоваться автокрафтом вообще или использовать медленные верстаки из BuildCraft? А вот и нет. Ведь собрав своего робота из OC мы можем настроить его на автокрафт.
И так, что нам понадобится для этого:
- Робот: (можно дополнить его своими компонентами по желанию)
- Зарядное устройство
- Дискета с OpenOS
- Сундук
- Алмазная мотыга(да, именно она)
В самом низу - зарядное устройство. Красный факел служит для его включения. Вы можете делать это по другому.
Потом создаем новую программу:
Код:
local component = require("component")
local c = component.crafting
local ic = component.inventory_controller
local r = require("robot")
numslot = ic.getInventorySize(1)
hotslotchest = 0
if numslot == nil then
print("Сундук над роботом не найден!")
else
print("Всего слотов в сундуке:"..numslot)
end
if(ic.getStackInSlot(1,1) ~= nil) then
if(ic.getStackInSlot(1,1)["label"] == "Diamond Hoe") then
file = io.open(os.getenv("PWD") .."curentcraft.txt","w")
for j = 2, 10 do
if ic.getStackInSlot(1,j) == nil then
item = "<empty>"
else
item = ic.getStackInSlot(1,j)["label"]
end
file:write(item.."\n")
end
file:close()
print("Крафт успешно записан!")
os.exit()
end
end
file = io.open(os.getenv("PWD") .."curentcraft.txt","r")
if file == nil then
print("Файл крафта не найден!")
os.exit()
end
local arr = {}
for line in file:lines() do
table.insert (arr, line);
end
file:close()
setkacrafta = {1,2,3,5,6,7,9,10,11}
itemforcraft = {arr[1], arr[2], arr[3],arr[4],arr[5],arr[6],arr[7],arr[8],arr[9]}
r.select(4)
function craftthis(counts)
i = 0
while i < counts do
c.craft(64)
r.dropUp(64)
i = i + 1
end
end
function loadItem(robotslot, chestslot)
if chestslot == 0 then
print("В сундуке не найден нужный предмет!")
unloadallitem()
else
ic.suckFromSlot(1,chestslot,64)
r.transferTo(robotslot,64)
end
end
function unloadallitem()
for j = 1, 16 do
r.select(j)
r.dropUp(64)
end
r.select(4)
end
function finditem(nameitem)
onlyfirst = 0
Cnumslot = numslot
i = hotslotchest
::startfind::
while i < Cnumslot do
i = i + 1
ItemStack = ic.getStackInSlot(1,i)
if ItemStack ~= nil then
if ic.getStackInSlot(1,i)["label"] == nameitem then
hotslotchest = i
return i
end
end
end
i = 0
Cnumslot = hotslotchest
onlyfirst = onlyfirst + 1
if onlyfirst == 1 then goto startfind end
return 0
end
doWork = true
while doWork do
craftthis(1)
for j = 1, 9 do
if itemforcraft[j] ~= "<empty>" then
if r.count(setkacrafta[j]) < 1 then
print("Кончилось "..itemforcraft[j].." в слоте "..setkacrafta[j].."...")
loadItem(setkacrafta[j],finditem(itemforcraft[j]))
if r.count(setkacrafta[j]) < 1 then
doWork = false
break
end
end
end
end
end
Когда мы все разместили, то запустим нашу программу еще раз. Нам напишет, что рецепт записан. Убираем мотыгу и запускаем её снова. И робот начнет крафтить вещи и складывать их в тот же сундук.
Последняя программа написана не мною. Она является очень удобным файловым менеджером. Который позволит вам даже без MineOS в графическом интерфейсе перемещать\копировать файлы и папки.
pastebin run 0eYcbQF4
Статья будет дополнятся
Так же могу выместить некоторые свои 3д модели, если это будет нужно.(Пишите ниже, нужно или нет)
Надеюсь эта короткая статья поможет кому-то из новичков в OpenComputers
Последнее редактирование: