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

From Space Engineers Wiki
Jump to: navigation, search
Line 3: Line 3:
 
<!-- Если кто начнет редактирование - выставьте пометку (The_Netos) -->
 
<!-- Если кто начнет редактирование - выставьте пометку (The_Netos) -->
 
<!-- Небольшое описание, чтобы страница не пустовала. По сути плейсхолдер (GamingHater)-->
 
<!-- Небольшое описание, чтобы страница не пустовала. По сути плейсхолдер (GamingHater)-->
Программируемый блок - блок, добавленный в обновлении 1.063. Позволяет контролировать системы кораблей с помощью скриптов на языке С#. На данный момент способен управлять всем стандартным функционалом терминала, в том числе менять цвет ламп и имена маяков в реальном времени.
+
Программируемый блок - блок, добавленный в обновлении 1.063. Позволяет контролировать системы кораблей с помощью скриптов на языке С#. На данный момент способен управлять всем стандартным функционалом терминала.
 
<!-- Требуется форматирование параграфов и, возможно, чистовая правка текста (Денис Пушкарёв aka Volhx) -->
 
<!-- Требуется форматирование параграфов и, возможно, чистовая правка текста (Денис Пушкарёв aka Volhx) -->
 
Ограничения:
 
 
Ниже вы найдете список известных ограничений о которых мы знаем, а так же возможные их решения.
 
 
Оператор "foreach" не работает на 64-битной системе.
 
Проблема:
 
На данный момент использование оператора "foreach" внутри скрипта приведет к "bad program expection" и остановит запуск скрипта. Мы работаем над устранением этой проблемы.
 
Решение:
 
Все наши внутри-игровые интерфейсы работают со списками (list) как с коллекциями. Пожалуйста, используйте итерационный цикл "for" для работы с ними.
 
 
Функция лямбды не работает.
 
Проблема:
 
На данный момент функция лямбды не поддерживается, если вы используете ее в скрипте, скрипт не запустится.
 
Решение:
 
Пожалуйста используйте метод вместо функции лямбды, если это возможно.
 
 
Пользовательские константы и статичные методы не работают.
 
Проблема:
 
На данный момент использование констант или статичных методов приводит к неработоспособности скрипта.
 
Решение:
 
Пожалуйста, не испольуйте в скрипте константы или статичные пользовательские методы.
 
 
Переменные, устанавливаемые пользователем - не сохраняются.
 
Проблема:
 
Пользовательские переменные используемые в скрипте не сохраняются и после загрузки возвращаются к своим значениям по умолчанию.
 
Решение:
 
Отсутствует.
 
 
----
 
 
Обзор интерфейса:
 
 
Программируемый блок.
 
 
Панель программируемого блока на данный момент содержит следующие кнопки:
 
 
Edit – открыть редактор для редактирования скриптов и возможности сохранения/загрузки их на диск.
 
Также вы можете загрузить свои скрипты в "workshop" или загрузить себе скрипты, на которые вы подписаны.
 
Run – запустить скрипт сохраненный в редакторе. Скрипт будет запущен один раз. Однако эта кнопка является действием в терминале и вы можете соединить ее с сенсором, таймером или добавить на панель быстрого доступа.
 
:[[File:Example.jpg]]
 
 
 
Редактор.
 
:[[File:Example.jpg]]
 
Редактор кода содержит следующие кнопки:
 
Help – открыть мануал по программированию в игре.
 
Check code – проверить код на наличие ошибок, а так же возможность использовать данный код.
 
Remember & Exit – сохранить ваш код, закрывает экран редактора и переведет к панели терминала.
 
Remember code – сохранить ваш код и оставит экран редактора открытым.
 
Browse Workshop – открыть окно для управления скриптами, вы можете сохранить/загрузить скрипты на диск, загрузить свои скрипты в "workshop" или загрузить себе скрипты, на которые вы подписаны.
 
Line counter – отобразить текущую строку кода и общее количество строк в коде.
 
 
Экран "Workshop".
 
 
Этот экран аналогичный экрану с чертежами и содержит следующие кнопки:
 
