Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Abyss Moth Export Sanitizer

Убирает dev-инструменты и их следы из экспортных сборок Godot 4.7. Переработка внутреннего release_sanitizer: без хардкода, с редактируемым конфигом, UI и профилями под таргеты.

Студийный аддон, лежит в addons/abyss_moth/export_sanitizer/. Репозиторий: godot-export-sanitizer.

Зачем

В редакторе удобно держать всё включённым (MCP-помощник, линтеры, авто-слайсеры атласов и т.п.). Но в релизную сборку они попадать не должны: лишний вес, а пути плагинов и имена классов видны при декомпиле project.binary. Аддон вычищает это на время экспорта, не трогая проект в редакторе.

Что делает во время экспорта

  1. _export_file -> skip() для файлов, попавших под правила (страховка поверх exclude_filter пресетов).
  2. _export_begin -> временно (только в памяти) убирает из ProjectSettings указанные strip_settings (например autoload/_mcp_game_helper, editor_plugins/enabled), _export_end возвращает.
  3. Чистит global_script_class_cache.cfg от классов исключённых аддонов, после экспорта восстанавливает.

project.godot на диске не меняется. Аддон работает только при экспорте, в редакторе всё остаётся как есть.

Конфиг

Лежит в КОРНЕ проекта: res://export_sanitizer.config.json (а не внутри аддона - чтобы обновление аддона через abyss_moth_kit не затирало ваши правила). По умолчанию пустой:

{
  "schema": 1,
  "common":  { "skip_prefixes": [], "skip_exact": [], "strip_settings": [], "sanitize_class_cache": true },
  "targets": { "web": { "skip_prefixes": [] }, "android": { "skip_prefixes": [] } }
}

Активный набор при экспорте = common + все targets, чьё имя есть в features платформы (web, android, windows, macos, linux, ios, ...). То есть общие исключения в common, а специфичные для веба или андроида - в соответствующем target.

Записи можно задавать:

  • путём: res://addons/tool/ (папка-префикс) или res://file.json (точный файл);
  • через uid://... - резолвится в путь на момент экспорта (у папок uid нет, для папок используйте путь).

Панель

Dock "Export Sanitizer" справа: выбор профиля (common/web/android), списки skip_prefixes / skip_exact / strip_settings с добавлением (путь или uid) и удалением, галка чистки кэша классов, кнопки "Загрузить пример студии" и "Сохранить".

Пример студии

data/presets/studio_example.json - типовой студийный набор (godot_ai, kit, сам sanitizer, линтер, atlas slicer + strip mcp-автолоада и editor_plugins). Это не активная конфигурация: грузится кнопкой и требует Сохранить. У сторонних проектов дефолт пустой.

Структура

export_sanitizer/
  plugin.cfg / plugin.gd            # @tool EditorPlugin: регистрирует export-плагин + dock
  core/
    sanitizer_export_plugin.gd      # EditorExportPlugin: skip по активному профилю
    sanitizer_config.gd             # load/save, резолв uid, сборка активного набора
  data/presets/studio_example.json  # пример (загружаемый)
  ui/sanitizer_panel.gd             # панель управления конфигом

About

Abyss Moth Export Sanitizer: убирает dev-инструменты и их следы из экспортных сборок Godot по редактируемому конфигу с профилями под таргеты.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages