public void OnSourceStateChange() { if (FlowModule.ConfirmSources(this.resourceSources, Ref.mainVessel == this.part.vessel)) { return; } this.on.boolValue = false; }
public void OnSourceStateChange() { if (this.throttle.floatValue == 0f) { return; } if (FlowModule.ConfirmSources(this.resourceSources, Ref.mainVessel == this.part.vessel)) { return; } if (this.engineOn.boolValue) { this.ToggleEngine(false); } }
/// <summary> /// フロー インターフェイスを呼び出します。 /// </summary> /// <param name="module">呼び出しに用いるモジュール オブジェクト。</param> /// <param name="input">フィルタ処理の入力として与えるストレージ オブジェクトのシーケンス。</param> /// <param name="storage">ストレージ オブジェクトの入出力先として使用するストレージ。</param> /// <param name="parameter">処理のパラメータ。</param> /// <param name="arguments">処理の引数のリスト。</param> /// <param name="additionalData">処理の結果に付随して返される追加のデータ。このパラメータは初期化せずに渡されます。</param> /// <returns>処理の結果。</returns> public Object Invoke( FlowModule module, Object input, StorageModule storage, String parameter, IDictionary<String, String> arguments, out IDictionary<String, Object> additionalData ) { IDictionary<String, Object> data = null; Object result = ((IEnumerable<Object>) Make.Array<Object>(storage, parameter, arguments)) .If( a => this.RequiresInput, a => Make.Sequence(input).Concat(a) ) .If( a => this.ReturnsAdditionalData, a => a.Concat(Make.Sequence<Object>(new Dictionary<String, Object>())) ) .Do(a => this._method.Invoke(module, a.ToArray()) .Let(_ => data = this.ReturnsAdditionalData ? (IDictionary<String, Object>) a.Last() : null ) ); storage.TryUpdate(); additionalData = data; return result; }
/// <summary> /// フロー インターフェイスを呼び出します。 /// </summary> /// <param name="module">呼び出しに用いるモジュール オブジェクト。</param> /// <param name="input">フィルタ処理の入力として与えるストレージ オブジェクトのシーケンス。</param> /// <param name="session">ストレージ オブジェクトの入出力先として使用するストレージ セッション。</param> /// <param name="parameter">処理のパラメータ。</param> /// <param name="arguments">処理の引数のディクショナリ。</param> /// <param name="variables">リクエスト間で受け渡される変数のディクショナリ。</param> /// <returns>処理の結果。</returns> public Object Invoke( FlowModule module, Object input = null, StorageSession session = null, String parameter = null, IDictionary<String, String> arguments = null, IDictionary<String, Object> variables = null ) { LinkedList<Object> args = new LinkedList<Object>(); if(this.RequiresInput) { args.AddLast(input); } if(this.RequiresSession) { args.AddLast(session); } if(this.RequiresParameter) { args.AddLast(parameter ?? ""); } if(this.RequiresArguments) { args.AddLast(arguments ?? new Dictionary<String, String>()); } if(this.HandlesVariables) { args.AddLast(variables ?? new Dictionary<String, Object>()); } Object output = this._method.Invoke(module, args.ToArray()); if (session != null) { session.Update(); } return output; }