diff --git a/collections/dev_tools.json b/collections/dev_tools.json
new file mode 100644
index 0000000..a6fe423
--- /dev/null
+++ b/collections/dev_tools.json
@@ -0,0 +1,28 @@
+{
+ "id": "dev_tools",
+ "name": "Developer Tools",
+ "author": "ct",
+ "version": "1.0.0",
+ "description": "Mod authoring toolset: the scenario graph editor, content validators and the mod manager.",
+ "mechanics": [
+ {
+ "id": "editor",
+ "name": "Scenario Editor",
+ "description": "Graph-based scenario and scene authoring tools.",
+ "mods": ["tools>=1"]
+ },
+ {
+ "id": "validation",
+ "name": "Validation",
+ "description": "Optional content validation suite.",
+ "mods": ["validator>=0.1"],
+ "optional": true
+ },
+ {
+ "id": "manager",
+ "name": "Mod Manager",
+ "description": "Catalog browser and installer.",
+ "mods": ["mod_manager>=1"]
+ }
+ ]
+}
diff --git a/locale/ui_en.properties b/locale/ui_en.properties
index 9ea2844..901f418 100644
--- a/locale/ui_en.properties
+++ b/locale/ui_en.properties
@@ -1,11 +1,6 @@
mod_tools_name = Tools
mod_tools_desc = Development tools
-tools/title = Tools
-tools/select_tool = Select a tool:
-tools/launch = Launch
-tools/close = Close
-
tools/light_editor/title = Light Editor
tools/light_editor/background = Background
tools/light_editor/static_lights = Static lights (max. 10)
diff --git a/locale/ui_ru.properties b/locale/ui_ru.properties
index 5f6cd52..de13e6b 100644
--- a/locale/ui_ru.properties
+++ b/locale/ui_ru.properties
@@ -2,11 +2,6 @@
mod_tools_name = Инструменты
mod_tools_desc = Инструменты разработчика
-tools/title = Инструменты
-tools/select_tool = Выберите инструмент:
-tools/launch = Запустить
-tools/close = Закрыть
-
tools/light_editor/title = Редактор освещения
tools/light_editor/background = Фон
tools/light_editor/static_lights = Статичные источники (макс. 10)
diff --git a/src/CatalogExport/CatalogExportToolProvider.cs b/src/CatalogExport/CatalogExportToolProvider.cs
index 042575e..1796877 100644
--- a/src/CatalogExport/CatalogExportToolProvider.cs
+++ b/src/CatalogExport/CatalogExportToolProvider.cs
@@ -19,5 +19,8 @@ namespace Cthangover.Core.UI.Tool.CatalogExport
/// Creates the export window instance.
public Window CreateWindow() => new CatalogExportWindow();
+
+ /// Adds the catalog export launcher button to the main menu tool block.
+ public void AddMenuButton(Container container) => ToolMenuButton.Attach(container, this);
}
}
diff --git a/src/InteractiveEditor/InteractiveEditorToolProvider.cs b/src/InteractiveEditor/InteractiveEditorToolProvider.cs
index 5dca33e..b0a6ab0 100644
--- a/src/InteractiveEditor/InteractiveEditorToolProvider.cs
+++ b/src/InteractiveEditor/InteractiveEditorToolProvider.cs
@@ -16,6 +16,8 @@ namespace Cthangover.Tools.InteractiveEditor
public string LocaleKey => "tools/interactive_editor/title";
/// Creates the editor window instance.
public Window CreateWindow() => new InteractiveEditorWindow();
+ /// Adds the interactive editor's launcher button to the main menu tool block.
+ public void AddMenuButton(Container container) => ToolMenuButton.Attach(container, this);
}
///
diff --git a/src/LightEditor/LightEditorToolProvider.cs b/src/LightEditor/LightEditorToolProvider.cs
index a32a267..fa2d6e2 100644
--- a/src/LightEditor/LightEditorToolProvider.cs
+++ b/src/LightEditor/LightEditorToolProvider.cs
@@ -12,6 +12,8 @@ namespace Cthangover.Core.UI.Tool.LightEditor
public string LocaleKey => "tools/light_editor/title";
/// Creates the editor window instance.
public Window CreateWindow() => new LightEditorWindow();
+ /// Adds the light editor's launcher button to the main menu tool block.
+ public void AddMenuButton(Container container) => ToolMenuButton.Attach(container, this);
}
/// Toolbox button that opens the light editor. Always visible.
diff --git a/src/ScenarioEditor/ScenarioEditorToolProvider.cs b/src/ScenarioEditor/ScenarioEditorToolProvider.cs
index fbd8143..ddfa7fb 100644
--- a/src/ScenarioEditor/ScenarioEditorToolProvider.cs
+++ b/src/ScenarioEditor/ScenarioEditorToolProvider.cs
@@ -12,5 +12,7 @@ namespace Cthangover.Core.UI.Tool.ScenarioEditor
public string LocaleKey => "tools/scenario_editor/title";
/// Creates the editor window instance.
public Window CreateWindow() => new ScenarioEditorWindow();
+ /// Adds the scenario editor's launcher button to the main menu tool block.
+ public void AddMenuButton(Container container) => ToolMenuButton.Attach(container, this);
}
}
diff --git a/src/SceneBuilder/SceneBuilderToolProvider.cs b/src/SceneBuilder/SceneBuilderToolProvider.cs
index 2e47346..ee0c440 100644
--- a/src/SceneBuilder/SceneBuilderToolProvider.cs
+++ b/src/SceneBuilder/SceneBuilderToolProvider.cs
@@ -12,5 +12,7 @@ namespace Cthangover.Core.UI.Tool.SceneBuilder
public string LocaleKey => "tools/scene_builder/title";
/// Creates the editor window instance.
public Window CreateWindow() => new SceneBuilderWindow();
+ /// Adds the scene builder's launcher button to the main menu tool block.
+ public void AddMenuButton(Container container) => ToolMenuButton.Attach(container, this);
}
}