Difference between revisions of "In-game coding/ru"

From Space Engineers Wiki
Jump to: navigation, search
m
m (Исправление грамматических и пунктуационных ошибок.)
 
(28 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:Программируемые блоки}}
+
{{DISPLAYTITLE:Программируемый блок}}
 
{{stub}}
 
{{stub}}
 
<!-- Если кто начнет редактирование - выставьте пометку (The_Netos) -->
 
<!-- Если кто начнет редактирование - выставьте пометку (The_Netos) -->
<!-- Небольшое описание, чтобы страница не пустовала. По сути плейсхолдер (GamingHater)-->
+
Программируемый блок - блок, добавленный в обновлении 1.063. Позволяет контролировать системы кораблей с помощью скриптов на языке С#. На данный момент способен управлять всем стандартным функционалом терминала.
Программируемый блок - блок, добавленный в обновлении 1.063. Позволяет контролировать системы кораблей с помощью скриптов на языке С#. На данный момент способен управлять всем стандартным функционалом терминала, в том числе менять цвет ламп и имена маяков в реальном времени.
 
 
<!-- Требуется форматирование параграфов и, возможно, чистовая правка текста (Денис Пушкарёв aka Volhx) -->
 
<!-- Требуется форматирование параграфов и, возможно, чистовая правка текста (Денис Пушкарёв aka Volhx) -->
 +
<!-- 01.02.2015 Добавил параметр "Свойства терминала" в описание и к блокам. Добавил несколько введенных блоков (Who You) -->
  
Ограничения:
+
==Ограничения==
  
 
Ниже вы найдете список известных ограничений о которых мы знаем, а так же возможные их решения.
 
Ниже вы найдете список известных ограничений о которых мы знаем, а так же возможные их решения.
  
Оператор "foreach" не работает на 64-битной системе.
 
Проблема:
 
На данный момент использование оператора "foreach" внутри скрипта приведет к "bad program expection" и остановит запуск скрипта. Мы работаем над устранением этой проблемы.
 
Решение:
 
Все наши внутри-игровые интерфейсы работают со списками (list) как с коллекциями. Пожалуйста, используйте итерационный цикл "for" для работы с ними.
 
  
Функция лямбды не работает.
+
;Оператор "foreach" не работает на 64-битной системе.
Проблема:
+
*Проблема:
На данный момент функция лямбды не поддерживается, если вы используете ее в скрипте, скрипт не запустится.  
+
:На данный момент использование оператора "foreach" внутри скрипта приведет к "bad program expection" и остановит запуск скрипта. Мы работаем над устранением этой проблемы.
Решение:
+
*Решение:
Пожалуйста используйте метод вместо функции лямбды, если это возможно.  
+
:Все наши внутри-игровые интерфейсы работают со списками "list" как с коллекциями. Пожалуйста, используйте итерационный цикл "for" для работы с ними.
  
Пользовательские константы и статичные методы не работают.
 
Проблема:
 
На данный момент использование констант или статичных методов приводит к неработоспособности скрипта.
 
Решение:
 
Пожалуйста, не испольуйте в скрипте константы или статичные пользовательские методы.
 
  
Переменные, устанавливаемые пользователем - не сохраняются.
+
;Лямбда-выражения не работают.
Проблема:  
+
*Проблема:
Пользовательские переменные используемые в скрипте не сохраняются и после загрузки возвращаются к своим значениям по умолчанию.
+
:На данный момент лямбда-выражения не поддерживаются. Если вы воспользуетесь ими в скрипте, то это вызовет исключение и скрипт не запустится.
Решение:
+
*Решение:
Отсутствует.
+
:Пожалуйста, используйте методы вместо лямбда-выражений.
  
Обзор интерфейса:
 
  
Программируемый блок.
+
;Переменные, устанавливаемые пользователем - не сохраняются.
 +
*Проблема:
 +
:Пользовательские переменные используемые в скрипте не сохраняются и после загрузки возвращаются к своим значениям по умолчанию.
 +
*Решение:
 +
:Отсутствует.
 +
 
 +
==Обзор интерфейса==
 +
<br>
 +
===Программируемый блок===
 +
[[File:Steamworkshop webupload previewfile 360966557 preview.jpg|500px]]
  
 
Панель программируемого блока на данный момент содержит следующие кнопки:
 
Панель программируемого блока на данный момент содержит следующие кнопки:
  
Edit – открыть редактор для редактирования скриптов и возможности сохранения/загрузки их на диск.
+
'''Edit''' – открыть редактор для редактирования скриптов и возможности сохранения/загрузки их на диск.  
Также вы можете загрузить свои скрипты в "workshop" или загрузить себе скрипты, на которые вы подписаны.
 
Run – запустить скрипт сохраненный в редакторе. Скрипт будет запущен один раз. Однако эта кнопка является действием в терминале и вы можете соединить ее с сенсором, таймером или добавить на панель быстрого доступа.  
 
  
Редактор.
+
Также вы можете загрузить свои скрипты в "workshop" или загрузить себе скрипты, на которые вы подписаны.
 +
 +
'''Run''' – запустить скрипт сохраненный в редакторе. Скрипт будет запущен один раз. Однако эта кнопка является действием в терминале и вы можете соединить ее с сенсором, таймером или добавить на панель быстрого доступа.
  
Редактор кода содержит следующие кнопки:
+
===Редактор===
Help – открыть мануал по программированию в игре.
+
[[File:Steamworkshop webupload previewfile 360966557 preview (1).jpg|500px]]
Check code – проверить код на наличие ошибок, а так же возможность использовать данный код.  
+
<br>Редактор кода содержит следующие кнопки:
Remember & Exit – сохранить ваш код, закрывает экран редактора и переведет к панели терминала.
+
<br>'''Help''' – открыть мануал по программированию в игре.
Remember code – сохранить ваш код и оставит экран редактора открытым.
+
<br>'''Check code''' – проверить код на наличие ошибок, а так же возможность использовать данный код.  
Browse Workshop – открыть окно для управления скриптами, вы можете сохранить/загрузить скрипты на диск, загрузить свои скрипты в "workshop" или загрузить себе скрипты, на которые вы подписаны.  
+
<br>'''Remember & Exit''' – сохранить ваш код, закрывает экран редактора и переведет к панели терминала.
Line counter – отобразить текущую строку кода и общее количество строк в коде.
+
<br>'''Remember code''' – сохранить ваш код и оставит экран редактора открытым.
 +
<br>'''Browse Workshop''' – открыть окно для управления скриптами, вы можете сохранить/загрузить скрипты на диск, загрузить свои скрипты в "workshop" или загрузить себе скрипты, на которые вы подписаны.  
 +
<br>'''Line counter''' – отобразить текущую строку кода и общее количество строк в коде.
  
Экран "Workshop".
 
  
Этот экран аналогичный экрану с чертежами и содержит следующие кнопки:
+
===Экран "Workshop"===
Ok – загрузить выбранный скрипт в редактор и закроет экран.
+
[[File:Browse workshop.jpg|200px]]
Cancel – закрыть экран (изменения не будут внесены в редактор)
+
<br>Этот экран аналогичный экрану с чертежами и содержит следующие кнопки:
Details – открыть экран "детали", где вы можете увидеть описание скрипта.
+
<br>'''Ok''' – загрузить выбранный скрипт в редактор и закроет экран.
Rename (только для локальных скриптов) – переименовать выбранный скрипт, если вы попытаетесь переименовать существующий скрипт, игра попросит подтверждение.  
+
<br>'''Cancel''' – закрыть экран (изменения не будут внесены в редактор)
Delete (только для локальных скриптов) – удалить выбранный скрипт, после подтверждения.  
+
<br>'''Details''' – открыть экран "детали", где вы можете увидеть описание скрипта.
Create from editor – создать новый скрипт с именем по умолчанию Script_XX, которое начинается с 0, и если скрипт с уже выбранным именем существует, то числовое значение в названии будет повышено. Для примера, первым будет Script_0, далее Script_1 и т.д...
+
<br>'''Rename''' (только для локальных скриптов) – переименовать выбранный скрипт, если вы попытаетесь переименовать существующий скрипт, игра попросит подтверждение.  
Replace from editor (только для локальных скриптов) – заменить (после подтверждения пользователя) выбранный скрипт на скрипт из редактора.
+
<br>'''Delete''' (только для локальных скриптов) – удалить выбранный скрипт, после подтверждения.  
Refresh Scripts – обновить локальные скрипты и скрипты на которые вы подписаны.
+
<br>'''Create from editor''' – создать новый скрипт с именем по умолчанию Script_XX, которое начинается с 0, и если скрипт с уже выбранным именем существует, то числовое значение в названии будет повышено. Для примера, первым будет Script_0, далее Script_1 и т.д...
 +
<br>'''Replace from editor''' (только для локальных скриптов) – заменить (после подтверждения пользователя) выбранный скрипт на скрипт из редактора.
 +
<br>'''Refresh Scripts''' – обновить локальные скрипты и скрипты на которые вы подписаны.
  
Детали (локальный скрипт).
 
  
Этот экран показывает детали для локальных скриптов и содержит следующие кнопки:
+
===Детали (локальный скрипт)===
Rename – переименовать выбранный скрипт, если вы попытаетесь переименовать существующий скрипт, игра попросит подтверждение.  
+
[[File:Details (local script).jpg|500px]]
Delete – удалить выбранный скрипт, после подтверждения.  
+
<br>Этот экран показывает детали для локальных скриптов и содержит следующие кнопки:
Publish – опубликовать выбранный скрипт в "workshop" и показать странницу с опубликованным скриптом.
+
<br>'''Rename''' – переименовать выбранный скрипт, если вы попытаетесь переименовать существующий скрипт, игра попросит подтверждение.  
Browse Workshop – открыть экран "workshop" для просмотра, а также подписаться на скрипты.
+
<br>'''Delete''' – удалить выбранный скрипт, после подтверждения.  
Close – закрыть экран.
+
<br>'''Publish''' – опубликовать выбранный скрипт в "workshop" и показать странницу с опубликованным скриптом.
 +
<br>'''Browse Workshop''' – открыть экран "workshop" для просмотра, а также подписаться на скрипты.
 +
<br>'''Close''' – закрыть экран.
  
Детали ("workshop" скрипт).
 
  
Этот экран показывает детали для скриптов из "workshop" и содержит следующие кнопки:
+
===Детали ("workshop" скрипт)===
Open in Workshop – открыть "workshop" страницу скрипта.
+
[[File:Details (workshop script).jpg|500px]]
Close – закрыть экран.
+
<br>Этот экран показывает детали для скриптов из "workshop" и содержит следующие кнопки:
 +
<br>'''Open in Workshop''' – открыть "workshop" страницу скрипта.
 +
<br>'''Close''' – закрыть экран.
  
Гайд по программированию:
 
Введение.
 
  
Доступ к редактору.
+
==Гайд по программированию==
Только один игрок может редактировать скрипт. Если кто-нибудь откроет занятый программируемый блок и попытается открыть редактор, он получит уведомление о том, что редактор уже открыт.  
+
<br>
 +
===Доступ к редактору===
 +
Только один игрок может редактировать скрипт. Если кто-нибудь откроет занятый программируемый блок и попытается открыть редактор, он получит уведомление о том, что редактор уже открыт.
  
Метод Main.
 
Метод Main - создается при первом открытии редактора, этот метод является основной точкой входа в ваш скрипт. При переименовании или удаление этого метода скрипт не запуститься и вы получите уведомление. Пользовательские методы/переменные могут быть определены и использованы но только внутри главного метода (main).
 
  
Видимость переменных.
+
===Метод Main===
 +
Метод Main - создается при первом открытии редактора, этот метод является основной точкой входа в ваш скрипт. При переименовании или удалении этого метода скрипт не запустится и вы получите уведомление.
 +
<br>Пользовательские методы/переменные могут быть определены, но использованы только внутри главного метода "main".
 +
 
 +
===Видимость переменных===
 
Есть два типа переменных для скрипта:
 
Есть два типа переменных для скрипта:
-Local (внутри методов) - эти переменные будут хранить значение только во время выполнения метода. Подробнее - локальная переменная находится в области видимости до тех пор, пока закрывающая фигурная скобка не укажет конец блока операторов или метода, в котором она объявлена.А так же, объявленная в операторах цикла "for", "while" или подобных им, видима в пределах тела цикла.
+
<br>-Local (внутри методов) - эти переменные будут хранить значение только во время выполнения метода.
-Global (за пределами методов) - эти переменные будут хранить значения при работе всего скрипта.
+
<br>Подробнее - локальная переменная находится в области видимости до тех пор, пока закрывающая фигурная скобка не укажет конец блока операторов или метода, в котором она объявлена.А так же, объявленная в операторах цикла "for", "while" или подобных им, видима в пределах тела цикла.
Подробнее - если переменная должна сохранить значение между отдельными блоками программы, она должна быть определена вне этих методов т.е. глобально.
+
<br>-Global (за пределами методов) - эти переменные будут хранить значения при работе всего скрипта.
-После нажатия "Remember & Exit" или "Remember" кнопки, предыдущий скрипт будет переписан и все глобальные переменные будут потеряны.
+
<br>Подробнее - если переменная должна сохранить значение между отдельными блоками программы, она должна быть определена вне этих методов т.е. глобально.
 +
<br>-После нажатия "Remember & Exit" или "Remember" кнопки, предыдущий скрипт будет переписан и все глобальные переменные будут потеряны.
  
Компиляция.
+
 
 +
===Компиляция===
 
Когда вы нажмете кнопку “Check code”, код будет скомпилирован, также будет показан результат компиляции.
 
Когда вы нажмете кнопку “Check code”, код будет скомпилирован, также будет показан результат компиляции.
Процесс компиляции состоит из двух этапов:
+
<br>Процесс компиляции состоит из двух этапов:
-Во первых, код внутри редактора будет проверен на синтаксические ошибки, внутри языка C#
+
<br>-Во первых, код внутри редактора будет проверен на синтаксические ошибки, внутри языка C#
Если во время компиляции возникнут какие-либо ошибки, вы получите уведомление, а компиляция будет прервана.
+
<br>Если во время компиляции возникнут какие-либо ошибки, компиляция будет прервана и вы получите уведомление:
К примеру "ааа" строка была помещена перед главным методом. Это не правильное языковое построение и компиляция будет прервана.
+
<br>[[File:Compilation failed 1.jpg|500px]]
Также в сообщении об ошибке будет показана строка, в которой допущена ошибка и описание ошибки.
+
 
-Во вторых, код будет проверен на наличие недопустимых имен или типов. Если во время компиляции возникнут какие-либо ошибки, вы получите уведомление, а компиляция будет прервана.
+
К примеру "ааа" строка была помещена перед главным методом. Это неправильное языковое построение, поэтому компиляция будет прервана.
К примеру System.IO.Directory был использован для удаления другого каталога. Это запрещено и вы получите уведомление: “Not allowed type was used in script”.
+
<br>Также в сообщении об ошибке будет показана строка, в которой допущена ошибка и описание ошибки.
-Если компиляция и проверка проходит успешно, вы получите уведомление.
+
 
Это означает, что код не содержит ошибок в языке или не разрешенных методов.  
+
<br>-Во-вторых, код будет проверен на наличие недопустимых имен или типов. Если во время компиляции возникнут какие-либо ошибки, компиляция будет прервана и вы получите уведомление:
 +
<br>[[File:Compilation failed 2.jpg|500px]]
 +
<br>К примеру System.IO.Directory был использован для удаления другого каталога. Это запрещено, и вы получите уведомление: “Not allowed type was used in script”.
 +
 
 +
<br>-Если компиляция и проверка проходит успешно, вы получите уведомление:
 +
<br>[[File:Compilation sucessfull.jpg|500px]]
 +
<br>Это означает, что код не содержит ошибок в языке или неразрешенные методы.
  
Выполнение скрипта.
+
 
 +
===Выполнение скрипта===
 
