Merge pull request #1457 from Areloch/AssetBrowserCreatorFixes

Fixes the handling of creator entries in the asset browser
This commit is contained in:
Brian Roberts 2025-05-15 17:46:07 -05:00 committed by GitHub
commit efa9878173
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,14 +1,14 @@
function AssetBrowser::buildCreatorPreview(%this, %assetDef, %previewData) AssetBrowser::registerObjectType("Creator", "Creator's");
{
%class = %assetDef.val[0];
%name = %assetDef.val[1];
%func = %assetDef.val[2];
%previewData.assetName = %name; function Creator::buildBrowserElement(%this, %className, %previewData)
{
//echo("Creator::buildBrowserElement() - " @ %this @ ", " @ %previewData);
//%this.dump();
%previewData.assetName = %this.val1;
%previewData.assetPath = ""; %previewData.assetPath = "";
%previewData.moduleName = ""; %previewData.moduleName = "";
%previewData.previewImage = "ToolsModule:" @ %class @ "_image"; %previewData.previewImage = "ToolsModule:" @ %this.val0 @ "_image";
if(!AssetDatabase.isDeclaredAsset(%previewData.previewImage)) if(!AssetDatabase.isDeclaredAsset(%previewData.previewImage))
{ {
@ -18,10 +18,9 @@ function AssetBrowser::buildCreatorPreview(%this, %assetDef, %previewData)
%previewData.previewImage = "ToolsModule:GuiControl_image"; %previewData.previewImage = "ToolsModule:GuiControl_image";
} }
//%previewData.assetFriendlyName = %assetDef.assetName; %previewData.assetDesc = %this;
%previewData.assetDesc = %assetDef; %previewData.tooltip = "This creates a new object of the class " @ %this.val0;
%previewData.tooltip = "This creates a new object of the class " @ %class; %previewData.doubleClickCommand = %this.val2;
%previewData.doubleClickCommand = %func;
} }
function AssetBrowser::onFinishCreateObject(%this, %objId) function AssetBrowser::onFinishCreateObject(%this, %objId)
@ -29,32 +28,14 @@ function AssetBrowser::onFinishCreateObject(%this, %objId)
%objId.position = %this.createdObjectPos; %objId.position = %this.createdObjectPos;
} }
function AssetBrowser::onCreatorEditorDropped(%this, %assetDef, %position) function Creator::onWorldEditorDropped(%this, %position)
{ {
if(EditorIsActive()) %func = %this.val[2];
{
%targetPosition = EWorldEditor.unproject(%position SPC 1);
%camPos = LocalClientConnection.camera.getPosition();
%rayResult = containerRayCast(%camPos, %targetPosition, -1);
%pos = ObjectCreator.getCreateObjectPosition(); $CurrentAssetBrowser.createdObjectPos = %position;
if(%rayResult != 0)
{
%pos = getWords(%rayResult, 1, 3);
}
else
{
%pos = "0 0 0";
}
%func = %assetDef.val[2];
%this.createdObjectPos = %pos;
%newObj = eval(%func); %newObj = eval(%func);
} }
else if(GuiEditorIsActive())
{ function Creator::onGUIEditorDropped(%this, %position)
%placeholderVar = ""; {
}
} }