feat(patterns): merge pattern styles and add mode support
Consolidate legacy pattern ids into meteor, particles, sparkle, chase, and colour_cycle with n6/mode style selection; add pattern_modes helper, self-contained tests/all.py, and preset mode alias on wire. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
18
src/patterns/pattern_modes.py
Normal file
18
src/patterns/pattern_modes.py
Normal file
@@ -0,0 +1,18 @@
|
||||
"""Resolve pattern style from n6 or legacy preset pattern id (p)."""
|
||||
|
||||
|
||||
def style_mode(preset, default=0, legacy=None):
|
||||
legacy = legacy or {}
|
||||
p = getattr(preset, "p", "") or ""
|
||||
if p in legacy:
|
||||
return legacy[p]
|
||||
mode = getattr(preset, "mode", None)
|
||||
if mode is None and isinstance(preset, dict):
|
||||
mode = preset.get("mode")
|
||||
if mode is not None:
|
||||
try:
|
||||
return int(mode)
|
||||
except (TypeError, ValueError):
|
||||
pass
|
||||
n6 = int(getattr(preset, "n6", 0) or 0)
|
||||
return n6 if n6 > 0 else default
|
||||
Reference in New Issue
Block a user