From 733c9d4b6df617b0f6d166541ecf70bd10fd6c64 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sun, 31 Dec 2023 13:04:45 -0600 Subject: [PATCH] clean out unnecessary position set add a new route for the asset browser to create things in the form of ".on" @ %assetType @ "GUIEditorDropped(" @ %assetDef @ ",\"" @ %pos @ "\");"; demonstrate it with a soundasset creating a GuiAudioCtrl when drug onto the canvas --- .../assetBrowser/scripts/assetBrowser.tscript | 22 ++++++++++++++----- .../scripts/assetTypes/sound.tscript | 11 ++++++++++ .../scripts/guiEditorCanvas.ed.tscript | 8 +------ 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript index 1216eaab6..7ad8e380b 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript @@ -2582,12 +2582,24 @@ function GuiEditor::onControlDropped(%this, %payload, %position) //dealing with an actual asset, so build the assetName %assetId = %payload.moduleName @ ":" @ %payload.assetName; %assetType = AssetDatabase.getAssetType(%assetId); - - if(%assetType $= "ImageAsset") + + if(AssetBrowser.isMethod("on" @ %assetType @ "GUIEditorDropped")) { - %cmd = "return new guiBitmapCtrl();"; - %ctrl = eval( %cmd ); - %ctrl.bitmap = %assetId; + %module = %payload.moduleName; + %asset = %payload.assetName; + %assetDef = AssetDatabase.acquireAsset(%module @ ":" @ %asset); + %buildCommand = AssetBrowser @ ".on" @ %assetType @ "GUIEditorDropped(" @ %assetDef @ ",\"" @ %pos @ "\");"; + eval(%buildCommand); + } + else + { + //fallback example + if(%assetType $= "ImageAsset") + { + %cmd = "return new guiBitmapCtrl();"; + %ctrl = eval( %cmd ); + %ctrl.bitmap = %assetId; + } } } else diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/sound.tscript b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/sound.tscript index 8064c070f..f5a072d5b 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/sound.tscript +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/sound.tscript @@ -91,6 +91,17 @@ function AssetBrowser::onSoundAssetEditorDropped(%this, %assetDef, %position) } +function AssetBrowser::onSoundAssetGUIEditorDropped(%this, %assetDef, %position) +{ + %assetId = %assetDef.getAssetId(); + %cmd = "new GuiAudioCtrl(){"; + %cmd = %cmd @ "SoundAsset =\""@ %assetId @"\";"; + %cmd = %cmd @ "position =\""@ %position @"\";"; + %cmd = %cmd @ "};"; + %ctrl = GuiEditCanvas.createObject(%cmd); + echo(%ctrl SPC "created"); +} + function GuiInspectorTypeSoundAssetPtr::onControlDropped( %this, %payload, %position ) { Canvas.popDialog(EditorDragAndDropLayer); diff --git a/Templates/BaseGame/game/tools/guiEditor/scripts/guiEditorCanvas.ed.tscript b/Templates/BaseGame/game/tools/guiEditor/scripts/guiEditorCanvas.ed.tscript index 4809e3254..41ce1989f 100644 --- a/Templates/BaseGame/game/tools/guiEditor/scripts/guiEditorCanvas.ed.tscript +++ b/Templates/BaseGame/game/tools/guiEditor/scripts/guiEditorCanvas.ed.tscript @@ -290,13 +290,7 @@ function GuiEditCanvas::createObject( %this, %cmd ) function GuiEditCanvas::onFinishCreateObject( %this, %objId ) { - GuiEditor.getCurrentAddSet().add( %objId ); - - if( %objId.isMemberOfClass( "GuiControl" ) ) - { - %objId.position = "0 0"; - } - + GuiEditor.getCurrentAddSet().add( %objId ); %this.onObjectCreated( %objId ); }