minor fixes

This commit is contained in:
Stanley Dimant
2022-09-06 13:20:39 +02:00
parent a2f88124d7
commit 4a0dce0e44
6 changed files with 51 additions and 8 deletions

View File

@@ -230,8 +230,7 @@ public class CachedPlayer
private void ApplyBaseData(Dictionary<string, string> moddedPaths)
{
_ipcManager.PenumbraRemoveTemporaryCollection(PlayerName!);
var tempCollection = _ipcManager.PenumbraCreateTemporaryCollection(PlayerName!);
_ipcManager.PenumbraSetTemporaryMods(tempCollection, moddedPaths, _cachedData.ManipulationData);
_ipcManager.PenumbraSetTemporaryMods(PlayerName!, moddedPaths, _cachedData.ManipulationData);
}
private unsafe void ApplyCustomizationData(ObjectKind objectKind)

View File

@@ -5,6 +5,8 @@ using System.Collections.Generic;
using Dalamud.Game.ClientState.Objects.Types;
using MareSynchronos.Utils;
using MareSynchronos.WebAPI;
using Lumina.Excel.GeneratedSheets;
using Action = System.Action;
namespace MareSynchronos.Managers
{
@@ -270,18 +272,19 @@ namespace MareSynchronos.Managers
return resolvedPaths;
}
public void PenumbraSetTemporaryMods(string collectionName, Dictionary<string, string> modPaths, string manipulationData)
public void PenumbraSetTemporaryMods(string characterName, Dictionary<string, string> modPaths, string manipulationData)
{
if (!CheckPenumbraApi()) return;
actionQueue.Enqueue(() =>
{
Logger.Verbose("Assigning temp mods for " + collectionName);
var ret = _penumbraCreateTemporaryCollection.InvokeFunc("MareSynchronos", characterName, true);
Logger.Verbose("Assigning temp mods for " + ret.Item2);
foreach (var mod in modPaths)
{
Logger.Verbose(mod.Key + " => " + mod.Value);
}
_penumbraSetTemporaryMod.InvokeFunc("MareSynchronos", collectionName, modPaths, manipulationData, 0);
_penumbraSetTemporaryMod.InvokeFunc("MareSynchronos", ret.Item2, modPaths, manipulationData, 0);
});
}

View File

@@ -32,6 +32,10 @@
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.8" />
</ItemGroup>
<PropertyGroup>
<SourceRevisionId>build$([System.DateTime]::UtcNow.ToString("yyyy-MM-ddTHH:mm:ss:fffZ"))</SourceRevisionId>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\MareAPI\MareSynchronosAPI\MareSynchronos.API.csproj" />
<ProjectReference Include="..\Penumbra\Penumbra.GameData\Penumbra.GameData.csproj" />

View File

@@ -42,9 +42,14 @@ namespace MareSynchronos.UI
string dateTime = "DEV VERSION";
try
{
dateTime = new FileInfo(Assembly.GetExecutingAssembly().Location).LastWriteTime.ToString("yyyyMMddHHmmss");
dateTime = VariousExtensions.GetLinkerTime(Assembly.GetCallingAssembly()).ToString("yyyyMMddHHmmss");
}
catch (Exception ex)
{
Logger.Warn("Could not get assembly name");
Logger.Warn(ex.Message);
Logger.Warn(ex.StackTrace);
}
catch { }
this.WindowName = "Mare Synchronos " + dateTime + "###MareSynchronosMainUI";
#else
this.WindowName = "Mare Synchronos " + Assembly.GetExecutingAssembly().GetName().Version + "###MareSynchronosMainUI";

View File

@@ -101,7 +101,7 @@ public class DownloadUi : Window, IDisposable
if (_apiController.CurrentDownloads.Any())
{
var currentDownloads = _apiController.CurrentDownloads.SelectMany(k => k.Value).ToList();
var currentDownloads = _apiController.CurrentDownloads.Where(d => d.Value != null && d.Value.Any()).ToList().SelectMany(k => k.Value).ToList();
var multBase = currentDownloads.Any() ? 0 : 2;
var doneDownloads = currentDownloads.Count(c => c.IsTransferred);
var totalDownloads = currentDownloads.Count;

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace MareSynchronos.Utils
{
public static class VariousExtensions
{
public static DateTime GetLinkerTime(Assembly assembly)
{
const string BuildVersionMetadataPrefix = "+build";
var attribute = assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>();
if (attribute?.InformationalVersion != null)
{
var value = attribute.InformationalVersion;
var index = value.IndexOf(BuildVersionMetadataPrefix);
if (index > 0)
{
value = value[(index + BuildVersionMetadataPrefix.Length)..];
return DateTime.ParseExact(value, "yyyy-MM-ddTHH:mm:ss:fffZ", CultureInfo.InvariantCulture);
}
}
return default;
}
}
}