import { createRoot } from 'react-dom/client'; import App from './App.jsx'; // DevLog подключаем только на localhost. Используем тот же модуль что и // engine (src/engine/devlog.js), чтобы не было ДВУХ хуков на console.* — // иначе каждый log пишется в devlog.txt дважды (engine хукнул сам себя // в BabylonScene.js, плюс наш хук сверху). // // Минус — теги [player]/[rs] здесь не работают (engine'овый devlog не // поддерживает тег), но в плеере все логи плеерские, так что это // безболезненно. if (typeof window !== 'undefined' && window.location.hostname === 'localhost') { import('./engine/devlog.js').then((m) => { m.attachConsoleHook(); console.log('[player] boot'); }); } // СТРОГО без React.StrictMode — engine (BabylonScene + WebGL) не // идемпотентен на двойном монтировании. StrictMode дёргает useEffect // дважды → создаётся два Engine на один canvas → второй вешает первый // и игра остаётся в loading. В Майнкрафтии StrictMode тоже не используется // (см. minecraftia-school.ru/Фронтенд/React/src/index.js). createRoot(document.getElementById('root')).render();