// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. using System.Collections.Generic; using FlaxEditor.CustomEditors.Editors; using FlaxEditor.Scripting; using FlaxEngine; using FlaxEngine.Tools; namespace FlaxEngine.Tools { partial class AudioTool { partial struct Options { private bool ShowBtiDepth => Format != AudioFormat.Vorbis; } } } namespace FlaxEditor.CustomEditors.Dedicated { /// /// Custom editor for . /// [CustomEditor(typeof(FlaxEngine.Tools.AudioTool.Options)), DefaultEditor] public class AudioToolOptionsEditor : GenericEditor { /// protected override List GetItemsForType(ScriptType type) { // Show both fields and properties return GetItemsForType(type, true, true); } } } namespace FlaxEditor.Content.Import { /// /// Proxy object to present audio import settings in . /// [HideInEditor] public class AudioImportSettings { /// /// The settings data. /// [EditorDisplay(null, EditorDisplayAttribute.InlineStyle)] public AudioTool.Options Settings = AudioTool.Options.Default; } /// /// Audio asset import entry. /// /// public partial class AudioImportEntry : AssetImportEntry { private AudioImportSettings _settings = new(); /// /// Initializes a new instance of the class. /// /// The import request. public AudioImportEntry(ref Request request) : base(ref request) { // Try to restore target asset Audio import options (useful for fast reimport) Editor.TryRestoreImportOptions(ref _settings.Settings, ResultUrl); } /// public override object Settings => _settings; /// public override bool TryOverrideSettings(object settings) { if (settings is AudioImportSettings s) { _settings.Settings = s.Settings; return true; } if (settings is AudioTool.Options o) { _settings.Settings = o; return true; } return false; } /// public override bool Import() { return Editor.Import(SourceUrl, ResultUrl, _settings.Settings); } } }