// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. using System; using FlaxEditor.Windows; using FlaxEditor.Windows.Assets; using FlaxEngine; namespace FlaxEditor.Content { /// /// Implementation of for assets. /// /// class SceneAnimationItem : BinaryAssetItem { /// public SceneAnimationItem(string path, ref Guid id, string typeName, Type type) : base(path, ref id, typeName, type, ContentItemSearchFilter.Other) { } /// public override bool OnEditorDrag(object context) { return true; } /// public override Actor OnEditorDrop(object context) { return new SceneAnimationPlayer { Animation = FlaxEngine.Content.LoadAsync(ID) }; } } /// /// A asset proxy object. /// /// [ContentContextMenu("New/Animation/Scene Animation")] public class SceneAnimationProxy : BinaryAssetProxy { /// public override string Name => "Scene Animation"; /// public override EditorWindow Open(Editor editor, ContentItem item) { return new SceneAnimationWindow(editor, item as AssetItem); } /// public override AssetItem ConstructItem(string path, string typeName, ref Guid id) { return new SceneAnimationItem(path, ref id, typeName, AssetType); } /// public override Color AccentColor => Color.FromRGB(0xff5c4a87); /// public override Type AssetType => typeof(SceneAnimation); /// public override bool CanCreate(ContentFolder targetLocation) { return targetLocation.CanHaveAssets; } /// public override void Create(string outputPath, object arg) { if (Editor.CreateAsset(Editor.NewAssetType.SceneAnimation, outputPath)) throw new Exception("Failed to create new asset."); } } }