/// <summary> /// Создание новой операции. /// </summary> /// <param name="name">Имя операции.</param> /// <param name="getN">Функция получения номера операции.</param> /// <param name="newOwner">Владелец операции (Менеджер операций) /// </param> public Mode(string name, GetN getN, ModesManager newOwner) { this.name = name; this.getN = getN; this.owner = newOwner; restrictionMngr = new RestrictionManager(); stepsMngr = new List <State>(); var lastState = State.StateType.STATES_CNT; var secondState = State.StateType.PAUSE; stepsMngr.Add(new State(State.StateType.RUN, this, true)); for (var state = secondState; state < lastState; state++) { stepsMngr.Add(new State(state, this)); } operPar = new OperationParams(); // Экземпляр класса базовой операции baseOperation = new BaseOperation(this); SetItems(); }
/// <summary> /// Копировать параметры операции /// </summary> /// <param name="clone">Клонированная операция</param> /// <returns></returns> public OperationParams Clone(Mode clone) { var clonedOperationParams = new OperationParams(); TechObject clonedObject = clone.Owner.Owner; Params objectParameters = clonedObject.GetParamsManager().Float; foreach (ITreeViewItem item in Items) { var operationParam = item as OperationParam; string luaName = operationParam.Param.GetNameLua(); Param searchedParam = objectParameters.GetParam(luaName); if (searchedParam != null) { clonedOperationParams.AddParam(searchedParam); } } return(clonedOperationParams); }
/// <summary> /// Создание новой операции. /// </summary> /// <param name="name">Имя операции.</param> /// <param name="getN">Функция получения номера операции.</param> /// <param name="newOwner">Владелец операции (Менеджер операций) /// </param> public Mode(string name, GetN getN, ModesManager newOwner) { this.name = name; this.getN = getN; this.owner = newOwner; restrictionMngr = new RestrictionManager(); stepsMngr = new List <State>(); stepsMngr.Add(new State(StateStr[(int)StateName.RUN], true, this, true)); for (StateName i = StateName.PAUSE; i < StateName.STATES_CNT; i++) { stepsMngr.Add(new State(StateStr[(int)i], true, this)); } operPar = new OperationParams(); // Экземпляр класса базовой операции baseOperation = new BaseOperation(this); SetItems(); }