public DIYKit.Requirements RemainingRequirements() { if (!remainder) { if (remainder == null) { remainder = new DIYKit.Requirements(); } var njobs = Jobs.Count; if (njobs > 0 && CurrentIndex >= 0 && CurrentIndex < njobs) { for (int i = CurrentIndex; i < njobs; i++) { remainder.Update(Jobs[i].RemainingRequirements()); } } } return(remainder); }
public void Update(float efficiency = -1) { if (efficiency < 0) { efficiency = Recycler.GetRecycleExperienceMod(); } Recycler.GetRecycleInfo(part, efficiency, out assembly_requirements, out construction_requirements); children.Sync(part.children); children.ForEach(child => { child.Update(efficiency); assembly_requirements.Update(child.assembly_requirements); construction_requirements.Update(child.construction_requirements); }); UpdateDisplay(); }
public DIYKit.Requirements RequirementsForWork(double work) { var req = new DIYKit.Requirements(); if (work > 0 && Jobs.Count > 0) { var njobs = Jobs.Count; if (CurrentIndex < njobs) { for (int i = CurrentIndex; i < njobs; i++) { req.Update(Jobs[i].RequirementsForWork(work - req.work)); if (work <= req.work) { break; } } } } return(req); }