// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved. using System; using System.IO; using FlaxEditor.Content.Thumbnails; using FlaxEditor.Windows; using FlaxEditor.Windows.Assets; using FlaxEngine; using FlaxEngine.GUI; namespace FlaxEditor.Content { /// /// A asset proxy object. /// /// [ContentContextMenu("New/Animation/Animation")] public class AnimationProxy : BinaryAssetProxy { /// public override string Name => "Animation"; /// public override bool CanReimport(ContentItem item) { return true; } /// public override EditorWindow Open(Editor editor, ContentItem item) { return new AnimationWindow(editor, item as AssetItem); } /// public override Color AccentColor => Color.FromRGB(0xB37200); /// public override Type AssetType => typeof(Animation); /// public override bool CanCreate(ContentFolder targetLocation) { return targetLocation.CanHaveAssets; } /// public override void Create(string outputPath, object arg) { if (Editor.CreateAsset("Animation", outputPath)) throw new Exception("Failed to create new asset."); } /// public override void OnThumbnailDrawBegin(ThumbnailRequest request, ContainerControl guiRoot, GPUContext context) { guiRoot.AddChild(new Label { Text = Path.GetFileNameWithoutExtension(request.Asset.Path), Offsets = Margin.Zero, AnchorPreset = AnchorPresets.StretchAll, Wrapping = TextWrapping.WrapWords }); } } }