You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1021 B
39 lines
1021 B
#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
|
|
|