Добавьте файлы проекта.

This commit is contained in:
Leonid Pershin
2025-10-26 17:02:04 +03:00
parent 842a1a2c70
commit caa830ba06
12 changed files with 1136 additions and 0 deletions

170
DEBUGGING_QUICKSTART_RU.txt Normal file
View File

@@ -0,0 +1,170 @@
╔══════════════════════════════════════════════════════════════════════════╗
║ 🐛 БЫСТРЫЙ СТАРТ - ОТЛАДКА МОДА ║
╚══════════════════════════════════════════════════════════════════════════╝
═══════════════════════════════════════════════════════════════════════════
СПОСОБ 1: ATTACH TO PROCESS (С BREAKPOINTS) ⭐
═══════════════════════════════════════════════════════════════════════════
✅ Проект уже настроен для отладки!
✅ .pdb файл создаётся автоматически при сборке
📋 ШАГИ:
1⃣ Откройте проект в Visual Studio или Rider:
Source/AIImages/AIImages.csproj
2⃣ Соберите в Debug режиме (уже собрано):
cd Source/AIImages
dotnet build -c Debug
3⃣ Запустите RimWorld (через Steam или напрямую)
4В Visual Studio:
• Debug → Attach to Process... (Ctrl+Alt+P)
• Найдите "RimWorldWin64.exe"
• Нажмите "Attach"
В Rider:
• Run → Attach to Process...
• Найдите "RimWorldWin64"
• Нажмите OK
5⃣ Откройте файл с кодом (например PawnGizmoPatch.cs)
6⃣ Поставьте breakpoint:
• Кликните слева от номера строки
• Появится красная точка 🔴
7В игре выберите пешку
→ Код остановится на breakpoint!
→ Можно смотреть значения переменных
═══════════════════════════════════════════════════════════════════════════
СПОСОБ 2: ЛОГИРОВАНИЕ (ПРОСТОЙ) 📝
═══════════════════════════════════════════════════════════════════════════
1⃣ Добавьте в код Log.Message():
Log.Message("[AI Images] Pawn selected: " + __instance.Name);
2⃣ Соберите проект:
dotnet build
3⃣ Запустите RimWorld
4В игре нажмите Ctrl+F12 → окно логов
5⃣ Выберите пешку → увидите сообщение в логе!
═══════════════════════════════════════════════════════════════════════════
ГОТОВЫЕ ПРИМЕРЫ ДЛЯ ВСТАВКИ
═══════════════════════════════════════════════════════════════════════════
📍 В PawnGizmoPatch.cs (строка 16):
Log.Message($"[AI Images] GetGizmos for: {__instance.Name}");
📍 В Window_AIImage.cs (в DoWindowContents, строка 25):
Log.Message($"[AI Images] Drawing window for: {pawn.Name}");
📍 При нажатии кнопки (PawnGizmoPatch.cs, строка 34):
Log.Message("[AI Images] Button clicked!");
═══════════════════════════════════════════════════════════════════════════
ГДЕ НАХОДЯТСЯ ЛОГИ
═══════════════════════════════════════════════════════════════════════════
В игре:
Ctrl+F12 → окно с логами в реальном времени
Файл лога:
C:\Users\mrleo1nid\AppData\LocalLow\Ludeon Studios\
RimWorld by Ludeon Studios\Player.log
═══════════════════════════════════════════════════════════════════════════
ПОЛЕЗНЫЕ КОМАНДЫ
═══════════════════════════════════════════════════════════════════════════
Сборка в Debug (с .pdb):
cd Source/AIImages
dotnet build -c Debug
Сборка в Release (без .pdb, для публикации):
dotnet build -c Release
Очистка и пересборка:
dotnet clean
dotnet build -c Debug
═══════════════════════════════════════════════════════════════════════════
СОВЕТЫ
═══════════════════════════════════════════════════════════════════════════
✅ Используйте префикс [AI Images] в логах - легче искать
✅ Dev Mode в игре (Options → Settings → Development mode)
Даёт доступ к Debug Actions и Debug Inspector
✅ Логируйте важные моменты:
• Когда метод вызывается
• Значения переменных
• Успех/неудачу операций
✅ Try-Catch для отлова ошибок:
try {
// Ваш код
} catch (Exception ex) {
Log.Error($"[AI Images] Error: {ex}");
}
═══════════════════════════════════════════════════════════════════════════
TROUBLESHOOTING
═══════════════════════════════════════════════════════════════════════════
❓ Breakpoint не срабатывает?
→ Убедитесь, что собрано в Debug (не Release)
→ Проверьте, что .pdb файл есть в Assemblies/
→ Код действительно выполняется? (добавьте Log.Message)
Не видите свой мод в Process List?
→ Убедитесь, что мод загружен в игре
→ Попробуйте перезапустить игру
❓ "Symbols not loaded"?
→ Удалите все из Assemblies/
→ Пересоберите: dotnet clean && dotnet build -c Debug
═══════════════════════════════════════════════════════════════════════════
ДОПОЛНИТЕЛЬНАЯ ДОКУМЕНТАЦИЯ
═══════════════════════════════════════════════════════════════════════════
📖 Полная инструкция: DEBUGGING_RU.md
📖 Примеры кода: DEV_CHEATSHEET.txt
╔══════════════════════════════════════════════════════════════════════════╗
║ ✅ ВСЁ ГОТОВО ДЛЯ ОТЛАДКИ! ║
║ ║
║ Файлы в Assemblies/: ║
║ • AIImages.dll ✅ ║
║ • AIImages.pdb ✅ (отладочные символы) ║
║ • 0Harmony.dll ✅ ║
║ ║
║ Запустите RimWorld и подключите отладчик! ║
╚══════════════════════════════════════════════════════════════════════════╝
Удачной отладки! 🐛→✨