from flask import request, jsonify import screens from core.flask_app import app @app.route("/game//scene-objects//geometry", methods=["POST"]) def scene_object_geometry(slug, object_id): """Mirror exact de routes/elements/element_geometry.py, mais en pixels (voir screens/scenes/update_scene_object_geometry.py) — appelé en AJAX pendant/à la fin d'un glisser-déposer sur la scène.""" data = request.get_json(force=True) screens.update_scene_object_geometry( slug, object_id, x=float(data["x"]), y=float(data["y"]), width=float(data["width"]), height=float(data["height"]), ) # Un "fond" agrandi manuellement au-delà du champ de la caméra doit # élargir le "monde" tout de suite (voir screens.resolve_scene_world_size) # — sans ça, rien ne rafraîchissait window.SCENE_WIDTH/SCENE_HEIGHT côté # JS après un redimensionnement manuel (contrairement au tour de Ruby, # voir iaChatRefreshAfterTurn() dans static/js/ia/ia-chat.js), rendant # injoignable à la souris tout ce qui dépassait la scène nominale. obj = screens.get_scene_object(slug, object_id) screen = screens.get_screen(slug, obj["scene_id"]) objects = screens.list_scene_objects(slug, obj["scene_id"]) world_width, world_height = screens.resolve_scene_world_size(screen, objects) return jsonify({"ok": True, "world_width": world_width, "world_height": world_height})