assetActions property

  1. @override
List<AssetAction> get assetActions
override

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()),
  ),
];