From e1a6c15f5fcacade94431ba4dd1299ea3daa4212 Mon Sep 17 00:00:00 2001 From: copygirl Date: Mon, 16 Sep 2024 12:36:27 +0200 Subject: [PATCH] Use GDScript for terrain editing plugin Also moved TerrainEditingControls out of plugin. --- .../terrain-editing/TerrainEditingPlugin.cs | 39 ------------------ addons/terrain-editing/plugin.cfg | 2 +- .../terrain-editing/terrain_editing_plugin.gd | 26 ++++++++++++ .../textures/terrain/editing}/circle.png | Bin .../terrain/editing}/circle.png.import | 6 +-- .../textures/terrain/editing}/corner.png | Bin .../terrain/editing}/corner.png.import | 6 +-- .../textures/terrain/editing}/height.png | Bin .../terrain/editing}/height.png.import | 6 +-- .../textures/terrain/editing}/paint.png | Bin .../terrain/editing}/paint.png.import | 6 +-- .../textures/terrain/editing}/square.png | Bin .../terrain/editing}/square.png.import | 6 +-- .../TerrainEditingControls+Editing.cs | 0 .../editing}/TerrainEditingControls.cs | 0 .../editing}/TerrainEditingControls.tscn | 13 +++--- 16 files changed, 48 insertions(+), 62 deletions(-) delete mode 100644 addons/terrain-editing/TerrainEditingPlugin.cs create mode 100644 addons/terrain-editing/terrain_editing_plugin.gd rename {addons/terrain-editing/icons => assets/textures/terrain/editing}/circle.png (100%) rename {addons/terrain-editing/icons => assets/textures/terrain/editing}/circle.png.import (71%) rename {addons/terrain-editing/icons => assets/textures/terrain/editing}/corner.png (100%) rename {addons/terrain-editing/icons => assets/textures/terrain/editing}/corner.png.import (71%) rename {addons/terrain-editing/icons => assets/textures/terrain/editing}/height.png (100%) rename {addons/terrain-editing/icons => assets/textures/terrain/editing}/height.png.import (71%) rename {addons/terrain-editing/icons => assets/textures/terrain/editing}/paint.png (100%) rename {addons/terrain-editing/icons => assets/textures/terrain/editing}/paint.png.import (71%) rename {addons/terrain-editing/icons => assets/textures/terrain/editing}/square.png (100%) rename {addons/terrain-editing/icons => assets/textures/terrain/editing}/square.png.import (71%) rename {addons/terrain-editing => terrain/editing}/TerrainEditingControls+Editing.cs (100%) rename {addons/terrain-editing => terrain/editing}/TerrainEditingControls.cs (100%) rename {addons/terrain-editing => terrain/editing}/TerrainEditingControls.tscn (92%) diff --git a/addons/terrain-editing/TerrainEditingPlugin.cs b/addons/terrain-editing/TerrainEditingPlugin.cs deleted file mode 100644 index 6c8f0cf..0000000 --- a/addons/terrain-editing/TerrainEditingPlugin.cs +++ /dev/null @@ -1,39 +0,0 @@ -#if TOOLS -[Tool] -public partial class TerrainEditingPlugin - : EditorPlugin -{ - const string ScenePath = "res://addons/terrain-editing/TerrainEditingControls.tscn"; - // The container to which the editing controls get added to when Terrain is selected. - const CustomControlContainer Container = CustomControlContainer.SpatialEditorSideRight; - - - TerrainEditingControls _controls; - - public override bool _Handles(GodotObject obj) - => obj is Terrain; - - public override void _EnterTree() - { - var scene = GD.Load(ScenePath); - _controls = scene.Instantiate(); - } - - public override void _ExitTree() - { - if (_controls == null) return; - if (_controls.GetParent() != null) - RemoveControlFromContainer(Container, _controls); - _controls.Free(); - _controls = null; - } - - public override void _MakeVisible(bool visible) - { - if (visible) - AddControlToContainer(Container, _controls); - else if (_controls.GetParent() != null) - RemoveControlFromContainer(Container, _controls); - } -} -#endif diff --git a/addons/terrain-editing/plugin.cfg b/addons/terrain-editing/plugin.cfg index d6598de..39b55c1 100644 --- a/addons/terrain-editing/plugin.cfg +++ b/addons/terrain-editing/plugin.cfg @@ -4,4 +4,4 @@ name="Terrain Editing" description="" author="copygirl" version="1.0.0" -script="TerrainEditingPlugin.cs" +script="terrain_editing_plugin.gd" diff --git a/addons/terrain-editing/terrain_editing_plugin.gd b/addons/terrain-editing/terrain_editing_plugin.gd new file mode 100644 index 0000000..1526938 --- /dev/null +++ b/addons/terrain-editing/terrain_editing_plugin.gd @@ -0,0 +1,26 @@ +@tool +extends EditorPlugin + +const CONTAINER := CustomControlContainer.CONTAINER_SPATIAL_EDITOR_SIDE_RIGHT + +var controls_scene := preload("res://terrain/editing/TerrainEditingControls.tscn") +var controls_script := preload("res://terrain/editing/TerrainEditingControls.cs") + +var controls : Control; + +func _handles(object: Object) -> bool: + return object.get_script() == controls_script + +func _enter_tree() -> void: + controls = controls_scene.instantiate() + +func _exit_tree() -> void: + if controls.get_parent(): + remove_control_from_container(CONTAINER, controls) + controls.free() + +func _make_visible(visible: bool) -> void: + if visible: + add_control_to_container(CONTAINER, controls) + elif controls.get_parent(): + remove_control_from_container(CONTAINER, controls) diff --git a/addons/terrain-editing/icons/circle.png b/assets/textures/terrain/editing/circle.png similarity index 100% rename from addons/terrain-editing/icons/circle.png rename to assets/textures/terrain/editing/circle.png diff --git a/addons/terrain-editing/icons/circle.png.import b/assets/textures/terrain/editing/circle.png.import similarity index 71% rename from addons/terrain-editing/icons/circle.png.import rename to assets/textures/terrain/editing/circle.png.import index f234752..2b64172 100644 --- a/addons/terrain-editing/icons/circle.png.import +++ b/assets/textures/terrain/editing/circle.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://2u1ldmh0osbx" -path="res://.godot/imported/circle.png-7ef635c7ab3f0bfc0f9202fc8a8f1dd4.ctex" +path="res://.godot/imported/circle.png-480be724d6b688a76820398ea30097a4.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://addons/terrain-editing/icons/circle.png" -dest_files=["res://.godot/imported/circle.png-7ef635c7ab3f0bfc0f9202fc8a8f1dd4.ctex"] +source_file="res://assets/textures/terrain/editing/circle.png" +dest_files=["res://.godot/imported/circle.png-480be724d6b688a76820398ea30097a4.ctex"] [params] diff --git a/addons/terrain-editing/icons/corner.png b/assets/textures/terrain/editing/corner.png similarity index 100% rename from addons/terrain-editing/icons/corner.png rename to assets/textures/terrain/editing/corner.png diff --git a/addons/terrain-editing/icons/corner.png.import b/assets/textures/terrain/editing/corner.png.import similarity index 71% rename from addons/terrain-editing/icons/corner.png.import rename to assets/textures/terrain/editing/corner.png.import index 8aafbf9..99be1e5 100644 --- a/addons/terrain-editing/icons/corner.png.import +++ b/assets/textures/terrain/editing/corner.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://btl3jsqeldix2" -path="res://.godot/imported/corner.png-c9f5b33637b5a9c1ee2a2ae62a163672.ctex" +path="res://.godot/imported/corner.png-b3e3cf9873b34b5d334d6e85884e6746.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://addons/terrain-editing/icons/corner.png" -dest_files=["res://.godot/imported/corner.png-c9f5b33637b5a9c1ee2a2ae62a163672.ctex"] +source_file="res://assets/textures/terrain/editing/corner.png" +dest_files=["res://.godot/imported/corner.png-b3e3cf9873b34b5d334d6e85884e6746.ctex"] [params] diff --git a/addons/terrain-editing/icons/height.png b/assets/textures/terrain/editing/height.png similarity index 100% rename from addons/terrain-editing/icons/height.png rename to assets/textures/terrain/editing/height.png diff --git a/addons/terrain-editing/icons/height.png.import b/assets/textures/terrain/editing/height.png.import similarity index 71% rename from addons/terrain-editing/icons/height.png.import rename to assets/textures/terrain/editing/height.png.import index 77450f4..23759ec 100644 --- a/addons/terrain-editing/icons/height.png.import +++ b/assets/textures/terrain/editing/height.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dqbtbf8pe05qv" -path="res://.godot/imported/height.png-a11588cb8bcd4e93c189a14ad0809338.ctex" +path="res://.godot/imported/height.png-dfdcad891e41d3086ffca9947f565f65.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://addons/terrain-editing/icons/height.png" -dest_files=["res://.godot/imported/height.png-a11588cb8bcd4e93c189a14ad0809338.ctex"] +source_file="res://assets/textures/terrain/editing/height.png" +dest_files=["res://.godot/imported/height.png-dfdcad891e41d3086ffca9947f565f65.ctex"] [params] diff --git a/addons/terrain-editing/icons/paint.png b/assets/textures/terrain/editing/paint.png similarity index 100% rename from addons/terrain-editing/icons/paint.png rename to assets/textures/terrain/editing/paint.png diff --git a/addons/terrain-editing/icons/paint.png.import b/assets/textures/terrain/editing/paint.png.import similarity index 71% rename from addons/terrain-editing/icons/paint.png.import rename to assets/textures/terrain/editing/paint.png.import index 4995e6e..7b91225 100644 --- a/addons/terrain-editing/icons/paint.png.import +++ b/assets/textures/terrain/editing/paint.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://btdpyu4n3pgkx" -path="res://.godot/imported/paint.png-7f2ce8187160ce862842aed3c583971f.ctex" +path="res://.godot/imported/paint.png-fd14d265b51ee1ac5604bd82d9114189.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://addons/terrain-editing/icons/paint.png" -dest_files=["res://.godot/imported/paint.png-7f2ce8187160ce862842aed3c583971f.ctex"] +source_file="res://assets/textures/terrain/editing/paint.png" +dest_files=["res://.godot/imported/paint.png-fd14d265b51ee1ac5604bd82d9114189.ctex"] [params] diff --git a/addons/terrain-editing/icons/square.png b/assets/textures/terrain/editing/square.png similarity index 100% rename from addons/terrain-editing/icons/square.png rename to assets/textures/terrain/editing/square.png diff --git a/addons/terrain-editing/icons/square.png.import b/assets/textures/terrain/editing/square.png.import similarity index 71% rename from addons/terrain-editing/icons/square.png.import rename to assets/textures/terrain/editing/square.png.import index 3119f2f..901dc0c 100644 --- a/addons/terrain-editing/icons/square.png.import +++ b/assets/textures/terrain/editing/square.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://btjd1704xtdjv" -path="res://.godot/imported/square.png-ee9f4ef6bc1f78130e7829ecfc4538ca.ctex" +path="res://.godot/imported/square.png-1bc8a7ae7e9504f37db6cb7269dd99e4.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://addons/terrain-editing/icons/square.png" -dest_files=["res://.godot/imported/square.png-ee9f4ef6bc1f78130e7829ecfc4538ca.ctex"] +source_file="res://assets/textures/terrain/editing/square.png" +dest_files=["res://.godot/imported/square.png-1bc8a7ae7e9504f37db6cb7269dd99e4.ctex"] [params] diff --git a/addons/terrain-editing/TerrainEditingControls+Editing.cs b/terrain/editing/TerrainEditingControls+Editing.cs similarity index 100% rename from addons/terrain-editing/TerrainEditingControls+Editing.cs rename to terrain/editing/TerrainEditingControls+Editing.cs diff --git a/addons/terrain-editing/TerrainEditingControls.cs b/terrain/editing/TerrainEditingControls.cs similarity index 100% rename from addons/terrain-editing/TerrainEditingControls.cs rename to terrain/editing/TerrainEditingControls.cs diff --git a/addons/terrain-editing/TerrainEditingControls.tscn b/terrain/editing/TerrainEditingControls.tscn similarity index 92% rename from addons/terrain-editing/TerrainEditingControls.tscn rename to terrain/editing/TerrainEditingControls.tscn index 54bdad2..db01001 100644 --- a/addons/terrain-editing/TerrainEditingControls.tscn +++ b/terrain/editing/TerrainEditingControls.tscn @@ -1,12 +1,11 @@ [gd_scene load_steps=15 format=3 uid="uid://bmljchm3fj42"] -[ext_resource type="Script" path="res://addons/terrain-editing/TerrainEditingControls.cs" id="1_fklx3"] -[ext_resource type="Texture2D" uid="uid://btl3jsqeldix2" path="res://addons/terrain-editing/icons/corner.png" id="1_w5qr7"] -[ext_resource type="Texture2D" uid="uid://dqbtbf8pe05qv" path="res://addons/terrain-editing/icons/height.png" id="2_hrmm4"] -[ext_resource type="Texture2D" uid="uid://2u1ldmh0osbx" path="res://addons/terrain-editing/icons/circle.png" id="2_yvc34"] -[ext_resource type="Texture2D" uid="uid://btdpyu4n3pgkx" path="res://addons/terrain-editing/icons/paint.png" id="3_5x55r"] -[ext_resource type="Texture2D" uid="uid://btjd1704xtdjv" path="res://addons/terrain-editing/icons/square.png" id="3_aaaoe"] - +[ext_resource type="Script" path="res://terrain/editing/TerrainEditingControls.cs" id="1_fklx3"] +[ext_resource type="Texture2D" uid="uid://btl3jsqeldix2" path="res://assets/textures/terrain/editing/corner.png" id="1_w5qr7"] +[ext_resource type="Texture2D" uid="uid://dqbtbf8pe05qv" path="res://assets/textures/terrain/editing/height.png" id="2_hrmm4"] +[ext_resource type="Texture2D" uid="uid://2u1ldmh0osbx" path="res://assets/textures/terrain/editing/circle.png" id="2_yvc34"] +[ext_resource type="Texture2D" uid="uid://btdpyu4n3pgkx" path="res://assets/textures/terrain/editing/paint.png" id="3_5x55r"] +[ext_resource type="Texture2D" uid="uid://btjd1704xtdjv" path="res://assets/textures/terrain/editing/square.png" id="3_aaaoe"] [ext_resource type="Image" uid="uid://b0jp1dyxugbr7" path="res://assets/textures/terrain/grass.png" id="Image_d41co"] [ext_resource type="Image" uid="uid://bpo7mkr6sctqr" path="res://assets/textures/terrain/dirt.png" id="Image_y3rra"] [ext_resource type="Image" uid="uid://dqyqg6yt7yk3k" path="res://assets/textures/terrain/rock.png" id="Image_x8cdn"]