diff --git a/DungeonShooting_Godot/prefab/ui/TileSetEditorTerrain.tscn b/DungeonShooting_Godot/prefab/ui/TileSetEditorTerrain.tscn index 044a624..3b026ea 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=10 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/left/TileEditArea.cs" id="2_ynf0r"] @@ -6,8 +6,7 @@ [ext_resource type="Script" path="res://src/game/ui/tileSetEditorTerrain/left/TerrainCellDragHandler.cs" id="3_ssd86"] [ext_resource type="Script" path="res://src/game/ui/tileSetEditorTerrain/right/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://18dira1me63t" path="res://resource/sprite/map/PreviewMap.png" id="5_m0oxr"] -[ext_resource type="Texture2D" uid="uid://bqdrgtiyilkma" path="res://resource/sprite/map/PreviewMapShadow.png" id="7_68ntx"] +[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/right/TerrainBrush.cs" id="7_lmu64"] [ext_resource type="Script" path="res://src/game/ui/tileSetEditorTerrain/right/TerrainCellDropHandler.cs" id="8_7xxcq"] @@ -19,7 +18,6 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_6jjk7") -Layer = null [node name="HSplitContainer" type="HSplitContainer" parent="."] layout_mode = 1 @@ -139,27 +137,41 @@ color = Color(0.496094, 0.496094, 0.496094, 1) script = ExtResource("5_0x7yx") -[node name="TileTexture" type="TextureRect" parent="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg"] -self_modulate = Color(1, 1, 1, 0.470588) +[node name="TerrainRoot" type="Control" parent="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg"] layout_mode = 1 anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 anchor_bottom = 0.5 -offset_left = -237.0 -offset_top = -270.0 -offset_right = -77.0 -offset_bottom = -94.0 +offset_left = -291.0 +offset_top = -92.0 +offset_right = -99.0 +offset_bottom = -28.0 grow_horizontal = 2 grow_vertical = 2 scale = Vector2(3, 3) mouse_filter = 2 -texture = ExtResource("5_m0oxr") -stretch_mode = 2 -[node name="TileShadow" type="TextureRect" parent="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TileTexture"] -modulate = Color(0.498039, 0.498039, 0.498039, 1) +[node name="CellRoot" type="Control" parent="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 1.0 +offset_bottom = 1.0 +mouse_filter = 2 + +[node name="RightCell" type="Control" parent="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/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="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot/CellRoot/RightCell"] +centered = false + +[node name="TerrainTexture" type="TextureRect" parent="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot"] +self_modulate = Color(1, 1, 1, 0.27451) layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -167,31 +179,16 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 2 -texture = ExtResource("7_68ntx") -stretch_mode = 2 +texture = ExtResource("7_g8dxk") -[node name="CellRoot" type="Control" parent="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TileTexture"] -layout_mode = 3 -anchors_preset = 0 -offset_right = 1.0 -offset_bottom = 1.0 -mouse_filter = 2 - -[node name="RightCell" type="Control" parent="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TileTexture/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="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TileTexture/CellRoot/RightCell"] -centered = false - -[node name="Brush" type="Control" parent="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TileTexture"] +[node name="Brush" type="Control" parent="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg/TerrainRoot"] layout_mode = 1 -anchors_preset = 0 -offset_right = 1.0 -offset_bottom = 1.0 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 script = ExtResource("7_lmu64") [node name="Grid" type="ColorRect" parent="HSplitContainer/LeftBottom2/MarginContainer/LeftBottomBg"] diff --git a/DungeonShooting_Godot/resource/sprite/map/TerrainMask.png b/DungeonShooting_Godot/resource/sprite/map/TerrainMask.png new file mode 100644 index 0000000..426bb52 --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/map/TerrainMask.png Binary files differ diff --git a/DungeonShooting_Godot/resource/sprite/map/TerrainMask.png.import b/DungeonShooting_Godot/resource/sprite/map/TerrainMask.png.import new file mode 100644 index 0000000..2a98c8b --- /dev/null +++ b/DungeonShooting_Godot/resource/sprite/map/TerrainMask.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvjj6jnmxgprw" +path="res://.godot/imported/TerrainMask.png-15fc73cf90f6ff1547134db4982b53af.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resource/sprite/map/TerrainMask.png" +dest_files=["res://.godot/imported/TerrainMask.png-15fc73cf90f6ff1547134db4982b53af.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/resource/tileSprite/TerrainMask.png b/DungeonShooting_Godot/resource/tileSprite/TerrainMask.png deleted file mode 100644 index 426bb52..0000000 --- a/DungeonShooting_Godot/resource/tileSprite/TerrainMask.png +++ /dev/null Binary files differ diff --git a/DungeonShooting_Godot/resource/tileSprite/TerrainMask.png.import b/DungeonShooting_Godot/resource/tileSprite/TerrainMask.png.import deleted file mode 100644 index 215529c..0000000 --- a/DungeonShooting_Godot/resource/tileSprite/TerrainMask.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cvjj6jnmxgprw" -path="res://.godot/imported/TerrainMask.png-6b1c9d08c7552e585c640baff529bbff.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://resource/tileSprite/TerrainMask.png" -dest_files=["res://.godot/imported/TerrainMask.png-6b1c9d08c7552e585c640baff529bbff.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/game/ui/tileSetEditorTerrain/TileSetEditorTerrain.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrain.cs index 7fbba3f..ce24c4f 100644 --- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrain.cs +++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrain.cs @@ -216,7 +216,7 @@ } /// - /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture.CellRoot.RightCell.CellTexture + /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot.RightCell.CellTexture /// public class CellTexture : UiNode { @@ -225,12 +225,12 @@ } /// - /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture.CellRoot.RightCell + /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot.RightCell /// public class RightCell : UiNode { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture.CellRoot.CellTexture + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot.CellTexture /// public CellTexture L_CellTexture { @@ -247,12 +247,12 @@ } /// - /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture.CellRoot + /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot /// public class CellRoot_1 : UiNode { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture.RightCell + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.RightCell /// public RightCell L_RightCell { @@ -269,16 +269,16 @@ } /// - /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture.TileShadow + /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.TerrainTexture /// - public class TileShadow : UiNode + public class TerrainTexture : UiNode { - public TileShadow(TileSetEditorTerrainPanel uiPanel, Godot.TextureRect node) : base(uiPanel, node) { } - public override TileShadow Clone() => new (UiPanel, (Godot.TextureRect)Instance.Duplicate()); + public TerrainTexture(TileSetEditorTerrainPanel uiPanel, Godot.TextureRect node) : base(uiPanel, node) { } + public override TerrainTexture Clone() => new (UiPanel, (Godot.TextureRect)Instance.Duplicate()); } /// - /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture.Brush + /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.Brush /// public class Brush : UiNode { @@ -287,9 +287,9 @@ } /// - /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture + /// 类型: , 路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot /// - public class TileTexture_1 : UiNode + public class TerrainRoot : UiNode { /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.CellRoot @@ -305,17 +305,17 @@ private CellRoot_1 _L_CellRoot; /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileShadow + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainTexture /// - public TileShadow L_TileShadow + public TerrainTexture L_TerrainTexture { get { - if (_L_TileShadow == null) _L_TileShadow = new TileShadow(UiPanel, Instance.GetNode("TileShadow")); - return _L_TileShadow; + if (_L_TerrainTexture == null) _L_TerrainTexture = new TerrainTexture(UiPanel, Instance.GetNode("TerrainTexture")); + return _L_TerrainTexture; } } - private TileShadow _L_TileShadow; + private TerrainTexture _L_TerrainTexture; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.Brush @@ -330,8 +330,8 @@ } private Brush _L_Brush; - public TileTexture_1(TileSetEditorTerrainPanel uiPanel, Godot.TextureRect node) : base(uiPanel, node) { } - public override TileTexture_1 Clone() => new (UiPanel, (Godot.TextureRect)Instance.Duplicate()); + public TerrainRoot(TileSetEditorTerrainPanel uiPanel, Godot.Control node) : base(uiPanel, node) { } + public override TerrainRoot Clone() => new (UiPanel, (Godot.Control)Instance.Duplicate()); } /// @@ -358,17 +358,17 @@ public class LeftBottomBg : UiNode { /// - /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.TileTexture + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.TerrainRoot /// - public TileTexture_1 L_TileTexture + public TerrainRoot L_TerrainRoot { get { - if (_L_TileTexture == null) _L_TileTexture = new TileTexture_1(UiPanel, Instance.GetNode("TileTexture")); - return _L_TileTexture; + if (_L_TerrainRoot == null) _L_TerrainRoot = new TerrainRoot(UiPanel, Instance.GetNode("TerrainRoot")); + return _L_TerrainRoot; } } - private TileTexture_1 _L_TileTexture; + private TerrainRoot _L_TerrainRoot; /// /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.Grid @@ -491,6 +491,11 @@ public MaskBrush S_MaskBrush => L_HSplitContainer.L_LeftBottom.L_MarginContainer.L_LeftBg.L_TileTexture.L_MaskBrush; /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom.MarginContainer.LeftBg.TileTexture + /// + public TileTexture S_TileTexture => L_HSplitContainer.L_LeftBottom.L_MarginContainer.L_LeftBg.L_TileTexture; + + /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom.MarginContainer.LeftBg /// public LeftBg S_LeftBg => L_HSplitContainer.L_LeftBottom.L_MarginContainer.L_LeftBg; @@ -501,24 +506,29 @@ public LeftBottom S_LeftBottom => L_HSplitContainer.L_LeftBottom; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture.CellRoot.RightCell.CellTexture + /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot.RightCell.CellTexture /// - public CellTexture S_CellTexture => L_HSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TileTexture.L_CellRoot.L_RightCell.L_CellTexture; + public CellTexture S_CellTexture => L_HSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot.L_CellRoot.L_RightCell.L_CellTexture; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture.CellRoot.RightCell + /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.CellRoot.RightCell /// - public RightCell S_RightCell => L_HSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TileTexture.L_CellRoot.L_RightCell; + public RightCell S_RightCell => L_HSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot.L_CellRoot.L_RightCell; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture.TileShadow + /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.TerrainTexture /// - public TileShadow S_TileShadow => L_HSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TileTexture.L_TileShadow; + public TerrainTexture S_TerrainTexture => L_HSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot.L_TerrainTexture; /// - /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TileTexture.Brush + /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot.Brush /// - public Brush S_Brush => L_HSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TileTexture.L_Brush; + public Brush S_Brush => L_HSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot.L_Brush; + + /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg.TerrainRoot + /// + public TerrainRoot S_TerrainRoot => L_HSplitContainer.L_LeftBottom2.L_MarginContainer.L_LeftBottomBg.L_TerrainRoot; /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: TileSetEditorTerrain.HSplitContainer.LeftBottom2.MarginContainer.LeftBottomBg diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrainPanel.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrainPanel.cs index 4e3cffa..70c6c43 100644 --- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrainPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/TileSetEditorTerrainPanel.cs @@ -31,16 +31,16 @@ _leftGrid.SetCellOffset(Vector2I.Zero); var sRightCell = S_RightCell; - var tileShadowSize = S_TileShadow.Instance.Texture.GetSize().AsVector2I(); - tileShadowSize = tileShadowSize / GameConfig.TileCellSize - new Vector2I(2, 2); - Debug.Log("tileShadowSize: " + tileShadowSize); - sRightCell.Instance.Position = GameConfig.TileCellSizeVector2I; + 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(tileShadowSize.X); - for (var y = 0; y < tileShadowSize.Y; y++) + _rightGrid.SetColumns(terrainSize.X); + for (var y = 0; y < terrainSize.Y; y++) { - for (var x = 0; x < tileShadowSize.X; x++) + for (var x = 0; x < terrainSize.X; x++) { _rightGrid.Add(false); } @@ -87,6 +87,5 @@ { S_LeftBg.Instance.Color = EditorPanel.BgColor; S_LeftBottomBg.Instance.Color = EditorPanel.BgColor; - S_TileShadow.Instance.Modulate = EditorPanel.BgColor; } } diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/left/TerrainCellDragHandler.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/left/TerrainCellDragHandler.cs index fc0c25a..43873e6 100644 --- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/left/TerrainCellDragHandler.cs +++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/left/TerrainCellDragHandler.cs @@ -51,7 +51,7 @@ var control = new Control(); control.AddChild(sprite); control.ZIndex = 10; - control.Scale = _panel.S_LeftBottomBg.L_TileTexture.Instance.Scale; + control.Scale = _panel.S_LeftBottomBg.L_TerrainRoot.Instance.Scale; SetDragPreview(control); return _rect2I; } diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/right/TerrainBrush.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/right/TerrainBrush.cs index 52ba052..586560d 100644 --- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/right/TerrainBrush.cs +++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/right/TerrainBrush.cs @@ -4,7 +4,7 @@ public partial class TerrainBrush : Control { - public TextureRect TileTexture { get; set; } + public Control TerrainRoot { get; set; } public override void _Process(double delta) @@ -16,17 +16,17 @@ { //绘制区域 DrawRect( - new Rect2(GameConfig.TileCellSizeVector2I, - TileTexture.Texture.GetSize() - GameConfig.TileCellSizeVector2I * 2), new Color(1, 1, 0, 0.5f), false, - 2f / TileTexture.Scale.X); + new Rect2(Vector2.Zero, TerrainRoot.Size.AsVector2I()), new Color(1, 1, 0, 0.5f), false, + 2f / TerrainRoot.Scale.X + ); //绘制鼠标悬停区域 - if (TileTexture.IsMouseInRect(GameConfig.TileCellSize)) + if (TerrainRoot.IsMouseInRect()) { - var pos = Utils.GetMouseCellPosition(TileTexture) * GameConfig.TileCellSize; + var pos = Utils.GetMouseCellPosition(TerrainRoot) * GameConfig.TileCellSize; DrawRect( new Rect2(pos,GameConfig.TileCellSizeVector2I), - Colors.Green, false, 3f / TileTexture.Scale.X + Colors.Green, false, 3f / TerrainRoot.Scale.X ); } } diff --git a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/right/TileEditTerrain.cs b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/right/TileEditTerrain.cs index e05df44..e4b5d2a 100644 --- a/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/right/TileEditTerrain.cs +++ b/DungeonShooting_Godot/src/game/ui/tileSetEditorTerrain/right/TileEditTerrain.cs @@ -7,9 +7,9 @@ public override void SetUiNode(IUiNode uiNode) { base.SetUiNode(uiNode); - var tileTexture = UiNode.L_TileTexture; + var tileTexture = UiNode.L_TerrainRoot; InitNode(tileTexture.Instance, UiNode.L_Grid.Instance); - tileTexture.L_Brush.Instance.TileTexture = tileTexture.Instance; + tileTexture.L_Brush.Instance.TerrainRoot = tileTexture.Instance; //聚焦按钮点击 UiNode.L_FocusBtn.Instance.Pressed += OnFocusClick; @@ -19,7 +19,7 @@ { var flag = UiNode.UiPanel.IsDraggingCell; UiNode.L_Grid.Instance.Visible = flag; - UiNode.L_TileTexture.L_Brush.Instance.Visible = flag; + UiNode.L_TerrainRoot.L_Brush.Instance.Visible = flag; } /// @@ -34,8 +34,8 @@ //聚焦按钮点击 private void OnFocusClick() { - var texture = UiNode.L_TileTexture.Instance.Texture; - Utils.DoFocusNode(ContainerRoot, Size, texture != null ? texture.GetSize() : Vector2.Zero); + var root = UiNode.L_TerrainRoot.Instance; + Utils.DoFocusNode(ContainerRoot, Size, root.Size); RefreshGridTrans(); } } \ No newline at end of file