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:
1 parent
70ff37d127
commit
9ecbbb4056
7 files changed
+130
-8
No files matched your search
@@ -1,6 +1,6 @@
|
|||||||
# --- scenes/battle/winground.tscn ---
|
# --- scenes/battle/winground.tscn ---
|
||||||
mod_interface_name = Interface
|
mod_ui_base_name = UI
|
||||||
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_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 = Victory
|
||||||
ui/battle/victory/return = Continue
|
ui/battle/victory/return = Continue
|
||||||
ui/battle/victory/loot_title = Loot:
|
ui/battle/victory/loot_title = Loot:
|
||||||
|
|||||||
@@ -258,8 +258,8 @@ ui/journal/entry_of = Запись {0} из {1}
|
|||||||
ui/journal/finished = Завершено
|
ui/journal/finished = Завершено
|
||||||
ui/journal/seals = Печати
|
ui/journal/seals = Печати
|
||||||
ui/journal/no_entries = Страницы этой записи ещё пусты. Чернила появятся, когда история сдвинется с места.
|
ui/journal/no_entries = Страницы этой записи ещё пусты. Чернила появятся, когда история сдвинется с места.
|
||||||
mod_interface_name = Интерфейс
|
mod_ui_base_name = Интерфейс
|
||||||
mod_interface_desc = Подсистема UI движка: набор виджетов (Widget/ModWidget, списки), ViewBox фона, тулбар ToolBox, GameMenu/SaveIcon, панели уведомлений, дизайн-система UiKit и DeviceInput. Ядро работает с модом через контракты IWidget/IToolbarHost и мосты.
|
mod_ui_base_desc = Подсистема UI движка: набор виджетов (Widget/ModWidget, списки), ViewBox фона, тулбар ToolBox, GameMenu/SaveIcon, панели уведомлений, дизайн-система UiKit и DeviceInput. Ядро работает с модом через контракты IWidget/IToolbarHost и мосты.
|
||||||
|
|
||||||
tools/unsaved_title = Есть изменения
|
tools/unsaved_title = Есть изменения
|
||||||
tools/unsaved_text = У вас есть несохранённые изменения. Закрыть без сохранения?
|
tools/unsaved_text = У вас есть несохранённые изменения. Закрыть без сохранения?
|
||||||
|
|||||||
+16
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"id": "interface",
|
"id": "ui_base",
|
||||||
"name": "Interface",
|
"name": "UI",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"author": "ct",
|
"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.",
|
"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": [],
|
"depends": [],
|
||||||
"sources": [
|
"sources": [
|
||||||
"src/**/*.cs"
|
"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
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -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"
|
||||||
@@ -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 = ""
|
||||||
@@ -8,7 +8,7 @@ namespace Cthangover.Mods.Interface.Menu
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// In-game pause menu: save/load/settings/quit. The settings and save/load
|
/// In-game pause menu: save/load/settings/quit. The settings and save/load
|
||||||
/// panels are not referenced by type: they are registered in the
|
/// 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
|
/// that wants to provide them) and instantiated here by id, so the panel
|
||||||
/// implementations can live entirely inside mods. Both panels stay hidden
|
/// implementations can live entirely inside mods. Both panels stay hidden
|
||||||
/// children created on _Ready to avoid loading delays when the player opens
|
/// children created on _Ready to avoid loading delays when the player opens
|
||||||
|
|||||||
@@ -268,7 +268,7 @@ namespace Cthangover.Mods.Interface.Theming
|
|||||||
/// backdrop let scene buttons bleed through, which made the panel close
|
/// backdrop let scene buttons bleed through, which made the panel close
|
||||||
/// buttons look noisy; an opaque backing removes them. The colour stays
|
/// buttons look noisy; an opaque backing removes them. The colour stays
|
||||||
/// underneath as a fallback because the texture ships in the optional
|
/// 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.
|
/// gets a solid surface.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static void ApplyPanelBackdrop(ColorRect backdrop)
|
public static void ApplyPanelBackdrop(ColorRect backdrop)
|
||||||
|
|||||||
Reference in new issue
Block a user