private void SelectCondition(int conditionIndex) { _conditionIndex = conditionIndex; _partSelector.CancelSelect(); _popupUI.CloseAll(); _conditionPart = null; _conditionFlight = null; _conditionTimer = null; _currentCondition = null; if ((_conditionIndex < 0) || (_conditionIndex >= _conditions.Count)) { return; } if (_conditions[_conditionIndex] == null) { _conditionIndexType = (int)TriggerConditionType.Flight; } else if (_conditions[_conditionIndex] is TriggerConditionPart) { _conditionIndexType = (int)TriggerConditionType.Part; _conditionPart = new TriggerConditionPart((TriggerConditionPart)_conditions[_conditionIndex]); } else if (_conditions[_conditionIndex] is TriggerConditionFlight) { _conditionIndexType = (int)TriggerConditionType.Flight; _conditionFlight = new TriggerConditionFlight((TriggerConditionFlight)_conditions[_conditionIndex]); } else if (_conditions[_conditionIndex] is TriggerConditionTimer) { _conditionIndexType = (int)TriggerConditionType.Timer; _conditionTimer = new TriggerConditionTimer((TriggerConditionTimer)_conditions[_conditionIndex]); } }
public void OnLoad(ConfigNode node, VesselTriggers triggerConfig) { bool dataFound = false; ConfigNode childNode = null; int nbItem = 0; TriggerConditionType conditionType = (TriggerConditionType)(-1); dataFound = node.TryGetValue(KEY_NB_CONDITIONS, ref nbItem); if (dataFound) { for (int i = 0; i < nbItem; i++) { TriggerCondition condition = null; dataFound = node.TryGetNode(KEY_PREF_CONDITION + i, ref childNode); if (dataFound) { dataFound = childNode.TryGetEnum <TriggerConditionType>("type", ref conditionType, (TriggerConditionType)(-1)); if (dataFound) { switch (conditionType) { case TriggerConditionType.Part: condition = new TriggerConditionPart(triggerConfig); break; case TriggerConditionType.Flight: condition = new TriggerConditionFlight(triggerConfig); break; case TriggerConditionType.Timer: condition = new TriggerConditionTimer(triggerConfig); break; default: break; } if (condition != null) { dataFound = ConfigNode.LoadObjectFromConfig(condition, childNode); if (dataFound) { _conditions.Add(condition); } } } } } } }
public TriggerEvent(TriggerEvent other) { _type = other._type; _hasBeenTriggered = other._hasBeenTriggered; AutoReset = other.AutoReset; switch (_type) { case TriggerEventType.Part: _condition = new TriggerConditionPart((TriggerConditionPart)other._condition); break; case TriggerEventType.Flight: _condition = new TriggerConditionFlight((TriggerConditionFlight)other._condition); break; case TriggerEventType.Timer: _condition = new TriggerConditionTimer((TriggerConditionTimer)other._condition); break; } _previousValue = true; }
public TriggerEvent(TriggerEventType type, VesselTriggers vesselTriggers) { _type = type; _hasBeenTriggered = false; AutoReset = false; switch (_type) { case TriggerEventType.Part: _condition = new TriggerConditionPart(vesselTriggers); break; case TriggerEventType.Flight: _condition = new TriggerConditionFlight(vesselTriggers); break; case TriggerEventType.Timer: _condition = new TriggerConditionTimer(vesselTriggers); break; } _previousValue = true; }
private void DisplayTimerConf() { if (_conditionTimer == null) { _conditionTimer = new TriggerConditionTimer(_vesselTriggers); } _currentCondition = _conditionTimer; // Left column GUILayout.BeginArea(_boxLeftPos); GUILayout.BeginVertical(); // Name GUILayout.BeginHorizontal(); GUILayout.Space(LEFT_MARGING); GUILayout.Label("Name: "); GUILayout.EndHorizontal(); // TargetDate GUILayout.BeginHorizontal(); GUILayout.Space(LEFT_MARGING); GUILayout.Label("Date reached: "); GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndArea(); // Right column GUILayout.BeginArea(_boxRightPos); GUILayout.BeginVertical(); // Name GUILayout.BeginHorizontal(); _conditionTimer.Name = GUILayout.TextField(_conditionTimer.Name, _conditionTimer.TimerValid ? Utils.TF_STYLE_VALID : Utils.TF_STYLE_INVALID); GUILayout.Space(RIGHT_MARGING); GUILayout.EndHorizontal(); // TargetDate / InitDate GUILayout.BeginHorizontal(); _conditionTimer.TargetDate.DisplayLayout(_popupUI); GUILayout.Space(RIGHT_MARGING); GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndArea(); }
public TriggerCondition(TriggerCondition other) { _vesselTriggers = other._vesselTriggers; _type = (TriggerConditionType)(-1); _modified = false; }
public void Add(TriggerCondition condition) { _conditions.Add(condition); }
private void DisplayFlightConf() { if (_conditionFlight == null) { _conditionFlight = new TriggerConditionFlight(_vesselTriggers); } _currentCondition = _conditionFlight; // Left column GUILayout.BeginArea(_boxLeftPos); _scrollVectVessel = GUILayout.BeginScrollView(_scrollVectVessel, GUIStyle.none, GUIStyle.none); GUILayout.BeginVertical(); // Property GUILayout.BeginHorizontal(); GUILayout.Space(LEFT_MARGING); GUILayout.Label("Property to evaluate: "); GUILayout.EndHorizontal(); // Parameters if (_conditionFlight.Parameters != null) { for (int i = 0; i < _conditionFlight.Parameters.Length; i++) { TypedData param = _conditionFlight.Parameters[i]; if ((param != null) && param.Configurable) { GUILayout.BeginHorizontal(); GUILayout.Space(LEFT_MARGING); GUILayout.Label(param.Name); GUILayout.EndHorizontal(); } } } if (_conditionFlight.TargetValue != null) { // Comparator GUILayout.BeginHorizontal(); GUILayout.Space(LEFT_MARGING); GUILayout.Label("Comparator: "); GUILayout.EndHorizontal(); // Target GUILayout.BeginHorizontal(); GUILayout.Space(LEFT_MARGING); GUILayout.Label("Target value: "); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); GUILayout.EndScrollView(); GUILayout.EndArea(); // Right column GUILayout.BeginArea(_boxRightPos); _scrollVectVessel = GUILayout.BeginScrollView(_scrollVectVessel); GUILayout.BeginVertical(); // Property GUILayout.BeginHorizontal(); int newPropertyIndex = _popupUI.GUILayoutPopup("popupFlightParam", TriggerConditionFlight.PropertyList, _conditionFlight.PropertyIndex); GUILayout.Space(RIGHT_MARGING); GUILayout.EndHorizontal(); // Parameters if (_conditionFlight.Parameters != null) { for (int i = 0; i < _conditionFlight.Parameters.Length; i++) { TypedData param = _conditionFlight.Parameters[i]; if ((param != null) && param.Configurable) { GUILayout.BeginHorizontal(); param.DisplayLayout(_popupUI); GUILayout.Space(RIGHT_MARGING); GUILayout.EndHorizontal(); } } } if (_conditionFlight.TargetValue != null) { TypedData target = _conditionFlight.TargetValue; // Comparator GUILayout.BeginHorizontal(); _conditionFlight.Comparator = (ComparatorType)_popupUI.GUILayoutPopup("popupFlightOper", target.ComparatorList, (int)_conditionFlight.Comparator); GUILayout.Space(RIGHT_MARGING); GUILayout.EndHorizontal(); // Target GUILayout.BeginHorizontal(); target.DisplayLayout(_popupUI); GUILayout.Space(RIGHT_MARGING); GUILayout.EndHorizontal(); } GUILayout.EndVertical(); GUILayout.EndScrollView(); GUILayout.EndArea(); if (Event.current.type == EventType.Repaint) { _conditionFlight.PropertyIndex = newPropertyIndex; } }