aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui/src/components/ParticleBackground.svelte
diff options
context:
space:
mode:
authorHsiangNianian <i@jyunko.cn>2026-01-15 20:02:23 +0800
committerHsiangNianian <i@jyunko.cn>2026-01-15 20:02:23 +0800
commit655d47745ce136603ff8222868b440e641fb9407 (patch)
treed150c7733d039d71e40a9d3298952a4627fe2584 /ui/src/components/ParticleBackground.svelte
parent6b1480dbff0001ff1aac8eea33880bf12f8e4a34 (diff)
downloadDropOut-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.svelte15
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>