From 902093d75ff358db0338e9500bdd6b675e0e7df0 Mon Sep 17 00:00:00 2001 From: Wind-Explorer Date: Sun, 30 Aug 2026 01:48:48 +0800 Subject: [PATCH] very hot looking puppet preview and move skin btn to scene view --- .../control-panel/general-panel.svelte | 42 +--- .../control-panel/scene-panel.svelte | 234 ++++++++++++++---- .../components/renderer/puppet/animation.ts | 6 +- .../scene/components/renderer/puppet/index.ts | 153 ++---------- .../components/renderer/puppet/preview.svelte | 97 ++++++++ .../scene/components/renderer/puppet/skin.ts | 20 +- .../components/renderer/puppet/visual.ts | 188 ++++++++++++++ 7 files changed, 508 insertions(+), 232 deletions(-) create mode 100644 src/routes/scene/components/renderer/puppet/preview.svelte create mode 100644 src/routes/scene/components/renderer/puppet/visual.ts diff --git a/src/lib/components/control-panel/general-panel.svelte b/src/lib/components/control-panel/general-panel.svelte index f1b3c7e..6e4c0c8 100644 --- a/src/lib/components/control-panel/general-panel.svelte +++ b/src/lib/components/control-panel/general-panel.svelte @@ -12,8 +12,6 @@ let dirty = $state(false); let busy = $state(false); let error = $state(""); - let skinFile = $state(null); - let skinInput = $state(null); $effect(() => { if (!dirty) displayName = $profile?.displayName ?? ""; @@ -23,15 +21,12 @@ onMount(() => register("general", { apply, reset }, { dirty, busy })); function updateDirty() { - dirty = - displayName.trim() !== ($profile?.displayName ?? "") || skinFile !== null; + dirty = displayName.trim() !== ($profile?.displayName ?? ""); error = ""; } function reset() { displayName = $profile?.displayName ?? ""; - skinFile = null; - if (skinInput) skinInput.value = ""; dirty = false; error = ""; } @@ -47,13 +42,8 @@ busy = true; error = ""; try { - const skinData = skinFile - ? Array.from(new Uint8Array(await skinFile.arrayBuffer())) - : null; - await commands.updateProfile(nextName, skinData); + await commands.updateProfile(nextName, null); displayName = nextName; - skinFile = null; - if (skinInput) skinInput.value = ""; dirty = false; return true; } catch (cause) { @@ -88,34 +78,6 @@ This name can be changed at any time.
64×64 Minecraft-format PNG, base layer only.
Scale
Opacity
{(puppetScale * 100).toFixed(0)}%
{(puppetOpacity * 100).toFixed(0)}%