Когда вы нажимаете кнопку "Run" или добавляете действие на панель быстрого доступа, скрипт будет выполнен. На данный момент "Run" должен быть использован вручную, т.е. пользователю нужно нажать кнопку "Run" или добавить действие на панель быстрого доступа.
 
Когда вы нажимаете кнопку "Run" или добавляете действие на панель быстрого доступа, скрипт будет выполнен. На данный момент "Run" должен быть использован вручную, т.е. пользователю нужно нажать кнопку "Run" или добавить действие на панель быстрого доступа.
Скрипт будет выполнен только на сервере, даже если был запущен из клиента, все клиенты будут уведомлены, если запуск скрипта будет прерван.  
+
<br>Скрипт будет выполнен только на сервере, даже если был запущен из клиента, все клиенты будут уведомлены, если запуск скрипта будет прерван.  
В случае, если работа скрипта будет прервана, скрипт не запуститься до того момента, пока пользователь не откроет редактор и не отредактирует скрипт.
+
<br>В случае, если работа скрипта будет прервана, скрипт не запустится до того момента, пока пользователь не откроет редактор и не отредактирует скрипт.
  
Вычисление команд.
 
Каждый раз, когда скрипт будет запущен, происходит расчет каждой команда внутри скрипта. Если количество команд внутри скрипта превышает лимит, запуск будет приостановлен и пользователь будет уведомлен о том, что скрипт слишком сложный для выполнения.
 
Лимит помогает избежать "заморозки" игры при выполнении скрипта.
 
  
Доступные интерфейсы.
+
===Вычисление команд===
 +
Каждый раз, когда скрипт будет запущен, происходит расчет каждой команды внутри скрипта.
 +
<br>Если количество команд внутри скрипта превышает лимит, запуск будет приостановлен и пользователь получит уведомление о том, что скрипт слишком сложный для выполнения.
 +
<br>Лимит помогает избежать "заморозки" игры при выполнении скрипта.
  
Возможные действия.
 
На данный момент в скрипте вы можете использовать только действия доступные в панели управления. Пользователь имеет доступ только к объектам расположенным в одной сети, где находится программируемый блок.
 
  
Переменная GridTerminalSystem.
+
==Доступные интерфейсы==
В настоящее время, кроме "встроенных" переменных, пользователь может использовать переменную GridTerminalSystem. Она является точкой входа во всю сеть корабля, и имеет следующие доступные методы:
+
<br>
List<IMyTerminalBlock> Blocks {get;}
+
===Возможные действия===
List<IMyBlockGroup> BlockGroups {get;}
+
На данный момент в скрипте вы можете использовать только действия, доступные в панели управления.
void GetBlocksOfType<T>(List<IMyTerminalBlock> blocks, Func<IMyTerminalBlock, bool> collect = null);
+
<br>Пользователь имеет доступ только к объектам, расположенным в одной сети, где находится программируемый блок.
void SearchBlocksOfName(string name,List<IMyTerminalBlock> blocks, Func<IMyTerminalBlock, bool> collect = null);
 
IMyTerminalBlock GetBlockWithName(string name);
 
С помощью этих методов все "терминальные" блоки внутри сети могут быть собраны.
 
  
Blocks - данное свойство возвращает все блоки из сети терминала, данный метод внутренне выделяет новую память.
+
===Переменная GridTerminalSystem===
BlockGroups - возвращает все группы блоков из сети терминала, этот метод внутренне выделяет новую память.
+
В настоящее время, кроме "встроенных" переменных, пользователь может использовать переменную GridTerminalSystem.  
GetBlocksOfType - возвращает все блоки указанного типа.
+
<br>Она является точкой входа во всю сеть корабля, и имеет следующие доступные методы:
SearchBlocksOfName - данный метод является полнотекстовым поиском между всеми блоками и возвращает блок, который содержит искомую строку, поиск не чувствителен к регистру.
+
<br>List<IMyTerminalBlock> Blocks {get;}
GetBlockWithName - данный метод возвращает первый блок с точным названием, которое было задано, поиск чувствителен к регистру.
+
<br>List<IMyBlockGroup> BlockGroups {get;}
 +
<br>void GetBlocksOfType<T>(List<IMyTerminalBlock> blocks, Func<IMyTerminalBlock, bool> collect = null);
 +
<br>void SearchBlocksOfName(string name,List<IMyTerminalBlock> blocks, Func<IMyTerminalBlock, bool> collect = null);
 +
<br>IMyTerminalBlock GetBlockWithName(string name);
 +
<br>С помощью этих методов все "терминальные" блоки внутри сети могут быть собраны.
  
Func<IMyTerminalBlock, BOOL> собирающий метод можно использовать для определения условия поиска в категории. Например, собирающий метод "IMyRadioAntenna" может определить функцию поиска, чтобы найти только включенные антенны или антенны с определенным диапазоном действия.
+
<br>'''Blocks''' - данное свойство возвращает все блоки из сети терминала, данный метод внутренне выделяет новую память.
 +
<br>'''BlockGroups''' - возвращает все группы блоков из сети терминала, этот метод внутренне выделяет новую память.
 +
<br>'''GetBlocksOfType''' - возвращает все блоки указанного типа.
 +
<br>'''SearchBlocksOfName''' - данный метод является полнотекстовым поиском между всеми блоками и возвращает блок, который содержит искомую строку, поиск не чувствителен к регистру.
 +
<br>'''GetBlockWithName''' - данный метод возвращает первый блок с точным названием, которое было задано, поиск чувствителен к регистру.
  
IMyCubeBlock
+
<br>'''Func<IMyTerminalBlock, BOOL>''' - данный "collect" метод определяет условие поиска внутри другого метода поиска. ( для примера: метод передается как параметр в метод поиска GetBlocksOfType или SearchBlocksOfName).
 +
<br>Метод "collect" интерфейса "IMyRadioAntenna" может использоваться для поиска включенных антенн или антенн с необходимым вам радиусом вещания.
 +
 
 +
 
 +
===IMyCubeBlock===
 
IMyCubeBlock это базовый класс для каждого "терминального" блока. Он имеет следующие свойства и методы:
 
IMyCubeBlock это базовый класс для каждого "терминального" блока. Он имеет следующие свойства и методы:
BOOL IsBeingHacked {get; }
+
<br>BOOL IsBeingHacked {get; }
BOOL IsFunctional {get; }
+
<br>BOOL IsFunctional {get; }
BOOL IsWorking {get; }
+
<br>BOOL IsWorking {get; }
VRageMath.Vector3I Position {get; }
+
<br>VRageMath.Vector3I Position {get; }
  
IsFunctional - свойство сообщает, если блок достроен до уровня, когда он может работать.
+
<br>'''IsFunctional''' - свойство сообщает, если блок достроен до уровня, когда он может работать.
IsWorking - свойство сообщает, имеет ли данный блок достаточное питание для работы.
+
<br>'''IsWorking''' - свойство сообщает, имеет ли данный блок достаточное питание для работы.
  
IMyTerminalBlock
+
 
 +
===IMyTerminalBlock===
 
IMyTerminalBlock это базовый класс для каждого "терминального" блока. Он имеет следующие свойства и методы:
 
IMyTerminalBlock это базовый класс для каждого "терминального" блока. Он имеет следующие свойства и методы:
 +
<br>string CustomName
 +
<br>string CustomNameWithFaction
 +
<br>string DetailedInfo
 +
<br>bool HasLocalPlayerAccess()
 +
<br>bool HasPlayerAccess(long playerId)
 +
<br>void RequestShowOnHUD(bool enable)
 +
<br>void SetCustomName(string text)
 +
<br>void SetCustomName(StringBuilder text)
 +
<br>bool ShowOnHUD
 +
<br>void GetActions(List<Sandbox.ModAPI.Interfaces.ITerminalAction> resultList, Func<Sandbox.ModAPI.Interfaces.ITerminalAction, bool> collect = null);
 +
<br>void SearchActionsOfName(string name,List<Sandbox.ModAPI.Interfaces.ITerminalAction> resultList, Func<Sandbox.ModAPI.Interfaces.ITerminalAction, bool> collect = null);
 +
<br>Sandbox.ModAPI.Interfaces.ITerminalAction GetActionWithName(string name);
  
string CustomName
+
<br>'''GetActions''' - данный метод возвращает все доступные действия для текущего блока.
string CustomNameWithFaction
+
<br>'''SearchActionsOfName''' - данный метод является полнотекстовым поиском между всеми действиями блока и возвращает действия, название которых содержит искомую строку, например, если блок имеет действия: "OnOff, OnOff_On, OnOff_Off".
string DetailedInfo
 
bool HasLocalPlayerAccess()
 
bool HasPlayerAccess(long playerId)
 
void RequestShowOnHUD(bool enable)
 
void SetCustomName(string text)
 
void SetCustomName(StringBuilder text)
 
bool ShowOnHUD
 
void GetActions(List<Sandbox.ModAPI.Interfaces.ITerminalAction> resultList, Func<Sandbox.ModAPI.Interfaces.ITerminalAction, bool> collect = null);
 
void SearchActionsOfName(string name,List<Sandbox.ModAPI.Interfaces.ITerminalAction> resultList, Func<Sandbox.ModAPI.Interfaces.ITerminalAction, bool> collect = null);
 
Sandbox.ModAPI.Interfaces.ITerminalAction GetActionWithName(string name);
 
  
GetActions - данный метод возвращает все доступные действия для текущего блока.
+
<br>'''SearchActionsOfName с "OnOff"''' - вернет все действия
SearchActionsOfName - данный метод является полнотекстовым поиском между всеми действиями блока и возвращает действия, название которых содержит искомую строку, например, если блок имеет действия: "OnOff, OnOff_On, OnOff_Off".
+
<br>'''SearchActionsOfName с "_On"''' - вернется только "OnOff_On", поиск "On" вернет все действия. Поиск не чувствителен к регистру.
  
SearchActionsOfName с "OnOff" - вернет все действия
+
<br>'''GetActionWithName''' - данный метод вернет первое найденное действие с точно заданным названием, поиск чувствителен к регистру.
SearchActionsOfName с "_On" - вернется только "OnOff_On", поиск "On" вернет все действия. Поиск не чувствителен к регистру.
 
  
GetActionWithName - данный метод вернет первое найденное действие с точным названием, которое совпадает с заданным, поиск чувствителен к регистру.
 
  
ITerminalAction
+
===ITerminalAction===
 
ITerminalAction предоставляет определенные действия, которые могут быть выполнены.
 
ITerminalAction предоставляет определенные действия, которые могут быть выполнены.
Он имеет следующие свойства и методы:
+
<br>Он имеет следующие свойства и методы:
string Id { get; }
+
<br>string Id { get; }
StringBuilder Name { get; }
+
<br>StringBuilder Name { get; }
void Apply(Sandbox.ModAPI.Ingame.IMyCubeBlock block);
+
<br>void Apply(Sandbox.ModAPI.Ingame.IMyCubeBlock block);
  
Id - это обозначение действия, к примеру: "OnOff", "OnOff_On"
+
<br>'''Id''' - это обозначение действия, к примеру: "OnOff", "OnOff_On"
Name - это название действия, которое будет показано в интерфейсе, к примеру: "Toggle block On/Off ,Toggle block On"
+
<br>'''Name''' - это название действия, которое будет показано в интерфейсе, к примеру: "Toggle block On/Off ,Toggle block On"
Apply - применяет действие к выбранному блоку (вам нужно определить блок, из которого вы берете действие).
+
<br>'''Apply''' - применяет действие к выбранному блоку (вам нужно определить блок, из которого вы берете действие).
  
IMyFunctionalBlock
 
IMyFunctionalBlock - это базовый класс для каждого блока, который может быть включен или выключен, он наследуется от IMyTerminalBlock. Для примера, каждый блок имеющий функции, является "терминальным", но не все "терминальные" блоки могут быть включены или выключены.
 
Он имеет одно свойство:
 
bool Enabled
 
Это свойство отображает: включен или выключен данный блок пользователем.
 
  
Блоки и действия, список - 1/3
+
===IMyFunctionalBlock===
 +
IMyFunctionalBlock - это базовый класс для каждого блока, который может быть включен или выключен, он наследуется от "IMyTerminalBlock". Для примера, каждый блок имеющий функции, является "терминальным", но не все "терминальные" блоки могут быть включены или выключены.
 +
<br>Он имеет одно свойство:
 +
<br>bool Enabled
 +
<br>Это свойство отображает: включен или выключен данный блок пользователем.
  
Дисклеймер.
+
 
 +
==Блоки и действия==
 +
<br>
 +
===Дисклеймер===
 
Все "терминальные" блоки имеют следующие свойства:
 
Все "терминальные" блоки имеют следующие свойства:
Имя интерфейса: это имя определенного блока в коде, название может отличаться от названия отображаемого на экране постройки. К примеру антенна имеет имя интерфейса "IMyRadioAntenna" - вам нужно использовать этот интерфейс, если вы хотите получить все антенны.
+
<br>Имя интерфейса: это имя определенного блока в коде, название может отличаться от названия отображаемого на экране постройки. К примеру антенна имеет имя интерфейса "IMyRadioAntenna" - вам нужно использовать этот интерфейс, если вы хотите получить все антенны.
 +
 
 +
 
 +
===Родитель===
 +
Каждый блок имеет родителя (все блоки имеют "IMyTerminalBlock" как родителя), это нужно для того, чтобы получить все блоки одного типа, вместо конкретного блока.
 +
<br>К примеру, если вы хотите получить все блоки света, следует использовать "IMyLightningBlock", а если вы хотите использовать только блок ламы, вы используете "IMyInteriorLight".
 +
 
 +
 
 +
===Поля===
 +
Данное свойство блока доступно только для чтения.
 +
<br>К примеру из "IMyBeacon" вы можете получить свойство радиуса. И основываясь на этом свойстве вы можете увеличить/уменьшить радиус маяка.
 +
 
 +
 
 +
===Действия===
 +
Все действия, которые вы можете применить к блоку, доступны вам в скрипте, так что если вы хотите уменьшить радиус вещания антенны, вам нужно использовать "DecreaseRadius" действие для блока.
 +
 
 +
 
 +
===Свойства терминала===
 +
Это свойства терминала, которые вы можете получить или выставить. Эти свойства аналогичные значениям, которые находятся внутри терминала. Для установки плавающих значений, таких как радиус антенны, используйте GetValueFloat(String propertyName). Вы можете найти названия свойств для каждого блока в этом руководстве. Чтобы установить значение, используйте SetValueFloat(String propertyName,float value).
 +
<br>Пример: для антенны GetValueFloat(“Radius”) вы получите текущий радиус (аналогично использованию Радиуса в антенне) и SetValueFloat(“Radius”,10) установит значение радиуса на 10.
 +
 
 +
Вы также можете использовать void GetProperties(List<ITerminalProperty> resultList, Func<ITerminalProperty, bool> collect = null) чтобы получить все свойства этого блока.
 +
 
 +
 
 +
===Субтип===
 +
Одинаковые блоки, которые имеют тех же родителей (к примеру <TypeId> в файле "cubeblocks.sbc") и различаются только по субтипу (к примеру<SubtypeId>). <br>Это значит, что различия между этими блоками в коде нет.
 +
<br>Примером таких блоков являются грузовые контейнеры: в игре есть три типа грузовых контейнеров: малый, средний и большой. Они различаются только по субтипу, но имеют общий тип.
 +
<br>К примеру "Id" большого контейнера:
 +
<br><Id>
 +
<br><TypeId>CargoContainer</TypeId>
 +
<br><SubtypeId>LargeBlockLargeContainer</SubtypeId>
 +
<br></Id>
 +
<br>Средний контейнер:
 +
<br><Id>
 +
<br><TypeId>CargoContainer</TypeId>
 +
<br><SubtypeId>SmallBlockMediumContainer</SubtypeId>
 +
<br></Id>
 +
<br>Малый контейенер:
 +
