
WZ2100JsonEditor
Десктопное приложение на C++/Qt5, визуализирующее дерево исследований Warzone 2100 как перетаскиваемый граф с возможностью редактирования JSON-полей каждого узла в табличном виде.
WZ2100JsonEditor — десктопное приложение на C++/Qt5 для графического редактирования JSON-файлов игры Warzone 2100. Основная особенность — графовое представление дерева исследований: парсит research.json, строит в памяти ориентированный граф узлов и связей requiredResearch, отображает каждый элемент как перетаскиваемый QGraphicsItem с оригинальной иконкой на панорамируемой/зумируемой сцене.
Правый клик по узлу открывает редактор свойств, где JSON-поля узла (name, id, stats и т.д.) редактируются в табличном виде через QAbstractTableModel. После редактирования документ сохраняется обратно в JSON.
Сборка CMake разделяет код на статическую библиотеку логики (модель/контроллер, зависит только от Qt5::Core) и исполняемый файл UI (зависит от Qt5::Widgets + logic).
Key features
- Графовое представление дерева исследований: research.json → ориентированный граф узлов + рёбер requiredResearch.
- Перетаскиваемые QGraphicsItem с оригинальными игровыми иконками на панорамируемой/зумируемой сцене.
- Правый клик → редактор свойств (таблица JSON-полей узла через QAbstractTableModel).
- Разделение logic/ui в CMake: библиотека Core (JSON + граф) vs. Widgets UI — модель тестируется без GUI.
- EmitterObject для передачи сигналов от не-QObject QGraphicsItem.
- ConnectionGraph испускает сигналы nodesConnected при построении; view подключает визуальные узлы — observer pattern.
- ~395 иконок WZ2100 в QRC для отрисовки узлов с реальными игровыми иконками.