Ajoute l'assistant IA "Ruby" (Claude + Scenario) et corrige plusieurs bugs de la scène
Intègre un chat IA capable de manipuler la scène via les mêmes fonctions que l'éditeur manuel (objets, variables, déclencheurs, images générées), avec conversations multiples par écran façon Claude. Corrige au passage le rafraîchissement pjax hors-ordre, l'onglet IA/déclencheurs vide après sélection d'un objet, la comparaison de booléens dans les conditions, et le blocage du glisser-déposer hors du cadre caméra après un redimensionnement de fond par l'IA. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
ab6635eee0
commit
b07b231a61
@@ -31,6 +31,20 @@
|
||||
}
|
||||
|
||||
function runScriptsIn(container) {
|
||||
// Bug corrigé : un <script src="..."> créé via document.createElement
|
||||
// est ASYNC PAR DÉFAUT (contrairement à un <script> du HTML source,
|
||||
// exécuté dans l'ordre du document) — plusieurs scripts de page
|
||||
// (variables globales GAME_SLUG/SCREEN_ID posées en inline, puis
|
||||
// scene-editor.js/trigger-editor.js/ia-chat.js qui en dépendent
|
||||
// immédiatement) pouvaient donc s'exécuter dans le désordre après une
|
||||
// navigation pjax, selon l'ordre d'arrivée réseau — jamais après un
|
||||
// vrai rechargement de page (où l'ordre du document est respecté).
|
||||
// Symptôme observé : l'onglet "Générer avec l'IA" se retrouvait vide
|
||||
// après le moindre changement ailleurs (variable, déclencheur), un
|
||||
// rechargement complet le "réparant" — en réalité ia-chat.js avait dû
|
||||
// s'exécuter avant que GAME_SLUG/SCREEN_ID existent. `async = false`
|
||||
// restaure l'exécution dans l'ordre du document pour CHAQUE script
|
||||
// externe, exactement comme à l'analyse initiale du HTML.
|
||||
var scripts = container.querySelectorAll("script");
|
||||
scripts.forEach(function (old) {
|
||||
var fresh = document.createElement("script");
|
||||
@@ -38,6 +52,7 @@
|
||||
var attr = old.attributes[i];
|
||||
fresh.setAttribute(attr.name, attr.value);
|
||||
}
|
||||
if (fresh.src) fresh.async = false;
|
||||
fresh.textContent = old.textContent;
|
||||
old.replaceWith(fresh);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user