<br><Id>
 +
<br><TypeId>CargoContainer</TypeId>
 +
<br><SubtypeId>LargeBlockSmallContainer</SubtypeId>
 +
<br></Id>
 +
 
 +
<br>В этом случае есть только один класс "IMyCargoContainer" для всех типов грузовых контейнеров.
 +
 
 +
 
 +
===Список блоков и действий===
 +
<b>Антенна</b>
 +
*Имя интерфейса:
 +
:IMyRadioAntenna
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:float Radius
 +
*Свойства терминала:
 +
:Radius - Радиус
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreaseRadius - Увеличить радиус вещания
 +
:DecreaseRadius - Уменьшить радиус вещания
 +
 
 +
 
 +
<b>Дуговая печь</b>
 +
*Имя интерфейса:
 +
:IMyRefinery
 +
*Родитель:
 +
:IMyProductionBlock
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:bool UseConveyorSystem
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:UseConveyor - Использовать систему конвейеров вкл/выкл
 +
 
 +
 
 +
<b>Искусственная масса</b>
 +
*Имя интерфейса:
 +
:IMyVirtualMass
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:None
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
 
 +
 
 +
<b>Сборщик</b>
 +
*Имя интерфейса:
 +
:IMyAssembler
 +
*Родитель:
 +
:IMyProductionBlock
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:bool UseConveyorSystem
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:UseConveyor - Использовать систему конвейеров вкл/выкл
 +
 
 +
 
 +
<b>Батарея</b>
 +
*Имя интерфейса:
 +
:IMyBatteryBlock
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:bool HasCapacityRemaining
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:Recharge - Перезарядка вкл/выкл
 +
 
 +
 
 +
<b>Маяк</b>
 +
*Имя интерфейса:
 +
:IMyBeacon
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:float Radius
 +
*Свойства терминала:
 +
:Radius - Радиус
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreaseRadius - Увеличить радиус вещания
 +
:DecreaseRadius - Уменьшить радиус вещания
 +
 
 +
 
 +
<b>Кнопочная панель</b>
 +
*Имя интерфейса:
 +
:IMyButtonPanel
 +
*Поля:
 +
:bool AnyoneCanUse
 +
*Действия:
 +
:AnyoneCanUse - Все могут использовать вкл/выкл
 +
 
 +
 
 +
<b>Камера</b>
 +
*Имя интерфейса:
 +
:IMyCameraBlock
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:None
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:View - Вид
 +
 
 +
 
 +
<b>Кабина</b>
 +
*Имя интерфейса:
 +
:IMyCockpit
 +
*Родитель:
 +
:IMyShipController
 +
*Поля:
 +
:bool ControlWheels
 +
:bool ControlThrusters
 +
:bool HandBrake
 +
:bool DampenersOverride
 +
*Действия:
 +
:ControlThrusters - Управление ускорителями вкл/выкл
 +
:ControlWheels - Управление колесами вкл/выкл
 +
:HandBrake - Ручной тормоз вкл/выкл
 +
:DampenersOverride - Гаситель инерции вкл/выкл
 +
 
 +
 
 +
<b>Сборщик</b>
 +
*Имя интерфейса:
 +
:IMyCollector
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:bool UseConveyorSystem
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:UseConveyor - Использовать систему конвейеров вкл/выкл
 +
 
 +
 
 +
<b>Коннектор</b>
 +
*Имя интерфейса:
 +
:IMyShipConnector
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:bool ThrowOut
 +
:bool CollectAll
 +
:bool IsLocked
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:ThrowOut - Выбросить вкл/выкл
 +
:CollectAll - Собирать всё вкл/выкл
 +
:SwitchLock - Переключить стыковки
 +
 
 +
 
 +
<b>Панель управления</b>
 +
*Имя интерфейса:
 +
:IMyControlPanel
 +
*Поля:
 +
:None
 +
*Действия:
 +
:None
 +
 
 +
 
 +
<b>Терминал управления</b>
 +
*Имя интерфейса:
 +
:IMyCockpit
 +
*Родитель:
 +
:IMyShipController
 +
*Поля:
 +
:bool ControlWheels
 +
:bool ControlThrusters
 +
:bool HandBrake
 +
:bool DampenersOverride
 +
*Действия:
 +
:ControlThrusters - Управление ускорителями вкл/выкл
 +
:ControlWheels - Управление колесами вкл/выкл
 +
:HandBrake - Ручной тормоз вкл/выкл
 +
:DampenersOverride - Гаситель инерции вкл/выкл
 +
 
 +
 
 +
<b>Дверь</b>
 +
*Имя интерфейса:
 +
:IMyDoor
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:bool Open
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:Open - Открыто/Закрыто
 +
:Open_On - Открыто
 +
:Open_Off - Закрыто
 +
 
 +
 
 +
<b>Бур</b>
 +
*Имя интерфейса:
 +
:IMyShipDrill
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:bool UseConveyorSystem
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:UseConveyor - Использовать систему конвейеров вкл/выкл
 +
 
 +
 
 +
<b>Кресло пилота</b>
 +
*Имя интерфейса:
 +
:IMyCockpit
 +
*Родитель:
 +
:IMyShipController
 +
*Поля:
 +
:bool ControlWheels
 +
:bool ControlThrusters
 +
:bool HandBrake
 +
:bool DampenersOverride
 +
*Действия:
 +
:ControlThrusters - Управление ускорителями вкл/выкл
 +
:ControlWheels - Управление колесами вкл/выкл
 +
:HandBrake - Ручной тормоз вкл/выкл
 +
:DampenersOverride - Гаситель инерции вкл/выкл
 +
 
 +
 
 +
<b>Турель Гатлинга</b>
 +
*Имя интерфейса:
 +
:IMyLargeGatlingTurret
 +
*Родитель:
 +
:IMyLargeConveyorTurretBase
 +
:IMyLargeTurretBase
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:bool UseConveyorSystem
 +
:bool CanControl
 +
:float Range
 +
*Свойства терминала:
 +
:Radius - Радиус
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:Control - Управление
 +
:IncreaseRange - Увеличить радиус
 +
:DecreaseRange - Уменьшить радиус
 +
:UseConveyor - Использовать систему конвейеров вкл/выкл
 +
 
 +
 
 +
<b>Генератор гравитации</b>
 +
*Имя интерфейса:
 +
:IMyGravityGenerator
 +
*Родитель:
 +
:IMyGravityGeneratorBase
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:float FieldWidth
 +
:float FieldHeight
 +
:float FieldDepth
 +
:float Gravity
 +
*Свойства терминала:
 +
:Width - Ширина поля
 +
:Height - Высота поля
 +
:Depth - Глубина поля
 +
:Gravity - Ускорение
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreaseWidth - Увеличить ширину поля
 +
:DecreaseWidth - Уменьшить ширину поля
 +
:IncreaseHeight - Увеличить высоту поля
 +
:DecreaseHeight - Уменьшить высоту поля
 +
:IncreaseDepth - Увеличить глубину поля
 +
:DecreaseDepth - Уменьшить глубину поля
 +
:IncreaseGravity - Увеличить ускорение
 +
:DecreaseGravity - Уменьшить ускорение
 +
 
 +
 
 +
<b>Резак</b>
 +
*Имя интерфейса:
 +
:IMyShipGrinder
 +
*Родитель:
 +
:IMyShipToolBase
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:None
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:UseConveyor - Использовать систему конвейеров вкл/выкл
 +
 
 +
 
 +
<b>Гироскоп</b>
 +
*Имя интерфейса:
 +
:IMyGyro
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:float GyroPower
 +
:bool GyroOverride
 +
:float Yaw
 +
:float Pitch
 +
:float Roll
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreasePower - Увеличить мощность
 +
:DecreasePower - Уменьшить мощность
 +
:Override - Перехват управления вкл/выкл
 +
:IncreaseYaw - Увеличить рысканье
 +
:DecreaseYaw - Уменьшить рысканье
 +
:IncreasePitch - Увеличить тангаж
 +
:DecreasePitch - Уменьшить тангаж
 +
:IncreaseRoll - Увеличить крен
 +
:DecreaseRoll - Уменьшить крен
 +
 
 +
 
 +
<b>Лампа</b>
 +
*Имя интерфейса:
 +
:IMyInteriorLight
 +
*Родитель:
 +
:IMyLightingBlock
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:float Radius
 +
:float Intensity
 +
:float BlinkIntervalSeconds
 +
:float BlinkLenght
 +
:float BlinkOffset
 +
*Свойства терминала:
 +
:Color - Цвет
 +
:Radius - Радиус
 +
:Falloff - Спад
 +
:Intensity - Интенсивность
 +
:Blink Interval - Интервал вспышек
 +
:Blink Lenght - Продолжительность вспышек
 +
:Blink Offset - Задержка вспышек
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreaseRadius - Увеличить радиус
 +
:DecreaseRadius - Уменьшить радиус
 +
:IncreaseBlink Interval - Увеличить интервал вспышек
 +
:DecreaseBlink Interval - Уменьшить интервал вспышек
 +
:IncreaseBlink Lenght - Увеличить продолжительность вспышек
 +
:DecreaseBlink Lenght - Уменьшить продолжительность вспышек
 +
:IncreaseBlink Offset - Увеличить задержку вспышек
 +
:DecreaseBlink Offset - Уменьшить задержку вспышек
 +
 
 +
 
 +
<b>Турель</b>
 +
*Имя интерфейса:
 +
:IMyLargeInteriorTurret
 +
*Родитель:
 +
:IMyLargeTurretBase
 +
*Имя интерфейса:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:bool CanControl
 +
:float Range
 +
*Свойства терминала:
 +
:Radius - Радиус
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:Control - Управление
 +
:IncreaseRange - Увеличить радиус
 +
:DecreaseRange - Уменьшить радиус
 +
 
 +
 
 +
<b>Посадочные шасси</b>
 +
*Имя интерфейса:
 +
:IMyLandingGear
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:float BreakForce
 +
*Свойства терминала:
 +
:BreakForce - Сила отрыва
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:Lock - Запереть
 +
:Unlock - Отпереть
 +
:SwitchLock - Переключить стыковки
 +
:Autolock - Автозацеп вкл/выкл
 +
:IncreaseBreakForce - Увеличить силу отрыва
 +
:DecreaseBreakForce - Уменьшить силу отрыва
 +
 
 +
 
 +
<b>Малый грузовой контейнер</b>
 +
*Имя интерфейса:
 +
:IMyCargoContainer
 +
*Поля:
 +
:None
 +
*Действия:
 +
:None
 +
 
 +
 
 +
<b>Средний грузовой контейнер</b>
 +
*Имя интерфейса:
 +
:IMyCargoContainer
 +
*Поля:
 +
:None
 +
*Действия:
 +
:None
 +
 
  
Родитель: каждый блок имеет родителя (все блоки имеют "IMyTerminalBlock" как родителя), это нужно для того, чтобы получить все блоки одного типа, вместо конкретного блока.
+
<b>Большой грузовой контейнер</b>
К примеру, если вы хотите получить все блоки света, следует использовать "IMyLightningBlock", а если вы хотите использовать только блок ламы, вы используете "IMyInteriorLight".
+
*Имя интерфейса:
 +
:IMyCargoContainer
 +
*Поля:
 +
:None
 +
*Действия:
 +
:None
  
Поля: данное свойство блока доступно только для чтения. К примеру из "IMyBeacon" вы можете получить свойство радиуса. И основываясь на этом свойстве вы можете увеличить/уменьшить радиус маяка.
 
  
Действия: все действия, которые вы можете применить к блоку, доступны вам в скрипте, так что если вы хотите уменьшить радиус вещания антенны, вам нужно использовать "DecreaseRadius" действие для блока.
+
<b>Малый реактор</b>
 +
*Имя интерфейса:
 +
:IMyReactor
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:bool UseConveyorSystem
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:UseConveyor - Использовать систему конвейеров вкл/выкл
  
Одинаковые класс блоков имеют разный "SubTypeID".
 
Одинаковые блоки, которые имеют тех же родителей (к примеру <TypeId> в файле "cubeblocks.sbc") и различаются только по субтипу (к примеру<SubtypeId>). Это значит, что различия между этими блоками в коде нет.
 
Примером таких блоков являются грузовые контейнеры: в игре есть три типа грузовых контейнеров: малый, средний и большой. Они различаются только по субтипу, но имеют общий тип.
 
К примеру "Id" большого контейнера:
 
<Id>
 
<TypeId>CargoContainer</TypeId>
 
<SubtypeId>LargeBlockLargeContainer</SubtypeId>
 
</Id>
 
Средний контейнер:
 
<Id>
 
<TypeId>CargoContainer</TypeId>
 
<SubtypeId>SmallBlockMediumContainer</SubtypeId>
 
</Id>
 
Малый контейенер:
 
<Id>
 
<TypeId>CargoContainer</TypeId>
 
<SubtypeId>LargeBlockSmallContainer</SubtypeId>
 
</Id>
 
  
В этом случае есть только один класс "IMyCargoContainer" для всех типов грузовых контейнеров.
+
<b>Большой реактор</b>
 +
*Имя интерфейса:
 +
:IMyReactor
 +
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:bool UseConveyorSystem
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:UseConveyor - Использовать систему конвейеров вкл/выкл
  
Антенна
 
Имя интерфейса: IMyRadioAntenna
 
Родитель: IMyFunctionalBlock
 
Поля: float Radius
 
Действия:
 
OnOff - Переключить блок вкл/выкл
 
OnOff_On - Переключить блок вкл
 
OnOff_Off - Переключить блок выкл
 
IncreaseRadius - Увеличить радиус вещания
 
DecreaseRadius - Уменьшить радиус вещания
 
  
Дуговая печь
+
<b>Малый ускоритель</b>
Имя интерфейса: IMyRefinery
+
*Имя интерфейса:  
Родитель: IMyProductionBlock
+
:IMyThrust
Родитель: IMyFunctionalBlock
+
*Родитель:  
Поля: bool UseConveyorSystem
+
:IMyFunctionalBlock
Действия:
+
*Поля:  
OnOff - Переключить блок вкл/выкл
+
:float ThrustOverride
OnOff_On - Переключить блок вкл
+
*Свойства терминала:
OnOff_Off - Переключить блок выкл
+
:Override - Тяга
UseConveyor - Использовать систему конвейеров вкл/выкл
+
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreaseOverride - Увеличить тягу
 +
:DecreaseOverride - Уменьшить тягу
  
Искусственная масса
 
Имя интерфейса: IMyVirtualMass
 
Родитель: IMyFunctionalBlock
 
Поля: None
 
Действия:
 
OnOff - Переключить блок вкл/выкл
 
OnOff_On - Переключить блок вкл
 
OnOff_Off - Переключить блок выкл
 
  
Сборщик
+
<b>Большой ускоритель</b>
Имя интерфейса: IMyAssembler
+
*Имя интерфейса:  
Родитель: IMyProductionBlock
+
:IMyThrust
Родитель: IMyFunctionalBlock
+
*Родитель:  
Поля: bool UseConveyorSystem
+
:IMyFunctionalBlock
Действия:
+
*Поля:  
OnOff - Переключить блок вкл/выкл
+
:float ThrustOverride
OnOff_On - Переключить блок вкл
+
*Свойства терминала:
OnOff_Off - Переключить блок выкл
+
:Override - Тяга
UseConveyor - Использовать систему конвейеров вкл/выкл
+
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreaseOverride - Увеличить тягу
 +
:DecreaseOverride - Уменьшить тягу
  
Батарея
 
Имя интерфейса: IMyBatteryBlock
 
Родитель: IMyFunctionalBlock
 
Поля: bool HasCapacityRemaining
 
Действия:
 
OnOff - Переключить блок вкл/выкл
 
OnOff_On - Переключить блок вкл
 
OnOff_Off - Переключить блок выкл
 
