diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.cs b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.cs index fcee0645d..a289c168e 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.cs +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.cs @@ -2234,6 +2234,10 @@ function EWorldEditor::onControlDropped( %this, %payload, %position ) { %buildCommand = AssetBrowser @ ".on" @ %assetType @ "EditorDropped(" @ %asset @ ",\"" @ %position @ "\");"; } + else if(%assetType $= "Prefab") + { + %buildCommand = AssetBrowser @ ".on" @ %assetType @ "EditorDropped(\"" @ %module @ "/" @ %asset @ "\",\"" @ %position @ "\");"; + } else { %assetDef = AssetDatabase.acquireAsset(%module @ ":" @ %asset); diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/datablockObjects.cs b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/datablockObjects.cs index 3c5c13c12..91e4f9968 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/datablockObjects.cs +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/datablockObjects.cs @@ -50,7 +50,7 @@ function AssetBrowser::buildDatablockPreview(%this, %assetDef, %previewData) //%previewData.assetFriendlyName = %assetDef.assetName; %previewData.assetDesc = %assetDef; %previewData.tooltip = %assetDef; - %previewData.doubleClickCommand = "DatablockEditorPlugin.openDatablock(" @ %assetDef @ ");"; + %previewData.doubleClickCommand = "AssetBrowser.schedule(10, \"spawnDatablockObject\",\""@ %assetDef @"\");";//browseTo %assetDef.dirPath / %assetDef.assetName } function spawnDatablockObject(%datablock) @@ -58,10 +58,10 @@ function spawnDatablockObject(%datablock) %name = %datablock.getName(); %class = %datablock.getClassName(); %cmd = %class @ "::create(" @ %name @ ");"; - - %shapePath = ( %datablock.shapeFile !$= "" ) ? %datablock.shapeFile : %datablock.shapeName; + + %shapePath = ( %datablock.shapeAsset !$= "" ) ? %datablock.shapeFile : %datablock.shapeName; %createCmd = "EWCreatorWindow.createObject( \"" @ %cmd @ "\" );"; - return eval(%createCmd); + return eval(%createCmd);//eval("showImportDialog( \"" @ %shapePath @ "\", \"" @ %createCmd @ "\" );"); } function AssetBrowser::renameDatablock(%this, %folderPath, %newFolderName) diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/prefab.cs b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/prefab.cs index ff271b9c1..a2a44568d 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/prefab.cs +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/assetTypes/prefab.cs @@ -1,3 +1,20 @@ +function AssetBrowser::createPrefab(%this) +{ + %moduleName = AssetBrowser.newAssetSettings.moduleName; + %modulePath = "data/" @ %moduleName; + + %assetName = AssetBrowser.newAssetSettings.assetName; + + %assetPath = AssetBrowser.dirHandler.currentAddress @ "/"; + + %tamlpath = %assetPath @ %assetName @ ".asset.taml"; + %prefabFilePath = %assetPath @ %assetName @ ".prefab"; + + EWorldEditor.makeSelectionPrefab( %prefabFilePath ); + + EditorTree.buildVisibleTree( true ); +} + function AssetBrowser::buildPrefabPreview(%this, %assetDef, %previewData) { %fullPath = %assetDef.dirPath @ "/" @ %assetDef.assetName; @@ -11,4 +28,37 @@ function AssetBrowser::buildPrefabPreview(%this, %assetDef, %previewData) %previewData.tooltip = %fullPath; //%previewData.doubleClickCommand = "AssetBrowser.schedule(10, \"navigateTo\",\""@ %assetDef.dirPath @ "/" @ %assetDef.assetName @"\");";//browseTo %assetDef.dirPath / %assetDef.assetName %previewData.doubleClickCommand = "AssetBrowser.autoImportFile(\"" @ %fullPath @ "\");"; +} + +function AssetBrowser::onPrefabEditorDropped(%this, %assetDef, %position) +{ + //echo("DROPPED A SHAPE ON THE EDITOR WINDOW!"); + + %targetPosition = EWorldEditor.unproject(%position SPC 1000); + %camPos = LocalClientConnection.camera.getPosition(); + %rayResult = containerRayCast(%camPos, %targetPosition, -1); + + %pos = EWCreatorWindow.getCreateObjectPosition(); + + if(%rayResult != 0) + { + %pos = getWords(%rayResult, 1, 3); + } + else + { + %pos = "0 0 0"; + } + + %newPrefab = new Prefab() + { + position = %pos; + fileName = %assetDef; + }; + + getScene(0).add(%newPrefab); + + EWorldEditor.clearSelection(); + EWorldEditor.selectObject(%newPrefab); + + EWorldEditor.isDirty = true; } \ No newline at end of file