@ -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<PackedScene>(ScenePath); |
||||
_controls = scene.Instantiate<TerrainEditingControls>(); |
||||
} |
||||
|
||||
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 |
@ -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) |
Before Width: | Height: | Size: 193 B After Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 129 B After Width: | Height: | Size: 129 B |
Before Width: | Height: | Size: 168 B After Width: | Height: | Size: 168 B |
Before Width: | Height: | Size: 169 B After Width: | Height: | Size: 169 B |
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 147 B |
@ -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"] |