Spawn node: place assets at runtime into the play copy, Spawner demo behavior
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
c3a533c4e5
commit
91ee2feadd
13 files changed
+219
-37
No files matched your search
@@ -12,6 +12,7 @@ import {
|
||||
import { AddVariableCommand, nextVariableName, RemoveVariableCommand, RenameVariableCommand } from '../../core/commands/variableCommands';
|
||||
import { edgesInto, inlineInputDef, inlineInputs, nodeDef } from '../../core/graph';
|
||||
import type { Asset, BehaviorAsset, SceneAsset } from '../../core/model/Asset';
|
||||
import { isPlaceableType } from '../../core/model/AssetTypes';
|
||||
import { isSelfOrAncestor, treeOrder } from '../../core/model/hierarchy';
|
||||
import type { Position, PropertyValue } from '../../core/model/Properties';
|
||||
import { findAsset, findScene, findSceneObject } from '../../core/model/Project';
|
||||
@@ -395,11 +396,18 @@ export class Inspector extends Panel {
|
||||
this.body.add(new Button('Delete node', { variant: 'danger', onClick: () => this.state.execute(new RemoveNodeCommand(assetId, nodeId)) }));
|
||||
}
|
||||
|
||||
/** Variable params pick from the asset's variables; everything else is used as declared. */
|
||||
/**
|
||||
* Variable params pick from the asset's variables, asset params (Spawn) from the project's
|
||||
* placeable assets; everything else is used as declared.
|
||||
*/
|
||||
private resolveParamDef(param: PropertyDef, asset: Asset): PropertyDef {
|
||||
if (param.kind === 'enum' && param.key === 'variable' && asset.type === 'behavior') {
|
||||
return { ...param, options: asset.variables.map((v) => ({ value: v.key, label: v.key })) };
|
||||
}
|
||||
if (param.kind === 'enum' && param.key === 'asset') {
|
||||
const options = this.state.project.assets.filter((a) => isPlaceableType(a.type)).map((a) => ({ value: a.id, label: `${a.name} (${a.type})` }));
|
||||
return { ...param, options };
|
||||
}
|
||||
return param;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user