2.0.0 (#92)
All checks were successful
Tag and Release Lightless / tag-and-release (push) Successful in 2m27s
All checks were successful
Tag and Release Lightless / tag-and-release (push) Successful in 2m27s
2.0.0 Changes: - Reworked shell finder UI with compact or list view with profile tags showing with the listing, allowing moderators to broadcast the syncshell as well to have it be used more. - Reworked user list in syncshell admin screen to have filter visible and moved away from table to its own thing, allowing to copy uid/note/alias when clicking on the name. - Reworked download bars and download box to make it look more modern, removed the jitter around, so it shouldn't vibrate around much. - Chat has been added to the top menu, working in Zone or in Syncshells to be used there. - Paired system has been revamped to make pausing and unpausing faster, and loading people should be faster as well. - Moved to the internal object table to have faster load times for users; people should load in faster - Compactor is running on a multi-threaded level instead of single-threaded; this should increase the speed of compacting files - Nameplate Service has been reworked so it wouldn't use the nameplate handler anymore. - Files can be resized when downloading to reduce load on users if they aren't compressed. (can be toggled to resize all). - Penumbra Collections are now only made when people are visible, reducing the load on boot-up when having many syncshells in your list. - Lightfinder plates have been moved away from using Nameplates, but will use an overlay. - Main UI has been changed a bit with a gradient, and on hover will glow up now. - Reworked Profile UI for Syncshell and Users to be more user-facing with more customizable items. - Reworked Settings UI to look more modern. - Performance should be better due to new systems that would dispose of the collections and better caching of items. Co-authored-by: defnotken <itsdefnotken@gmail.com> Co-authored-by: azyges <aaaaaa@aaa.aaa> Co-authored-by: choco <choco@patat.nl> Co-authored-by: cake <admin@cakeandbanana.nl> Co-authored-by: Minmoose <KennethBohr@outlook.com> Reviewed-on: #92
This commit was merged in pull request #92.
This commit is contained in:
@@ -1,43 +0,0 @@
|
||||
namespace LightlessSync.UI.Models
|
||||
{
|
||||
public class ChangelogFile
|
||||
{
|
||||
public string Tagline { get; init; } = string.Empty;
|
||||
public string Subline { get; init; } = string.Empty;
|
||||
public List<ChangelogEntry> Changelog { get; init; } = new();
|
||||
public List<CreditCategory>? Credits { get; init; }
|
||||
}
|
||||
|
||||
public class ChangelogEntry
|
||||
{
|
||||
public string Name { get; init; } = string.Empty;
|
||||
public string Date { get; init; } = string.Empty;
|
||||
public string Tagline { get; init; } = string.Empty;
|
||||
public bool? IsCurrent { get; init; }
|
||||
public string? Message { get; init; }
|
||||
public List<ChangelogVersion>? Versions { get; init; }
|
||||
}
|
||||
|
||||
public class ChangelogVersion
|
||||
{
|
||||
public string Number { get; init; } = string.Empty;
|
||||
public List<string> Items { get; init; } = new();
|
||||
}
|
||||
|
||||
public class CreditCategory
|
||||
{
|
||||
public string Category { get; init; } = string.Empty;
|
||||
public List<CreditItem> Items { get; init; } = new();
|
||||
}
|
||||
|
||||
public class CreditItem
|
||||
{
|
||||
public string Name { get; init; } = string.Empty;
|
||||
public string Role { get; init; } = string.Empty;
|
||||
}
|
||||
|
||||
public class CreditsFile
|
||||
{
|
||||
public List<CreditCategory> Credits { get; init; } = new();
|
||||
}
|
||||
}
|
||||
12
LightlessSync/UI/Models/ChangelogEntry.cs
Normal file
12
LightlessSync/UI/Models/ChangelogEntry.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
namespace LightlessSync.UI.Models
|
||||
{
|
||||
public class ChangelogEntry
|
||||
{
|
||||
public string Name { get; init; } = string.Empty;
|
||||
public string Date { get; init; } = string.Empty;
|
||||
public string Tagline { get; init; } = string.Empty;
|
||||
public bool? IsCurrent { get; init; }
|
||||
public string? Message { get; init; }
|
||||
public List<ChangelogVersion>? Versions { get; init; }
|
||||
}
|
||||
}
|
||||
10
LightlessSync/UI/Models/ChangelogFile.cs
Normal file
10
LightlessSync/UI/Models/ChangelogFile.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace LightlessSync.UI.Models
|
||||
{
|
||||
public class ChangelogFile
|
||||
{
|
||||
public string Tagline { get; init; } = string.Empty;
|
||||
public string Subline { get; init; } = string.Empty;
|
||||
public List<ChangelogEntry> Changelog { get; init; } = new();
|
||||
public List<CreditCategory>? Credits { get; init; }
|
||||
}
|
||||
}
|
||||
8
LightlessSync/UI/Models/ChangelogVersion.cs
Normal file
8
LightlessSync/UI/Models/ChangelogVersion.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace LightlessSync.UI.Models
|
||||
{
|
||||
public class ChangelogVersion
|
||||
{
|
||||
public string Number { get; init; } = string.Empty;
|
||||
public List<string> Items { get; init; } = [];
|
||||
}
|
||||
}
|
||||
8
LightlessSync/UI/Models/CreditCategory.cs
Normal file
8
LightlessSync/UI/Models/CreditCategory.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace LightlessSync.UI.Models
|
||||
{
|
||||
public class CreditCategory
|
||||
{
|
||||
public string Category { get; init; } = string.Empty;
|
||||
public List<CreditItem> Items { get; init; } = [];
|
||||
}
|
||||
}
|
||||
8
LightlessSync/UI/Models/CreditItem.cs
Normal file
8
LightlessSync/UI/Models/CreditItem.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace LightlessSync.UI.Models
|
||||
{
|
||||
public class CreditItem
|
||||
{
|
||||
public string Name { get; init; } = string.Empty;
|
||||
public string Role { get; init; } = string.Empty;
|
||||
}
|
||||
}
|
||||
7
LightlessSync/UI/Models/CreditsFile.cs
Normal file
7
LightlessSync/UI/Models/CreditsFile.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace LightlessSync.UI.Models
|
||||
{
|
||||
public class CreditsFile
|
||||
{
|
||||
public List<CreditCategory> Credits { get; init; } = [];
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
using Dalamud.Interface;
|
||||
using LightlessSync.LightlessConfiguration.Models;
|
||||
using System.Numerics;
|
||||
|
||||
namespace LightlessSync.UI.Models;
|
||||
|
||||
public class LightlessNotification
|
||||
{
|
||||
public string Id { get; set; } = Guid.NewGuid().ToString();
|
||||
@@ -20,13 +20,3 @@ public class LightlessNotification
|
||||
public bool IsAnimatingOut { get; set; } = false;
|
||||
public uint? SoundEffectId { get; set; } = null;
|
||||
}
|
||||
public class LightlessNotificationAction
|
||||
{
|
||||
public string Id { get; set; } = Guid.NewGuid().ToString();
|
||||
public string Label { get; set; } = string.Empty;
|
||||
public FontAwesomeIcon Icon { get; set; } = FontAwesomeIcon.None;
|
||||
public Vector4 Color { get; set; } = Vector4.One;
|
||||
public Action<LightlessNotification> OnClick { get; set; } = _ => { };
|
||||
public bool IsPrimary { get; set; } = false;
|
||||
public bool IsDestructive { get; set; } = false;
|
||||
}
|
||||
15
LightlessSync/UI/Models/LightlessNotificationAction.cs
Normal file
15
LightlessSync/UI/Models/LightlessNotificationAction.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using Dalamud.Interface;
|
||||
using System.Numerics;
|
||||
|
||||
namespace LightlessSync.UI.Models;
|
||||
|
||||
public class LightlessNotificationAction
|
||||
{
|
||||
public string Id { get; set; } = Guid.NewGuid().ToString();
|
||||
public string Label { get; set; } = string.Empty;
|
||||
public FontAwesomeIcon Icon { get; set; } = FontAwesomeIcon.None;
|
||||
public Vector4 Color { get; set; } = Vector4.One;
|
||||
public Action<LightlessNotification> OnClick { get; set; } = _ => { };
|
||||
public bool IsPrimary { get; set; } = false;
|
||||
public bool IsDestructive { get; set; } = false;
|
||||
}
|
||||
7
LightlessSync/UI/Models/OnlinePairSortMode.cs
Normal file
7
LightlessSync/UI/Models/OnlinePairSortMode.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace LightlessSync.UI.Models;
|
||||
|
||||
public enum OnlinePairSortMode
|
||||
{
|
||||
Alphabetical = 0,
|
||||
PreferredDirectPairs = 1,
|
||||
}
|
||||
25
LightlessSync/UI/Models/PairDisplayEntry.cs
Normal file
25
LightlessSync/UI/Models/PairDisplayEntry.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using System.Collections.Generic;
|
||||
using LightlessSync.API.Data;
|
||||
using LightlessSync.API.Data.Enum;
|
||||
using LightlessSync.API.Dto.Group;
|
||||
using LightlessSync.PlayerData.Pairs;
|
||||
|
||||
namespace LightlessSync.UI.Models;
|
||||
|
||||
public sealed record PairDisplayEntry(
|
||||
PairUniqueIdentifier Ident,
|
||||
PairConnection Connection,
|
||||
IReadOnlyList<GroupFullInfoDto> Groups,
|
||||
IPairHandlerAdapter? Handler)
|
||||
{
|
||||
public UserData User => Connection.User;
|
||||
public bool IsOnline => Connection.IsOnline;
|
||||
public bool IsVisible => Handler?.IsVisible ?? false;
|
||||
public bool IsDirectlyPaired => Connection.IsDirectlyPaired;
|
||||
public bool IsOneSided => Connection.IsOneSided;
|
||||
public bool HasAnyConnection => Connection.HasAnyConnection;
|
||||
public string? IdentString => Connection.Ident;
|
||||
public UserPermissions SelfPermissions => Connection.SelfToOtherPermissions;
|
||||
public UserPermissions OtherPermissions => Connection.OtherToSelfPermissions;
|
||||
public IndividualPairStatus? PairStatus => Connection.IndividualPairStatus;
|
||||
}
|
||||
30
LightlessSync/UI/Models/PairUiEntry.cs
Normal file
30
LightlessSync/UI/Models/PairUiEntry.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using LightlessSync.API.Data;
|
||||
using LightlessSync.API.Data.Enum;
|
||||
using LightlessSync.API.Dto.Group;
|
||||
using LightlessSync.PlayerData.Pairs;
|
||||
|
||||
namespace LightlessSync.UI.Models;
|
||||
|
||||
public sealed record PairUiEntry(
|
||||
PairDisplayEntry DisplayEntry,
|
||||
string AliasOrUid,
|
||||
string DisplayName,
|
||||
string Note,
|
||||
bool IsVisible,
|
||||
bool IsOnline,
|
||||
bool IsDirectlyPaired,
|
||||
bool IsOneSided,
|
||||
bool HasAnyConnection,
|
||||
bool IsPaused,
|
||||
UserPermissions SelfPermissions,
|
||||
UserPermissions OtherPermissions,
|
||||
IndividualPairStatus? PairStatus,
|
||||
long LastAppliedDataBytes,
|
||||
long LastAppliedDataTris,
|
||||
long LastAppliedApproximateVramBytes,
|
||||
long LastAppliedApproximateEffectiveVramBytes,
|
||||
IPairHandlerAdapter? Handler)
|
||||
{
|
||||
public PairUniqueIdentifier Ident => DisplayEntry.Ident;
|
||||
public IReadOnlyList<GroupFullInfoDto> Groups => DisplayEntry.Groups;
|
||||
}
|
||||
24
LightlessSync/UI/Models/PairUiSnapshot.cs
Normal file
24
LightlessSync/UI/Models/PairUiSnapshot.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using LightlessSync.API.Dto.Group;
|
||||
using LightlessSync.PlayerData.Pairs;
|
||||
|
||||
namespace LightlessSync.UI.Models;
|
||||
|
||||
public sealed record PairUiSnapshot(
|
||||
IReadOnlyDictionary<string, Pair> PairsByUid,
|
||||
IReadOnlyList<Pair> DirectPairs,
|
||||
IReadOnlyDictionary<GroupFullInfoDto, IReadOnlyList<Pair>> GroupPairs,
|
||||
IReadOnlyDictionary<Pair, IReadOnlyList<GroupFullInfoDto>> PairsWithGroups,
|
||||
IReadOnlyDictionary<string, GroupFullInfoDto> GroupsByGid,
|
||||
IReadOnlyCollection<GroupFullInfoDto> Groups)
|
||||
{
|
||||
public static PairUiSnapshot Empty { get; } = new(
|
||||
new ReadOnlyDictionary<string, Pair>(new Dictionary<string, Pair>()),
|
||||
Array.Empty<Pair>(),
|
||||
new ReadOnlyDictionary<GroupFullInfoDto, IReadOnlyList<Pair>>(new Dictionary<GroupFullInfoDto, IReadOnlyList<Pair>>()),
|
||||
new ReadOnlyDictionary<Pair, IReadOnlyList<GroupFullInfoDto>>(new Dictionary<Pair, IReadOnlyList<GroupFullInfoDto>>()),
|
||||
new ReadOnlyDictionary<string, GroupFullInfoDto>(new Dictionary<string, GroupFullInfoDto>()),
|
||||
Array.Empty<GroupFullInfoDto>());
|
||||
}
|
||||
10
LightlessSync/UI/Models/VisiblePairSortMode.cs
Normal file
10
LightlessSync/UI/Models/VisiblePairSortMode.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace LightlessSync.UI.Models;
|
||||
|
||||
public enum VisiblePairSortMode
|
||||
{
|
||||
Alphabetical = 0,
|
||||
VramUsage = 1,
|
||||
EffectiveVramUsage = 2,
|
||||
TriangleCount = 3,
|
||||
PreferredDirectPairs = 4,
|
||||
}
|
||||
Reference in New Issue
Block a user