from flask import request, jsonify import screens from core.flask_app import app @app.route("/game//scene-objects//collision", methods=["POST"]) def scene_object_collision(slug, object_id): """Boîte de collision d'un objet de scène (voir "🧱 Collision" dans templates/scene_edit.html, static/js/play/conditions.js:: elementsOverlap pour son usage au jeu).""" body = request.get_json(silent=True) or {} obj = screens.get_scene_object(slug, object_id) if not obj: return jsonify({"error": "objet introuvable"}), 404 settings = {"enabled": bool(body.get("enabled", True))} settings["shape"] = body.get("shape") if body.get("shape") in screens.COLLISION_SHAPES else "rectangle" for key in ("width", "height"): try: value = body.get(key) settings[key] = float(value) if value not in (None, "") else None except (TypeError, ValueError): settings[key] = None for key in ("offset_x", "offset_y"): try: settings[key] = float(body.get(key) or 0) except (TypeError, ValueError): settings[key] = 0 screens.set_scene_object_collision(slug, object_id, settings) obj = screens.get_scene_object(slug, object_id) return jsonify({"ok": True, "collision": screens.resolve_collision_settings(obj)})