Files
rltn/COLLISION_DEBUG.md

3.6 KiB
Raw Permalink Blame History

Диагностика сохранения коллизии

🔍 Добавлено подробное логирование для отладки коллизии

В консоли браузера (F12):

При изменении свойств объекта:

🔧 Обновлены свойства объекта: {
  name: "Название объекта",
  organization_id: 2,
  collidable: true,  ← Проверьте это значение
  interior_id: 101
}

При сохранении объекта:

🔍 Проверяем коллизию: {
  'obj.userData.collidable': true,  ← Значение в объекте
  'objectData.collidable': true,    ← Значение для сервера
  'objectCollidable state': true    ← Значение в состоянии
}

В консоли сервера:

При получении данных:

🔍 Получены данные объекта: {
  id: 110,
  name: "Название объекта",
  collidable: true,  ← Проверьте это значение
  city_id: 1
}

При обновлении объекта:

🔄 Обновляем существующий объект с ID: 110
🔍 Значение collidable для UPDATE: true  ← Проверьте это значение
✅ Объект обновлен: { id: 110 }

При создании объекта:

🆕 Создаем новый объект
🔍 Значение collidable для INSERT: true  ← Проверьте это значение
✅ Новый объект создан: { id: 111 }

🐛 Возможные проблемы:

1. Коллизия не обновляется в userData

Симптом: obj.userData.collidable остается false Решение: Проверьте, что вы нажали "Применить" после изменения коллизии

2. Коллизия не передается на сервер

Симптом: objectData.collidable остается false Решение: Проверьте, что obj.userData.collidable обновляется

3. Коллизия не сохраняется в БД

Симптом: На сервере collidable остается false Решение: Проверьте SQL запрос и значения параметров

🔧 Пошаговая диагностика:

Шаг 1: Измените коллизию

  1. Выберите объект
  2. Поставьте/снимите галочку "Коллизия"
  3. Нажмите "Применить"
  4. Проверьте лог: 🔧 Обновлены свойства объекта

Шаг 2: Сохраните объект

  1. Нажмите "Сохранить"
  2. Проверьте лог: 🔍 Проверяем коллизию
  3. Все три значения должны быть одинаковыми

Шаг 3: Проверьте сервер

  1. Посмотрите логи сервера
  2. Проверьте: 🔍 Получены данные объекта
  3. Проверьте: 🔍 Значение collidable для UPDATE/INSERT

Шаг 4: Проверьте БД

  1. Выполните SQL запрос:
SELECT id, name, collidable FROM city_objects WHERE id = [ID_ОБЪЕКТА];

Ожидаемый результат:

После выполнения всех шагов коллизия должна сохраняться в БД и загружаться при перезагрузке страницы.