初始化 monorepo: Go后端(7微服务) + Unity客户端(9模块) + 启动器 HTML5原型: Three.js 3D体素世界, Perlin噪声地形, 原版材质, 22种方块 Minecraft创造模式背包: 双栏布局, 拖拽移动物品, 方向性元件引脚 AI助搭策划文档 + 客户端/服务端骨架 + Docker Compose + CI
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using PCL.Core.App.Localization;
|
||||
|
||||
namespace PCL;
|
||||
|
||||
public partial class PageLoginProfileSkin
|
||||
{
|
||||
public PageLoginProfileSkin()
|
||||
{
|
||||
InitializeComponent();
|
||||
Loaded += (_, _) => Reload();
|
||||
// Handles
|
||||
PanData.MouseEnter += ShowPanel;
|
||||
PanData.MouseLeave += HidePanel;
|
||||
BtnSkin.Click += BtnSkin_Click;
|
||||
BtnEdit.Click += BtnEdit_Click;
|
||||
BtnSelect.Click += ChangeProfile;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 刷新页面显示的所有信息。
|
||||
/// </summary>
|
||||
public void Reload()
|
||||
{
|
||||
ModBase.Log("[Profile] 刷新档案界面");
|
||||
Skin.Clear();
|
||||
if (ModProfile.selectedProfile.Type == ModLaunch.McLoginType.Ms)
|
||||
{
|
||||
BtnEdit.Visibility = Visibility.Visible;
|
||||
ModBase.Log("[Profile] 使用正版皮肤加载器");
|
||||
Skin.loader = PageLaunchLeft.skinMs;
|
||||
}
|
||||
else if (ModProfile.selectedProfile.Type == ModLaunch.McLoginType.Auth)
|
||||
{
|
||||
BtnEdit.Visibility = Visibility.Visible;
|
||||
ModBase.Log("[Profile] 使用 Authlib 皮肤加载器");
|
||||
Skin.loader = PageLaunchLeft.skinAuth;
|
||||
}
|
||||
else
|
||||
{
|
||||
BtnEdit.Visibility = Visibility.Collapsed;
|
||||
ModBase.Log("[Profile] 使用离线皮肤加载器");
|
||||
Skin.loader = PageLaunchLeft.skinLegacy;
|
||||
}
|
||||
|
||||
Skin.loader.Start(isForceRestart: true);
|
||||
TextName.Text = ModProfile.selectedProfile.Username;
|
||||
TextType.Text = (string)ModProfile.GetProfileInfo(ModProfile.selectedProfile);
|
||||
}
|
||||
|
||||
#region 控制与编辑
|
||||
|
||||
// 显示 / 隐藏控制
|
||||
private void ShowPanel(object sender, MouseEventArgs e)
|
||||
{
|
||||
ModAnimation.AniStart(ModAnimation.AaOpacity(PanButtons, 1d - PanButtons.Opacity, 120),
|
||||
"PageLoginProfileSkin Button");
|
||||
}
|
||||
|
||||
private void HidePanel(object sender, EventArgs e)
|
||||
{
|
||||
if (BtnEdit.ContextMenu.IsOpen || BtnSkin.ContextMenu.IsOpen || PanData.IsMouseOver)
|
||||
return;
|
||||
ModAnimation.AniStart(ModAnimation.AaOpacity(PanButtons, -PanButtons.Opacity, 120),
|
||||
"PageLoginProfileSkin Button");
|
||||
}
|
||||
|
||||
private void MenuAccountOptions_Closed(object sender, RoutedEventArgs e)
|
||||
{
|
||||
HidePanel(sender, e);
|
||||
}
|
||||
|
||||
// 皮肤与披风子菜单
|
||||
private void BtnSkin_Click(object sender, EventArgs e)
|
||||
{
|
||||
BtnSkin.ContextMenu.IsOpen = true;
|
||||
}
|
||||
|
||||
// 账号信息子菜单
|
||||
private void BtnEdit_Click(object sender, EventArgs e)
|
||||
{
|
||||
BtnEdit.ContextMenu.IsOpen = true;
|
||||
}
|
||||
|
||||
// 修改密码
|
||||
private void BtnEditPassword_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ModProfile.selectedProfile.Type == ModLaunch.McLoginType.Ms)
|
||||
{
|
||||
ModBase.OpenWebsite("https://account.live.com/password/Change");
|
||||
}
|
||||
else if (ModProfile.selectedProfile.Type == ModLaunch.McLoginType.Auth)
|
||||
{
|
||||
var server = ModProfile.selectedProfile.Server;
|
||||
ModBase.OpenWebsite(server.Replace("/api/yggdrasil/authserver" + (server.EndsWithF("/") ? "/" : ""),
|
||||
"/user/profile"));
|
||||
}
|
||||
else
|
||||
{
|
||||
HintService.Hint(Lang.Text("Launch.Account.ProfileSkin.PasswordUnsupported"));
|
||||
}
|
||||
}
|
||||
|
||||
// 修改 ID
|
||||
private void BtnEditName_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ModProfile.EditProfileId();
|
||||
}
|
||||
|
||||
// 选择档案
|
||||
private void ChangeProfile(object sender, EventArgs e)
|
||||
{
|
||||
ModProfile.selectedProfile = null;
|
||||
ModBase.RunInUi(() =>
|
||||
{
|
||||
ModMain.frmLaunchLeft.RefreshPage(true);
|
||||
ModMain.frmLaunchLeft.BtnLaunch.IsEnabled = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 修改皮肤
|
||||
private void Skin_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ModProfile.selectedProfile.Type == ModLaunch.McLoginType.Ms)
|
||||
ModProfile.ChangeSkinMs();
|
||||
else if (ModProfile.selectedProfile.Type == ModLaunch.McLoginType.Auth)
|
||||
ModBase.OpenWebsite(ModProfile.selectedProfile.Server.BeforeFirst("api/yggdrasil/authserver") +
|
||||
"user/closet");
|
||||
else
|
||||
HintService.Hint(Lang.Text("Launch.Account.ProfileSkin.SkinUnsupported"));
|
||||
}
|
||||
|
||||
// 保存皮肤
|
||||
private void BtnSkinSave_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Skin.BtnSkinSave_Click(sender, e);
|
||||
}
|
||||
|
||||
// 刷新皮肤
|
||||
private void BtnSkinRefresh_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Skin.RefreshClick(sender, e);
|
||||
}
|
||||
|
||||
// 修改披风
|
||||
private void BtnSkinCape_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ModProfile.selectedProfile.Type == ModLaunch.McLoginType.Ms)
|
||||
Skin.BtnSkinCape_Click(sender, e);
|
||||
else if (ModProfile.selectedProfile.Type == ModLaunch.McLoginType.Auth)
|
||||
ModBase.OpenWebsite(ModProfile.selectedProfile.Server.BeforeFirst("api/yggdrasil/authserver") +
|
||||
"user/closet");
|
||||
else
|
||||
HintService.Hint(Lang.Text("Launch.Account.ProfileSkin.CapeUnsupported"));
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user