6

SFS Analyzer

И снова здравствуйте. На этот раз я пришёл не с модом, а с редактором сохранений для KSP. SFS Analyzer это кроссплатформенное десктопное приложение для просмотра и редактирования файлов сохранений (.sfs), файлов создания кораблей (.craft) и файлов конфигурации (.cfg) Kerbal Space Program.

Да, кто-то может сказать что существует Kerbal Markup Lister, но на моей домашней машине стоит Linux, а KML может запускаться в Linux только как консольная утилита, без GUI. Остальные же редакторы сохранений заброшены много лет назад. А у KML ко всему прочему есть фатальный недостаток™ (ЕВПОЧЯ).

Начнём обзор с внешнего вида главного окна.

Главное окно SFS Analyzer

Главное окно SFS Analyzer

Главное окно разделено на четыре области: Панель инструментов с кнопками и областью поиска. Левая панель, отображающая полное иерархическое дерево загруженного файла. Правая панель, отображающая параметры выбранного узла и вкладки плагинов. Строка состояния, где отображается имя загруженного файла, количество узлов, размер файла и ход поиска.

Дерево узлов.

Дерево узлов

Дерево узлов

Показывает иерархию всех узлов в файле. При выборе узла его параметры можно посмотреть и при необходимости отредактировать на правой панели.

Тулбар

Open

Open

Эта кнопка открывает диалог выбора файла для загрузки. То же действие можно выполнить с помощью кормбинации клавиш Ctrl+O. В Linux каталог установки KSP часто представляет собой скрытую папку (~/.steam/...), поэтому чтобы отобразить скрытые файлы и каталоги можно при открытом диалоге выбора файла нажать Ctrl+H.

Save

Save

Записывает изменения обратно в файл. Перед каждым сохранением автоматически создается копия .bakN в той же директории, поэтому предыдущие версии не потеряются. То же действие можно выполнить с помощью комбинации Ctrl+S.

Copy

Copy

Копирует выбранный узел в уфер обмена в виде исходного текста SFS. Узел (включая все параметры, комментарии и дочерние узлы) сериализуется в стандартный формат SFS, поэтому его можно вставить в любой текстовый редактор или в другой экземпляр SFS Analyzer. Комбинация клавиш - Ctrl+C.

Paste

Paste

Считывает содержимое системного буфера обмена и парсит его как узел 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 (в начало/конец списка).

Clone Node

Clone Node

Создаёт полную копию выбранного узла, а потом вставляет её в качестве соседнего узла в тот же родительский узел. Клонированное поддерево включает все параметры и дочерние узлы. Если исходный узел имеет параметр parent, то параметр parent клона будет указывать на индекс исходного узла (полезно при работе с PART).

Create Node

Create Node

Создаёт новый пустой дочерний узел под выбранным узлом. Имя узла выбирается в диалоговом окне.

Delete Node

Delete Node

Удаляет выбранный узел и всё его поддерево. Удаление нужно подтвердить через специальное диалоговое окно.

Add Parameter

Add Parameter

Добавляет новую пару ключ-значение к выбранному узлу. В диалоговом окне запрашиваются ключ и значение. Новый параметр добавляется в конец и сразу же отображается на панели параметров.

Панель параметров

На правой панели отображаются все пары параметры выбранного узла. Значения редактируются непосредственно в текстовом поле, сохранение значения происходит при нажатии Enter или смене фокуса. Параметры отображаются в том порядке, в котором они встретились в файле.

В верхней части панели навигационная цепочка показывает полную цепочку предков выбранного узла. Промежуточные узлы являются кликабельными, клик по одному из них выбирает соответствующий узел.

При выборе узла с параметром parent (целочисленный индекс, ссылающийся на соседний узел того же типа) в верхнем правом углу панели параметров отображается кнопка перехода к соответствующему узлу.

Параметры можно переименовать или удалить кнопками справа от значения.

Цветовые группы

Тройки RGB, заканчивающиеся на *R, *G, *B и содержащие значения с плавающей запятой в диапазоне [0, 1], автоматически группируются и в группу добавляется ColorPicker для выбора цвета. Выбор цвета обновляет все три поля одновременно.

Поиск

Полнотекстовый поиск по всем именам узлов, названиям и значениям параметров. Результаты выделяются в дереве, а в строке состояния отображается текущий номер найденного совпадения. Кнопки со стрелками позволяют переключаться между найденными совпадениями.

Строка состояния

В нижней части окна отображается текущее имя файла, количество узлов и размер файла после загрузки. Во время поиска отображается ход его выполнения.

Настройки

Кнопка с иконкой шестерёнки на тулбаре открывает окно настроек с несколькими вкладками (кроме встроенных вкладок там могут быть вкладки, добавленные плагинами). То же действие можно выполнить с помощью комбинации Ctrl+P.

Вкладка General

Вкладка General

Вкладка General

На этой вкладке расположено управление основными настройками приложения:

Indent mode назначает отступы, которые будут использоваться при сохранении файлов. Tab-табы, Spaces-пробелы. При выборе Spaces можно также регулировать размер отступа в диапазоне от 1 до 8.

Create backup before saving — если выбрана эта опция, то перед каждым сохранением создается резервная копия перезаписываемого файла.

GameData path — путь к каталогу GameData KSP, используемому плагинами для загрузки конфигураций частей и других игровых ресурсов. Клик по Browse позволяет бырать каталог при помощи диалогового окна.

Theme — тема пользовательского интерфейса.

Все настройки применяются после клика на ОК.

Темы

Окна SFS Analyzer с разными темами.

Окна SFS Analyzer с разными темами.

Кроме темы по-умолчанию используются темы из коллекции 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, то требуемые для них модификации можно не писать.

- выполняйте правила Пикабу.

- опытные игроки, будьте готовы к тому что в сообществе могут быть новички. Не проявляйте агрессию, даже если что-то вам покажется "нубским".

- у нас не матерятся.

0
I can fix that
Автор поста оценил этот комментарий

Добрый день.
Если вы действительно на открывали иных вкладок для написания поста на этом или других устройствах, то скорее всего такое поведение могло быть вызвано действием расширений / дополнительных приложений (Блокировщики рекламы / Антивирусы / Запуск скриптов).
Если у вас запущены такие, рекомендуем отключить их, а также очистить кеш и куки браузера для сайта Пикабу.
Откройте новую вкладку в режиме инкогнито и авторизуйтесь повторно на Пикабу.
Улучшилась ли ситуация?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Сейчас такое поведение не воспроизводится ни в инкогнито, ни в нормальном режиме. У меня есть подозрение, что проблема была вызвана нестабильным подключением к интернету, поскольку тогда я находился далеко от точки доступа. Но даже в случае множественных переподключений Пикабу не должен поступать подобным образом с авторами постов. Как минимум должна быть возможность переопределить такое поведение и сохранить тот текст, который редактируется.

0
Автор поста оценил этот комментарий

@SupportTech, при написании поста постоянно вылезала какая-то лабуда о том, что якобы я начал редактирование поста в другом месте. При этом продолжение редактирования было возможно только после рефреша страницы, что вело к потере части написанного.

Иллюстрация к комментарию
показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества