Skip to content

Commit bf5da9f

Browse files
committed
Move GameEventButtonPosition to Plugin.Core
1 parent 7df447d commit bf5da9f

4 files changed

Lines changed: 196 additions & 86 deletions

File tree

CollapseLauncher/Classes/Helper/Metadata/PresetConfig.cs

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
using Hi3Helper.Data;
88
using Hi3Helper.EncTool;
99
using Hi3Helper.EncTool.Parser.AssetMetadata;
10+
using Hi3Helper.Plugin.Core.UI.Controls;
1011
using Hi3Helper.SentryHelper;
11-
using Microsoft.UI.Xaml;
1212
using Microsoft.Win32;
1313
using System;
1414
using System.Buffers;
@@ -22,7 +22,6 @@
2222
using System.Text.Json.Serialization;
2323
using System.Threading;
2424
using System.Threading.Tasks;
25-
using Windows.Foundation;
2625
using WinRT;
2726
using static Hi3Helper.Logger;
2827
// ReSharper disable InconsistentNaming
@@ -79,25 +78,11 @@ public enum GameVendorType
7978
public enum LauncherType
8079
{
8180
Legacy,
82-
Sophon = Legacy,
81+
Sophon,
8382
HoYoPlay,
8483
Plugin
8584
}
8685

87-
[GeneratedBindableCustomProperty]
88-
public partial class GameEventButtonPosition
89-
{
90-
[JsonConverter(typeof(JsonStringEnumConverter<HorizontalAlignment>))]
91-
public HorizontalAlignment HorizontalAlignment { get; init; } = HorizontalAlignment.Left;
92-
93-
[JsonConverter(typeof(JsonStringEnumConverter<VerticalAlignment>))]
94-
public VerticalAlignment VerticalAlignment { get; init; } = VerticalAlignment.Top;
95-
96-
public Thickness Position { get; init; } = new(256, 596, 0, 0);
97-
public double VSize { get; init; } = 80d;
98-
public Size FrameSize { get; init; } = new(2560, 1440);
99-
}
100-
10186
public class GameInstallFileInfo
10287
{
10388
public string GameDataFolderName { get; init; } = string.Empty;
@@ -335,7 +320,7 @@ internal static class PresetConfigExt
335320
}
336321
}
337322

338-
[JsonSourceGenerationOptions(IncludeFields = false, GenerationMode = JsonSourceGenerationMode.Metadata, IgnoreReadOnlyFields = true)]
323+
[JsonSourceGenerationOptions(IncludeFields = false, IgnoreReadOnlyFields = true)]
339324
[JsonSerializable(typeof(PresetConfig))]
340325
internal sealed partial class PresetConfigJsonContext : JsonSerializerContext;
341326

@@ -557,7 +542,12 @@ public SophonChunkUrls? LauncherResourceChunksURL
557542

558543
public GameInstallFileInfo? GameInstallFileInfo { get; init; }
559544

560-
public GameEventButtonPosition GameEventButtonPosition { get => field ??= new GameEventButtonPosition(); init; }
545+
private GameEventButtonPosition? _gameEventButtonPosition;
546+
public GameEventButtonPosition GameEventButtonPosition
547+
{
548+
get => _gameEventButtonPosition.HasValue && _gameEventButtonPosition.Value != default ? _gameEventButtonPosition.Value : GameEventButtonPosition.Default;
549+
init => _gameEventButtonPosition = value;
550+
}
561551

562552
#endregion
563553

CollapseLauncher/XAMLs/MainApp/Pages/HomePage.xaml

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@
4141
<pages:TimeSpanToNumberMillisecondsConverter x:Key="TimeSpanToNumberMillisecondsConverter" />
4242
<pages:TimeSpanMoreThan15SecondsToVisibilityConverter x:Key="TimeSpanMoreThan15SecondsToVisibilityConverter" />
4343
<pages:FontPathLookupConverter x:Key="FontPathLookupConverter" />
44+
<pages:PluginHorizontalAlignmentConverter x:Key="PluginHorizontalAlignmentConverter" />
45+
<pages:PluginVerticalAlignmentConverter x:Key="PluginVerticalAlignmentConverter" />
46+
<pages:PluginDoublePositionToThicknessConverter x:Key="PluginDoublePositionToThicknessConverter" />
4447
<c:IndexAddOneConverter x:Key="IndexAddOneConverter" />
4548

4649
<MenuFlyout x:Key="BackgroundContextMenuFlyout"
@@ -194,21 +197,22 @@
194197
PointerPressed="ClickImageEventSpriteLink"
195198
PointerEntered="ImageEventImg_OnPointerEntered"
196199
PointerExited="ImageEventImg_OnPointerExited"
197-
HorizontalAlignment="{x:Bind CurrentPresetConfig.GameEventButtonPosition.HorizontalAlignment, Mode=OneWay}"
198-
VerticalAlignment="{x:Bind CurrentPresetConfig.GameEventButtonPosition.VerticalAlignment, Mode=OneWay}"
199-
Height="{x:Bind CurrentPresetConfig.GameEventButtonPosition.VSize, Mode=OneWay}"
200-
Margin="{x:Bind CurrentPresetConfig.GameEventButtonPosition.Position, Mode=OneWay}"
200+
HorizontalAlignment="{x:Bind CurrentPresetConfig.GameEventButtonPosition.HorizontalAlignment, Mode=OneWay, Converter={StaticResource PluginHorizontalAlignmentConverter}}"
201+
VerticalAlignment="{x:Bind CurrentPresetConfig.GameEventButtonPosition.VerticalAlignment, Mode=OneWay, Converter={StaticResource PluginVerticalAlignmentConverter}}"
202+
Width="{x:Bind CurrentPresetConfig.GameEventButtonPosition.IconSize.Width, Mode=OneWay}"
203+
Height="{x:Bind CurrentPresetConfig.GameEventButtonPosition.IconSize.Height, Mode=OneWay}"
204+
Margin="{x:Bind CurrentPresetConfig.GameEventButtonPosition.Position, Mode=OneWay, Converter={StaticResource PluginDoublePositionToThicknessConverter}}"
201205
Tag="{x:Bind CurrentGameBackgroundData.FeaturedEventIconClickLink, Mode=OneWay}"
202206
Visibility="{x:Bind IsShowSidePanel, Converter={StaticResource BooleanVisibilityConverter}}">
203-
<c:NonFaultyImageEx
204-
x:Name="ImageEventImgNormal"
205-
x:FieldModifier="internal"
206-
Source="{x:Bind CurrentGameBackgroundData.FeaturedEventIconUrl, Mode=OneWay, Converter={StaticResource UrlToCachedImagePathConverter}}"/>
207207
<c:NonFaultyImageEx
208208
x:Name="ImageEventImgHover"
209209
x:FieldModifier="internal"
210210
Source="{x:Bind CurrentGameBackgroundData.FeaturedEventIconHoverUrl, Mode=OneWay, Converter={StaticResource UrlToCachedImagePathConverter}}"
211-
Visibility="Collapsed"/>
211+
Opacity="0"/>
212+
<c:NonFaultyImageEx
213+
x:Name="ImageEventImgNormal"
214+
x:FieldModifier="internal"
215+
Source="{x:Bind CurrentGameBackgroundData.FeaturedEventIconUrl, Mode=OneWay, Converter={StaticResource UrlToCachedImagePathConverter}}"/>
212216
</Grid>
213217
</Grid>
214218
</Grid>

0 commit comments

Comments
 (0)