Thuruster Override

以下そーす
- IMyTerminalBlockで取り出してキャストして使っても、最初っからIMyThrusterで取り出して使っても中身は同じもの。
- is IMyThrust で本当にThrusterだよねって確認はしておいた方が良い
- IncreaseOverrideとDecreaseOverrideが実行できるので、Overrideの値と目標値を比較してfor文で繰り返し実行することで目標値までOverrideするような関数が作れるはず。
- これをコマンドブロックに書いて、タイマーブロックから適当な秒周期で呼び出す。タイマーブロックに自身のタイマーブロックのstartアクション登録しておいてループ化。
- 作成:ecolight
//---------------------------------------------------------------------------------------------------
// Load TextPanel
IMyTextPanel p = GridTerminalSystem.GetBlockWithName("Text panel") as IMyTextPanel;
// check result for PanelObject
if (p == null) { return -1; }
//---------------------------------------------------------------------------------------------------
// Load Thruster
// case IMyTerminalBlock // IMyTerminalBlock t = GridTerminalSystem.GetBlockWithName("Thruster") as IMyTerminalBlock;
// case IMyThrust // IMyThrust t = GridTerminalSystem.GetBlockWithName("Thruster") as IMyThrust;
IMyThrust t = GridTerminalSystem.GetBlockWithName("Thruster") as IMyThrust;
// check result for Thruster
if (t == null) { p.WritePublicText(" [ERROR] Thruster Offline", false); return -2; }
// check type
if (!(t is IMyThrust)) { p.WritePublicText(" [ERROR] invalid Thruster", false); return -3; }
//---------------------------------------------------------------------------------------------------
// case IMyTerminalBlock // p.WritePublicText(" [INFO] " + (t as IMyThrust).ThrustOverride + " p", false);
// case IMyThrust // p.WritePublicText(" [INFO] " + t.GetValueFloat("Override") + " p", false);
p.WritePublicText(" [INFO] Thruster Overide\n", false);
p.WritePublicText(" [INFO] Power : " + t.GetValueFloat("Override") + " N", true);
// case IMyTerminalBlock // (t as IMyThrust).GetActionWithName("IncreaseOverride").Apply(t);
// case IMyThrust // t.GetActionWithName("IncreaseOverride").Apply(t);
t.GetActionWithName("IncreaseOverride").Apply(t);
//---------------------------------------------------------------------------------------------------
添付ファイル