diff --git a/DungeonShooting_Godot/prefab/ui/TileSetEditor.tscn b/DungeonShooting_Godot/prefab/ui/TileSetEditor.tscn
index 4514f01..89d816c 100644
--- a/DungeonShooting_Godot/prefab/ui/TileSetEditor.tscn
+++ b/DungeonShooting_Godot/prefab/ui/TileSetEditor.tscn
@@ -13,6 +13,7 @@
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_rgx4n")
+Layer = null
[node name="Bg" type="Panel" parent="."]
layout_mode = 1
diff --git a/DungeonShooting_Godot/prefab/ui/TileSetEditorTerrain.tscn b/DungeonShooting_Godot/prefab/ui/TileSetEditorTerrain.tscn
index 42702d0..b6154e8 100644
--- a/DungeonShooting_Godot/prefab/ui/TileSetEditorTerrain.tscn
+++ b/DungeonShooting_Godot/prefab/ui/TileSetEditorTerrain.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=11 format=3 uid="uid://dfqb73y4br8yd"]
+[gd_scene load_steps=12 format=3 uid="uid://dfqb73y4br8yd"]
[ext_resource type="Script" path="res://src/game/ui/tileSetEditorTerrain/TileSetEditorTerrainPanel.cs" id="1_6jjk7"]
[ext_resource type="Script" path="res://src/game/ui/tileSetEditorTerrain/down/TileEditArea.cs" id="2_ynf0r"]
@@ -7,6 +7,7 @@
[ext_resource type="Script" path="res://src/game/ui/tileSetEditorTerrain/up/TileEditTerrain.cs" id="5_0x7yx"]
[ext_resource type="Texture2D" uid="uid://d2wslibovwv7w" path="res://resource/sprite/ui/commonIcon/CenterTool.png" id="5_08bc4"]
[ext_resource type="Texture2D" uid="uid://bud6ah5xyey37" path="res://resource/sprite/map/TerrainMask2.png" id="5_xabgh"]
+[ext_resource type="Texture2D" uid="uid://chisfq2alcq16" path="res://resource/sprite/map/TerrainMask3.png" id="6_vmj5y"]
[ext_resource type="Texture2D" uid="uid://cvjj6jnmxgprw" path="res://resource/sprite/map/TerrainMask.png" id="7_g8dxk"]
[ext_resource type="Script" path="res://src/game/ui/tileSetEditorTerrain/up/TerrainBrush.cs" id="7_lmu64"]
[ext_resource type="Script" path="res://src/game/ui/tileSetEditorTerrain/up/TerrainCellDropHandler.cs" id="8_7xxcq"]
@@ -19,6 +20,7 @@
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_6jjk7")
+Layer = null
[node name="VSplitContainer" type="VSplitContainer" parent="."]
layout_mode = 1
@@ -28,13 +30,13 @@
grow_horizontal = 2
grow_vertical = 2
-[node name="LeftBottom2" type="Panel" parent="VSplitContainer"]
+[node name="PanelTop" type="Panel" parent="VSplitContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
size_flags_stretch_ratio = 50.0
-[node name="MarginContainer" type="MarginContainer" parent="VSplitContainer/LeftBottom2"]
+[node name="MarginContainer" type="MarginContainer" parent="VSplitContainer/PanelTop"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -46,7 +48,7 @@
theme_override_constants/margin_right = 2
theme_override_constants/margin_bottom = 2
-[node name="LeftBottomBg" type="ColorRect" parent="VSplitContainer/LeftBottom2/MarginContainer"]
+[node name="TopBg" type="ColorRect" parent="VSplitContainer/PanelTop/MarginContainer"]
clip_children = 2
z_index = 1
layout_mode = 2
@@ -54,7 +56,7 @@
color = Color(0.496094, 0.496094, 0.496094, 1)
script = ExtResource("5_0x7yx")
-[node name="TerrainRoot" type="Control" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg"]
+[node name="TerrainRoot" type="Control" parent="VSplitContainer/PanelTop/MarginContainer/TopBg"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
@@ -63,31 +65,31 @@
anchor_bottom = 0.5
offset_left = -291.0
offset_top = -92.0
-offset_right = -291.0
-offset_bottom = -92.0
+offset_right = -98.0
+offset_bottom = 4.0
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(3, 3)
mouse_filter = 2
-[node name="CellRoot" type="Control" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot"]
+[node name="CellRoot" type="Control" parent="VSplitContainer/PanelTop/MarginContainer/TopBg/TerrainRoot"]
layout_mode = 3
anchors_preset = 0
offset_right = 1.0
offset_bottom = 1.0
mouse_filter = 2
-[node name="RightCell" type="Control" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot/CellRoot"]
+[node name="RightCell" type="Control" parent="VSplitContainer/PanelTop/MarginContainer/TopBg/TerrainRoot/CellRoot"]
anchors_preset = 0
offset_right = 16.0
offset_bottom = 16.0
mouse_filter = 1
script = ExtResource("8_7xxcq")
-[node name="CellTexture" type="Sprite2D" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot/CellRoot/RightCell"]
+[node name="CellTexture" type="Sprite2D" parent="VSplitContainer/PanelTop/MarginContainer/TopBg/TerrainRoot/CellRoot/RightCell"]
centered = false
-[node name="TerrainTexture1" type="TextureRect" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot"]
+[node name="TerrainTexture1" type="TextureRect" parent="VSplitContainer/PanelTop/MarginContainer/TopBg/TerrainRoot"]
self_modulate = Color(1, 1, 1, 0.27451)
custom_minimum_size = Vector2(192, 64)
layout_mode = 1
@@ -96,7 +98,7 @@
mouse_filter = 2
texture = ExtResource("7_g8dxk")
-[node name="Label" type="Label" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot/TerrainTexture1"]
+[node name="Label" type="Label" parent="VSplitContainer/PanelTop/MarginContainer/TopBg/TerrainRoot/TerrainTexture1"]
layout_mode = 0
offset_top = -10.0
offset_right = 136.0
@@ -104,7 +106,7 @@
scale = Vector2(0.25, 0.25)
text = "顶部墙壁"
-[node name="TerrainTexture2" type="TextureRect" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot"]
+[node name="TerrainTexture2" type="TextureRect" parent="VSplitContainer/PanelTop/MarginContainer/TopBg/TerrainRoot"]
self_modulate = Color(1, 1, 1, 0.27451)
custom_minimum_size = Vector2(64, 16)
layout_mode = 1
@@ -114,7 +116,7 @@
mouse_filter = 2
texture = ExtResource("5_xabgh")
-[node name="Label" type="Label" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot/TerrainTexture2"]
+[node name="Label" type="Label" parent="VSplitContainer/PanelTop/MarginContainer/TopBg/TerrainRoot/TerrainTexture2"]
layout_mode = 0
offset_top = -10.0
offset_right = 136.0
@@ -122,18 +124,18 @@
scale = Vector2(0.25, 0.25)
text = "侧方墙壁"
-[node name="TerrainTexture3" type="TextureRect" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot"]
+[node name="TerrainTexture3" type="TextureRect" parent="VSplitContainer/PanelTop/MarginContainer/TopBg/TerrainRoot"]
self_modulate = Color(1, 1, 1, 0.27451)
-custom_minimum_size = Vector2(64, 16)
+custom_minimum_size = Vector2(16, 16)
layout_mode = 1
offset_left = 80.0
offset_top = 80.0
-offset_right = 144.0
+offset_right = 96.0
offset_bottom = 96.0
mouse_filter = 2
-texture = ExtResource("5_xabgh")
+texture = ExtResource("6_vmj5y")
-[node name="Label" type="Label" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot/TerrainTexture3"]
+[node name="Label" type="Label" parent="VSplitContainer/PanelTop/MarginContainer/TopBg/TerrainRoot/TerrainTexture3"]
layout_mode = 0
offset_top = -10.0
offset_right = 136.0
@@ -141,7 +143,7 @@
scale = Vector2(0.25, 0.25)
text = "地板"
-[node name="Brush" type="Control" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot"]
+[node name="Brush" type="Control" parent="VSplitContainer/PanelTop/MarginContainer/TopBg/TerrainRoot"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -151,7 +153,7 @@
mouse_filter = 2
script = ExtResource("7_lmu64")
-[node name="Grid" type="ColorRect" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg"]
+[node name="Grid" type="ColorRect" parent="VSplitContainer/PanelTop/MarginContainer/TopBg"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -161,7 +163,7 @@
mouse_filter = 2
color = Color(1, 1, 1, 0)
-[node name="FocusBtn" type="TextureButton" parent="VSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg"]
+[node name="FocusBtn" type="TextureButton" parent="VSplitContainer/PanelTop/MarginContainer/TopBg"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
@@ -176,13 +178,13 @@
ignore_texture_size = true
stretch_mode = 5
-[node name="LeftBottom" type="Panel" parent="VSplitContainer"]
+[node name="PanelBottom" type="Panel" parent="VSplitContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
size_flags_stretch_ratio = 50.0
-[node name="MarginContainer" type="MarginContainer" parent="VSplitContainer/LeftBottom"]
+[node name="MarginContainer" type="MarginContainer" parent="VSplitContainer/PanelBottom"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -194,14 +196,14 @@
theme_override_constants/margin_right = 2
theme_override_constants/margin_bottom = 2
-[node name="LeftBg" type="ColorRect" parent="VSplitContainer/LeftBottom/MarginContainer"]
+[node name="BottomBg" type="ColorRect" parent="VSplitContainer/PanelBottom/MarginContainer"]
clip_children = 2
z_index = 1
layout_mode = 2
color = Color(0.203922, 0.203922, 0.203922, 1)
script = ExtResource("2_ynf0r")
-[node name="TileTexture" type="TextureRect" parent="VSplitContainer/LeftBottom/MarginContainer/LeftBg"]
+[node name="TileTexture" type="TextureRect" parent="VSplitContainer/PanelBottom/MarginContainer/BottomBg"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
@@ -213,20 +215,20 @@
scale = Vector2(2, 2)
mouse_filter = 2
-[node name="CellRoot" type="Control" parent="VSplitContainer/LeftBottom/MarginContainer/LeftBg/TileTexture"]
+[node name="CellRoot" type="Control" parent="VSplitContainer/PanelBottom/MarginContainer/BottomBg/TileTexture"]
anchors_preset = 0
offset_right = 1.0
offset_bottom = 1.0
mouse_filter = 2
-[node name="LeftCell" type="TextureButton" parent="VSplitContainer/LeftBottom/MarginContainer/LeftBg/TileTexture/CellRoot"]
+[node name="BottomCell" type="TextureButton" parent="VSplitContainer/PanelBottom/MarginContainer/BottomBg/TileTexture/CellRoot"]
layout_mode = 0
offset_right = 16.0
offset_bottom = 16.0
mouse_filter = 1
script = ExtResource("3_ssd86")
-[node name="MaskBrush" type="Control" parent="VSplitContainer/LeftBottom/MarginContainer/LeftBg/TileTexture"]
+[node name="MaskBrush" type="Control" parent="VSplitContainer/PanelBottom/MarginContainer/BottomBg/TileTexture"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -236,7 +238,7 @@
mouse_filter = 2
script = ExtResource("3_gydh0")
-[node name="Grid" type="ColorRect" parent="VSplitContainer/LeftBottom/MarginContainer/LeftBg"]
+[node name="Grid" type="ColorRect" parent="VSplitContainer/PanelBottom/MarginContainer/BottomBg"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -246,7 +248,7 @@
mouse_filter = 2
color = Color(1, 1, 1, 0)
-[node name="FocusBtn" type="TextureButton" parent="VSplitContainer/LeftBottom/MarginContainer/LeftBg"]
+[node name="FocusBtn" type="TextureButton" parent="VSplitContainer/PanelBottom/MarginContainer/BottomBg"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
diff --git a/DungeonShooting_Godot/resource/sprite/map/TerrainMask3.png b/DungeonShooting_Godot/resource/sprite/map/TerrainMask3.png
new file mode 100644
index 0000000..b841f40
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/map/TerrainMask3.png
Binary files differ
diff --git a/DungeonShooting_Godot/resource/sprite/map/TerrainMask3.png.import b/DungeonShooting_Godot/resource/sprite/map/TerrainMask3.png.import
new file mode 100644
index 0000000..a1ece12
--- /dev/null
+++ b/DungeonShooting_Godot/resource/sprite/map/TerrainMask3.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://chisfq2alcq16"
+path="res://.godot/imported/TerrainMask3.png-20aa76a7c73efe35531ad8d0722d181b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://resource/sprite/map/TerrainMask3.png"
+dest_files=["res://.godot/imported/TerrainMask3.png-20aa76a7c73efe35531ad8d0722d181b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/DungeonShooting_Godot/src/framework/ui/UiBase.cs b/DungeonShooting_Godot/src/framework/ui/UiBase.cs
index 21c4c6b..5987af6 100644
--- a/DungeonShooting_Godot/src/framework/ui/UiBase.cs
+++ b/DungeonShooting_Godot/src/framework/ui/UiBase.cs
@@ -298,6 +298,25 @@
_uiGrids.Add(uiGrid);
return uiGrid;
}
+
+ ///
+ /// 创建一个UiGrid对象, 该Ui对象会在Ui销毁时自动销毁
+ ///
+ /// 模板对象
+ /// 父节点
+ /// 模板对象类型
+ /// 存放的数据类型
+ /// Cell处理类
+ public UiGrid CreateUiGrid(TNode template, Node parent) where TNode : IUiCellNode where TCell : UiCell
+ {
+ var uiGrid = new UiGrid(template, parent, typeof(TCell));
+ if (_uiGrids == null)
+ {
+ _uiGrids = new List();
+ }
+ _uiGrids.Add(uiGrid);
+ return uiGrid;
+ }
public sealed override void _Process(double delta)
{
diff --git a/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs b/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs
index 9c9df08..c341827 100644
--- a/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs
+++ b/DungeonShooting_Godot/src/framework/ui/grid/UiGrid.cs
@@ -94,6 +94,25 @@
//选中的cell索引
private int _selectIndex = -1;
+ public UiGrid(TUiCellNode template, Node parent, Type cellType)
+ {
+ GridContainer = new UiGridContainer(OnReady, OnProcess);
+ GridContainer.Ready += OnReady;
+ _template = template;
+ _cellType = cellType;
+ parent.AddChild(GridContainer);
+ var uiInstance = _template.GetUiInstance();
+ uiInstance.GetParent()?.RemoveChild(uiInstance);
+ if (uiInstance is Control control)
+ {
+ _size = control.Size;
+ if (control.CustomMinimumSize == Vector2.Zero)
+ {
+ control.CustomMinimumSize = _size;
+ }
+ }
+ }
+
public UiGrid(TUiCellNode template, Type cellType)
{
GridContainer = new UiGridContainer(OnReady, OnProcess);
diff --git a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
index 4b4c02a..436223c 100644
--- a/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
+++ b/DungeonShooting_Godot/src/game/manager/ResourcePath.cs
@@ -11,7 +11,7 @@
public const string excelTool_obj_ExcelTool_csproj_nuget_dgspec_json = "res://excelTool/obj/ExcelTool.csproj.nuget.dgspec.json";
public const string excelTool_obj_project_assets_json = "res://excelTool/obj/project.assets.json";
public const string excelTool_obj_Release_net8_0_winx64_ExcelTool_csproj_FileListAbsolute_txt = "res://excelTool/obj/Release/net8.0/win-x64/ExcelTool.csproj.FileListAbsolute.txt";
- public const string excelTool_obj_Release_net8_0_winx64_PublishOutputs_77891b5d25_txt = "res://excelTool/obj/Release/net8.0/win-x64/PublishOutputs.77891b5d25.txt";
+ public const string excelTool_obj_Release_net8_0_winx64_PublishOutputs_a0fcfe3642_txt = "res://excelTool/obj/Release/net8.0/win-x64/PublishOutputs.a0fcfe3642.txt";
public const string excelTool_publish_winx64_ExcelTool_deps_json = "res://excelTool/publish/win-x64/ExcelTool.deps.json";
public const string excelTool_publish_winx64_ExcelTool_runtimeconfig_json = "res://excelTool/publish/win-x64/ExcelTool.runtimeconfig.json";
public const string prefab_Cursor_tscn = "res://prefab/Cursor.tscn";
@@ -225,6 +225,8 @@
public const string resource_sprite_map_PreviewTransition4_png = "res://resource/sprite/map/PreviewTransition4.png";
public const string resource_sprite_map_PreviewTransition5_png = "res://resource/sprite/map/PreviewTransition5.png";
public const string resource_sprite_map_TerrainMask_png = "res://resource/sprite/map/TerrainMask.png";
+ public const string resource_sprite_map_TerrainMask2_png = "res://resource/sprite/map/TerrainMask2.png";
+ public const string resource_sprite_map_TerrainMask3_png = "res://resource/sprite/map/TerrainMask3.png";
public const string resource_sprite_map_WallTransition1_png = "res://resource/sprite/map/WallTransition1.png";
public const string resource_sprite_map_WallTransition2_png = "res://resource/sprite/map/WallTransition2.png";
public const string resource_sprite_map_WallTransition3_png = "res://resource/sprite/map/WallTransition3.png";
diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrain.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrain.cs
index fcf2de7..cc586b7 100644
--- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrain.cs
+++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrain.cs
@@ -25,13 +25,13 @@
public sealed override void OnInitNestedUi()
{
- _ = L_VSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg;
- _ = L_VSplitContainer.L_LeftBottom.L_MarginContainer.L_LeftBg;
+ _ = L_VSplitContainer.L_PanelTop.L_MarginContainer.L_TopBg;
+ _ = L_VSplitContainer.L_PanelBottom.L_MarginContainer.L_BottomBg;
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot.RightCell.CellTexture
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.CellRoot.RightCell.CellTexture
///
public class CellTexture : UiNode
{
@@ -40,12 +40,12 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot.RightCell
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.CellRoot.RightCell
///
public class RightCell : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot.CellTexture
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.CellRoot.CellTexture
///
public CellTexture L_CellTexture
{
@@ -62,12 +62,12 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.CellRoot
///
public class CellRoot : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.RightCell
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.RightCell
///
public RightCell L_RightCell
{
@@ -84,7 +84,7 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.TerrainTexture1.Label
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.TerrainTexture1.Label
///
public class Label : UiNode
{
@@ -93,12 +93,12 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.TerrainTexture1
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.TerrainTexture1
///
public class TerrainTexture1 : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.Label
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.Label
///
public Label L_Label
{
@@ -115,7 +115,7 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.TerrainTexture2.Label
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.TerrainTexture2.Label
///
public class Label_1 : UiNode
{
@@ -124,12 +124,12 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.TerrainTexture2
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.TerrainTexture2
///
public class TerrainTexture2 : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.Label
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.Label
///
public Label_1 L_Label
{
@@ -146,7 +146,7 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.TerrainTexture3.Label
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.TerrainTexture3.Label
///
public class Label_2 : UiNode
{
@@ -155,12 +155,12 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.TerrainTexture3
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.TerrainTexture3
///
public class TerrainTexture3 : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.Label
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.Label
///
public Label_2 L_Label
{
@@ -177,7 +177,7 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.Brush
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.Brush
///
public class Brush : UiNode
{
@@ -186,12 +186,12 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot
///
public class TerrainRoot : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.CellRoot
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.CellRoot
///
public CellRoot L_CellRoot
{
@@ -204,7 +204,7 @@
private CellRoot _L_CellRoot;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainTexture1
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainTexture1
///
public TerrainTexture1 L_TerrainTexture1
{
@@ -217,7 +217,7 @@
private TerrainTexture1 _L_TerrainTexture1;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainTexture2
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainTexture2
///
public TerrainTexture2 L_TerrainTexture2
{
@@ -230,7 +230,7 @@
private TerrainTexture2 _L_TerrainTexture2;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainTexture3
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainTexture3
///
public TerrainTexture3 L_TerrainTexture3
{
@@ -243,7 +243,7 @@
private TerrainTexture3 _L_TerrainTexture3;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.Brush
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.Brush
///
public Brush L_Brush
{
@@ -260,7 +260,7 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.Grid
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.Grid
///
public class Grid : UiNode
{
@@ -269,7 +269,7 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.FocusBtn
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.FocusBtn
///
public class FocusBtn : UiNode
{
@@ -278,12 +278,12 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg
///
- public class LeftBottomBg : UiNode
+ public class TopBg : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.TerrainRoot
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TerrainRoot
///
public TerrainRoot L_TerrainRoot
{
@@ -296,7 +296,7 @@
private TerrainRoot _L_TerrainRoot;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.Grid
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.Grid
///
public Grid L_Grid
{
@@ -309,7 +309,7 @@
private Grid _L_Grid;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.FocusBtn
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.FocusBtn
///
public FocusBtn L_FocusBtn
{
@@ -321,36 +321,36 @@
}
private FocusBtn _L_FocusBtn;
- public LeftBottomBg(TileSetEditorTerrainPanel uiPanel, UI.TileSetEditorTerrain.TileEditTerrain node) : base(uiPanel, node) { }
- public override LeftBottomBg Clone() => new (UiPanel, (UI.TileSetEditorTerrain.TileEditTerrain)Instance.Duplicate());
+ public TopBg(TileSetEditorTerrainPanel uiPanel, UI.TileSetEditorTerrain.TileEditTerrain node) : base(uiPanel, node) { }
+ public override TopBg Clone() => new (UiPanel, (UI.TileSetEditorTerrain.TileEditTerrain)Instance.Duplicate());
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer
///
public class MarginContainer : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.LeftBottomBg
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.TopBg
///
- public LeftBottomBg L_LeftBottomBg
+ public TopBg L_TopBg
{
get
{
- if (_L_LeftBottomBg == null) _L_LeftBottomBg = new LeftBottomBg(UiPanel, Instance.GetNode("LeftBottomBg"));
- return _L_LeftBottomBg;
+ if (_L_TopBg == null) _L_TopBg = new TopBg(UiPanel, Instance.GetNode("TopBg"));
+ return _L_TopBg;
}
}
- private LeftBottomBg _L_LeftBottomBg;
+ private TopBg _L_TopBg;
public MarginContainer(TileSetEditorTerrainPanel uiPanel, Godot.MarginContainer node) : base(uiPanel, node) { }
public override MarginContainer Clone() => new (UiPanel, (Godot.MarginContainer)Instance.Duplicate());
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelTop
///
- public class LeftBottom2 : UiNode
+ public class PanelTop : UiNode
{
///
/// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.MarginContainer
@@ -365,43 +365,43 @@
}
private MarginContainer _L_MarginContainer;
- public LeftBottom2(TileSetEditorTerrainPanel uiPanel, Godot.Panel node) : base(uiPanel, node) { }
- public override LeftBottom2 Clone() => new (UiPanel, (Godot.Panel)Instance.Duplicate());
+ public PanelTop(TileSetEditorTerrainPanel uiPanel, Godot.Panel node) : base(uiPanel, node) { }
+ public override PanelTop Clone() => new (UiPanel, (Godot.Panel)Instance.Duplicate());
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.TileTexture.CellRoot.LeftCell
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.TileTexture.CellRoot.BottomCell
///
- public class LeftCell : UiNode
+ public class BottomCell : UiNode
{
- public LeftCell(TileSetEditorTerrainPanel uiPanel, UI.TileSetEditorTerrain.TerrainCellDragHandler node) : base(uiPanel, node) { }
- public override LeftCell Clone() => new (UiPanel, (UI.TileSetEditorTerrain.TerrainCellDragHandler)Instance.Duplicate());
+ public BottomCell(TileSetEditorTerrainPanel uiPanel, UI.TileSetEditorTerrain.TerrainCellDragHandler node) : base(uiPanel, node) { }
+ public override BottomCell Clone() => new (UiPanel, (UI.TileSetEditorTerrain.TerrainCellDragHandler)Instance.Duplicate());
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.TileTexture.CellRoot
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.TileTexture.CellRoot
///
public class CellRoot_1 : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.TileTexture.LeftCell
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.TileTexture.BottomCell
///
- public LeftCell L_LeftCell
+ public BottomCell L_BottomCell
{
get
{
- if (_L_LeftCell == null) _L_LeftCell = new LeftCell(UiPanel, Instance.GetNode("LeftCell"));
- return _L_LeftCell;
+ if (_L_BottomCell == null) _L_BottomCell = new BottomCell(UiPanel, Instance.GetNode("BottomCell"));
+ return _L_BottomCell;
}
}
- private LeftCell _L_LeftCell;
+ private BottomCell _L_BottomCell;
public CellRoot_1(TileSetEditorTerrainPanel uiPanel, Godot.Control node) : base(uiPanel, node) { }
public override CellRoot_1 Clone() => new (UiPanel, (Godot.Control)Instance.Duplicate());
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.TileTexture.MaskBrush
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.TileTexture.MaskBrush
///
public class MaskBrush : UiNode
{
@@ -410,12 +410,12 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.TileTexture
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.TileTexture
///
public class TileTexture : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.CellRoot
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.CellRoot
///
public CellRoot_1 L_CellRoot
{
@@ -428,7 +428,7 @@
private CellRoot_1 _L_CellRoot;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.MaskBrush
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.MaskBrush
///
public MaskBrush L_MaskBrush
{
@@ -445,7 +445,7 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.Grid
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.Grid
///
public class Grid_1 : UiNode
{
@@ -454,7 +454,7 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.FocusBtn
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.FocusBtn
///
public class FocusBtn_1 : UiNode
{
@@ -463,12 +463,12 @@
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg
///
- public class LeftBg : UiNode
+ public class BottomBg : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.TileTexture
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.TileTexture
///
public TileTexture L_TileTexture
{
@@ -481,7 +481,7 @@
private TileTexture _L_TileTexture;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.Grid
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.Grid
///
public Grid_1 L_Grid
{
@@ -494,7 +494,7 @@
private Grid_1 _L_Grid;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.FocusBtn
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.FocusBtn
///
public FocusBtn_1 L_FocusBtn
{
@@ -506,36 +506,36 @@
}
private FocusBtn_1 _L_FocusBtn;
- public LeftBg(TileSetEditorTerrainPanel uiPanel, UI.TileSetEditorTerrain.TileEditArea node) : base(uiPanel, node) { }
- public override LeftBg Clone() => new (UiPanel, (UI.TileSetEditorTerrain.TileEditArea)Instance.Duplicate());
+ public BottomBg(TileSetEditorTerrainPanel uiPanel, UI.TileSetEditorTerrain.TileEditArea node) : base(uiPanel, node) { }
+ public override BottomBg Clone() => new (UiPanel, (UI.TileSetEditorTerrain.TileEditArea)Instance.Duplicate());
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer
///
public class MarginContainer_1 : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.LeftBg
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.BottomBg
///
- public LeftBg L_LeftBg
+ public BottomBg L_BottomBg
{
get
{
- if (_L_LeftBg == null) _L_LeftBg = new LeftBg(UiPanel, Instance.GetNode("LeftBg"));
- return _L_LeftBg;
+ if (_L_BottomBg == null) _L_BottomBg = new BottomBg(UiPanel, Instance.GetNode("BottomBg"));
+ return _L_BottomBg;
}
}
- private LeftBg _L_LeftBg;
+ private BottomBg _L_BottomBg;
public MarginContainer_1(TileSetEditorTerrainPanel uiPanel, Godot.MarginContainer node) : base(uiPanel, node) { }
public override MarginContainer_1 Clone() => new (UiPanel, (Godot.MarginContainer)Instance.Duplicate());
}
///
- /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.LeftBottom
+ /// 类型: , 路径: TileSetEditorTerrain.VSplitContainer.PanelBottom
///
- public class LeftBottom : UiNode
+ public class PanelBottom : UiNode
{
///
/// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.MarginContainer
@@ -550,8 +550,8 @@
}
private MarginContainer_1 _L_MarginContainer;
- public LeftBottom(TileSetEditorTerrainPanel uiPanel, Godot.Panel node) : base(uiPanel, node) { }
- public override LeftBottom Clone() => new (UiPanel, (Godot.Panel)Instance.Duplicate());
+ public PanelBottom(TileSetEditorTerrainPanel uiPanel, Godot.Panel node) : base(uiPanel, node) { }
+ public override PanelBottom Clone() => new (UiPanel, (Godot.Panel)Instance.Duplicate());
}
///
@@ -560,30 +560,30 @@
public class VSplitContainer : UiNode
{
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.LeftBottom2
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.PanelTop
///
- public LeftBottom2 L_LeftBottom2
+ public PanelTop L_PanelTop
{
get
{
- if (_L_LeftBottom2 == null) _L_LeftBottom2 = new LeftBottom2(UiPanel, Instance.GetNode("LeftBottom2"));
- return _L_LeftBottom2;
+ if (_L_PanelTop == null) _L_PanelTop = new PanelTop(UiPanel, Instance.GetNode("PanelTop"));
+ return _L_PanelTop;
}
}
- private LeftBottom2 _L_LeftBottom2;
+ private PanelTop _L_PanelTop;
///
- /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.LeftBottom
+ /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.PanelBottom
///
- public LeftBottom L_LeftBottom
+ public PanelBottom L_PanelBottom
{
get
{
- if (_L_LeftBottom == null) _L_LeftBottom = new LeftBottom(UiPanel, Instance.GetNode("LeftBottom"));
- return _L_LeftBottom;
+ if (_L_PanelBottom == null) _L_PanelBottom = new PanelBottom(UiPanel, Instance.GetNode("PanelBottom"));
+ return _L_PanelBottom;
}
}
- private LeftBottom _L_LeftBottom;
+ private PanelBottom _L_PanelBottom;
public VSplitContainer(TileSetEditorTerrainPanel uiPanel, Godot.VSplitContainer node) : base(uiPanel, node) { }
public override VSplitContainer Clone() => new (UiPanel, (Godot.VSplitContainer)Instance.Duplicate());
@@ -591,74 +591,74 @@
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot.RightCell.CellTexture
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.CellRoot.RightCell.CellTexture
///
- public CellTexture S_CellTexture => L_VSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot.L_CellRoot.L_RightCell.L_CellTexture;
+ public CellTexture S_CellTexture => L_VSplitContainer.L_PanelTop.L_MarginContainer.L_TopBg.L_TerrainRoot.L_CellRoot.L_RightCell.L_CellTexture;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot.RightCell
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.CellRoot.RightCell
///
- public RightCell S_RightCell => L_VSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot.L_CellRoot.L_RightCell;
+ public RightCell S_RightCell => L_VSplitContainer.L_PanelTop.L_MarginContainer.L_TopBg.L_TerrainRoot.L_CellRoot.L_RightCell;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.TerrainTexture1
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.TerrainTexture1
///
- public TerrainTexture1 S_TerrainTexture1 => L_VSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot.L_TerrainTexture1;
+ public TerrainTexture1 S_TerrainTexture1 => L_VSplitContainer.L_PanelTop.L_MarginContainer.L_TopBg.L_TerrainRoot.L_TerrainTexture1;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.TerrainTexture2
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.TerrainTexture2
///
- public TerrainTexture2 S_TerrainTexture2 => L_VSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot.L_TerrainTexture2;
+ public TerrainTexture2 S_TerrainTexture2 => L_VSplitContainer.L_PanelTop.L_MarginContainer.L_TopBg.L_TerrainRoot.L_TerrainTexture2;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.TerrainTexture3
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.TerrainTexture3
///
- public TerrainTexture3 S_TerrainTexture3 => L_VSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot.L_TerrainTexture3;
+ public TerrainTexture3 S_TerrainTexture3 => L_VSplitContainer.L_PanelTop.L_MarginContainer.L_TopBg.L_TerrainRoot.L_TerrainTexture3;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.Brush
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot.Brush
///
- public Brush S_Brush => L_VSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot.L_Brush;
+ public Brush S_Brush => L_VSplitContainer.L_PanelTop.L_MarginContainer.L_TopBg.L_TerrainRoot.L_Brush;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg.TerrainRoot
///
- public TerrainRoot S_TerrainRoot => L_VSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot;
+ public TerrainRoot S_TerrainRoot => L_VSplitContainer.L_PanelTop.L_MarginContainer.L_TopBg.L_TerrainRoot;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop.MarginContainer.TopBg
///
- public LeftBottomBg S_LeftBottomBg => L_VSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg;
+ public TopBg S_TopBg => L_VSplitContainer.L_PanelTop.L_MarginContainer.L_TopBg;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom2
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelTop
///
- public LeftBottom2 S_LeftBottom2 => L_VSplitContainer.L_LeftBottom2;
+ public PanelTop S_PanelTop => L_VSplitContainer.L_PanelTop;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.TileTexture.CellRoot.LeftCell
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.TileTexture.CellRoot.BottomCell
///
- public LeftCell S_LeftCell => L_VSplitContainer.L_LeftBottom.L_MarginContainer.L_LeftBg.L_TileTexture.L_CellRoot.L_LeftCell;
+ public BottomCell S_BottomCell => L_VSplitContainer.L_PanelBottom.L_MarginContainer.L_BottomBg.L_TileTexture.L_CellRoot.L_BottomCell;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.TileTexture.MaskBrush
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.TileTexture.MaskBrush
///
- public MaskBrush S_MaskBrush => L_VSplitContainer.L_LeftBottom.L_MarginContainer.L_LeftBg.L_TileTexture.L_MaskBrush;
+ public MaskBrush S_MaskBrush => L_VSplitContainer.L_PanelBottom.L_MarginContainer.L_BottomBg.L_TileTexture.L_MaskBrush;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg.TileTexture
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg.TileTexture
///
- public TileTexture S_TileTexture => L_VSplitContainer.L_LeftBottom.L_MarginContainer.L_LeftBg.L_TileTexture;
+ public TileTexture S_TileTexture => L_VSplitContainer.L_PanelBottom.L_MarginContainer.L_BottomBg.L_TileTexture;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom.MarginContainer.LeftBg
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom.MarginContainer.BottomBg
///
- public LeftBg S_LeftBg => L_VSplitContainer.L_LeftBottom.L_MarginContainer.L_LeftBg;
+ public BottomBg S_BottomBg => L_VSplitContainer.L_PanelBottom.L_MarginContainer.L_BottomBg;
///
- /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.LeftBottom
+ /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer.PanelBottom
///
- public LeftBottom S_LeftBottom => L_VSplitContainer.L_LeftBottom;
+ public PanelBottom S_PanelBottom => L_VSplitContainer.L_PanelBottom;
///
/// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.VSplitContainer
diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrainPanel.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrainPanel.cs
index 70c6c43..e291342 100644
--- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrainPanel.cs
+++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrainPanel.cs
@@ -15,8 +15,10 @@
///
public bool IsDraggingCell { get; set; }
- private UiGrid _leftGrid;
- private UiGrid _rightGrid;
+ private UiGrid _topGrid1;
+ private UiGrid _topGrid2;
+ private UiGrid _topGrid3;
+ private UiGrid _bottomGrid;
public override void OnCreateUi()
{
@@ -27,24 +29,12 @@
//背景颜色改变
AddEventListener(EventEnum.OnSetTileSetBgColor, OnChangeTileSetBgColor);
- _leftGrid = CreateUiGrid(S_LeftCell);
- _leftGrid.SetCellOffset(Vector2I.Zero);
+ _bottomGrid = CreateUiGrid(S_BottomCell);
+ _bottomGrid.SetCellOffset(Vector2I.Zero);
- var sRightCell = S_RightCell;
- var terrainSize = S_TerrainRoot.Instance.Size.AsVector2I();
- terrainSize = terrainSize / GameConfig.TileCellSize;
- Debug.Log("terrainSize: " + terrainSize);
- sRightCell.Instance.Position = Vector2.Zero;
- _rightGrid = CreateUiGrid(sRightCell);
- _rightGrid.SetCellOffset(Vector2I.Zero);
- _rightGrid.SetColumns(terrainSize.X);
- for (var y = 0; y < terrainSize.Y; y++)
- {
- for (var x = 0; x < terrainSize.X; x++)
- {
- _rightGrid.Add(false);
- }
- }
+ _topGrid1 = InitTopGrid(S_TerrainRoot.L_TerrainTexture1.Instance);
+ _topGrid2 = InitTopGrid(S_TerrainRoot.L_TerrainTexture2.Instance);
+ _topGrid3 = InitTopGrid(S_TerrainRoot.L_TerrainTexture3.Instance);
OnSetTileTexture(EditorPanel.Texture);
OnChangeTileSetBgColor(EditorPanel.BgColor);
@@ -60,24 +50,45 @@
S_MaskBrush.Instance.Visible = !IsDraggingCell;
}
+ private UiGrid InitTopGrid(Control texture)
+ {
+ var cellRoot = S_TopBg.L_TerrainRoot.L_CellRoot;
+ var sRightCell = cellRoot.L_RightCell;
+ var terrainSize = texture.Size.AsVector2I();
+ terrainSize = terrainSize / GameConfig.TileCellSize;
+ sRightCell.Instance.Position = texture.Position;
+ var grid = CreateUiGrid(sRightCell, cellRoot.Instance);
+ grid.SetCellOffset(Vector2I.Zero);
+ grid.SetColumns(terrainSize.X);
+ for (var y = 0; y < terrainSize.Y; y++)
+ {
+ for (var x = 0; x < terrainSize.X; x++)
+ {
+ grid.Add(false);
+ }
+ }
+
+ return grid;
+ }
+
//改变TileSet纹理
private void OnSetTileTexture(object arg)
{
- S_LeftBg.Instance.OnChangeTileSetTexture();
+ S_BottomBg.Instance.OnChangeTileSetTexture();
- _leftGrid.RemoveAll();
+ _bottomGrid.RemoveAll();
var cellHorizontal = EditorPanel.CellHorizontal;
if (cellHorizontal <= 0)
{
return;
}
var cellVertical = EditorPanel.CellVertical;
- _leftGrid.SetColumns(cellHorizontal);
+ _bottomGrid.SetColumns(cellHorizontal);
for (var y = 0; y < cellVertical; y++)
{
for (var x = 0; x < cellHorizontal; x++)
{
- _leftGrid.Add(new Rect2I(x * GameConfig.TileCellSize, y * GameConfig.TileCellSize, GameConfig.TileCellSize, GameConfig.TileCellSize));
+ _bottomGrid.Add(new Rect2I(x * GameConfig.TileCellSize, y * GameConfig.TileCellSize, GameConfig.TileCellSize, GameConfig.TileCellSize));
}
}
}
@@ -85,7 +96,7 @@
//更改背景颜色
private void OnChangeTileSetBgColor(object obj)
{
- S_LeftBg.Instance.Color = EditorPanel.BgColor;
- S_LeftBottomBg.Instance.Color = EditorPanel.BgColor;
+ S_BottomBg.Instance.Color = EditorPanel.BgColor;
+ S_TopBg.Instance.Color = EditorPanel.BgColor;
}
}
diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/MaskCell.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/MaskCell.cs
index 1c2a77a..39a52f2 100644
--- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/MaskCell.cs
+++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/MaskCell.cs
@@ -2,7 +2,7 @@
namespace UI.TileSetEditorTerrain;
-public class MaskCell : UiCell
+public class MaskCell : UiCell
{
public override void OnInit()
{
diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/TerrainCellDragHandler.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/TerrainCellDragHandler.cs
index 43873e6..acb84b2 100644
--- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/TerrainCellDragHandler.cs
+++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/TerrainCellDragHandler.cs
@@ -19,7 +19,7 @@
{
_maskCell = maskCell;
_panel = maskCell.CellNode.UiPanel;
- _textureRect = _panel.S_LeftBg.L_TileTexture.Instance;
+ _textureRect = _panel.S_BottomBg.L_TileTexture.Instance;
_texture = _textureRect.Texture;
}
@@ -51,7 +51,7 @@
var control = new Control();
control.AddChild(sprite);
control.ZIndex = 10;
- control.Scale = _panel.S_LeftBottomBg.L_TerrainRoot.Instance.Scale;
+ control.Scale = _panel.S_TopBg.L_TerrainRoot.Instance.Scale;
SetDragPreview(control);
return _rect2I;
}
diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/TileEditArea.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/TileEditArea.cs
index c66b3f6..0e2c15e 100644
--- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/TileEditArea.cs
+++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/down/TileEditArea.cs
@@ -2,7 +2,7 @@
namespace UI.TileSetEditorTerrain;
-public partial class TileEditArea : EditorGridBg
+public partial class TileEditArea : EditorGridBg
{
public override void SetUiNode(IUiNode uiNode)
{
diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TerrainBrush.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TerrainBrush.cs
index 586560d..10881dc 100644
--- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TerrainBrush.cs
+++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TerrainBrush.cs
@@ -1,10 +1,12 @@
-using Godot;
+using System.Collections.Generic;
+using Godot;
namespace UI.TileSetEditorTerrain;
public partial class TerrainBrush : Control
{
- public Control TerrainRoot { get; set; }
+ public Control Root { get; set; }
+ public List TerrainTextureList { get; } = new List();
public override void _Process(double delta)
@@ -14,20 +16,29 @@
public override void _Draw()
{
+ var scale = Root.Scale;
//绘制区域
- DrawRect(
- new Rect2(Vector2.Zero, TerrainRoot.Size.AsVector2I()), new Color(1, 1, 0, 0.5f), false,
- 2f / TerrainRoot.Scale.X
- );
+ foreach (var control in TerrainTextureList)
+ {
+ DrawRect(
+ new Rect2(control.Position, control.Size.AsVector2I()), new Color(1, 1, 0, 0.5f), false,
+ 2f / scale.X
+ );
+ }
+
//绘制鼠标悬停区域
- if (TerrainRoot.IsMouseInRect())
+ foreach (var control in TerrainTextureList)
{
- var pos = Utils.GetMouseCellPosition(TerrainRoot) * GameConfig.TileCellSize;
- DrawRect(
- new Rect2(pos,GameConfig.TileCellSizeVector2I),
- Colors.Green, false, 3f / TerrainRoot.Scale.X
- );
+ if (control.IsMouseInRect())
+ {
+ var pos = Utils.GetMouseCellPosition(control) * GameConfig.TileCellSize;
+ DrawRect(
+ new Rect2(pos + control.Position,GameConfig.TileCellSizeVector2I),
+ Colors.Green, false, 3f / scale.X
+ );
+ break;
+ }
}
}
}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TerrainTabData.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TerrainTabData.cs
index 9424b6f..cc13656 100644
--- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TerrainTabData.cs
+++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TerrainTabData.cs
@@ -5,11 +5,11 @@
public class TerrainTabData
{
public string Text;
- public TileSetEditorTerrain.LeftBottomBg LeftBottomBg;
+ public TileSetEditorTerrain.TopBg TopBg;
- public TerrainTabData(string text, TileSetEditorTerrain.LeftBottomBg leftBottomBg)
+ public TerrainTabData(string text, TileSetEditorTerrain.TopBg topBg)
{
Text = text;
- LeftBottomBg = leftBottomBg;
+ TopBg = topBg;
}
}
\ No newline at end of file
diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TileEditTerrain.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TileEditTerrain.cs
index 7a40a66..8a0f43e 100644
--- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TileEditTerrain.cs
+++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/up/TileEditTerrain.cs
@@ -2,14 +2,18 @@
namespace UI.TileSetEditorTerrain;
-public partial class TileEditTerrain : EditorGridBg
+public partial class TileEditTerrain : EditorGridBg
{
public override void SetUiNode(IUiNode uiNode)
{
base.SetUiNode(uiNode);
var tileTexture = UiNode.L_TerrainRoot;
InitNode(tileTexture.Instance, UiNode.L_Grid.Instance);
- tileTexture.L_Brush.Instance.TerrainRoot = tileTexture.Instance;
+ var terrainBrush = tileTexture.L_Brush.Instance;
+ terrainBrush.Root = tileTexture.Instance;
+ terrainBrush.TerrainTextureList.Add(tileTexture.L_TerrainTexture1.Instance);
+ terrainBrush.TerrainTextureList.Add(tileTexture.L_TerrainTexture2.Instance);
+ terrainBrush.TerrainTextureList.Add(tileTexture.L_TerrainTexture3.Instance);
//聚焦按钮点击
UiNode.L_FocusBtn.Instance.Pressed += OnFocusClick;