import json from typing import Any import db from .ensure_scene_schema import ensure_scene_schema def set_scene_object_collision(slug: str, object_id: int, settings: dict[str, Any]) -> None: """Enregistre la boîte de collision (activée/désactivée, forme, taille, décalage — voir screens/rendering/collision_settings.py) d'un objet de scène QUELCONQUE (pas seulement "personnage" : un décor/fond peut aussi servir d'obstacle à une condition de collision) — un attribut JSON distinct de tous les autres réglages d'objet.""" ensure_scene_schema(slug) conn = db.connect(slug) row = conn.execute("SELECT attributes FROM _scene_objects WHERE id = ?", (object_id,)).fetchone() if not row: conn.close() return attributes = json.loads(row["attributes"] or "{}") attributes["_collision"] = json.dumps(settings) conn.execute("UPDATE _scene_objects SET attributes = ? WHERE id = ?", (json.dumps(attributes), object_id)) conn.commit() conn.close()