assetActions property
What this module can do with a file in the Assets dock.
Implementation
@override
List<AssetAction> get assetActions => [
AssetAction(
id: newMaterialId,
label: 'New material',
icon: Icons.texture,
appliesTo: (path, {required isDirectory}) =>
isDirectory && _ownFile(path),
run: (scope, path) => _made(scope, newMaterial(path)),
),
AssetAction(
id: newMaterial2DId,
label: 'New 2D material',
icon: Icons.auto_awesome,
appliesTo: (path, {required isDirectory}) =>
isDirectory && _ownFile(path),
run: (scope, path) =>
_made(scope, newMaterial2D(path, kind: Material2DKind.sprite)),
),
AssetAction(
id: newScreenMaterialId,
label: 'New screen material',
icon: Icons.filter_frames_outlined,
appliesTo: (path, {required isDirectory}) =>
isDirectory && _ownFile(path),
run: (scope, path) =>
_made(scope, newMaterial2D(path, kind: Material2DKind.screen)),
),
AssetAction(
id: newVariantId,
label: 'New variant',
icon: Icons.call_split,
appliesTo: (path, {required isDirectory}) =>
!isDirectory &&
_ownFile(path) &&
(MaterialFile.isMaterialPath(path) ||
Material2DFile.isMaterial2DPath(path)),
run: (scope, path) => _made(scope, newVariant(path)),
),
AssetAction(
id: textureSetsId,
label: 'Make materials from texture sets',
icon: Icons.layers_outlined,
appliesTo: (path, {required isDirectory}) =>
isDirectory && _ownFile(path),
run: importTextureSets,
),
AssetAction(
id: extractId,
label: 'Extract materials',
icon: Icons.texture,
appliesTo: (path, {required isDirectory}) =>
!isDirectory && _ownFile(path) && _isModel(path),
run: extractMaterials,
),
AssetAction(
id: spriteNormalId,
label: 'Generate normal map (sprite)',
icon: Icons.auto_fix_high,
appliesTo: (path, {required isDirectory}) =>
!isDirectory && _ownFile(path) && _isImage(path),
run: (scope, path) =>
generateNormalMap(scope, path, const NormalMapOptions.sprite()),
),
AssetAction(
id: tilingNormalId,
label: 'Generate normal map (tiling)',
icon: Icons.auto_fix_high,
appliesTo: (path, {required isDirectory}) =>
!isDirectory && _ownFile(path) && _isImage(path),
run: (scope, path) =>
generateNormalMap(scope, path, const NormalMapOptions.tiling()),
),
];