Ok – загрузить выбранный скрипт в редактор и закроет экран.
 
Cancel – закрыть экран (изменения не будут внесены в редактор)
 
Details – открыть экран "детали", где вы можете увидеть описание скрипта.
 
Rename (только для локальных скриптов) – переименовать выбранный скрипт, если вы попытаетесь переименовать существующий скрипт, игра попросит подтверждение.
 
Delete (только для локальных скриптов) – удалить выбранный скрипт, после подтверждения.
 
Create from editor – создать новый скрипт с именем по умолчанию Script_XX, которое начинается с 0, и если скрипт с уже выбранным именем существует, то числовое значение в названии будет повышено. Для примера, первым будет Script_0, далее Script_1 и т.д...
 
Replace from editor (только для локальных скриптов) – заменить (после подтверждения пользователя) выбранный скрипт на скрипт из редактора.
 
Refresh Scripts – обновить локальные скрипты и скрипты на которые вы подписаны.
 
 
Детали (локальный скрипт).
 
 
Этот экран показывает детали для локальных скриптов и содержит следующие кнопки:
 
Rename – переименовать выбранный скрипт, если вы попытаетесь переименовать существующий скрипт, игра попросит подтверждение.
 
Delete – удалить выбранный скрипт, после подтверждения.
 
Publish – опубликовать выбранный скрипт в "workshop" и показать странницу с опубликованным скриптом.
 
Browse Workshop – открыть экран "workshop" для просмотра, а также подписаться на скрипты.
 
Close – закрыть экран.
 
 
Детали ("workshop" скрипт).
 
 
Этот экран показывает детали для скриптов из "workshop" и содержит следующие кнопки:
 
Open in Workshop – открыть "workshop" страницу скрипта.
 
Close – закрыть экран.
 
 
Гайд по программированию:
 
Введение.
 
 
Доступ к редактору.
 
Только один игрок может редактировать скрипт. Если кто-нибудь откроет занятый программируемый блок и попытается открыть редактор, он получит уведомление о том, что редактор уже открыт.
 
 
Метод Main.
 
Метод Main - создается при первом открытии редактора, этот метод является основной точкой входа в ваш скрипт. При переименовании или удаление этого метода скрипт не запуститься и вы получите уведомление. Пользовательские методы/переменные могут быть определены и использованы но только внутри главного метода (main).
 
 
Видимость переменных.
 
Есть два типа переменных для скрипта:
 
-Local (внутри методов) - эти переменные будут хранить значение только во время выполнения метода. Подробнее - локальная переменная находится в области видимости до тех пор, пока закрывающая фигурная скобка не укажет конец блока операторов или метода, в котором она объявлена.А так же, объявленная в операторах цикла "for", "while" или подобных им, видима в пределах тела цикла.
 
-Global (за пределами методов) - эти переменные будут хранить значения при работе всего скрипта.
 
Подробнее - если переменная должна сохранить значение между отдельными блоками программы, она должна быть определена вне этих методов т.е. глобально.
 
-После нажатия "Remember & Exit" или "Remember" кнопки, предыдущий скрипт будет переписан и все глобальные переменные будут потеряны.
 
 
Компиляция.
 
Когда вы нажмете кнопку “Check code”, код будет скомпилирован, также будет показан результат компиляции.
 
Процесс компиляции состоит из двух этапов:
 
-Во первых, код внутри редактора будет проверен на синтаксические ошибки, внутри языка C#
 
Если во время компиляции возникнут какие-либо ошибки, вы получите уведомление, а компиляция будет прервана.
 
К примеру "ааа" строка была помещена перед главным методом. Это не правильное языковое построение и компиляция будет прервана.
 
Также в сообщении об ошибке будет показана строка, в которой допущена ошибка и описание ошибки.
 
-Во вторых, код будет проверен на наличие недопустимых имен или типов. Если во время компиляции возникнут какие-либо ошибки, вы получите уведомление, а компиляция будет прервана.
 
К примеру System.IO.Directory был использован для удаления другого каталога. Это запрещено и вы получите уведомление: “Not allowed type was used in script”.
 