Recharge - Перезарядка вкл/выкл
 
  
Маяк
+
<b>Медпункт</b>
Имя интерфейса: IMyBeacon
+
*Имя интерфейса:  
Родитель: IMyFunctionalBlock
+
:IMyMedicalRoom
Поля: float Radius
+
*Родитель:
Действия:
+
:IMyFunctionalBlock
OnOff - Переключить блок вкл/выкл
+
*Поля:  
OnOff_On - Переключить блок вкл
+
:None
OnOff_Off - Переключить блок выкл
+
*Действия:
IncreaseRadius - Увеличить радиус вещания
+
:OnOff - Переключить блок вкл/выкл
DecreaseRadius - Уменьшить радиус вещания
+
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
  
Кнопочная панель
 
Имя интерфейса: IMyButtonPanel
 
Поля: bool AnyoneCanUse
 
Действия:
 
AnyoneCanUse - Все могут использовать вкл/выкл
 
  
Камера
+
<b>Стыковочный блок</b>
Имя интерфейса: IMyCameraBlock
+
*Имя интерфейса:  
Родитель: IMyFunctionalBlock
+
:IMyShipMergeBlock
Поля: None
+
*Родитель:
Действия:
+
:IMyFunctionalBlock
OnOff - Переключить блок вкл/выкл
+
*Поля:
OnOff_On - Переключить блок вкл
+
:None
OnOff_Off - Переключить блок выкл
+
*Действия:
View - Вид
+
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
  
Кабина
 
Имя интерфейса: IMyCockpit
 
Родитель: IMyShipController
 
Поля:
 
bool ControlWheels
 
bool ControlThrusters
 
bool HandBrake
 
bool DampenersOverride
 
Действия:
 
ControlThrusters - Управление ускорителями вкл/выкл
 
ControlWheels - Управление колесами вкл/выкл
 
HandBrake - Ручной тормоз вкл/выкл
 
DampenersOverride - Гаситель инерции вкл/выкл
 
  
Сборщик
+
<b>Ракетная турель</b>
Имя интерфейса: IMyCollector
+
*Имя интерфейса:  
Родитель: IMyFunctionalBlock
+
:IMyLargeMissileTurret
Поля: bool UseConveyorSystem
+
*Родитель:
Действия:
+
:IMyLargeConveyorTurretBase
OnOff - Переключить блок вкл/выкл
+
:IMyLargeTurretBase
OnOff_On - Переключить блок вкл
+
:IMyFunctionalBlock
OnOff_Off - Переключить блок выкл
+
*Поля:
UseConveyor - Использовать систему конвейеров вкл/выкл
+
:bool UseConveyorSystem  
 +
:bool CanControl
 +
:float Range
 +
*Свойства терминала:
 +
:Range - Радиус
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:Control - Управление
 +
:IncreaseRange - Увеличить радиус
 +
:DecreaseRange - Уменьшить радиус
 +
:UseConveyor - Использовать систему конвейеров вкл/выкл
  
Коннектор
 
Имя интерфейса: IMyShipConnector
 
Родитель: IMyFunctionalBlock
 
Поля:
 
bool ThrowOut
 
bool CollectAll
 
bool IsLocked
 
Действия:
 
OnOff - Переключить блок вкл/выкл
 
OnOff_On - Переключить блок вкл
 
OnOff_Off - Переключить блок выкл
 
ThrowOut - Выбросить вкл/выкл
 
CollectAll - Собирать всё вкл/выкл
 
SwitchLock - Переключить стыковки
 
  
Панель управления
+
<b>Детектор руды</b>
Имя интерфейса: IMyControlPanel
+
*Имя интерфейса:  
Поля: None
+
:IMyOreDetector
Действия: None
+
*Родитель:
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:float Range
 +
:bool BroadcastUsingAntennas
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
  
Терминал управления
 
Имя интерфейса: IMyCockpit
 
Родитель: IMyShipController
 
Поля:
 
bool ControlWheels
 
bool ControlThrusters
 
bool HandBrake
 
bool DampenersOverride
 
Действия:
 
ControlThrusters - Управление ускорителями вкл/выкл
 
ControlWheels - Управление колесами вкл/выкл
 
HandBrake - Ручной тормоз вкл/выкл
 
DampenersOverride - Гаситель инерции вкл/выкл
 
  
Дверь
+
<b>Пассажирское кресло</b>
Имя интерфейса: IMyDoor
+
*Имя интерфейса:  
Родитель: IMyFunctionalBlock
+
:IMyCockpit
Поля: bool Open
+
*Родитель:  
Действия:
+
:IMyShipController
OnOff - Переключить блок вкл/выкл
+
*Поля:
OnOff_On - Переключить блок вкл
+
:bool ControlWheels
OnOff_Off - Переключить блок выкл
+
:bool ControlThrusters
Open - Открыто/Закрыто
+
:bool HandBrake
Open_On - Открыто
+
:bool DampenersOverride
Open_Off - Закрыто
+
*Действия:
 +
:ControlThrusters - Управление ускорителями вкл/выкл
 +
:ControlWheels - Управление колесами вкл/выкл
 +
:HandBrake - Ручной тормоз вкл/выкл
 +
:DampenersOverride - Гаситель инерции вкл/выкл
  
Бур
 
Имя интерфейса: IMyShipDrill
 
Родитель: IMyFunctionalBlock
 
Поля: bool UseConveyorSystem
 
Действия:
 
OnOff - Переключить блок вкл/выкл
 
OnOff_On - Переключить блок вкл
 
OnOff_Off - Переключить блок выкл
 
UseConveyor - Использовать систему конвейеров вкл/выкл
 
  
Кресло пилота
+
<b>Поршень</b>
Имя интерфейса: IMyCockpit
+
*Имя интерфейса:  
Родитель: IMyShipController
+
:IMyPistonBase
Поля:
+
*Родитель:  
bool ControlWheels
+
:IMyFunctionalBlock
bool ControlThrusters
+
*Поля:
bool HandBrake
+
:float Velocity
bool DampenersOverride
+
:float MinLimit
Действия:
+
:float MaxLimit
ControlThrusters - Управление ускорителями вкл/выкл
+
*Свойства терминала:
ControlWheels - Управление колесами вкл/выкл
+
:Velocity - Скорость
HandBrake - Ручной тормоз вкл/выкл
+
:UpperLimit - Максимальная дистанция
DampenersOverride - Гаситель инерции вкл/выкл
+
:LowerLimit - Минимальная дистанция
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:Reverse - Реверс
 +
:IncreaseVelocity - Увеличить скорость
 +
:DecreaseVelocity - Уменьшить скорость
 +
:ResetVelocity - Сбросить скорость
 +
:IncreaseUpperLimit - Увеличить максимальную дистанцию
 +
:DecreaseUpperLimit - Уменьшить максимальную дистанцию
 +
:IncreaseLowerLimit - Увеличить минимальную дистанцию
 +
:DecreaseLowerLimit - Уменьшить минимальную дистанцию
  
Турель Гатлинга
 
Имя интерфейса: IMyLargeGatlingTurret
 
Родитель: IMyLargeConveyorTurretBase
 
Родитель: IMyLargeTurretBase
 
Родитель: IMyFunctionalBlock
 
Поля:
 
bool UseConveyorSystem
 
bool CanControl
 
float Range
 
Действия:
 
OnOff - Переключить блок вкл/выкл
 
OnOff_On - Переключить блок вкл
 
OnOff_Off - Переключить блок выкл
 
Control - Управление
 
IncreaseRange - Увеличить радиус
 
DecreaseRange - Уменьшить радиус
 
UseConveyor - Использовать систему конвейеров вкл/выкл
 
  
Генератор гравитации
+
<b>Programmable block</b>
Имя интерфейса: IMyGravityGenerator
+
*Имя интерфейса:  
Родитель: IMyGravityGeneratorBase
+
:IMyProgrammableBlock
Родитель: IMyFunctionalBlock
+
*Родитель:  
Поля:
+
:IMyFunctionalBlock
float FieldWidth
+
*Поля:  
float FieldHeight
+
:bool IsRunning
float FieldDepth
+
*Действия:
float Gravity
+
:OnOff - Переключить блок вкл/выкл
Действия:
+
:OnOff_On - Переключить блок вкл
OnOff - Переключить блок вкл/выкл
+
:OnOff_Off - Переключить блок выкл
OnOff_On - Переключить блок вкл
+
:Run - Run
OnOff_Off - Переключить блок выкл
 
IncreaseWidth - Увеличить ширину поля
 
DecreaseWidth - Уменьшить ширину поля
 
IncreaseHeight - Увеличить высоту поля
 
DecreaseHeight - Уменьшить высоту поля
 
IncreaseDepth - Увеличить глубину поля
 
DecreaseDepth - Уменьшить глубину поля
 
IncreaseGravity - Увеличить ускорение
 
DecreaseGravity - Уменьшить ускорение
 
  
Резак
 
Имя интерфейса: IMyShipGrinder
 
Родитель: IMyShipToolBase
 
Родитель: IMyFunctionalBlock
 
Поля: None
 
Действия:
 
OnOff - Переключить блок вкл/выкл
 
OnOff_On - Переключить блок вкл
 
OnOff_Off - Переключить блок выкл
 
UseConveyor - Использовать систему конвейеров вкл/выкл
 
  
Гироскоп
+
<b>Проэктор</b>
Имя интерфейса: IMyGyro
+
*Interface name:
Родитель: IMyFunctionalBlock
+
:IMyProjector
Поля:
+
*Parent:  
float GyroPower
+
:IMyFunctionalBlock
bool GyroOverride
+
*Поля:
float Yaw
+
:int ProjectionOffsetX
float Pitch
+
:int ProjectionOffsetY
float Roll
+
:int ProjectionOffsetZ
Действия:
+
:int ProjectionRotX
OnOff - Переключить блок вкл/выкл
+
:int ProjectionRotY
OnOff_On - Переключить блок вкл
+
:int ProjectionRotZ
OnOff_Off - Переключить блок выкл
+
*Свойства терминала:
IncreasePower - Увеличить мощность
+
:X - Ось X
DecreasePower - Уменьшить мощность
+
:Y - Ось Y
Override - Перехват управления вкл/выкл
+
:Z - Ось Z
IncreaseYaw - Увеличить рысканье
+
:RotX - Поворот по оси X
DecreaseYaw - Уменьшить рысканье
+
:RotY - Поворот по оси Y
IncreasePitch - Увеличить тангаж
+
:RotZ - Поворот по оси Z
DecreasePitch - Уменьшить тангаж
+
*Действия:
IncreaseRoll - Увеличить крен
+
:OnOff- Переключить блок вкл/выкл
DecreaseRoll - Уменьшить крен
+
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreaseX - Увеличить смещение по оси X
 +
:DecreaseX - Уменьшить смещение по оси X
 +
:IncreaseY - Увеличить смещение по оси Y
 +
:DecreaseY - Уменьшить смещение по оси Y
 +
:IncreaseZ - Увеличить смещение по оси Z
 +
:DecreaseZ - Уменьшить смещение по оси Z
 +
:IncreaseRotX - Увеличить вращение по оси X
 +
:DecreaseRotX - Уменьшить вращение по оси X
 +
:IncreaseRotY - Увеличить вращение по оси Y
 +
:DecreaseRotY - Уменьшить вращение по оси Y
 +
:IncreaseRotZ - Увеличить вращение по оси Z
 +
:DecreaseRotZ - Уменьшить вращение по оси Z
  
Блоки и действия, список - 2/3
 
  
Лампа
+
<b>Перезаряжаемая ракетница</b>
Interface name: IMyInteriorLight
+
*Имя интерфейса:
Parent: IMyLightingBlock
+
:IMySmallMissileLauncherReload
Parent: IMyFunctionalBlock
+
*Родитель:  
Fields:
+
:IMyFunctionalBlock
float Radius
+
*Поля:  
float Intensity
+
:bool UseConveyorSystem
float BlinkIntervalSeconds
+
*Действия:
float BlinkLenght
+
:OnOff - Переключить блок вкл/выкл
float BlinkOffset
+
:OnOff_On - Переключить блок вкл
Действия:
+
:OnOff_Off - Переключить блок выкл
OnOff - Toggle block On/Off
+
:UseConveyor - Использовать систему конвейеров вкл/выкл
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
IncreaseRadius - Increase Radius
 
DecreaseRadius - Decrease Radius
 
IncreaseBlink Interval - Increase Blink Interval
 
DecreaseBlink Interval - Decrease Blink Interval
 
IncreaseBlink Lenght - Increase Blink Length
 
DecreaseBlink Lenght - Decrease Blink Length
 
IncreaseBlink Offset - Increase Blink Offset
 
DecreaseBlink Offset - Decrease Blink Offset
 
  
Турель
 
Interface name: IMyLargeInteriorTurret
 
Parent: IMyLargeTurretBase
 
Parent: IMyFunctionalBlock
 
Fields:
 
bool CanControl
 
float Range
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
Control - Control
 
IncreaseRange - Increase Radius
 
DecreaseRange - Decrease Radius
 
  
Посадочные шасси
+
<b>Очистительный завод</b>
Interface name: IMyLandingGear
+
*Имя интерфейса:
Parent: IMyFunctionalBlock
+
:IMyRefinery
Fields:
+
*Родитель:
float BreakForce
+
:IMyFunctionalBlock
Действия:
+
:IMyProductionBlock
OnOff - Toggle block On/Off
+
*Поля:
OnOff_On - Toggle block On
+
:bool UseConveyorSystem
OnOff_Off - Toggle block Off
+
*Действия:
Lock - Lock
+
:OnOff - Переключить блок вкл/выкл
Unlock - Unlock
 
SwitchLock - Switch lock
 
Autolock - Autolock On/Off
 
IncreaseBreakForce - Increase Break Force
 
DecreaseBreakForce - Decrease Break Force
 
  
Малый грузовой контейнер
 
Interface name: IMyCargoContainer
 
Fields: None
 
Действия: None
 
  
Средний грузовой контейнер
+
<b>Прожектор</b>
Interface name: IMyCargoContainer
+
*Имя интерфейса:  
Fields: None
+
:IMyReflectorLight
Действия: None
+
*Родитель:  
 +
:IMyLightingBlock
 +
:IMyFunctionalBlock
 +
*Поля:
 +
:float Radius
 +
:float Intensity
 +
:float BlinkIntervalSeconds
 +
:float BlinkLenght
 +
:float BlinkOffset
 +
*Свойства терминала:
 +
:Color - Цвет
 +
:Radius - Радиус
 +
:Falloff - Спад
 +
:Intensity - Интенсивность
 +
:Blink Interval - Интервал вспышек
 +
:Blink Lenght - Продолжительность вспышек
 +
:Blink Offset - Задержка вспышек
 +
*Actions:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreaseRadius - Увеличить радиус
 +
:DecreaseRadius - Уменьшить радиус
 +
:IncreaseBlink Interval - Увеличить интервал вспышек
 +
:DecreaseBlink Interval - Уменьшить интервал вспышек
 +
:IncreaseBlink Lenght - Увеличить продолжительность вспышек
 +
:DecreaseBlink Lenght - Уменьшить продолжительность вспышек
 +
:IncreaseBlink Offset - Увеличить задержку вспышек
 +
:DecreaseBlink Offset - Уменьшить задержку вспышек
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:UseConveyor - Использовать систему конвейеров вкл/выкл
  
Большой грузовой контейнер
 
Interface name: IMyCargoContainer
 
Fields: None
 
Действия: None
 
  
Малый реактор
+
<b>Удаленное управление</b>
Interface name: IMyReactor
+
*Имя интерфейса:
Parent: IMyFunctionalBlock
+
:IMyRemoteControl
Fields:
+
*Родитель:
bool UseConveyorSystem
+
:IMyShipController
Действия:
+
*Поля:
OnOff - Toggle block On/Off
+
:bool ControlWheels
OnOff_On - Toggle block On
+
:bool ControlThrusters
OnOff_Off - Toggle block Off
+
:bool HandBrake
UseConveyor - Use Conveyor System On/Off
+
:bool DampenersOverride
 +
