Space Engineers

Space Engineers

Not enough ratings
極めて不親切なゲーム内プログラミングガイド
By Arara
サポートはありませんので、困ったらグーグル先生に訊くか、その他の親切かつ暇な人に訊いてください。親切かつ暇でない人には訊かないように…念のため。
   
Award
Favorite
Favorited
Unfavorite
つかいかた
・日本語部分をインターフェース名・フィールド名・アクション名に置換
・インターフェース名・フィールド名・アクション名は公式ガイドにリストがある
void Main() { // ↑ // この間にコピペ // ↓ }
ブロックを取得する
・リスト(取得したブロックを入れておくところ)を作っておく
※ここではmyListという名前にした
※インターフェースというのは、ブロックの種類(と、そのブロックで使用可能な動作など)を示すもの
List<IMyTerminalBlock> myList = new List<IMyTerminalBlock> ();

・リストにブロックを入れてもらう
※今いる船またはステーションのブロックのみ取得可能

・インターフェース指定
GridTerminalSystem.GetBlocksOfType<インターフェース名>(myList);

・ブロック名指定
※指定文字列を名前に含むブロックすべて取得
GridTerminalSystem.SearchBlocksOfName("ブロック名", myList);
リストに入ったブロックの全てに対して、特定のアクションを実行
※繰り返し処理
for (int i = 0; i < mylist.Count; i++) { var block = myList[i] as インターフェース名; ITerminalAction myAction = block.GetActionWithName("アクション名"); myAction.Apply(block); }
リストに入ったブロックの内、特定の状態のブロックのみ、アクションを実行
※条件分岐処理
for (int i = 0; i < mylist.Count; i++) { var block = myList[i] as インターフェース名; if (状態==myList[i].フィールド名 ) { ITerminalAction myAction = block.GetActionWithName("アクション名"); myAction.Apply(block); } }

・状態はフィールドの属性によって使える値が異なる
bool:true または false
float:数値(小数)

・条件判定で使う論理記号は以下のように書く
等しい: ==
等しくない: !=
・以下はfloatのみ
左が大きい: >
左が小さい: <
左が大きいか等しい: >=
左が小さいか等しい: <=
おしまい
物足りなければワークショップのコードからコピペすればいいよ。
1 Comments
DannyJPN 2 Jan, 2015 @ 9:30am 
プログラム分からないからありがたし!!