-Если компиляция и проверка проходит успешно, вы получите уведомление.
 
Это означает, что код не содержит ошибок в языке или не разрешенных методов.
 
 
Выполнение скрипта.
 
Когда вы нажимаете кнопку "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> собирающий метод можно использовать для определения условия поиска в категории. Например, собирающий метод "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
 
Это свойство отображает: включен или выключен данный блок пользователем.
 
 
Блоки и действия, список - 1/3
 
 
Дисклеймер.
 
Все "терминальные" блоки имеют следующие свойства:
 
Имя интерфейса: это имя определенного блока в коде, название может отличаться от названия отображаемого на экране постройки. К примеру антенна имеет имя интерфейса "IMyRadioAntenna" - вам нужно использовать этот интерфейс, если вы хотите получить все антенны.
 
 
Родитель: каждый блок имеет родителя (все блоки имеют "IMyTerminalBlock" как родителя), это нужно для того, чтобы получить все блоки одного типа, вместо конкретного блока.
 
К примеру, если вы хотите получить все блоки света, следует использовать "IMyLightningBlock", а если вы хотите использовать только блок ламы, вы используете "IMyInteriorLight".
 
 
Поля: данное свойство блока доступно только для чтения. К примеру из "IMyBeacon" вы можете получить свойство радиуса. И основываясь на этом свойстве вы можете увеличить/уменьшить радиус маяка.
 
 
Действия: все действия, которые вы можете применить к блоку, доступны вам в скрипте, так что если вы хотите уменьшить радиус вещания антенны, вам нужно использовать "DecreaseRadius" действие для блока.
 
 
Одинаковые класс блоков имеют разный "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" для всех типов грузовых контейнеров.
 
 
Антенна
 
Имя интерфейса: IMyRadioAntenna
 
Родитель: IMyFunctionalBlock
 
Поля: float 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
 
Действия:
 
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
 
Действия:
 
OnOff - Переключить блок вкл/выкл
 
OnOff_On - Переключить блок вкл
 
OnOff_Off - Переключить блок выкл
 
Control - Управление
 
IncreaseRange - Увеличить радиус
 
DecreaseRange - Уменьшить радиус
 
UseConveyor - Использовать систему конвейеров вкл/выкл
 
 
Генератор гравитации
 
Имя интерфейса: IMyGravityGenerator
 
Родитель: IMyGravityGeneratorBase
 
Родитель: IMyFunctionalBlock
 
Поля:
 
float FieldWidth
 
float FieldHeight
 
float FieldDepth
 
float 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 - Уменьшить крен
 
 
Блоки и действия, список - 2/3
 
 
Лампа
 
Interface name: IMyInteriorLight
 
Parent: IMyLightingBlock
 
Parent: IMyFunctionalBlock
 
Fields:
 
float Radius
 
float Intensity
 
float BlinkIntervalSeconds
 
float BlinkLenght
 
float BlinkOffset
 
Действия:
 
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
 
 
Турель
 
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
 
 
Посадочные шасси
 
Interface name: IMyLandingGear
 
Parent: IMyFunctionalBlock
 
Fields:
 
float BreakForce
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
Lock - Lock
 
Unlock - Unlock
 
SwitchLock - Switch lock
 
Autolock - Autolock On/Off
 
IncreaseBreakForce - Increase Break Force
 
DecreaseBreakForce - Decrease Break Force
 
 
Малый грузовой контейнер
 
Interface name: IMyCargoContainer
 
Fields: None
 
Действия: None
 
 
Средний грузовой контейнер
 
Interface name: IMyCargoContainer
 
Fields: None
 
Действия: None
 
 
Большой грузовой контейнер
 
Interface name: IMyCargoContainer
 
Fields: None
 
Действия: None
 
 
Малый реактор
 
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
 
 
Большой реактор
 
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
 
 
Малый ускоритель
 
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
 
 
Большой ускоритель
 
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
 
 
Медпункт
 
Interface name: IMyMedicalRoom
 
Parent: IMyFunctionalBlock
 
Fields: None
 
