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>
19 lines
559 B
Python
19 lines
559 B
Python
"""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
|