diff --git a/addons/terrabrush/Plugin.cs b/addons/terrabrush/Plugin.cs index 331416c..e1d5e5b 100644 --- a/addons/terrabrush/Plugin.cs +++ b/addons/terrabrush/Plugin.cs @@ -13,6 +13,7 @@ public partial class Plugin : EditorPlugin { private const int ToolInfoOffset = 20; private const string OverlayActionNameKey = "ActionName"; + private Control _terrainDockContainer; private TerrainControlDock _terrainControlDock; private PackedScene _terrainControlDockPrefab; private PackedScene _toolsPieMenuPrefab; @@ -60,6 +61,11 @@ public override void _EnterTree() { CreateCustomSetting(SettingContants.IconsColor, Color.FromHtml("#00151F"), Variant.Type.Color); AddInspectorPlugin(new ButtonInspectorPlugin()); + _terrainDockContainer = new Control() { + Name = "Terrain Editor" + }; + AddControlToDock(DockSlot.RightBl, _terrainDockContainer); + _terrainControlDockPrefab = ResourceLoader.Load("res://addons/terrabrush/Components/TerrainControlDock.tscn"); _toolsPieMenuPrefab = ResourceLoader.Load("res://addons/terrabrush/Components/ToolsPieMenu.tscn"); _customContentPieMenuPrefab = ResourceLoader.Load("res://addons/terrabrush/Components/CustomContentPieMenu.tscn"); @@ -316,6 +322,13 @@ private Vector3 GetMouseClickToZoneHeight(Vector3 from, Vector3 direction) { } public override void _ExitTree() { + if (_terrainDockContainer != null) { + RemoveControlFromDocks(_terrainDockContainer); + _terrainDockContainer.Free(); + + _terrainDockContainer = null; + } + RemoveCustomType("TerraBrush"); RemoveToolMenuItem("TerraBrush Key bindings"); @@ -324,9 +337,7 @@ public override void _ExitTree() { private void RemoveDock() { if (_terrainControlDock != null) { - RemoveControlFromDocks(_terrainControlDock); - _terrainControlDock.Free(); - + _terrainControlDock.QueueFree(); _terrainControlDock = null; } @@ -382,7 +393,7 @@ private void AddDock() { _terrainControlDock.TerraBrush = _currentTerraBrushNode; _terrainControlDock.BrushDecal = _brushDecal; _terrainControlDock.EditorResourcePreview = EditorInterface.Singleton.GetResourcePreviewer(); - AddControlToDock(DockSlot.RightBl, _terrainControlDock); + _terrainDockContainer.AddChild(_terrainControlDock); _updateTerrainSettingsButton = new Button() { Text = "Update terrain" diff --git a/addons/terrabrush/plugin.cfg b/addons/terrabrush/plugin.cfg index dbd238c..bbc746e 100644 --- a/addons/terrabrush/plugin.cfg +++ b/addons/terrabrush/plugin.cfg @@ -3,5 +3,5 @@ name="TerraBrush" description="" author="spimort" -version="0.8.5-alpha" +version="0.8.6-alpha" script="Plugin.cs"