diff options
| author | 2026-01-15 20:02:23 +0800 | |
|---|---|---|
| committer | 2026-01-15 20:02:23 +0800 | |
| commit | 655d47745ce136603ff8222868b440e641fb9407 (patch) | |
| tree | d150c7733d039d71e40a9d3298952a4627fe2584 /ui/src/components/ParticleBackground.svelte | |
| parent | 6b1480dbff0001ff1aac8eea33880bf12f8e4a34 (diff) | |
| download | DropOut-655d47745ce136603ff8222868b440e641fb9407.tar.gz DropOut-655d47745ce136603ff8222868b440e641fb9407.zip | |
feat: Add interactive Saturn effect controls in HomeView and enhance ParticleBackground for external mouse handling
Diffstat (limited to 'ui/src/components/ParticleBackground.svelte')
| -rw-r--r-- | ui/src/components/ParticleBackground.svelte | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/ui/src/components/ParticleBackground.svelte b/ui/src/components/ParticleBackground.svelte index 080f1f2..7644b1a 100644 --- a/ui/src/components/ParticleBackground.svelte +++ b/ui/src/components/ParticleBackground.svelte @@ -1,7 +1,17 @@ +<script lang="ts" module> + import { SaturnEffect } from "../lib/effects/SaturnEffect"; + + // Global reference to the active Saturn effect for external control + let globalSaturnEffect: SaturnEffect | null = null; + + export function getSaturnEffect(): SaturnEffect | null { + return globalSaturnEffect; + } +</script> + <script lang="ts"> import { onMount, onDestroy } from "svelte"; import { ConstellationEffect } from "../lib/effects/ConstellationEffect"; - import { SaturnEffect } from "../lib/effects/SaturnEffect"; import { settingsState } from "../stores/settings.svelte"; let canvas: HTMLCanvasElement; @@ -16,8 +26,10 @@ if (settingsState.settings.active_effect === "saturn") { activeEffect = new SaturnEffect(canvas); + globalSaturnEffect = activeEffect; } else { activeEffect = new ConstellationEffect(canvas); + globalSaturnEffect = null; } // Ensure correct size immediately @@ -48,6 +60,7 @@ onDestroy(() => { if (activeEffect) activeEffect.destroy(); + globalSaturnEffect = null; }); </script> |