public void Update(List <Machine> machines) { float desiredDt = 1 / 60.0f; while (desiredDt > 0) { if (timeSeconds + desiredDt > recalculationNeededTime) { float possibleDt = recalculationNeededTime - timeSeconds; UpdateMachines(machines, possibleDt); desiredDt -= possibleDt; timeSeconds += possibleDt; MachineComputations.UpdateRates(machines); _instance.recalculationNeededTime = _instance.timeSeconds + machines.Min(x => x.GetSecondsBeforeRecalculationNeeded()); } else { UpdateMachines(machines, desiredDt); timeSeconds += desiredDt; break; } } }
public static void UpdateRecipes() { MachineComputations.UpdateRecipes(MachineManager.GetInstance().m_machines); MachineComputations.UpdateRates(MachineManager.GetInstance().m_machines); }