SFS Analyzer
И снова здравствуйте. На этот раз я пришёл не с модом, а с редактором сохранений для KSP. SFS Analyzer это кроссплатформенное десктопное приложение для просмотра и редактирования файлов сохранений (.sfs), файлов создания кораблей (.craft) и файлов конфигурации (.cfg) Kerbal Space Program.
Да, кто-то может сказать что существует Kerbal Markup Lister, но на моей домашней машине стоит Linux, а KML может запускаться в Linux только как консольная утилита, без GUI. Остальные же редакторы сохранений заброшены много лет назад. А у KML ко всему прочему есть фатальный недостаток™ (ЕВПОЧЯ).
Начнём обзор с внешнего вида главного окна.
Главное окно разделено на четыре области: Панель инструментов с кнопками и областью поиска. Левая панель, отображающая полное иерархическое дерево загруженного файла. Правая панель, отображающая параметры выбранного узла и вкладки плагинов. Строка состояния, где отображается имя загруженного файла, количество узлов, размер файла и ход поиска.
Дерево узлов.
Показывает иерархию всех узлов в файле. При выборе узла его параметры можно посмотреть и при необходимости отредактировать на правой панели.
Тулбар
Эта кнопка открывает диалог выбора файла для загрузки. То же действие можно выполнить с помощью кормбинации клавиш Ctrl+O. В Linux каталог установки KSP часто представляет собой скрытую папку (~/.steam/...), поэтому чтобы отобразить скрытые файлы и каталоги можно при открытом диалоге выбора файла нажать Ctrl+H.
Записывает изменения обратно в файл. Перед каждым сохранением автоматически создается копия .bakN в той же директории, поэтому предыдущие версии не потеряются. То же действие можно выполнить с помощью комбинации Ctrl+S.
Копирует выбранный узел в уфер обмена в виде исходного текста SFS. Узел (включая все параметры, комментарии и дочерние узлы) сериализуется в стандартный формат SFS, поэтому его можно вставить в любой текстовый редактор или в другой экземпляр SFS Analyzer. Комбинация клавиш - Ctrl+C.
Считывает содержимое системного буфера обмена и парсит его как узел SFS. Простой ЛКМ по кнопке вставляет в качестве дочернего элемента выбранного узла. С нажатым шифтом вставляет в качестве соседнего элемента, добавляя в конец списка узлов с этим именем. Сочетания клавиш: Ctrl+V вставляет как дочерний элемент, Ctrl+Shift+V вставляет как соседний элемент.
Вставка работает с любым допустимым текстом формата SFS, то есть с узлами, скопированными из SFS Analyzer или скопированными из файла .craft/.sfs/.cfg, открытого в текстовом редакторе.
Copy/Paste хорошо подходит для клонирования уже запущенных кораблей или перемещения кораблей между файлами сохранения. При переносе корабля с экипажем нужно учитывать, что необходимо также перенести соответствующих кербалов из раздела ROSTER, либо удалить параметры crew из всех обитаемых деталей (PART), в противном случае игра зависнет при попытке загрузки такого корабля.
Изменяет порядок узла внутри родительского. Простой ЛКМ по кнопке сдвигает узел на одну позицию. Shift+ЛКМ перемещает на пять позиций. Ctrl+ЛКМ перемещает в начало или конец списка. Клавиши: Alt+Вверх / Alt+Вниз (на одну позицию), Alt+Shift+Вверх / Alt+Shift+Вниз (на пять позиций), Alt+Home / Alt+End (в начало/конец списка).
Создаёт полную копию выбранного узла, а потом вставляет её в качестве соседнего узла в тот же родительский узел. Клонированное поддерево включает все параметры и дочерние узлы. Если исходный узел имеет параметр parent, то параметр parent клона будет указывать на индекс исходного узла (полезно при работе с PART).
Создаёт новый пустой дочерний узел под выбранным узлом. Имя узла выбирается в диалоговом окне.
Удаляет выбранный узел и всё его поддерево. Удаление нужно подтвердить через специальное диалоговое окно.
Добавляет новую пару ключ-значение к выбранному узлу. В диалоговом окне запрашиваются ключ и значение. Новый параметр добавляется в конец и сразу же отображается на панели параметров.
Панель параметров
На правой панели отображаются все пары параметры выбранного узла. Значения редактируются непосредственно в текстовом поле, сохранение значения происходит при нажатии Enter или смене фокуса. Параметры отображаются в том порядке, в котором они встретились в файле.
В верхней части панели навигационная цепочка показывает полную цепочку предков выбранного узла. Промежуточные узлы являются кликабельными, клик по одному из них выбирает соответствующий узел.
При выборе узла с параметром parent (целочисленный индекс, ссылающийся на соседний узел того же типа) в верхнем правом углу панели параметров отображается кнопка перехода к соответствующему узлу.
Параметры можно переименовать или удалить кнопками справа от значения.
Цветовые группы
Тройки RGB, заканчивающиеся на *R, *G, *B и содержащие значения с плавающей запятой в диапазоне [0, 1], автоматически группируются и в группу добавляется ColorPicker для выбора цвета. Выбор цвета обновляет все три поля одновременно.
Поиск
Полнотекстовый поиск по всем именам узлов, названиям и значениям параметров. Результаты выделяются в дереве, а в строке состояния отображается текущий номер найденного совпадения. Кнопки со стрелками позволяют переключаться между найденными совпадениями.
Строка состояния
В нижней части окна отображается текущее имя файла, количество узлов и размер файла после загрузки. Во время поиска отображается ход его выполнения.
Настройки
Кнопка с иконкой шестерёнки на тулбаре открывает окно настроек с несколькими вкладками (кроме встроенных вкладок там могут быть вкладки, добавленные плагинами). То же действие можно выполнить с помощью комбинации Ctrl+P.
Вкладка General
На этой вкладке расположено управление основными настройками приложения:
Indent mode назначает отступы, которые будут использоваться при сохранении файлов. Tab-табы, Spaces-пробелы. При выборе Spaces можно также регулировать размер отступа в диапазоне от 1 до 8.
Create backup before saving — если выбрана эта опция, то перед каждым сохранением создается резервная копия перезаписываемого файла.
GameData path — путь к каталогу GameData KSP, используемому плагинами для загрузки конфигураций частей и других игровых ресурсов. Клик по Browse позволяет бырать каталог при помощи диалогового окна.
Theme — тема пользовательского интерфейса.
Все настройки применяются после клика на ОК.
Темы
Кроме темы по-умолчанию используются темы из коллекции AtlantaFX:
Default — JavaFX Modena (стандартный внешний вид)
Cupertino Light / Cupertino Dark — внешний вид в стиле macOS
Dracula — тёмная тема с фиолетовым оттенком
Nord Light / Nord Dark — основана на цветовой палитре Nord
Primer Light / Primer Dark — дизайн в стиле GitHub
Выберите тему из выпадающего списка и нажмите OK, чтобы применить ее. Выбор сохраняется в файле конфигурации и восстанавливается при следующем запуске.
Вкладка Node Display
Настраивает способ отображения узлов в дереве. Default param (по умолчанию: name) — это параметр, значение которого отображается рядом с именем узла — например, узел VESSEL с name = My Ship будет отображаться как VESSEL: My Ship. Переопределения для каждого типа позволяют установить другой параметр по умолчанию и дополнительные параметры для конкретных путей; дополнительные значения отображаются как ключ = значение после запятой.
Вкладка Plugins
Отображает список всех обнаруженных плагинов с их метаданными (название, автор, версия). Каждый плагин можно включить или отключить с помощью чекбокса, но эти изменения вступают в силу только после перезапуска приложения.
В архиве с приложением лежат следующие плагины:
Kerbal List
Отображает список всех кербалов из раздела ROSTER загруженного файла сохранения:
При клике по строчке таблицы выбирается соответствующий узел KERBAL. При выборе узла KERBAL выделяется соответствующая строчка в таблице. В колонке Vessel находлится кликабельная ссылка, перемещающая выделение в дереве на узел соответствующего корабля. Отображение отдельных столбцов можно настроить через вкладку плагина в окне конфигурации.
Vessel List
Отображает список всех запущенных кораблей из загруженного файла сохранения в виде таблицы:
В ячейках с числом членов экипажа во всплывающих подсказках указываются имена кербалов. ПКМ по этим ячейкам вызывает контекстное меню, при помощи которого можно перейти к соответствующему узлу KERBAL в дереве:
Отображение отдельных столбцов можно настроить через вкладку плагина в окне конфигурации.
Vessel Exporter
Экспортирует запущенный корабль из файла сохранения в виде файла .craft, который можно потом отредактировать во встроенном редакторе игры в VAB/SPH. Кнопка на тулбаре активна только при выборе узла VESSEL.
Для корректного определения точек прикрепления деталей при экспорте необходимо указать путь к каталогу GameData в окне настроек. Без этого у плагина весьма вероятно не получится правильно состыковать детали в экспортируемом файле. Но и так плагин пока ещё весьма сыроват и может генерировать некорректные файлы, особенно в сложных случаях, когда корабль состоит из кучи состыкованных частей. Работа ведётся.
Docking Inspector
Этот плагин обнаруживает и исправляет залипшие стыковочные узлы. Это, собственно то, для чего в основном изначально затевался этот проект. Думаю каждый встречался с глюками KSP, когда стыковочные узлы намертво слипаются и уже невозможно их расцепить. Я задолбался рихтовать сохранёнки в текстовом редакторе и решил сделать что-то более благообразное и простое. А потом Остапа понесло и результат вы наблюдаете прямо сейчас.
Вкладка плагина содержит список всех всех пар состыкованных стыковочных узлов из сохранения, со ссылками как на сами стыковочные узлы, так и на корабли, которым они принадлежат. Можно фиксить стыковочные узлы как по парам, так и все сразу (Fix All Stuck). Отображение беспроблемных стыковочных узлов в таблице можно отключить через окно настроек.
Установка
Убедитесь, что у вас установлена Java 21 или более поздняя версия, для запуска полный JDK не нужен, достаточно JRE. Если вы не знаете что это такое и где взять, то скачать можно бесплатно со страницы https://www.java.com/ru/download/
Загрузите последнюю версию редактора в формате ZIP и распакуйте её в выбранную вами директорию.
Запустите: java -jar sfsanalyzer-app-<version>.jar
Для удобства можно сделать ярлык (в Windows) или файл .desktop (в Linux).
Windows — ярлык с указанием в качестве Target javaw.exe -jar sfsanalyzer-app-<version>.jar, в качестве директории запуска — каталог установки, а в качестве значка — sfsanalyzer.ico (входит в ZIP-архив с релизом).
Linux — файл .desktop, ссылающийся на JAR-файл и icon.png из ZIP-архива релиза:
[Desktop Entry]
Type=Application
Name=SFS Analyzer
Exec=java -jar sfsanalyzer-app-<version>.jar
Path=/path/to/installation
Icon=/path/to/icon.png
Terminal=false
Более подробные инструкции для тех, кто вдруг решит собрать всё это из исходников или того более, написать свой плагин, есть в ридми на странице проекта в GitHub: https://github.com/crvx/SFSAnalyzer
Ну вот как бы и всё, можно обзирать.






























Kerbal Space Program
280 постов1.5K подписчиков
Правила сообщества
- выкладывая свои крафты оставляйте модлист. Если включили такие моды как RO или RP-0, то требуемые для них модификации можно не писать.
- выполняйте правила Пикабу.
- опытные игроки, будьте готовы к тому что в сообществе могут быть новички. Не проявляйте агрессию, даже если что-то вам покажется "нубским".
- у нас не матерятся.