Пример #1
0
        public override BeltPlan CalculatePlan()
        {
            List <Input> inputs = new List <Input>();

            foreach (decimal d in BeltsIn)
            {
                inputs.Add(new Input(Context, d));
            }
            BeltPlan plan = new BeltPlan(Context, ImmutableList.CreateRange(inputs));
            List <List <Output> > allNodes = new List <List <Output> >();

            foreach (Input input in inputs)
            {
                (input as ISplittable).Split(BeltsOut);
                allNodes.Add(input.GetFinalOutputs());
            }
            for (int i = 0; i < BeltsOut; i++)
            {
                Merger merger = new Merger(Context);
                foreach (List <Output> nodes in allNodes)
                {
                    merger.AddInputSafe(nodes[i]);
                }
            }
            plan.Simplify();
            return(plan);
        }