public float consumeFNResource(double power, String resourcename) { power = Math.Max(power, 0); if (!getOvermanagerForResource(resourcename).hasManagerForVessel(vessel)) { return(0); } if (!fnresource_supplied.ContainsKey(resourcename)) { fnresource_supplied.Add(resourcename, 0); } double power_taken = Math.Max(Math.Min(power, fnresource_supplied[resourcename] * TimeWarp.fixedDeltaTime), 0); fnresource_supplied[resourcename] -= power_taken; ORSResourceManager mega_manager = getOvermanagerForResource(resourcename).getManagerForVessel(vessel); mega_manager.powerDraw(this, power); return((float)power_taken); }