Действия:
 
OnOff -> Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
 
Стыковочный блок
 
Interface name: IMyShipMergeBlock
 
Parent: IMyFunctionalBlock
 
Fields: None
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
 
Ракетная турель
 
Interface name: IMyLargeMissileTurret
 
Parent: IMyLargeConveyorTurretBase
 
Parent: IMyLargeTurretBase
 
Parent: IMyFunctionalBlock
 
Fields:
 
bool UseConveyorSystem
 
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
 
UseConveyor - Use Conveyor System On/Off
 
 
Детектор руды
 
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
 
 
Пассажирское кресло
 
Interface name: IMyCockpit
 
Parent: IMyShipController
 
Fields:
 
bool ControlWheels
 
bool ControlThrusters
 
bool HandBrake
 
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
 
Interface name: IMyProgrammableBlock
 
Parent: IMyFunctionalBlock
 
Fields: bool IsRunning
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
Run - Run
 
 
Блоки и действия, список - 3/3
 
 
Очистительный завод
 
Interface name: IMyRefinery
 
Parent: IMyFunctionalBlock
 
Parent: IMyProductionBlock
 
Fields: bool UseConveyorSystem
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
UseConveyor - Use Conveyor System On/Off
 
 
Прожектор
 
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
 
 
Удаленное управление
 
Interface name: IMyRemoteControl
 
Parent: IMyShipController
 
Fields:
 
bool ControlWheels
 
bool ControlThrusters
 
bool HandBrake
 
bool DampenersOverride
 
Действия:
 
ControlThrusters - Control thrusters On/Off
 
ControlWheels - Control wheels On/Off
 
HandBrake - Handbrake On/Off
 
DampenersOverride - Inertia dampeners On/Off
 
Control - Control
 
 
Ракетная установка
 
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
 
 
Перезаряжаемая ракетница
 
Interface name: IMySmallMissileLauncherReload
 
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
 
 
Двигатель
 
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
 
 
Сенсор
 
Interface name: IMySensorBlock
 
Parent: IMyFunctionalBlock
 
Fields:
 
float LeftExtend
 
float RightExtend
 
float TopExtend
 
float BottomExtend
 
float FrontExtend
 
float BackExtend
 
bool DetectPlayers
 
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
 
Interface name: IMySoundBlock
 
Parent: IMyFunctionalBlock
 
Fields:
 
float Volume
 
float Range
 
bool IsSoundSelected
 
float LoopPeriod
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
IncreaseVolumeSlider - Increase Volume
 
DecreaseVolumeSlider - Decrease Volume
 
IncreaseRangeSlider - Increase Range
 
DecreaseRangeSlider - Decrease Range
 
PlaySound - Play
 
StopSound - Stop
 
IncreaseLoopableSlider - Increase Loop time
 
DecreaseLoopableSlider - Decrease Loop time
 
 
Сферический генератор гравитации
 
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
 
 
Таймер
 
Interface name: IMyTimerBlock
 
Parent: IMyFunctionalBlock
 
Fields:
 
bool IsCountingDown
 
float TriggerDelay
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
IncreaseTriggerDelay - Increase Delay
 
DecreaseTriggerDelay - Decrease Delay
 
TriggerNow - Trigger now
 
Start - Start
 
Stop - Stop
 
 
Боеголовка
 
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
 
 
Сварщик
 
Interface name: IMyShipWelder
 
Parent: IMyShipToolBase
 
Parent: IMyFunctionalBlock
 
Действия:
 
OnOff - Toggle block On/Off
 
OnOff_On - Toggle block On
 
OnOff_Off - Toggle block Off
 
UseConveyor - Use Conveyor System On/Off
 
 
Подвеска колес 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
 
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
 
 
Подвеска колес 5x5
 
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 или любые другие пространства имен игры.
 
 
Перевёл Who You [http://vk.com/id185753949 Who You]
 
 
помощь в переводе:
 
Никита Строганов aka Findoss
 
Денис Пикущий
 
Александр Онищук
 
Денис Пушкарёв
 

Revision as of 19:45, 2 January 2015





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