Fixes the handling of creator entries in the asset browser

This commit is contained in:
JeffR 2025-05-15 11:14:53 -05:00
parent 4bed40e545
commit c6213f0d12

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,29 +28,29 @@ 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()) if(EditorIsActive())
{ {
%targetPosition = EWorldEditor.unproject(%position SPC 1); %targetPosition = EWorldEditor.unproject(%position SPC 1);
%camPos = LocalClientConnection.camera.getPosition(); %camPos = LocalClientConnection.camera.getPosition();
%rayResult = containerRayCast(%camPos, %targetPosition, -1); %rayResult = containerRayCast(%camPos, %targetPosition, -1);
%pos = ObjectCreator.getCreateObjectPosition(); %pos = ObjectCreator.getCreateObjectPosition();
if(%rayResult != 0) if(%rayResult != 0)
{ {
%pos = getWords(%rayResult, 1, 3); %pos = getWords(%rayResult, 1, 3);
} }
else else
{ {
%pos = "0 0 0"; %pos = "0 0 0";
} }
%func = %assetDef.val[2]; %func = %this.val[2];
%this.createdObjectPos = %pos; $CurrentAssetBrowser.createdObjectPos = %pos;
%newObj = eval(%func); %newObj = eval(%func);
} }
else if(GuiEditorIsActive()) else if(GuiEditorIsActive())
{ {