*Действия:
 +
:ControlThrusters - Управление ускорителями вкл/выкл
 +
:ControlWheels - Управление колесами вкл/выкл
 +
:HandBrake - Ручной тормоз вкл/выкл
 +
:DampenersOverride - Гаситель инерции вкл/выкл
 +
:Control - Управление
  
Большой реактор
 
Interface name: IMyReactor
 
Parent: IMyFunctionalBlock
 
Fields: bool UseConveyorSystem
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
UseConveyor - Use Conveyor System On/Off
 
  
Малый ускоритель
+
<b>Ракетная установка</b>
Interface name: IMyThrust
+
*Имя интерфейса:
Parent: IMyFunctionalBlock
+
:IMySmallMissileLauncher
Fields: float ThrustOverride
+
*Родитель:
Действия:
+
:IMyFunctionalBlock
OnOff - Toggle block On/Off
+
*Поля:
OnOff_On - Toggle block On
+
:bool UseConveyorSystem
OnOff_Off - Toggle block Off
+
*Действия:
IncreaseOverride - Increase Thrust override
+
:OnOff - Переключить блок вкл/выкл
DecreaseOverride - Decrease Thrust override
+
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:UseConveyor - Использовать систему конвейеров вкл/выкл
  
Большой ускоритель
 
Interface name: IMyThrust
 
Parent: IMyFunctionalBlock
 
Fields: float ThrustOverride
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
IncreaseOverride - Increase Thrust override
 
DecreaseOverride - Decrease Thrust override
 
  
Медпункт
+
<b>Двигатель</b>
Interface name: IMyMedicalRoom
+
*Имя интерфейса:
Parent: IMyFunctionalBlock
+
:IMyMotorStator
Fields: None
+
*Родитель:
Действия:
+
:IMyMotorBase
OnOff -> Toggle block On/Off
+
:IMyFunctionalBlock
OnOff_On - Toggle block On
+
*Поля:
OnOff_Off - Toggle block Off
+
:bool IsAttached
 +
:float Torque
 +
:float BrakingTorque
 +
:float Velocity
 +
:float LowerLimit
 +
:float UpperLimit
 +
:float Displacement
 +
*Свойства терминала
 +
:Torque - Вращающий момент
 +
:BrakingTorque - Тормозной момент
 +
:Velocity - Скорость
 +
:LowerLimit - Нижний предел
 +
:UpperLimit - Верхний предел
 +
:Displacement - Смещение
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:Reverse - Реверс
 +
:Detach - Открепить
 +
:Attach - Прикрепить
 +
:IncreaseTorque - Увеличить вращающий момент
 +
:DecreaseTorque - Уменьшить вращающий момент
 +
:IncreaseBrakingTorque - Увеличить тормозной момент
 +
:DecreaseBrakingTorque - Уменьшить тормозной момент
 +
:IncreaseVelocity - Увеличить скорость
 +
:DecreaseVelocity - Уменьшить скорость
 +
:ResetVelocity - Сбросить скорость
 +
:IncreaseLowerLimit - Увеличить нижний предел
 +
:DecreaseLowerLimit - Уменьшить нижний предел
 +
:IncreaseUpperLimit - Увеличить верхний предел
 +
:DecreaseUpperLimit - Уменьшить верхний предел
 +
:IncreaseDisplacement - Увеличить смещение ротора
 +
:DecreaseDisplacement - Уменьшить смещение ротора
  
Стыковочный блок
 
Interface name: IMyShipMergeBlock
 
Parent: IMyFunctionalBlock
 
Fields: None
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
  
Ракетная турель
+
<b>Сенсор</b>
Interface name: IMyLargeMissileTurret
+
*Имя интерфейса:  
Parent: IMyLargeConveyorTurretBase
+
:IMySensorBlock
Parent: IMyLargeTurretBase
+
*Родитель:  
Parent: IMyFunctionalBlock
+
:IMyFunctionalBlock
Fields:
+
*Поля:
bool UseConveyorSystem
+
:float LeftExtend
bool CanControl
+
:float RightExtend
float Range
+
:float TopExtend
Действия:
+
:float BottomExtend
OnOff - Toggle block On/Off
+
:float FrontExtend
OnOff_On - Toggle block On
+
:float BackExtend
OnOff_Off - Toggle block Off
+
:bool DetectPlayers
Control - Control
+
:bool DetectFloatingObjects
IncreaseRange - Increase Radius
+
:bool DetectSmallShips
DecreaseRange - Decrease Radius
+
:bool DetectLargeShips
UseConveyor - Use Conveyor System On/Off
+
:bool DetectStations
 +
:bool DetectAsteroids
 +
*Свойства терминала:
 +
:Left - Охват слева
 +
:Right - Охват справа
 +
:Bottom - Охват снизу
 +
:Top - Охват сверху
 +
:Back - Охват сзади
 +
:Front - Охват спереди
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreaseLeft - Увеличить охват слева
 +
:DecreaseLeft - Уменьшить охват слева
 +
:IncreaseRight - Увеличить охват справа
 +
:DecreaseRight - Уменьшить охват справа
 +
:IncreaseBottom - Увеличить охват снизу
 +
:DecreaseBottom - Уменьшить охват снизу
 +
:IncreaseTop - Увеличить охват сверху
 +
:DecreaseTop - Уменьшить охват сверху
 +
:IncreaseBack - Увеличить охват сзади
 +
:DecreaseBack - Уменьшить охват сзади
 +
:IncreaseFront - Увеличить охват спереди
 +
:DecreaseFront - Уменьшить охват спереди
 +
:Detect Players - Реагировать на игроков вкл/выкл
 +
:Detect Floating Objects - Реагировать на летящие объекты вкл/выкл
 +
:Detect Small Ships - Реагировать на маленькие корабли вкл/выкл
 +
:Detect Large Ships - Реагировать на большие корабли вкл/выкл
 +
:Detect Stations - Реагировать на станции вкл/выкл
 +
:Detect Asteroids - Реагировать на астероиды вкл/выкл
  
Детектор руды
 
Interace name: IMyOreDetector
 
Parent: IMyFunctionalBlock
 
Fields:
 
float Range
 
bool BroadcastUsingAntennas
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
  
Пассажирское кресло
+
<b>Солнечная панель</b>
Interface name: IMyCockpit
+
*Имя интерфейса:  
Parent: IMyShipController
+
:IMySolarPanel
Fields:
+
*Поля:  
bool ControlWheels
+
:None
bool ControlThrusters
+
*Действия:  
bool HandBrake
+
:None
bool DampenersOverride
 
Действия:
 
ControlThrusters - Control thrusters On/Off
 
ControlWheels - Control wheels On/Off
 
HandBrake - Handbrake On/Off
 
DampenersOverride - Inertia dampeners On/Off
 
  
Поршень
 
Interface name: IMyPistonBase
 
Parent: IMyFunctionalBlock
 
Fields:
 
float Velocity
 
float MinLimit
 
float MaxLimit
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
Reverse - Reverse
 
IncreaseVelocity - Increase Velocity
 
DecreaseVelocity - Decrease Velocity
 
ResetVelocity - Reset Velocity
 
IncreaseUpperLimit - Increase Maximal distance
 
DecreaseUpperLimit - Decrease Maximal distance
 
IncreaseLowerLimit - Increase Minimal distance
 
DecreaseLowerLimit - Decrease Minimal distance
 
  
Programmable block
+
<b>Sound Block</b>
Interface name: IMyProgrammableBlock
+
*Имя интерфейса:
Parent: IMyFunctionalBlock
+
:IMySoundBlock
Fields: bool IsRunning
+
*Родитель:
Действия:
+
:IMyFunctionalBlock
OnOff - Toggle block On/Off
+
*Поля:
OnOff_On - Toggle block On
+
:float Volume
OnOff_Off - Toggle block Off
+
:float Range
Run - Run
+
:bool IsSoundSelected
 +
:float LoopPeriod
 +
*Свойства терминала:
 +
:VolumeSlider - Громкость
 +
:RangeSlider- Радиус
 +
:LoopableSlider - Время цикла
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreaseVolumeSlider - Увеличить громкость
 +
:DecreaseVolumeSlider - Уменьшить громкость
 +
:IncreaseRangeSlider - Увеличить дальность
 +
:DecreaseRangeSlider - Уменьшить дальность
 +
:PlaySound - Играть
 +
:StopSound - Остановить
 +
:IncreaseLoopableSlider - Увеличить время цикла
 +
:DecreaseLoopableSlider - Уменьшить время цикла
  
Блоки и действия, список - 3/3
 
  
Очистительный завод
+
<b>Сферический генератор гравитации</b>
Interface name: IMyRefinery
+
*Имя интерфейса:
Parent: IMyFunctionalBlock
+
:IMyGravityGeneratorSphere
Parent: IMyProductionBlock
+
*Родитель:
Fields: bool UseConveyorSystem
+
:IMyGravityGeneratorBase
Действия:
+
:IMyFunctionalBlock
OnOff - Toggle block On/Off
+
*Поля:
OnOff_On - Toggle block On
+
:float Radius
OnOff_Off - Toggle block Off
+
:float Gravity
UseConveyor - Use Conveyor System On/Off
+
*Свойства терминала:
 +
:Radius - Радиус
 +
:Gravity - Ускорение
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:IncreaseRadius - Увеличить радиус
 +
:DecreaseRadius - Уменьшить радиус
 +
:IncreaseGravity - Увеличить ускорение
 +
:DecreaseGravity - Уменьшить ускорение
  
Прожектор
 
Interface name: IMyReflectorLight
 
Parent: IMyLightingBlock
 
Parent: IMyFunctionalBlock
 
Fields:
 
float Radius
 
float Intensity
 
float BlinkIntervalSeconds
 
float BlinkLenght
 
float BlinkOffset
 
Spotlight
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
IncreaseRadius - Increase Radius
 
DecreaseRadius - Decrease Radius
 
IncreaseBlink Interval - Increase Blink Interval
 
DecreaseBlink Interval - Decrease Blink Interval
 
IncreaseBlink Lenght - Increase Blink Length
 
DecreaseBlink Lenght - Decrease Blink Length
 
IncreaseBlink Offset - Increase Blink Offset
 
DecreaseBlink Offset - Decrease Blink Offset
 
  
Удаленное управление
+
<b>Таймер</b>
Interface name: IMyRemoteControl
+
*Имя интерфейса:
Parent: IMyShipController
+
:IMyTimerBlock
Fields:
+
*Родитель:  
bool ControlWheels
+
:IMyFunctionalBlock
bool ControlThrusters
+
*Поля:
bool HandBrake
+
:bool IsCountingDown
bool DampenersOverride
+
:float TriggerDelay
Действия:
+
*Свойства терминала:
ControlThrusters - Control thrusters On/Off
+
:TriggerDelay - Задержка
ControlWheels - Control wheels On/Off
+
*Действия:
HandBrake - Handbrake On/Off
+
:OnOff - Переключить блок вкл/выкл
DampenersOverride - Inertia dampeners On/Off
+
:OnOff_On - Переключить блок вкл
Control - Control
+
:OnOff_Off - Переключить блок выкл
 +
:IncreaseTriggerDelay - Увеличить задержку
 +
:DecreaseTriggerDelay - Уменьшить задержку
 +
:TriggerNow - Активировать
 +
:Start - Старт
 +
:Stop - Стоп
  
Ракетная установка
 
Interface name: IMySmallMissileLauncher
 
Parent: IMyFunctionalBlock
 
Fields: bool UseConveyorSystem
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
UseConveyor - Use Conveyor System On/Off
 
  
Перезаряжаемая ракетница
+
<b>Боеголовка</b>
Interface name: IMySmallMissileLauncherReload
+
*Имя интерфейса:
Parent: IMyFunctionalBlock
+
:IMyWarhead
Fields: bool UseConveyorSystem
+
*Поля:
Действия:
+
:bool IsCountingDown
OnOff - Toggle block On/Off
+
:float DetonationTime
OnOff_On - Toggle block On
+
*Свойства терминала:
OnOff_Off - Toggle block Off
+
:DetonationTime - Задержка взрыва
UseConveyor - Use Conveyor System On/Off
+
*Действия:
 +
:IncreaseDetonationTime - Увеличить задержку подрыва
 +
:DecreaseDetonationTime - Уменьшить задержку подрыва
 +
:StartCountdown - Запустить отсчет
 +
:StopCountdown - Остановить отсчет
 +
:Safety - Предохранитель вкл/выкл
 +
:Detonate - Подорвать
  
Двигатель
 
Interface name: IMyMotorStator
 
Parent: IMyMotorBase
 
Parent: IMyFunctionalBlock
 
Fields:
 
bool IsAttached
 
float Torque
 
float BrakingTorque
 
float Velocity
 
float LowerLimit
 
float UpperLimit
 
float Displacement
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
Reverse - Reverse
 
Detach - Detach
 
Attach - Attach
 
IncreaseTorque - Increase Torque
 
DecreaseTorque - Decrease Torque
 
IncreaseBrakingTorque - Increase Braking tor.
 
DecreaseBrakingTorque - Decrease Braking tor.
 
IncreaseVelocity - Increase Velocity
 
DecreaseVelocity - Decrease Velocity
 
ResetVelocity - Reset Velocity
 
IncreaseLowerLimit - Increase Lower limit
 
DecreaseLowerLimit - Decrease Lower limit
 
IncreaseUpperLimit - Increase Upper limit
 
DecreaseUpperLimit - Decrease Upper limit
 
IncreaseDisplacement - Increase Rotor displacement
 
DecreaseDisplacement - Decrease Rotor displacement
 
  
Сенсор
+
<b>Сварщик</b>
Interface name: IMySensorBlock
+
*Имя интерфейса:  
Parent: IMyFunctionalBlock
+
:IMyShipWelder
Fields:
+
*Родитель:  
float LeftExtend
+
:IMyShipToolBase
float RightExtend
+
:IMyFunctionalBlock
float TopExtend
+
*Действия:
float BottomExtend
+
:OnOff - Переключить блок вкл/выкл
float FrontExtend
+
:OnOff_On - Переключить блок вкл
float BackExtend
+
:OnOff_Off - Переключить блок выкл
bool DetectPlayers
+
:UseConveyor - Использовать систему конвейеров вкл/выкл
bool DetectFloatingObjects
 
bool DetectSmallShips
 
bool DetectLargeShips
 
bool DetectStations
 
bool DetectAsteroids
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
IncreaseLeft - Increase Left extent
 
DecreaseLeft - Decrease Left extent
 
IncreaseRight - Increase Right extent
 
DecreaseRight - Decrease Right extent
 
IncreaseBottom - Increase Bottom extent
 
DecreaseBottom - Decrease Bottom extent
 
IncreaseTop - Increase Top extent
 
DecreaseTop - Decrease Top extent
 
IncreaseBack - Increase Back extent
 
DecreaseBack - Decrease Back extent
 
IncreaseFront - Increase Front extent
 
DecreaseFront - Decrease Front extent
 
Detect Players - Detect players On/Off
 
Detect Floating Objects - Detect floating objects On/Off
 
Detect Small Ships - Detect small ships On/Off
 
Detect Large Ships - Detect large ships On/Off
 
Detect Stations - Detect stations On/Off
 
Detect Asteroids - Detect Asteroids On/Off
 
  
Солнечная панель
 
Interface name: IMySolarPanel
 
Fields: None
 
