• Nikitos's avatar
    fix($): пул без «фантомных» тел, tileSize, sanitize массивов, слушатели анимации
    · d41aa685
    Nikitos создал
    Находки финального аудита крупных модулей: nav, widgets, tilemap, tween,
    anim, prefab, pool. nav.js проверен property-тестами (A* против Дейкстры,
    pathOnMesh/pathOnGrid на сотнях случайных карт) — чисто.
    
    * pool: у свободных (предсозданных) узлов снимается физическое тело. Раньше
      каждый такой узел висел в мире в точке (0,0) и сталкивался, хотя его нет
      ни в ctx.nodes, ни в счётчиках. Проверено вживую: create(initial:3) не
      меняет engine.bodyCount(), spawn добавляет ровно одно тело.
    * tilemap: .tileSize() после первого рендера режет лист по новому размеру —
      вычисленные cols/rows больше не принимаются за явный override.
    * prefab: sanitize() охраняет и массивы: циклический массив в attrs больше
      не валит $.prefab.save() с RangeError.
    * anim: повторный .stateMachine() снимает слушателей прошлой машины, а
      eventsBetween() возвращает все повторы события из интервала — при лаге
      кадра события циклов больше не теряются.
    * widgets: циклический extends тем (a→b→a) рвётся пустой темой с
      предупреждением, а не уходит в бесконечную рекурсию.
    * tween: .delay() действует и на мгновенный property-твинер (значение
      откатывается и применяется после задержки); method-твинер больше не
      применяется мгновенно, потому что его нельзя откатить.
    * Тесты: по регрессионному кейсу в pool/tilemap/prefab/anim/widgets/tween;
      layerFrames экспортирован как tilemapLayerFrames для проверки срезки листа.
    d41aa685
Чтобы узнать состояние репозитория этого проекта на момент создания любой из этих версий, посмотрите теги.