Jump to content
Sign in to follow this  
SanyaRamzik

Справочник по работе с OpenComputers : scripts

Recommended Posts

[Направлено для людей, ознакомленных с Lua и общей алгоритмизацией + знание английского]

Не рекомендуется в компьютер инсталлировать MineOS, если вы намерены заниматься созданием своих программ, т.к. там неудобное пространство для разработчиков.

Если она имеется, меняем жесткий диск и EEPROM на новые

На будущее, в случае если вы делаете приложения под MineOS - сначала создается программа на стоковом OpenOs, заливается в сеть, а потом уже инсталлится из MineOS

Подготовим компьютер

Ставим нашу печку и инсталлим оську.

Прилагается гайд для незнающих: *тык*.

Сразу фиксанём недоделки: в домашней директории вводим следующее

wget -f https://pastebin.com/geVGbmik update
update

Также нам понадобится вот этот прибор, анализатор

image.png.6258bb548015ff9393c902496d7e103a.png

Данная команда обновит программу для печати 3d моделей и добавит команду paste, альтернатива сломанной команде pastebin

image.png.0e6e6d392f163f5c9fe9a50793594675.png

Перейдём непосредственно к теме, как же пользоваться инструментарием opencomputers ( не путать со скриптингом самого языка Lua)

Узнаем список  доступного вооружения нашей печки:

image.png.aeba828a36ee8a07ff92dd09f6e75b84.png

Каждый компонент имеет свой link код, он нужен чтобы пользоваться конкретным компонентом, если имеется более одного одинаковых типов. Более детально поймёте далее.

Для создания скриптов зачастую создают целый файл для создания алгоритма, но для примера мы просто перейдем в рабочую среду самого Lua: вводим в консоль команду lua

image.png.488177378e851e51d39b1e139a68e002.png

Теперь объясню зачем нужны адреса

Например у нас есть 2 прибора, в системе они названы одинаково, но имеют собственные ключи. Воспользуемся конкретным:

Жмякаем анализатором shift+ПКМ по нужному прибору, в чате высвечивает информацию о приборе, нам нужно скопировать link код.

image.png

К примеру давайте получим список доступных функций прибора. Для этого в нашей среде вводим следующее

К каждой функции также имеется информация об эксплуатации. Пробуем, Тестируем...

Цитата

(Скопированный текст вставляется нажатием клавиши Insert)

=component.proxy('6b2bbdc5-fe1d-4720-a8b9-9a29028a2035')

Выделив 3d-Принтер, мы получили вот такой вот список

image.thumb.png.9f47d7ba50fbb39fdf004251abcda1fc.png

Если конкретный блок выделять нет нужды, то просто вводим 
  (Для удобства пользуйтесь кнопкой TAB)

  КОМАНДА=component.[component]   
  ПРИМЕР:  =component.printer3d

image.thumb.png.cecb2c599c87068afd1bfaafb7cdc2af.png

Цитата

В моде имеется такой замечательный блок как адаптер. Это компонент предназначен для управления блоками из другого мода

К примеру можем взаимодействовать с интерфейсом из мода AE2. Ставим к нему адаптер и получаем вот такой функционал

image.png.f772eb6e019aa70f6a0b102ddacfd2ec.pngimage.thumb.png.3737675a12a4e2f7ccfadb8d3c3e2ccd.png

 

Перейдём к созданию программ

* Для наглядности мы будем орудовать интерфейсом, который мы подсоединили к адаптеру

Создаём файл:   edit test     ( edit [filename] ) 

Привязываем нашу библиотеку с подключенными компонентами: local component = require('component') 

  image.png.e4fd6fc3500771b9351e641b3e3740f4.png

выделяем для работы необходимый путём создания объекта: local me=component.me_interface

Мы будем использовать функцию, которая выводит список предметов из МЭ

image.thumb.png.d5cfbc0f5a7ca5389040d7d06efb7f2f.png

image.png.9ade4e463070f54d203e9bcde1948df4.png

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

 image.png.4ae15ca1b8cae437a1c43f66466fcf84.png

Например интерфейс может экспортировать в механизм что-то из МЭ: 

me.exportItem({id="minecraft:iron_block"},"EAST",1)

Для более точного указания предмета добавляем остальные его параметры: damage, qwe, и т.д.
у солнечных панелей одинаковый id, поэтому для указания определенного указываем damage, у каждой солярки он свой:

 me.exportItem({id="CompactSolars:CompactSolarBlock", damage=2 },"EAST",1)
Цитата
edit test

image.png.44729a6e009b0889f2350619dc8e116e.png

ctrl+S , ctrl+W, запускаем

image.png.347a3f2837161fe09013686be1f3ebae.png

Вот таким макаром мы сделали программу, которая выводит список id всех имеющихся предметов в МЭ системе

Немного работы с GUI, интерфейсом программ

Графика:

Рисуются они с помощью такого компонента как gui    -- local gui=require("component").gui 

image.png.3dc2905914de3b6a6a2c2f24daf6bd7f.png

Инициализация обьектов делается с помощью ивентов

local event=require("event")

local gpu=require("component").gpu

local pull_e=event.pull

image.png.4ddcf39ecba9934d81d7b8e7308575c9.png

 

Полезные ссылки:   (внимание, понадобится знание английского)

Документалка по моду OpenComputers ( ТЫК )

Функционал по каждому блоки из доступных модов ( ТЫК )

Раздел наработок рус.форума по OpenСomputers (ТЫК )

Репозиторий моих наработок ( ТЫК )

 

Edited by SanyaRamzik
upd
  • good 2
  • Like 1
  • 10/10 1
  • Тебе 1

Share this post


Link to post
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...