public async Task <IActionResult> Inara(CancellationToken cancellationToken) { var accessToken = await GetAccessToken(); using (var companion = new CompanionApiClient(accessToken)) using (var inara = new InaraApiClient()) { var profile = await companion.GetProfileAsync(cancellationToken); var journal = await companion.GetJournalAsync(cancellationToken); var minorFactionReputation = new MinorFactionReputationTracker(); var engineers = new EngineerTracker(); var materials = new MaterialTracker(); foreach (var @event in journal) { minorFactionReputation.Track(@event); engineers.Track(@event); materials.Track(@event); } var header = new RequestHeader(_inaraOptions.AppName, _inaraOptions.AppVersion, _inaraOptions.ApiKey, _inaraOptions.IsDeveloped, _inaraOptions.CommanderName, _inaraOptions.CommanderFrontierID); var request = new Request(header) .SetCommanderInventoryMaterials(materials.Materials.Select(pair => new CommanderInventoryMaterialsItem(pair.Key, pair.Value)).ToArray()) //.SetCommanderReputationMinorFaction(minorFactionReputation.Reputation.Where(e => !e.Reputation.Equals(0)).Select(pair => new CommanderReputationMinorFaction(pair.FactionName, (float) Math.Round(pair.Reputation / 100F, 2))).ToArray()) .SetCommanderRankEngineer(engineers.Engineers.Select(e => new CommanderRankEngineer(e.Name, e.Progress, e.Rank)).ToArray()); foreach (var reputation in minorFactionReputation.Reputation) { if (reputation.Reputation.Equals(0)) { continue; } request.SetCommanderReputationMinorFaction(reputation.FactionName, (float)Math.Round(reputation.Reputation / 100F, 2), reputation.Timestamp); } var statistics = journal.OfType <Statistics>().LastOrDefault(); if (statistics != null) { request.SetCommanderGameStatistics(_mapper.Map <CommanderGameStatistics>(statistics)); } var response = await inara.SendAsync(request, cancellationToken); } return(Ok()); }
public void SetShaderMode(EditorTime time) { for (int i = 0; i < originalShaders.Count; i++) { MaterialTracker material = originalShaders[i]; if (time == EditorTime.Night) { material.current.shader = Shader.Find("KSP/Diffuse"); } else { material.current.shader = material.original.shader; } } }