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); //---------------------------------------------------------------------------------------------------
添付ファイル