Mod naming rule and engine UI in engine mods

Mods are renamed by role (shell2d_base, menu_base, ui_base, live2d_base,
editor_tools, cthangover_story, cthangover_murakami, cthangover_party) and
every reference follows. Engine UI prefabs (dialog, answers, message, game
menu, inventory, map, skills) and their panel entries moved out of the story
mod into the subsystem mods; the card_novel and vn_starter_novel collections
are removed.
This commit is contained in:
cthangover committed 2026-10-18 19:00:46 +02:00
1 parent 70ff37d127
commit 9ecbbb4056
7 files changed
+130 -8

No files matched your search

+2 -2
View File
@@ -1,6 +1,6 @@
# --- scenes/battle/winground.tscn ---
mod_interface_name = Interface
mod_interface_desc = Engine UI subsystem: widget toolkit (Widget/ModWidget/lists), ViewBox background viewport, ToolBox toolbar, GameMenu/SaveIcon, notification panels, UiKit design system and DeviceInput.
mod_ui_base_name = UI
mod_ui_base_desc = Engine UI subsystem: widget toolkit (Widget/ModWidget/lists), ViewBox background viewport, ToolBox toolbar, GameMenu/SaveIcon, notification panels, UiKit design system and DeviceInput.
ui/battle/victory = Victory
ui/battle/victory/return = Continue
ui/battle/victory/loot_title = Loot:
+2 -2
View File
@@ -258,8 +258,8 @@ ui/journal/entry_of = Запись {0} из {1}
ui/journal/finished = Завершено
ui/journal/seals = Печати
ui/journal/no_entries = Страницы этой записи ещё пусты. Чернила появятся, когда история сдвинется с места.
mod_interface_name = Интерфейс
mod_interface_desc = Подсистема UI движка: набор виджетов (Widget/ModWidget, списки), ViewBox фона, тулбар ToolBox, GameMenu/SaveIcon, панели уведомлений, дизайн-система UiKit и DeviceInput. Ядро работает с модом через контракты IWidget/IToolbarHost и мосты.
mod_ui_base_name = Интерфейс
mod_ui_base_desc = Подсистема UI движка: набор виджетов (Widget/ModWidget, списки), ViewBox фона, тулбар ToolBox, GameMenu/SaveIcon, панели уведомлений, дизайн-система UiKit и DeviceInput. Ядро работает с модом через контракты IWidget/IToolbarHost и мосты.
tools/unsaved_title = Есть изменения
tools/unsaved_text = У вас есть несохранённые изменения. Закрыть без сохранения?
+16 -2
View File
@@ -1,6 +1,6 @@
{
"id": "interface",
"name": "Interface",
"id": "ui_base",
"name": "UI",
"version": "1.0.0",
"author": "ct",
"description": "Engine UI subsystem: widget toolkit (Widget/ModWidget/lists), ViewBox background viewport, ToolBox toolbar, GameMenu/SaveIcon, notification panels, UiKit design system, DeviceInput. Kernel keeps only contracts (IWidget, IDialogBox, IToolbarHost, ISaveIconHost, IBackgroundView, IUiLazyConstruct, MenuRegistry, ToolFactory, NotificationBuffer, SceneEventController, CthangoverTheme/UiTokens boot styling) and drives this mod through those seams.",
@@ -8,5 +8,19 @@
"depends": [],
"sources": [
"src/**/*.cs"
],
"ui": [
{
"id": "game_menu",
"kind": "panel",
"slot": "ModBeforeUIPanel",
"scene_path": "scenes/menu/game_menu.tscn",
"button": {
"icon": "settings",
"locale": "menu/settings",
"index": 50
},
"priority": 10
}
]
}
+90
View File
@@ -0,0 +1,90 @@
[gd_scene load_steps=2 format=3]
[ext_resource type="Script" path="res://mods/ui_base/src/Menu/GameMenu.cs" id="GameMenuScript"]
[node name="GameMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 1
script = ExtResource("GameMenuScript")
[node name="Bg" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.9)
[node name="Panel" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -200.0
offset_top = -220.0
offset_right = 200.0
offset_bottom = 220.0
grow_horizontal = 2
grow_vertical = 2
[node name="Margin" type="MarginContainer" parent="Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 28
theme_override_constants/margin_top = 20
theme_override_constants/margin_right = 28
theme_override_constants/margin_bottom = 20
[node name="VBox" type="VBoxContainer" parent="Panel/Margin"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="Title" type="Label" parent="Panel/Margin/VBox"]
layout_mode = 2
theme_override_font_sizes/font_size = 24
theme_override_colors/font_color = Color(0.956863, 0.941176, 0.905882, 1)
text = "Меню"
horizontal_alignment = 1
uppercase = true
[node name="ReturnBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Вернуться"
theme_type_variation = "CthangoverPrimary"
[node name="SaveBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Сохранить"
[node name="LoadBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Загрузить"
[node name="SettingsBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Настройки"
[node name="Spacer" type="Control" parent="Panel/Margin/VBox"]
layout_mode = 2
custom_minimum_size = Vector2(0, 16)
[node name="MainMenuBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Главное меню"
[node name="ExitBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Выход"
theme_type_variation = "CthangoverDanger"
+18
View File
@@ -0,0 +1,18 @@
[gd_scene format=3]
[ext_resource type="Script" path="res://mods/ui_base/src/Messages/UiMessage.cs" id="1_msg"]
[node name="Message" type="Control" node_paths=PackedStringArray("textField")]
layout_mode = 3
anchors_preset = 0
script = ExtResource("1_msg")
textField = NodePath("Label")
[node name="Label" type="Label" parent="."]
layout_mode = 0
offset_left = 0.0
offset_top = 0.0
offset_right = 0.0
offset_bottom = 0.0
theme_override_colors/font_color = Color(0.909804, 0.898039, 0.870588, 1)
text = ""
+1 -1
View File
@@ -8,7 +8,7 @@ namespace Cthangover.Mods.Interface.Menu
/// <summary>
/// In-game pause menu: save/load/settings/quit. The settings and save/load
/// panels are not referenced by type: they are registered in the
/// <see cref="MenuRegistry"/> (by the <c>base_menu</c> mod or any other mod
/// <see cref="MenuRegistry"/> (by the <c>menu_base</c> mod or any other mod
/// that wants to provide them) and instantiated here by id, so the panel
/// implementations can live entirely inside mods. Both panels stay hidden
/// children created on _Ready to avoid loading delays when the player opens
+1 -1
View File
@@ -268,7 +268,7 @@ namespace Cthangover.Mods.Interface.Theming
/// backdrop let scene buttons bleed through, which made the panel close
/// buttons look noisy; an opaque backing removes them. The colour stays
/// underneath as a fallback because the texture ships in the optional
/// "interface" mod and may not resolve, in which case the panel still
/// "ui_base" mod and may not resolve, in which case the panel still
/// gets a solid surface.
/// </summary>
public static void ApplyPanelBackdrop(ColorRect backdrop)