Beispiel #1
0
        /// <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);
        }
Beispiel #3
0
        /// <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();
        }