節電鯖民の遊び場

Thruster

最終更新:

mcforum

- view
メンバー限定 登録/ログイン
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);  

    //---------------------------------------------------------------------------------------------------   
添付ファイル
ウィキ募集バナー