public double consumeFNResource(double power_fixed, String resourcename) { power_fixed = Math.Max(power_fixed, 0); double fixedDeltaTime = (double)(decimal)Math.Round(TimeWarp.fixedDeltaTime, 7); ResourceManager manager = getManagerForVessel(resourcename); if (manager == null) { return(0); } if (!fnresource_supplied.ContainsKey(resourcename)) { fnresource_supplied.Add(resourcename, 0); } double power_taken_fixed = Math.Max(Math.Min(power_fixed, fnresource_supplied[resourcename] * fixedDeltaTime), 0); fnresource_supplied[resourcename] -= power_taken_fixed / fixedDeltaTime; manager.powerDrawFixed(this, power_fixed, power_taken_fixed); return(power_taken_fixed); }