public void Process(RMResourceProcessor resProc)
 {
     foreach (var resource in resources.Keys)
     {
         resProc(this, resource);
     }
 }
Exemple #2
0
        List <BuildResource> PartResources(Part p)
        {
            Debug.Log(String.Format("[EL RSM] PartResources: {0} {1}", p.name, p.CrewCapacity));
            var bc = new BuildCost();

            bc.addPart(p);
            var  rd   = new BuildResourceSet();
            bool xfer = true;
            RMResourceProcessor process = delegate(RMResourceSet vr, string res) {
                ProcessResource(vr, res, rd, xfer);
            };

            bc.resources.Process(process);
            var reslist = rd.Values;

            rd.Clear();
            bc.container.Process(process);
            reslist.AddRange(rd.Values);
            rd.Clear();
            xfer = false;
            bc.hullResoures.Process(process);
            reslist.AddRange(rd.Values);
            if (p.CrewCapacity > 0 && !p.name.Contains("kerbalEVA"))
            {
                rd.Clear();
                for (int i = 0; i < p.protoModuleCrew.Count; i++)
                {
                    var crew = p.protoModuleCrew[i];
                    ProcessKerbal(crew, rd);
                }
                reslist.AddRange(rd.Values);
            }
            return(reslist);
        }