Действия: None
 
  
Sound Block
+
<b>Подвеска колес 1x1</b>
Interface name: IMySoundBlock
+
*Имя интерфейса:
Parent: IMyFunctionalBlock
+
:IMyMotorSuspension
Fields:
+
*Родитель:
float Volume
+
:IMyMotorBase
float Range
+
:IMyFunctionalBlock
bool IsSoundSelected
+
*Поля:
float LoopPeriod
+
:bool Steering
Действия:
+
:bool Propulsion
OnOff - Toggle block On/Off
+
:float Damping
OnOff_On - Toggle block On
+
:float Strength
OnOff_Off - Toggle block Off
+
:float Friction
IncreaseVolumeSlider - Increase Volume
+
:float Power
DecreaseVolumeSlider - Decrease Volume
+
*Свойства терминала:
IncreaseRangeSlider - Increase Range
+
:Damping - Амортизация
DecreaseRangeSlider - Decrease Range
+
:Strength - Сила
PlaySound - Play
+
:Friction - Трение
StopSound - Stop
+
:Power - Мощность
IncreaseLoopableSlider - Increase Loop time
+
*Действия:
DecreaseLoopableSlider - Decrease Loop time
+
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:Steering - Рулевое управление вкл/выкл
 +
:Propulsion - Движущая сила вкл/выкл
 +
:IncreaseDamping - Увеличить амортизацию
 +
:DecreaseDamping - Уменьшить амортизацию
 +
:IncreaseStrength - Увеличить силу
 +
:DecreaseStrength - Уменьшить силу
 +
:IncreaseFriction - Увеличить трение
 +
:DecreaseFriction - Уменьшить трение
 +
:IncreasePower - Увеличить мощность
 +
:DecreasePower - Уменьшить мощность
  
Сферический генератор гравитации
 
Interface name: IMyGravityGeneratorSphere
 
Parent: IMyGravityGeneratorBase
 
Parent: IMyFunctionalBlock
 
Fields:
 
float Radius
 
float Gravity
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
IncreaseRadius - Increase Radius
 
DecreaseRadius - Decrease Radius
 
IncreaseGravity - Increase Acceleration
 
DecreaseGravity - Decrease Acceleration
 
  
Таймер
+
<b>Подвеска колес 3x3</b>
Interface name: IMyTimerBlock
+
*Имя интерфейса:
Parent: IMyFunctionalBlock
+
:IMyMotorSuspension
Fields:
+
*Родитель:
bool IsCountingDown
+
:IMyMotorBase
float TriggerDelay
+
:IMyFunctionalBlock
Действия:
+
*Поля:
OnOff - Toggle block On/Off
+
:bool Steering
OnOff_On - Toggle block On
+
:bool Propulsion
OnOff_Off - Toggle block Off
+
:float Damping
IncreaseTriggerDelay - Increase Delay
+
:float Strength
DecreaseTriggerDelay - Decrease Delay
+
:float Friction
TriggerNow - Trigger now
+
:float Power
Start - Start
+
*Свойства терминала:
Stop - Stop
+
:Damping - Амортизация
 +
:Strength - Сила
 +
:Friction - Трение
 +
:Power - Мощность
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:Steering - Рулевое управление вкл/выкл
 +
:Propulsion - Движущая сила вкл/выкл
 +
:IncreaseDamping - Увеличить амортизацию
 +
:DecreaseDamping - Уменьшить амортизацию
 +
:IncreaseStrength - Увеличить силу
 +
:DecreaseStrength - Уменьшить силу
 +
:IncreaseFriction - Увеличить трение
 +
:DecreaseFriction - Уменьшить трение
 +
:IncreasePower - Увеличить мощность
 +
:DecreasePower - Уменьшить мощность
  
Боеголовка
 
Interface name: IMyWarhead
 
Fields:
 
bool IsCountingDown
 
float DetonationTime
 
Действия:
 
IncreaseDetonationTime - Increase Detonation time
 
DecreaseDetonationTime - Decrease Detonation time
 
StartCountdown - Start countdown
 
StopCountdown - Stop countdown
 
Safety - Safety On/Off
 
Detonate - Detonate
 
  
Сварщик
+
<b>Подвеска колес 5x5</b>
Interface name: IMyShipWelder
+
*Имя интерфейса:  
Parent: IMyShipToolBase
+
:IMyMotorSuspension
Parent: IMyFunctionalBlock
+
*Родитель:
Действия:
+
:IMyMotorBase
OnOff - Toggle block On/Off
+
:IMyFunctionalBlock
OnOff_On - Toggle block On
+
*Поля:
OnOff_Off - Toggle block Off
+
:bool Steering
UseConveyor - Use Conveyor System On/Off
+
:bool Propulsion
 +
:float Damping
 +
:float Strength
 +
:float Friction
 +
:float Power
 +
*Свойства терминала:
 +
:Damping - Амортизация
 +
:Strength - Сила
 +
:Friction - Трение
 +
:Power - Мощность
 +
*Действия:
 +
:OnOff - Переключить блок вкл/выкл
 +
:OnOff_On - Переключить блок вкл
 +
:OnOff_Off - Переключить блок выкл
 +
:Steering - Рулевое управление вкл/выкл
 +
:Propulsion - Движущая сила вкл/выкл
 +
:IncreaseDamping - Увеличить амортизацию
 +
:DecreaseDamping - Уменьшить амортизацию
 +
:IncreaseStrength - Увеличить силу
 +
:DecreaseStrength - Уменьшить силу
 +
:IncreaseFriction - Увеличить трение
 +
:DecreaseFriction - Уменьшить трение
 +
:IncreasePower - Увеличить мощность
 +
:DecreasePower - Уменьшить мощность
  
Подвеска колес 1x1
 
Interface name: IMyMotorSuspension
 
Parent: IMyMotorBase
 
Parent: IMyFunctionalBlock
 
Fields:
 
bool Steering
 
bool Propulsion
 
float Damping
 
float Strength
 
float Friction
 
float Power
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
Steering - Steering On/Off
 
Propulsion - Propulsion On/Off
 
IncreaseDamping - Increase Damping
 
DecreaseDamping - Decrease Damping
 
IncreaseStrength - Increase Strength
 
DecreaseStrength - Decrease Strength
 
IncreaseFriction - Increase Friction
 
DecreaseFriction - Decrease Friction
 
IncreasePower - Increase Power
 
DecreasePower - Decrease Power
 
  
Подвеска колес 3x3
+
==Обновления==
Interface name: IMyMotorSuspension
+
<br>
Parent: IMyMotorBase
+
===Обновление от 02/01/15===
Parent: IMyFunctionalBlock
+
<b>Изменения: Доступные пространства имен.</b>
Fields:
+
<br>В настоящее время вы можете использовать только следующие пространства имен из Modding API:
bool Steering
+
<br>Sandbox.ModAPI.Ingame
bool Propulsion
+
<br>Sandbox.ModAPI.Interfaces
float Damping
+
<br>Sandbox.Common.ObjectBuilders
float Strength
+
<br>VRageMath
float Friction
+
<br>VRage
float Power
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
Steering - Steering On/Off
 
Propulsion - Propulsion On/Off
 
IncreaseDamping - Increase Damping
 
DecreaseDamping - Decrease Damping
 
IncreaseStrength - Increase Strength
 
DecreaseStrength - Decrease Strength
 
IncreaseFriction - Increase Friction
 
DecreaseFriction - Decrease Friction
 
IncreasePower - Increase Power
 
DecreasePower - Decrease Power
 
  
Подвеска колес 5x5
+
<br>Вы не можете использовать остальные пространства имен из Sandbox.ModAPI или любые другие пространства имен игры.
Interface name: IMyMotorSuspension
 
Parent: IMyMotorBase
 
Parent: IMyFunctionalBlock
 
Fields:
 
bool Steering
 
bool Propulsion
 
float Damping
 
float Strength
 
float Friction
 
float Power
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
Steering - Steering On/Off
 
Propulsion - Propulsion On/Off
 
IncreaseDamping - Increase Damping
 
DecreaseDamping - Decrease Damping
 
IncreaseStrength - Increase Strength
 
DecreaseStrength - Decrease Strength
 
IncreaseFriction - Increase Friction
 
DecreaseFriction - Decrease Friction
 
IncreasePower - Increase Power
 
DecreasePower - Decrease Power
 
  
Обновление от 02/01/15 - Изменения: Доступные пространства имен.
 
В настоящее время вы можете использовать только следующие пространства имен из Modding API:
 
Sandbox.ModAPI.Ingame
 
Sandbox.ModAPI.Interfaces
 
Sandbox.Common.ObjectBuilders
 
VRageMath
 
VRage
 
  
Вы не можете использовать остальные пространства имен из Sandbox.ModAPI или любые другие пространства имен игры.
+
==Перевод==
 +
<b>Автор:</b>
 +
