48 lines
2.4 KiB
JavaScript
48 lines
2.4 KiB
JavaScript
// effects.js — Shared effect presets for background system
|
|
// Depends on backgroundEngine.js being loaded first
|
|
|
|
(function(engine) {
|
|
if (!engine) return;
|
|
|
|
// Pre-configured effect presets that themes can reference by name
|
|
engine.effectPresets = {
|
|
starfield: { type: 'stars', count: 120, color: '#FFFFFF' },
|
|
starfieldDense:{ type: 'stars', count: 250, color: '#FFFFFF' },
|
|
starfieldSparse:{ type: 'stars', count: 40, color: '#FFFFFF' },
|
|
lightRain: { type: 'rain', count: 60, color: '#AACCEE' },
|
|
heavyRain: { type: 'rain', count: 200, color: '#8899BB' },
|
|
lightSnow: { type: 'snow', count: 40, color: '#FFFFFF' },
|
|
heavySnow: { type: 'snow', count: 150, color: '#E8E8F0' },
|
|
floatingDust: { type: 'dust', count: 30, color: '#DDDDAA' },
|
|
embers: { type: 'particles', count: 25, color: '#FF8844' },
|
|
sparkle: { type: 'sparkles', count: 30, color: '#FFFFFF' },
|
|
goldSparkle: { type: 'sparkles', count: 30, color: '#FFD700' },
|
|
thinFog: { type: 'fog', count: 8, color: '#CCCCCC' },
|
|
thickFog: { type: 'fog', count: 20, color: '#999999' },
|
|
darkFog: { type: 'fog', count: 15, color: '#333344' },
|
|
bubbles: { type: 'bubbles', count: 25, color: '#88CCEE' },
|
|
denseBubbles: { type: 'bubbles', count: 60, color: '#66AADD' },
|
|
fallingLeaves:{ type: 'leaves', count: 15, color: '#CC8833' },
|
|
autumnLeaves: { type: 'leaves', count: 30, color: '#DD6622' },
|
|
cherryBlossom:{ type: 'leaves', count: 25, color: '#FFB7C5' },
|
|
fireflies: { type: 'fireflies', count: 15, color: '#CCFF44' },
|
|
denseFireflies:{ type: 'fireflies',count: 35, color: '#AAEE33' },
|
|
magicParticles:{ type: 'particles',count: 40, color: '#BB77FF' },
|
|
neonParticles:{ type: 'particles', count: 50, color: '#00FFCC' },
|
|
smokeRising: { type: 'dust', count: 20, color: '#888888' },
|
|
snowfall: { type: 'snow', count: 80, color: '#FFFFFF' },
|
|
rainStorm: { type: 'rain', count: 300, color: '#667799' },
|
|
};
|
|
|
|
// Helper to apply a preset by name
|
|
engine.addPresetEffect = function(presetName) {
|
|
const preset = engine.effectPresets[presetName];
|
|
if (preset) {
|
|
engine.addEffect(preset.type, { ...preset });
|
|
} else {
|
|
console.warn('BackgroundEngine: unknown effect preset "' + presetName + '"');
|
|
}
|
|
};
|
|
|
|
})(window.BackgroundEngine);
|