All checks were successful
Tag and Release Lightless / tag-and-release (push) Successful in 2m9s
# Patchnotes 2.1.0 The changes in this update are more than just "patches". With a new UI, a new feature, and a bunch of bug fixes, improvements and a new member on the dev team, we thought this was more of a minor update. We would like to introduce @tsubasahane of MareCN to the team! We’re happy to work with them to bring Lightless and its features to the CN client as well as having another talented dev bring features and ideas to us. Speaking of which: # Location Sharing (Big shout out to @tsubasahane for bringing this feature) - Are you TIRED of scrambling to find the address of the venue you're in to share with your friends? We are introducing Location Sharing! An optional feature where you can share your location with direct pairs temporarily [30 minutes, 1 hour, 3 hours] minutes or until you turn it off for them. That's up to you! [#125](<#125>) [#49](<Lightless-Sync/LightlessServer#49>) - To share your location with a pair, click the three dots beside the pair and choose a duration to share with them. [#125](<#125>) [#49](<Lightless-Sync/LightlessServer#49>) - To view the location of someone who's shared with you, simply hover over the globe icon! [#125](<#125>) [#49](<Lightless-Sync/LightlessServer#49>) [1] # Model Optimization (Mesh Decimating) - This new option can automatically “simplify” incoming character meshes to help performance by reducing triangle counts. You choose how strong the reduction is (default/recommended is 80%). [#131](<#131>) - Decimation only kicks in when a mesh is above a certain triangle threshold, and only for the items that qualify for it and you selected for. [#131](<#131>) - Hair meshes is always excluded, since simplifying hair meshes is very prone to breaking. - You can find everything under Settings → Performance → Model Optimization. [#131](<#131>) + ** IF YOU HAVE USED DECIMATION IN TESTING, PLEASE CLEAR YOUR CACHE ❗ ** [2] # Animation (PAP) Validation (Safer animations) - Lightless now checks your currently animations to see if they work with your local skeleton/bone mod. If an animation matches, it’s included in what gets sent to other players. If it doesn’t, Lightless will skip it and write a warning to your log showing how many were skipped due to skeleton changes. Its defaulted to Unsafe (off). turn it on if you experience crashes from others users. [#131](<#131>) - Lightless also does the same kind of check for incoming animation files, to make sure they match the body/skeleton they were sent with. [#131](<#131>) - Because these checks can sometimes be a little picky, you can adjust how strict they are in Settings -> General -> Animation & Bones to reduce false positives. [#131](<#131>) # UI Changes (Thanks to @kyuwu for UI Changes) - The top part of the main screen has gotten a makeover. You can adjust the colors of the gradiant in the Color settings of Lightless. [#127](<#127>) [3] - Settings have gotten some changes as well to make this change more universal, and will use the same color settings. [#127](<#127>) - The particle effects of the gradient are toggleable in 'Settings -> UI -> Behavior' [#127](<#127>) - Instead of showing download/upload on bottom of Main UI, it will show VRAM usage and triangles with their optimization options next to it [#138](<#138>) # LightFinder / ShellFinder - UI Changes that follow our new design follow the color codes for the Gradient top as the main screen does. [#127](<#127>) [4] Co-authored-by: defnotken <itsdefnotken@gmail.com> Co-authored-by: azyges <aaaaaa@aaa.aaa> Co-authored-by: cake <admin@cakeandbanana.nl> Co-authored-by: Tsubasa <tsubasa@noreply.git.lightless-sync.org> Co-authored-by: choco <choco@patat.nl> Co-authored-by: celine <aaa@aaa.aaa> Co-authored-by: celine <celine@noreply.git.lightless-sync.org> Co-authored-by: Tsubasahane <wozaiha@gmail.com> Co-authored-by: cake <cake@noreply.git.lightless-sync.org> Reviewed-on: #123
149 lines
9.6 KiB
C#
149 lines
9.6 KiB
C#
using Dalamud.Game.ClientState.Objects.Types;
|
|
using LightlessSync.API.Data;
|
|
using LightlessSync.API.Dto;
|
|
using LightlessSync.API.Dto.CharaData;
|
|
using LightlessSync.API.Dto.Group;
|
|
using LightlessSync.LightlessConfiguration.Models;
|
|
using LightlessSync.PlayerData.Handlers;
|
|
using LightlessSync.PlayerData.Pairs;
|
|
using LightlessSync.Services.ActorTracking;
|
|
using LightlessSync.Services.Chat;
|
|
using LightlessSync.Services.Events;
|
|
using LightlessSync.WebAPI.Files.Models;
|
|
using System.Numerics;
|
|
using LightlessSync.UI.Models;
|
|
|
|
namespace LightlessSync.Services.Mediator;
|
|
|
|
#pragma warning disable MA0048 // File name must match type name
|
|
#pragma warning disable S2094
|
|
public record SwitchToIntroUiMessage : MessageBase;
|
|
public record SwitchToMainUiMessage : MessageBase;
|
|
public record OpenSettingsUiMessage : MessageBase;
|
|
public record OpenLightfinderSettingsMessage : MessageBase;
|
|
public enum PerformanceSettingsSection
|
|
{
|
|
TextureOptimization,
|
|
ModelOptimization,
|
|
}
|
|
public record OpenPerformanceSettingsMessage(PerformanceSettingsSection Section) : MessageBase;
|
|
public record DalamudLoginMessage : MessageBase;
|
|
public record DalamudLogoutMessage : MessageBase;
|
|
public record ActorTrackedMessage(ActorObjectService.ActorDescriptor Descriptor) : SameThreadMessage;
|
|
public record ActorUntrackedMessage(ActorObjectService.ActorDescriptor Descriptor) : SameThreadMessage;
|
|
public record PriorityFrameworkUpdateMessage : SameThreadMessage;
|
|
public record FrameworkUpdateMessage : SameThreadMessage;
|
|
public record ClassJobChangedMessage(GameObjectHandler GameObjectHandler) : MessageBase;
|
|
public record DelayedFrameworkUpdateMessage : SameThreadMessage;
|
|
public record ZoneSwitchStartMessage : MessageBase;
|
|
public record ZoneSwitchEndMessage : MessageBase;
|
|
public record WorldChangedMessage(ushort PreviousWorldId, ushort CurrentWorldId) : MessageBase;
|
|
public record CutsceneStartMessage : MessageBase;
|
|
public record GposeStartMessage : SameThreadMessage;
|
|
public record GposeEndMessage : MessageBase;
|
|
public record CutsceneEndMessage : MessageBase;
|
|
public record CutsceneFrameworkUpdateMessage : SameThreadMessage;
|
|
public record ConnectedMessage(ConnectionDto Connection) : MessageBase;
|
|
public record DisconnectedMessage : SameThreadMessage;
|
|
public record PenumbraModSettingChangedMessage : MessageBase;
|
|
public record PenumbraInitializedMessage : MessageBase;
|
|
public record PenumbraDisposedMessage : MessageBase;
|
|
public record PenumbraRedrawMessage(IntPtr Address, int ObjTblIdx, bool WasRequested) : SameThreadMessage;
|
|
public record GlamourerChangedMessage(IntPtr Address) : MessageBase;
|
|
public record HeelsOffsetMessage : MessageBase;
|
|
public record PenumbraResourceLoadMessage(IntPtr GameObject, string GamePath, string FilePath) : SameThreadMessage;
|
|
public record CustomizePlusMessage(nint? Address) : MessageBase;
|
|
public record HonorificMessage(string NewHonorificTitle) : MessageBase;
|
|
public record MoodlesMessage(IntPtr Address) : MessageBase;
|
|
public record PetNamesReadyMessage : MessageBase;
|
|
public record PetNamesMessage(string PetNicknamesData) : MessageBase;
|
|
public record HonorificReadyMessage : MessageBase;
|
|
public record TransientResourceChangedMessage(IntPtr Address) : MessageBase;
|
|
public record HaltScanMessage(string Source) : MessageBase;
|
|
public record NotificationMessage
|
|
(string Title, string Message, NotificationType Type, TimeSpan? TimeShownOnScreen = null) : MessageBase;
|
|
public record PerformanceNotificationMessage
|
|
(string Title, string Message, UserData UserData, bool IsPaused, string PlayerName) : MessageBase;
|
|
public record CreateCacheForObjectMessage(GameObjectHandler ObjectToCreateFor) : SameThreadMessage;
|
|
public record ClearCacheForObjectMessage(GameObjectHandler ObjectToCreateFor) : SameThreadMessage;
|
|
public record CharacterDataCreatedMessage(CharacterData CharacterData) : SameThreadMessage;
|
|
public record LightlessNotificationMessage(LightlessSync.UI.Models.LightlessNotification Notification) : MessageBase;
|
|
public record LightlessNotificationDismissMessage(string NotificationId) : MessageBase;
|
|
public record ClearAllNotificationsMessage : MessageBase;
|
|
public record CharacterDataAnalyzedMessage : MessageBase;
|
|
public record PenumbraStartRedrawMessage(IntPtr Address) : MessageBase;
|
|
public record PenumbraEndRedrawMessage(IntPtr Address) : MessageBase;
|
|
public record HubReconnectingMessage(Exception? Exception) : SameThreadMessage;
|
|
public record HubReconnectedMessage(string? Arg) : SameThreadMessage;
|
|
public record HubClosedMessage(Exception? Exception) : SameThreadMessage;
|
|
public record ResumeScanMessage(string Source) : MessageBase;
|
|
public record FileCacheInitializedMessage : MessageBase;
|
|
public record DownloadReadyMessage(Guid RequestId) : MessageBase;
|
|
public record DownloadStartedMessage(GameObjectHandler DownloadId, IReadOnlyDictionary<string, FileDownloadStatus> DownloadStatus) : MessageBase;
|
|
public record DownloadFinishedMessage(GameObjectHandler DownloadId) : MessageBase;
|
|
public record UiToggleMessage(Type UiType) : MessageBase;
|
|
public record PlayerUploadingMessage(GameObjectHandler Handler, bool IsUploading) : MessageBase;
|
|
public record ClearProfileUserDataMessage(UserData? UserData = null) : MessageBase;
|
|
public record ClearProfileGroupDataMessage(GroupData? GroupData = null) : MessageBase;
|
|
public record CyclePauseMessage(Pair Pair) : MessageBase;
|
|
public record PauseMessage(UserData UserData) : MessageBase;
|
|
public record ProfilePopoutToggle(Pair? Pair) : MessageBase;
|
|
public record CompactUiChange(Vector2 Size, Vector2 Position) : MessageBase;
|
|
public record ProfileOpenStandaloneMessage(Pair Pair) : MessageBase;
|
|
public record GroupProfileOpenStandaloneMessage(GroupData Group) : MessageBase;
|
|
public record OpenGroupProfileEditorMessage(GroupFullInfoDto Group) : MessageBase;
|
|
public record CloseGroupProfilePreviewMessage(GroupFullInfoDto Group) : MessageBase;
|
|
public record ActiveServerChangedMessage(string ServerUrl) : MessageBase;
|
|
public record OpenSelfProfilePreviewMessage(UserData User) : MessageBase;
|
|
public record CloseSelfProfilePreviewMessage(UserData User) : MessageBase;
|
|
public record OpenLightfinderProfileMessage(UserData User, LightlessProfileData ProfileData, string HashedCid) : MessageBase;
|
|
public record RemoveWindowMessage(WindowMediatorSubscriberBase Window) : MessageBase;
|
|
public record RefreshUiMessage : MessageBase;
|
|
public record OpenBanUserPopupMessage(Pair PairToBan, GroupFullInfoDto GroupFullInfoDto) : MessageBase;
|
|
public record OpenCensusPopupMessage() : MessageBase;
|
|
public record OpenSyncshellAdminPanel(GroupFullInfoDto GroupInfo) : MessageBase;
|
|
public record OpenPermissionWindow(Pair Pair) : MessageBase;
|
|
public record DownloadLimitChangedMessage() : SameThreadMessage;
|
|
public record PairProcessingLimitChangedMessage : SameThreadMessage;
|
|
public record PairDataChangedMessage : MessageBase;
|
|
public record PairUiUpdatedMessage(PairUiSnapshot Snapshot) : MessageBase;
|
|
public record CensusUpdateMessage(byte Gender, byte RaceId, byte TribeId) : MessageBase;
|
|
public record TargetPairMessage(Pair Pair) : MessageBase;
|
|
public record PairFocusCharacterMessage(Pair Pair) : SameThreadMessage;
|
|
public record PairOnlineMessage(PairUniqueIdentifier PairIdent) : MessageBase;
|
|
public record CombatStartMessage : MessageBase;
|
|
public record CombatEndMessage : MessageBase;
|
|
public record PerformanceStartMessage : MessageBase;
|
|
public record PerformanceEndMessage : MessageBase;
|
|
public record InstanceOrDutyStartMessage : MessageBase;
|
|
public record InstanceOrDutyEndMessage : MessageBase;
|
|
public record EventMessage(Event Event) : MessageBase;
|
|
public record PenumbraDirectoryChangedMessage(string? ModDirectory) : MessageBase;
|
|
public record PenumbraRedrawCharacterMessage(ICharacter Character) : SameThreadMessage;
|
|
public record GameObjectHandlerCreatedMessage(GameObjectHandler GameObjectHandler, bool OwnedObject) : SameThreadMessage;
|
|
public record GameObjectHandlerDestroyedMessage(GameObjectHandler GameObjectHandler, bool OwnedObject) : SameThreadMessage;
|
|
public record HaltCharaDataCreation(bool Resume = false) : SameThreadMessage;
|
|
public record GposeLobbyUserJoin(UserData UserData) : MessageBase;
|
|
public record GPoseLobbyUserLeave(UserData UserData) : MessageBase;
|
|
public record GPoseLobbyReceiveCharaData(CharaDataDownloadDto CharaDataDownloadDto) : MessageBase;
|
|
public record GPoseLobbyReceivePoseData(UserData UserData, PoseData PoseData) : MessageBase;
|
|
public record GPoseLobbyReceiveWorldData(UserData UserData, WorldData WorldData) : MessageBase;
|
|
public record OpenCharaDataHubWithFilterMessage(UserData UserData) : MessageBase;
|
|
public record EnableBroadcastMessage(string HashedCid, bool Enabled) : MessageBase;
|
|
public record BroadcastStatusChangedMessage(bool Enabled, TimeSpan? Ttl, string? Gid = null) : MessageBase;
|
|
public record UserLeftSyncshell(string gid) : MessageBase;
|
|
public record UserJoinedSyncshell(string gid) : MessageBase;
|
|
public record SyncshellBroadcastsUpdatedMessage : MessageBase;
|
|
public record PairRequestReceivedMessage(string HashedCid, string Message) : MessageBase;
|
|
public record PairRequestsUpdatedMessage : MessageBase;
|
|
public record PairDownloadStatusMessage(List<(string PlayerName, float Progress, string Status)> DownloadStatus, int QueueWaiting) : MessageBase;
|
|
public record VisibilityChange : MessageBase;
|
|
public record ChatChannelsUpdated : MessageBase;
|
|
public record ChatChannelMessageAdded(string ChannelKey, ChatMessageEntry Message) : MessageBase;
|
|
public record GroupCollectionChangedMessage : MessageBase;
|
|
public record OpenUserProfileMessage(UserData User) : MessageBase;
|
|
public record LocationSharingMessage(UserData User, LocationInfo LocationInfo, DateTimeOffset ExpireAt) : MessageBase;
|
|
public record MapChangedMessage(uint MapId) : MessageBase;
|
|
#pragma warning restore S2094
|
|
#pragma warning restore MA0048 // File name must match type name
|