Space Engineers

Space Engineers

Not enough ratings
Защитный скрипт для ангара
   
Award
Favorite
Favorited
Unfavorite
Type: World
File Size
Posted
117.053 KB
8 Jan, 2015 @ 11:06am
1 Change Note ( view )

Subscribe to download
Защитный скрипт для ангара

Description
Пока разбирался как использовать Action, запилил небольшой защитный скрипт:
Как это работает: ставим поршень с дверью, перед дверью две туррели и сенсор, за дверью еще один сенсор и звуковой блок (динамик), а так же компьютерный блок.
В компе пишем скрипт. Сенсоры должны его запускать (назначить сенсорам на активацию запуск комп. блока).. Ставим туррели в положение Офф, дверь закрываем.
Назначаем имена объектам:
DoorPiston - имя поршня, который открывает/закрывает дверь
DoorSensor - имя сенсора на выходе
CloseSensor - имя сенсора за дверью
DoorTurret - туррель 1
DoorTurret2 - туррель 2
SoundMessage - звуковой блок
Теперь, когда вы (владелец блока) подходите к сенсору, дверь открывается и активируются туррели, затем к другому сенсору - турели деактивируются и дверь закрывается.
Надеюсь кому нибудь этот пример поможет =) Скрипт внизу:

void Main()
{
// varitables
IMyPistonBase DoorPiston = GridTerminalSystem.GetBlockWithName("DoorPiston") as IMyPistonBase;
IMySensorBlock DoorSensor = GridTerminalSystem.GetBlockWithName("DoorSensor") as IMySensorBlock;
IMySensorBlock CloseSensor = GridTerminalSystem.GetBlockWithName("CloseSensor") as IMySensorBlock;
IMySoundBlock SoundMessage = GridTerminalSystem.GetBlockWithName("SoundMessage") as IMySoundBlock;
IMyLargeInteriorTurret DoorTurret= GridTerminalSystem.GetBlockWithName("DoorTurret") as IMyLargeInteriorTurret; //
IMyLargeInteriorTurret DoorTurret2= GridTerminalSystem.GetBlockWithName("DoorTurret2") as IMyLargeInteriorTurret; //

if (DoorSensor.DetectOwner == true || CloseSensor.DetectOwner == true)
{
DoorPiston.GetActionWithName("Reverse").Apply(DoorPiston);
DoorTurret.GetActionWithName("OnOff").Apply(DoorTurret);
DoorTurret2.GetActionWithName("OnOff").Apply(DoorTurret2);
SoundMessage.GetActionWithName("PlaySound").Apply(SoundMessage);
}
}