<br>[http://vk.com/id185753949 Who You]
  
Перевёл Who You [http://vk.com/id185753949 Who You]
+
<br><b>Благодарность за помощь в переводе:</b>
 +
<br> [http://vk.com/the_netos Александр Онищук]
 +
<br> [http://vk.com/datrax Денис Пикущий]
 +
<br> [http://vk.com/findoss Никита Строганов aka Findoss]
 +
<br> [http://vk.com/volhx Денис Пушкарёв]

Latest revision as of 15:24, 11 May 2016





Программируемый блок - блок, добавленный в обновлении 1.063. Позволяет контролировать системы кораблей с помощью скриптов на языке С#. На данный момент способен управлять всем стандартным функционалом терминала.

Ограничения

Ниже вы найдете список известных ограничений о которых мы знаем, а так же возможные их решения.


Оператор "foreach" не работает на 64-битной системе.
  • Проблема:
На данный момент использование оператора "foreach" внутри скрипта приведет к "bad program expection" и остановит запуск скрипта. Мы работаем над устранением этой проблемы.
  • Решение:
Все наши внутри-игровые интерфейсы работают со списками "list" как с коллекциями. Пожалуйста, используйте итерационный цикл "for" для работы с ними.


Лямбда-выражения не работают.
  • Проблема:
На данный момент лямбда-выражения не поддерживаются. Если вы воспользуетесь ими в скрипте, то это вызовет исключение и скрипт не запустится.
  • Решение:
Пожалуйста, используйте методы вместо лямбда-выражений.


Переменные, устанавливаемые пользователем - не сохраняются.
  • Проблема:
Пользовательские переменные используемые в скрипте не сохраняются и после загрузки возвращаются к своим значениям по умолчанию.
  • Решение:
Отсутствует.

Обзор интерфейса


Программируемый блок

Steamworkshop webupload previewfile 360966557 preview.jpg

Панель программируемого блока на данный момент содержит следующие кнопки:

Edit – открыть редактор для редактирования скриптов и возможности сохранения/загрузки их на диск.

Также вы можете загрузить свои скрипты в "workshop" или загрузить себе скрипты, на которые вы подписаны.

Run – запустить скрипт сохраненный в редакторе. Скрипт будет запущен один раз. Однако эта кнопка является действием в терминале и вы можете соединить ее с сенсором, таймером или добавить на панель быстрого доступа.

Редактор

Steamworkshop webupload previewfile 360966557 preview (1).jpg
Редактор кода содержит следующие кнопки:
Help – открыть мануал по программированию в игре.
Check code – проверить код на наличие ошибок, а так же возможность использовать данный код.
Remember & Exit – сохранить ваш код, закрывает экран редактора и переведет к панели терминала.
Remember code – сохранить ваш код и оставит экран редактора открытым.
Browse Workshop – открыть окно для управления скриптами, вы можете сохранить/загрузить скрипты на диск, загрузить свои скрипты в "workshop" или загрузить себе скрипты, на которые вы подписаны.
Line counter – отобразить текущую строку кода и общее количество строк в коде.


Экран "Workshop"

Browse workshop.jpg
Этот экран аналогичный экрану с чертежами и содержит следующие кнопки:
Ok – загрузить выбранный скрипт в редактор и закроет экран.
Cancel – закрыть экран (изменения не будут внесены в редактор)
Details – открыть экран "детали", где вы можете увидеть описание скрипта.
Rename (только для локальных скриптов) – переименовать выбранный скрипт, если вы попытаетесь переименовать существующий скрипт, игра попросит подтверждение.
Delete (только для локальных скриптов) – удалить выбранный скрипт, после подтверждения.
Create from editor – создать новый скрипт с именем по умолчанию Script_XX, которое начинается с 0, и если скрипт с уже выбранным именем существует, то числовое значение в названии будет повышено. Для примера, первым будет Script_0, далее Script_1 и т.д...
Replace from editor (только для локальных скриптов) – заменить (после подтверждения пользователя) выбранный скрипт на скрипт из редактора.
Refresh Scripts – обновить локальные скрипты и скрипты на которые вы подписаны.


Детали (локальный скрипт)

Details (local script).jpg
Этот экран показывает детали для локальных скриптов и содержит следующие кнопки:
Rename – переименовать выбранный скрипт, если вы попытаетесь переименовать существующий скрипт, игра попросит подтверждение.
Delete – удалить выбранный скрипт, после подтверждения.
Publish – опубликовать выбранный скрипт в "workshop" и показать странницу с опубликованным скриптом.
Browse Workshop – открыть экран "workshop" для просмотра, а также подписаться на скрипты.
Close – закрыть экран.


Детали ("workshop" скрипт)

Details (workshop script).jpg
Этот экран показывает детали для скриптов из "workshop" и содержит следующие кнопки:
Open in Workshop – открыть "workshop" страницу скрипта.
Close – закрыть экран.


Гайд по программированию


Доступ к редактору

Только один игрок может редактировать скрипт. Если кто-нибудь откроет занятый программируемый блок и попытается открыть редактор, он получит уведомление о том, что редактор уже открыт.


Метод Main

Метод Main - создается при первом открытии редактора, этот метод является основной точкой входа в ваш скрипт. При переименовании или удалении этого метода скрипт не запустится и вы получите уведомление.
Пользовательские методы/переменные могут быть определены, но использованы только внутри главного метода "main".

Видимость переменных

Есть два типа переменных для скрипта:
-Local (внутри методов) - эти переменные будут хранить значение только во время выполнения метода.
Подробнее - локальная переменная находится в области видимости до тех пор, пока закрывающая фигурная скобка не укажет конец блока операторов или метода, в котором она объявлена.А так же, объявленная в операторах цикла "for", "while" или подобных им, видима в пределах тела цикла.
-Global (за пределами методов) - эти переменные будут хранить значения при работе всего скрипта.
Подробнее - если переменная должна сохранить значение между отдельными блоками программы, она должна быть определена вне этих методов т.е. глобально.
-После нажатия "Remember & Exit" или "Remember" кнопки, предыдущий скрипт будет переписан и все глобальные переменные будут потеряны.


Компиляция

Когда вы нажмете кнопку “Check code”, код будет скомпилирован, также будет показан результат компиляции.
Процесс компиляции состоит из двух этапов:
-Во первых, код внутри редактора будет проверен на синтаксические ошибки, внутри языка C#
Если во время компиляции возникнут какие-либо ошибки, компиляция будет прервана и вы получите уведомление:
Compilation failed 1.jpg

К примеру "ааа" строка была помещена перед главным методом. Это неправильное языковое построение, поэтому компиляция будет прервана.
Также в сообщении об ошибке будет показана строка, в которой допущена ошибка и описание ошибки.


-Во-вторых, код будет проверен на наличие недопустимых имен или типов. Если во время компиляции возникнут какие-либо ошибки, компиляция будет прервана и вы получите уведомление:
Compilation failed 2.jpg
К примеру System.IO.Directory был использован для удаления другого каталога. Это запрещено, и вы получите уведомление: “Not allowed type was used in script”.


-Если компиляция и проверка проходит успешно, вы получите уведомление:
Compilation sucessfull.jpg
Это означает, что код не содержит ошибок в языке или неразрешенные методы.


Выполнение скрипта

Когда вы нажимаете кнопку "Run" или добавляете действие на панель быстрого доступа, скрипт будет выполнен. На данный момент "Run" должен быть использован вручную, т.е. пользователю нужно нажать кнопку "Run" или добавить действие на панель быстрого доступа.
Скрипт будет выполнен только на сервере, даже если был запущен из клиента, все клиенты будут уведомлены, если запуск скрипта будет прерван.
В случае, если работа скрипта будет прервана, скрипт не запустится до того момента, пока пользователь не откроет редактор и не отредактирует скрипт.


Вычисление команд

Каждый раз, когда скрипт будет запущен, происходит расчет каждой команды внутри скрипта.
Если количество команд внутри скрипта превышает лимит, запуск будет приостановлен и пользователь получит уведомление о том, что скрипт слишком сложный для выполнения.
Лимит помогает избежать "заморозки" игры при выполнении скрипта.


Доступные интерфейсы


Возможные действия

На данный момент в скрипте вы можете использовать только действия, доступные в панели управления.
Пользователь имеет доступ только к объектам, расположенным в одной сети, где находится программируемый блок.

Переменная GridTerminalSystem

В настоящее время, кроме "встроенных" переменных, пользователь может использовать переменную GridTerminalSystem.
Она является точкой входа во всю сеть корабля, и имеет следующие доступные методы:
List<IMyTerminalBlock> Blocks {get;}
List<IMyBlockGroup> BlockGroups {get;}
void GetBlocksOfType<T>(List<IMyTerminalBlock> blocks, Func<IMyTerminalBlock, bool> collect = null);
void SearchBlocksOfName(string name,List<IMyTerminalBlock> blocks, Func<IMyTerminalBlock, bool> collect = null);
IMyTerminalBlock GetBlockWithName(string name);
С помощью этих методов все "терминальные" блоки внутри сети могут быть собраны.


Blocks - данное свойство возвращает все блоки из сети терминала, данный метод внутренне выделяет новую память.
BlockGroups - возвращает все группы блоков из сети терминала, этот метод внутренне выделяет новую память.
GetBlocksOfType - возвращает все блоки указанного типа.
SearchBlocksOfName - данный метод является полнотекстовым поиском между всеми блоками и возвращает блок, который содержит искомую строку, поиск не чувствителен к регистру.
GetBlockWithName - данный метод возвращает первый блок с точным названием, которое было задано, поиск чувствителен к регистру.


Func<IMyTerminalBlock, BOOL> - данный "collect" метод определяет условие поиска внутри другого метода поиска. ( для примера: метод передается как параметр в метод поиска GetBlocksOfType или SearchBlocksOfName).
Метод "collect" интерфейса "IMyRadioAntenna" может использоваться для поиска включенных антенн или антенн с необходимым вам радиусом вещания.


IMyCubeBlock

IMyCubeBlock это базовый класс для каждого "терминального" блока. Он имеет следующие свойства и методы:
BOOL IsBeingHacked {get; }
BOOL IsFunctional {get; }
BOOL IsWorking {get; }
VRageMath.Vector3I Position {get; }


IsFunctional - свойство сообщает, если блок достроен до уровня, когда он может работать.
IsWorking - свойство сообщает, имеет ли данный блок достаточное питание для работы.


IMyTerminalBlock

IMyTerminalBlock это базовый класс для каждого "терминального" блока. Он имеет следующие свойства и методы:
string CustomName
string CustomNameWithFaction
string DetailedInfo
bool HasLocalPlayerAccess()
bool HasPlayerAccess(long playerId)
void RequestShowOnHUD(bool enable)
void SetCustomName(string text)
void SetCustomName(StringBuilder text)
bool ShowOnHUD
void GetActions(List<Sandbox.ModAPI.Interfaces.ITerminalAction> resultList, Func<Sandbox.ModAPI.Interfaces.ITerminalAction, bool> collect = null);
void SearchActionsOfName(string name,List<Sandbox.ModAPI.Interfaces.ITerminalAction> resultList, Func<Sandbox.ModAPI.Interfaces.ITerminalAction, bool> collect = null);
Sandbox.ModAPI.Interfaces.ITerminalAction GetActionWithName(string name);


GetActions - данный метод возвращает все доступные действия для текущего блока.
SearchActionsOfName - данный метод является полнотекстовым поиском между всеми действиями блока и возвращает действия, название которых содержит искомую строку, например, если блок имеет действия: "OnOff, OnOff_On, OnOff_Off".


SearchActionsOfName с "OnOff" - вернет все действия
SearchActionsOfName с "_On" - вернется только "OnOff_On", поиск "On" вернет все действия. Поиск не чувствителен к регистру.


GetActionWithName - данный метод вернет первое найденное действие с точно заданным названием, поиск чувствителен к регистру.


ITerminalAction

ITerminalAction предоставляет определенные действия, которые могут быть выполнены.
Он имеет следующие свойства и методы:
string Id { get; }
StringBuilder Name { get; }
void Apply(Sandbox.ModAPI.Ingame.IMyCubeBlock block);


Id - это обозначение действия, к примеру: "OnOff", "OnOff_On"
Name - это название действия, которое будет показано в интерфейсе, к примеру: "Toggle block On/Off ,Toggle block On"
Apply - применяет действие к выбранному блоку (вам нужно определить блок, из которого вы берете действие).


IMyFunctionalBlock

IMyFunctionalBlock - это базовый класс для каждого блока, который может быть включен или выключен, он наследуется от "IMyTerminalBlock". Для примера, каждый блок имеющий функции, является "терминальным", но не все "терминальные" блоки могут быть включены или выключены.
Он имеет одно свойство:
bool Enabled
Это свойство отображает: включен или выключен данный блок пользователем.


Блоки и действия


Дисклеймер

Все "терминальные" блоки имеют следующие свойства:
Имя интерфейса: это имя определенного блока в коде, название может отличаться от названия отображаемого на экране постройки. К примеру антенна имеет имя интерфейса "IMyRadioAntenna" - вам нужно использовать этот интерфейс, если вы хотите получить все антенны.


Родитель

Каждый блок имеет родителя (все блоки имеют "IMyTerminalBlock" как родителя), это нужно для того, чтобы получить все блоки одного типа, вместо конкретного блока.
К примеру, если вы хотите получить все блоки света, следует использовать "IMyLightningBlock", а если вы хотите использовать только блок ламы, вы используете "IMyInteriorLight".


Поля

Данное свойство блока доступно только для чтения.
К примеру из "IMyBeacon" вы можете получить свойство радиуса. И основываясь на этом свойстве вы можете увеличить/уменьшить радиус маяка.


Действия

Все действия, которые вы можете применить к блоку, доступны вам в скрипте, так что если вы хотите уменьшить радиус вещания антенны, вам нужно использовать "DecreaseRadius" действие для блока.


Свойства терминала

Это свойства терминала, которые вы можете получить или выставить. Эти свойства аналогичные значениям, которые находятся внутри терминала. Для установки плавающих значений, таких как радиус антенны, используйте GetValueFloat(String propertyName). Вы можете найти названия свойств для каждого блока в этом руководстве. Чтобы установить значение, используйте SetValueFloat(String propertyName,float value).
Пример: для антенны GetValueFloat(“Radius”) вы получите текущий радиус (аналогично использованию Радиуса в антенне) и SetValueFloat(“Radius”,10) установит значение радиуса на 10.

Вы также можете использовать void GetProperties(List<ITerminalProperty> resultList, Func<ITerminalProperty, bool> collect = null) чтобы получить все свойства этого блока.


Субтип

Одинаковые блоки, которые имеют тех же родителей (к примеру <TypeId> в файле "cubeblocks.sbc") и различаются только по субтипу (к примеру<SubtypeId>).
Это значит, что различия между этими блоками в коде нет.
Примером таких блоков являются грузовые контейнеры: в игре есть три типа грузовых контейнеров: малый, средний и большой. Они различаются только по субтипу, но имеют общий тип.
К примеру "Id" большого контейнера:
<Id>
<TypeId>CargoContainer</TypeId>
<SubtypeId>LargeBlockLargeContainer</SubtypeId>
</Id>
Средний контейнер:
<Id>
<TypeId>CargoContainer</TypeId>
<SubtypeId>SmallBlockMediumContainer</SubtypeId>
</Id>
Малый контейенер:
<Id>
<TypeId>CargoContainer</TypeId>
<SubtypeId>LargeBlockSmallContainer</SubtypeId>
</Id>


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


Список блоков и действий

Антенна

  • Имя интерфейса:
IMyRadioAntenna
  • Родитель:
IMyFunctionalBlock
  • Поля:
float Radius
  • Свойства терминала:
Radius - Радиус
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseRadius - Увеличить радиус вещания
DecreaseRadius - Уменьшить радиус вещания


Дуговая печь

  • Имя интерфейса:
IMyRefinery
  • Родитель:
IMyProductionBlock
IMyFunctionalBlock
  • Поля:
bool UseConveyorSystem
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
UseConveyor - Использовать систему конвейеров вкл/выкл


Искусственная масса

  • Имя интерфейса:
IMyVirtualMass
  • Родитель:
IMyFunctionalBlock
  • Поля:
None
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл


Сборщик

  • Имя интерфейса:
IMyAssembler
  • Родитель:
IMyProductionBlock
IMyFunctionalBlock
  • Поля:
bool UseConveyorSystem
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
UseConveyor - Использовать систему конвейеров вкл/выкл


Батарея

  • Имя интерфейса:
IMyBatteryBlock
  • Родитель:
IMyFunctionalBlock
  • Поля:
bool HasCapacityRemaining
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Recharge - Перезарядка вкл/выкл


Маяк

  • Имя интерфейса:
IMyBeacon
  • Родитель:
IMyFunctionalBlock
  • Поля:
float Radius
  • Свойства терминала:
Radius - Радиус
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseRadius - Увеличить радиус вещания
DecreaseRadius - Уменьшить радиус вещания


Кнопочная панель

  • Имя интерфейса:
IMyButtonPanel
  • Поля:
bool AnyoneCanUse
  • Действия:
AnyoneCanUse - Все могут использовать вкл/выкл


Камера

  • Имя интерфейса:
IMyCameraBlock
  • Родитель:
IMyFunctionalBlock
  • Поля:
None
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
View - Вид


Кабина

  • Имя интерфейса:
IMyCockpit
  • Родитель:
IMyShipController
  • Поля:
bool ControlWheels
bool ControlThrusters
bool HandBrake
bool DampenersOverride
  • Действия:
ControlThrusters - Управление ускорителями вкл/выкл
ControlWheels - Управление колесами вкл/выкл
HandBrake - Ручной тормоз вкл/выкл
DampenersOverride - Гаситель инерции вкл/выкл


Сборщик

  • Имя интерфейса:
IMyCollector
  • Родитель:
IMyFunctionalBlock
  • Поля:
bool UseConveyorSystem
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
UseConveyor - Использовать систему конвейеров вкл/выкл


Коннектор

  • Имя интерфейса:
IMyShipConnector
  • Родитель:
IMyFunctionalBlock
  • Поля:
bool ThrowOut
bool CollectAll
bool IsLocked
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
ThrowOut - Выбросить вкл/выкл
CollectAll - Собирать всё вкл/выкл
SwitchLock - Переключить стыковки


Панель управления

  • Имя интерфейса:
IMyControlPanel
  • Поля:
None
  • Действия:
None


Терминал управления

  • Имя интерфейса:
IMyCockpit
  • Родитель:
IMyShipController
  • Поля:
bool ControlWheels
bool ControlThrusters
bool HandBrake
bool DampenersOverride
  • Действия:
ControlThrusters - Управление ускорителями вкл/выкл
ControlWheels - Управление колесами вкл/выкл
HandBrake - Ручной тормоз вкл/выкл
DampenersOverride - Гаситель инерции вкл/выкл


Дверь

  • Имя интерфейса:
IMyDoor
  • Родитель:
IMyFunctionalBlock
  • Поля:
bool Open
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Open - Открыто/Закрыто
Open_On - Открыто
Open_Off - Закрыто


Бур

  • Имя интерфейса:
IMyShipDrill
  • Родитель:
IMyFunctionalBlock
  • Поля:
bool UseConveyorSystem
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
UseConveyor - Использовать систему конвейеров вкл/выкл


Кресло пилота

  • Имя интерфейса:
IMyCockpit
  • Родитель:
IMyShipController
  • Поля:
bool ControlWheels
bool ControlThrusters
bool HandBrake
bool DampenersOverride
  • Действия:
ControlThrusters - Управление ускорителями вкл/выкл
ControlWheels - Управление колесами вкл/выкл
HandBrake - Ручной тормоз вкл/выкл
DampenersOverride - Гаситель инерции вкл/выкл


Турель Гатлинга

  • Имя интерфейса:
IMyLargeGatlingTurret
  • Родитель:
IMyLargeConveyorTurretBase
IMyLargeTurretBase
IMyFunctionalBlock
  • Поля:
bool UseConveyorSystem
bool CanControl
float Range
  • Свойства терминала:
Radius - Радиус
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Control - Управление
IncreaseRange - Увеличить радиус
DecreaseRange - Уменьшить радиус
UseConveyor - Использовать систему конвейеров вкл/выкл


Генератор гравитации

  • Имя интерфейса:
IMyGravityGenerator
  • Родитель:
IMyGravityGeneratorBase
IMyFunctionalBlock
  • Поля:
float FieldWidth
float FieldHeight
float FieldDepth
float Gravity
  • Свойства терминала:
Width - Ширина поля
Height - Высота поля
Depth - Глубина поля
Gravity - Ускорение
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseWidth - Увеличить ширину поля
DecreaseWidth - Уменьшить ширину поля
IncreaseHeight - Увеличить высоту поля
DecreaseHeight - Уменьшить высоту поля
IncreaseDepth - Увеличить глубину поля
DecreaseDepth - Уменьшить глубину поля
IncreaseGravity - Увеличить ускорение
DecreaseGravity - Уменьшить ускорение


Резак

  • Имя интерфейса:
IMyShipGrinder
  • Родитель:
IMyShipToolBase
  • Родитель:
IMyFunctionalBlock
  • Поля:
None
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
UseConveyor - Использовать систему конвейеров вкл/выкл


Гироскоп

  • Имя интерфейса:
IMyGyro
  • Родитель:
IMyFunctionalBlock
  • Поля:
float GyroPower
bool GyroOverride
float Yaw
float Pitch
float Roll
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreasePower - Увеличить мощность
DecreasePower - Уменьшить мощность
Override - Перехват управления вкл/выкл
IncreaseYaw - Увеличить рысканье
DecreaseYaw - Уменьшить рысканье
IncreasePitch - Увеличить тангаж
DecreasePitch - Уменьшить тангаж
IncreaseRoll - Увеличить крен
DecreaseRoll - Уменьшить крен


Лампа

  • Имя интерфейса:
IMyInteriorLight
  • Родитель:
IMyLightingBlock
IMyFunctionalBlock
  • Поля:
float Radius
float Intensity
float BlinkIntervalSeconds
float BlinkLenght
float BlinkOffset
  • Свойства терминала:
Color - Цвет
Radius - Радиус
Falloff - Спад
Intensity - Интенсивность
Blink Interval - Интервал вспышек
Blink Lenght - Продолжительность вспышек
Blink Offset - Задержка вспышек
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseRadius - Увеличить радиус
DecreaseRadius - Уменьшить радиус
IncreaseBlink Interval - Увеличить интервал вспышек
DecreaseBlink Interval - Уменьшить интервал вспышек
IncreaseBlink Lenght - Увеличить продолжительность вспышек
DecreaseBlink Lenght - Уменьшить продолжительность вспышек
IncreaseBlink Offset - Увеличить задержку вспышек
DecreaseBlink Offset - Уменьшить задержку вспышек


Турель

  • Имя интерфейса:
IMyLargeInteriorTurret
  • Родитель:
IMyLargeTurretBase
  • Имя интерфейса:
IMyFunctionalBlock
  • Поля:
bool CanControl
float Range
  • Свойства терминала:
Radius - Радиус
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Control - Управление
IncreaseRange - Увеличить радиус
DecreaseRange - Уменьшить радиус


Посадочные шасси

  • Имя интерфейса:
IMyLandingGear
  • Родитель:
IMyFunctionalBlock
  • Поля:
float BreakForce
  • Свойства терминала:
BreakForce - Сила отрыва
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Lock - Запереть
Unlock - Отпереть
SwitchLock - Переключить стыковки
Autolock - Автозацеп вкл/выкл
IncreaseBreakForce - Увеличить силу отрыва
DecreaseBreakForce - Уменьшить силу отрыва


Малый грузовой контейнер

  • Имя интерфейса:
IMyCargoContainer
  • Поля:
None
  • Действия:
None


Средний грузовой контейнер

  • Имя интерфейса:
IMyCargoContainer
  • Поля:
None
  • Действия:
None


Большой грузовой контейнер

  • Имя интерфейса:
IMyCargoContainer
  • Поля:
None
  • Действия:
None


Малый реактор

  • Имя интерфейса:
IMyReactor
  • Родитель:
IMyFunctionalBlock
  • Поля:
bool UseConveyorSystem
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
UseConveyor - Использовать систему конвейеров вкл/выкл


Большой реактор

  • Имя интерфейса:
IMyReactor
  • Родитель:
IMyFunctionalBlock
  • Поля:
bool UseConveyorSystem
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
UseConveyor - Использовать систему конвейеров вкл/выкл


Малый ускоритель

  • Имя интерфейса:
IMyThrust
  • Родитель:
IMyFunctionalBlock
  • Поля:
float ThrustOverride
  • Свойства терминала:
Override - Тяга
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseOverride - Увеличить тягу
DecreaseOverride - Уменьшить тягу


Большой ускоритель

  • Имя интерфейса:
IMyThrust
  • Родитель:
IMyFunctionalBlock
  • Поля:
float ThrustOverride
  • Свойства терминала:
Override - Тяга
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseOverride - Увеличить тягу
DecreaseOverride - Уменьшить тягу


Медпункт

  • Имя интерфейса:
IMyMedicalRoom
  • Родитель:
IMyFunctionalBlock
  • Поля:
None
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл


Стыковочный блок

  • Имя интерфейса:
IMyShipMergeBlock
  • Родитель:
IMyFunctionalBlock
  • Поля:
None
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл


Ракетная турель

  • Имя интерфейса:
IMyLargeMissileTurret
  • Родитель:
IMyLargeConveyorTurretBase
IMyLargeTurretBase
IMyFunctionalBlock
  • Поля:
bool UseConveyorSystem
bool CanControl
float Range
  • Свойства терминала:
Range - Радиус
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Control - Управление
IncreaseRange - Увеличить радиус
DecreaseRange - Уменьшить радиус
UseConveyor - Использовать систему конвейеров вкл/выкл


Детектор руды

  • Имя интерфейса:
IMyOreDetector
  • Родитель:
IMyFunctionalBlock
  • Поля:
float Range
bool BroadcastUsingAntennas
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл


Пассажирское кресло

  • Имя интерфейса:
IMyCockpit
  • Родитель:
IMyShipController
  • Поля:
bool ControlWheels
bool ControlThrusters
bool HandBrake
bool DampenersOverride
  • Действия:
ControlThrusters - Управление ускорителями вкл/выкл
ControlWheels - Управление колесами вкл/выкл
HandBrake - Ручной тормоз вкл/выкл
DampenersOverride - Гаситель инерции вкл/выкл


Поршень

  • Имя интерфейса:
IMyPistonBase
  • Родитель:
IMyFunctionalBlock
  • Поля:
float Velocity
float MinLimit
float MaxLimit
  • Свойства терминала:
Velocity - Скорость
UpperLimit - Максимальная дистанция
LowerLimit - Минимальная дистанция
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Reverse - Реверс
IncreaseVelocity - Увеличить скорость
DecreaseVelocity - Уменьшить скорость
ResetVelocity - Сбросить скорость
IncreaseUpperLimit - Увеличить максимальную дистанцию
DecreaseUpperLimit - Уменьшить максимальную дистанцию
IncreaseLowerLimit - Увеличить минимальную дистанцию
DecreaseLowerLimit - Уменьшить минимальную дистанцию


Programmable block

  • Имя интерфейса:
IMyProgrammableBlock
  • Родитель:
IMyFunctionalBlock
  • Поля:
bool IsRunning
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Run - Run


Проэктор

  • Interface name:
IMyProjector
  • Parent:
IMyFunctionalBlock
  • Поля:
int ProjectionOffsetX
int ProjectionOffsetY
int ProjectionOffsetZ
int ProjectionRotX
int ProjectionRotY
int ProjectionRotZ
  • Свойства терминала:
X - Ось X
Y - Ось Y
Z - Ось Z
RotX - Поворот по оси X
RotY - Поворот по оси Y
RotZ - Поворот по оси Z
  • Действия:
OnOff- Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseX - Увеличить смещение по оси X
DecreaseX - Уменьшить смещение по оси X
IncreaseY - Увеличить смещение по оси Y
DecreaseY - Уменьшить смещение по оси Y
IncreaseZ - Увеличить смещение по оси Z
DecreaseZ - Уменьшить смещение по оси Z
IncreaseRotX - Увеличить вращение по оси X
DecreaseRotX - Уменьшить вращение по оси X
IncreaseRotY - Увеличить вращение по оси Y
DecreaseRotY - Уменьшить вращение по оси Y
IncreaseRotZ - Увеличить вращение по оси Z
DecreaseRotZ - Уменьшить вращение по оси Z


Перезаряжаемая ракетница

  • Имя интерфейса:
IMySmallMissileLauncherReload
  • Родитель:
IMyFunctionalBlock
  • Поля:
bool UseConveyorSystem
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
UseConveyor - Использовать систему конвейеров вкл/выкл


Очистительный завод

  • Имя интерфейса:
IMyRefinery
  • Родитель:
IMyFunctionalBlock
IMyProductionBlock
  • Поля:
bool UseConveyorSystem
  • Действия:
OnOff - Переключить блок вкл/выкл


Прожектор

  • Имя интерфейса:
IMyReflectorLight
  • Родитель:
IMyLightingBlock
IMyFunctionalBlock
  • Поля:
float Radius
float Intensity
float BlinkIntervalSeconds
float BlinkLenght
float BlinkOffset
  • Свойства терминала:
Color - Цвет
Radius - Радиус
Falloff - Спад
Intensity - Интенсивность
Blink Interval - Интервал вспышек
Blink Lenght - Продолжительность вспышек
Blink Offset - Задержка вспышек
  • Actions:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseRadius - Увеличить радиус
DecreaseRadius - Уменьшить радиус
IncreaseBlink Interval - Увеличить интервал вспышек
DecreaseBlink Interval - Уменьшить интервал вспышек
IncreaseBlink Lenght - Увеличить продолжительность вспышек
DecreaseBlink Lenght - Уменьшить продолжительность вспышек
IncreaseBlink Offset - Увеличить задержку вспышек
DecreaseBlink Offset - Уменьшить задержку вспышек
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
UseConveyor - Использовать систему конвейеров вкл/выкл


Удаленное управление

  • Имя интерфейса:
IMyRemoteControl
  • Родитель:
IMyShipController
  • Поля:
bool ControlWheels
bool ControlThrusters
bool HandBrake
bool DampenersOverride
  • Действия:
ControlThrusters - Управление ускорителями вкл/выкл
ControlWheels - Управление колесами вкл/выкл
HandBrake - Ручной тормоз вкл/выкл
DampenersOverride - Гаситель инерции вкл/выкл
Control - Управление


Ракетная установка

  • Имя интерфейса:
IMySmallMissileLauncher
  • Родитель:
IMyFunctionalBlock
  • Поля:
bool UseConveyorSystem
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
UseConveyor - Использовать систему конвейеров вкл/выкл


Двигатель

  • Имя интерфейса:
IMyMotorStator
  • Родитель:
IMyMotorBase
IMyFunctionalBlock
  • Поля:
bool IsAttached
float Torque
float BrakingTorque
float Velocity
float LowerLimit
float UpperLimit
float Displacement
  • Свойства терминала
Torque - Вращающий момент
BrakingTorque - Тормозной момент
Velocity - Скорость
LowerLimit - Нижний предел
UpperLimit - Верхний предел
Displacement - Смещение
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Reverse - Реверс
Detach - Открепить
Attach - Прикрепить
IncreaseTorque - Увеличить вращающий момент
DecreaseTorque - Уменьшить вращающий момент
IncreaseBrakingTorque - Увеличить тормозной момент
DecreaseBrakingTorque - Уменьшить тормозной момент
IncreaseVelocity - Увеличить скорость
DecreaseVelocity - Уменьшить скорость
ResetVelocity - Сбросить скорость
IncreaseLowerLimit - Увеличить нижний предел
DecreaseLowerLimit - Уменьшить нижний предел
IncreaseUpperLimit - Увеличить верхний предел
DecreaseUpperLimit - Уменьшить верхний предел
IncreaseDisplacement - Увеличить смещение ротора
DecreaseDisplacement - Уменьшить смещение ротора


Сенсор

  • Имя интерфейса:
IMySensorBlock
  • Родитель:
IMyFunctionalBlock
  • Поля:
float LeftExtend
float RightExtend
float TopExtend
float BottomExtend
float FrontExtend
float BackExtend
bool DetectPlayers
bool DetectFloatingObjects
bool DetectSmallShips
bool DetectLargeShips
bool DetectStations
bool DetectAsteroids
  • Свойства терминала:
Left - Охват слева
Right - Охват справа
Bottom - Охват снизу
Top - Охват сверху
Back - Охват сзади
Front - Охват спереди
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseLeft - Увеличить охват слева
DecreaseLeft - Уменьшить охват слева
IncreaseRight - Увеличить охват справа
DecreaseRight - Уменьшить охват справа
IncreaseBottom - Увеличить охват снизу
DecreaseBottom - Уменьшить охват снизу
IncreaseTop - Увеличить охват сверху
DecreaseTop - Уменьшить охват сверху
IncreaseBack - Увеличить охват сзади
DecreaseBack - Уменьшить охват сзади
IncreaseFront - Увеличить охват спереди
DecreaseFront - Уменьшить охват спереди
Detect Players - Реагировать на игроков вкл/выкл
Detect Floating Objects - Реагировать на летящие объекты вкл/выкл
Detect Small Ships - Реагировать на маленькие корабли вкл/выкл
Detect Large Ships - Реагировать на большие корабли вкл/выкл
Detect Stations - Реагировать на станции вкл/выкл
Detect Asteroids - Реагировать на астероиды вкл/выкл


Солнечная панель

  • Имя интерфейса:
IMySolarPanel
  • Поля:
None
  • Действия:
None


Sound Block

  • Имя интерфейса:
IMySoundBlock
  • Родитель:
IMyFunctionalBlock
  • Поля:
float Volume
float Range
bool IsSoundSelected
float LoopPeriod
  • Свойства терминала:
VolumeSlider - Громкость
RangeSlider- Радиус
LoopableSlider - Время цикла
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseVolumeSlider - Увеличить громкость
DecreaseVolumeSlider - Уменьшить громкость
IncreaseRangeSlider - Увеличить дальность
DecreaseRangeSlider - Уменьшить дальность
PlaySound - Играть
StopSound - Остановить
IncreaseLoopableSlider - Увеличить время цикла
DecreaseLoopableSlider - Уменьшить время цикла


Сферический генератор гравитации

  • Имя интерфейса:
IMyGravityGeneratorSphere
  • Родитель:
IMyGravityGeneratorBase
IMyFunctionalBlock
  • Поля:
float Radius
float Gravity
  • Свойства терминала:
Radius - Радиус
Gravity - Ускорение
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseRadius - Увеличить радиус
DecreaseRadius - Уменьшить радиус
IncreaseGravity - Увеличить ускорение
DecreaseGravity - Уменьшить ускорение


Таймер

  • Имя интерфейса:
IMyTimerBlock
  • Родитель:
IMyFunctionalBlock
  • Поля:
bool IsCountingDown
float TriggerDelay
  • Свойства терминала:
TriggerDelay - Задержка
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
IncreaseTriggerDelay - Увеличить задержку
DecreaseTriggerDelay - Уменьшить задержку
TriggerNow - Активировать
Start - Старт
Stop - Стоп


Боеголовка

  • Имя интерфейса:
IMyWarhead
  • Поля:
bool IsCountingDown
float DetonationTime
  • Свойства терминала:
DetonationTime - Задержка взрыва
  • Действия:
IncreaseDetonationTime - Увеличить задержку подрыва
DecreaseDetonationTime - Уменьшить задержку подрыва
StartCountdown - Запустить отсчет
StopCountdown - Остановить отсчет
Safety - Предохранитель вкл/выкл
Detonate - Подорвать


Сварщик

  • Имя интерфейса:
IMyShipWelder
  • Родитель:
IMyShipToolBase
IMyFunctionalBlock
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
UseConveyor - Использовать систему конвейеров вкл/выкл


Подвеска колес 1x1

  • Имя интерфейса:
IMyMotorSuspension
  • Родитель:
IMyMotorBase
IMyFunctionalBlock
  • Поля:
bool Steering
bool Propulsion
float Damping
float Strength
float Friction
float Power
  • Свойства терминала:
Damping - Амортизация
Strength - Сила
Friction - Трение
Power - Мощность
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Steering - Рулевое управление вкл/выкл
Propulsion - Движущая сила вкл/выкл
IncreaseDamping - Увеличить амортизацию
DecreaseDamping - Уменьшить амортизацию
IncreaseStrength - Увеличить силу
DecreaseStrength - Уменьшить силу
IncreaseFriction - Увеличить трение
DecreaseFriction - Уменьшить трение
IncreasePower - Увеличить мощность
DecreasePower - Уменьшить мощность


Подвеска колес 3x3

  • Имя интерфейса:
IMyMotorSuspension
  • Родитель:
IMyMotorBase
IMyFunctionalBlock
  • Поля:
bool Steering
bool Propulsion
float Damping
float Strength
float Friction
float Power
  • Свойства терминала:
Damping - Амортизация
Strength - Сила
Friction - Трение
Power - Мощность
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Steering - Рулевое управление вкл/выкл
Propulsion - Движущая сила вкл/выкл
IncreaseDamping - Увеличить амортизацию
DecreaseDamping - Уменьшить амортизацию
IncreaseStrength - Увеличить силу
DecreaseStrength - Уменьшить силу
IncreaseFriction - Увеличить трение
DecreaseFriction - Уменьшить трение
IncreasePower - Увеличить мощность
DecreasePower - Уменьшить мощность


Подвеска колес 5x5

  • Имя интерфейса:
IMyMotorSuspension
  • Родитель:
IMyMotorBase
IMyFunctionalBlock
  • Поля:
bool Steering
bool Propulsion
float Damping
float Strength
float Friction
float Power
  • Свойства терминала:
Damping - Амортизация
Strength - Сила
Friction - Трение
Power - Мощность
  • Действия:
OnOff - Переключить блок вкл/выкл
OnOff_On - Переключить блок вкл
OnOff_Off - Переключить блок выкл
Steering - Рулевое управление вкл/выкл
Propulsion - Движущая сила вкл/выкл
IncreaseDamping - Увеличить амортизацию
DecreaseDamping - Уменьшить амортизацию
IncreaseStrength - Увеличить силу
DecreaseStrength - Уменьшить силу
IncreaseFriction - Увеличить трение
DecreaseFriction - Уменьшить трение
IncreasePower - Увеличить мощность
DecreasePower - Уменьшить мощность


Обновления


Обновление от 02/01/15

Изменения: Доступные пространства имен.
В настоящее время вы можете использовать только следующие пространства имен из Modding API:
Sandbox.ModAPI.Ingame
Sandbox.ModAPI.Interfaces
Sandbox.Common.ObjectBuilders
VRageMath
VRage


Вы не можете использовать остальные пространства имен из Sandbox.ModAPI или любые другие пространства имен игры.


Перевод

Автор:
Who You


Благодарность за помощь в переводе:
Александр Онищук
Денис Пикущий
Никита Строганов aka Findoss
Денис Пушкарёв