From 99eca5948081773e196c71c4fc20597105ae8e71 Mon Sep 17 00:00:00 2001 From: arthurkehrwald <50906979+arthurkehrwald@users.noreply.github.com> Date: Sat, 8 Feb 2025 19:04:35 +0100 Subject: [PATCH 01/53] Create sound asset subtypes --- .../Sound/MusicAssetInspector.cs | 38 +++++ .../Sound/MusicAssetInspector.cs.meta | 15 ++ .../Sound/MusicAssetInspector.uxml | 6 + .../Sound/MusicAssetInspector.uxml.meta | 10 ++ .../Sound/SoundAssetInspector.cs | 85 +---------- .../Sound/SoundAssetInspector.cs.meta | 2 +- .../Sound/SoundAssetInspector.uxml | 6 - .../Sound/SoundEffectAssetInspector.cs | 96 ++++++++++++ .../Sound/SoundEffectAssetInspector.cs.meta | 15 ++ .../Sound/SoundEffectAssetInspector.uxml | 8 + .../Sound/SoundEffectAssetInspector.uxml.meta | 10 ++ .../Sound/VoiceAssetInspector.cs | 39 +++++ .../Sound/VoiceAssetInspector.cs.meta | 15 ++ .../Sound/VoiceAssetInspector.uxml | 3 + .../Sound/VoiceAssetInspector.uxml.meta | 10 ++ .../VisualPinball.Unity/Sound/MusicAsset.cs | 45 ++++++ .../Sound/MusicAsset.cs.meta | 11 ++ .../VisualPinball.Unity/Sound/MusicPlayer.cs | 69 +++++++++ .../Sound/MusicPlayer.cs.meta | 11 ++ .../VisualPinball.Unity/Sound/SoundAsset.cs | 80 ++++------ .../Sound/SoundComponent.cs | 5 +- .../Sound/SoundEffectAsset.cs | 143 ++++++++++++++++++ .../Sound/SoundEffectAsset.cs.meta | 11 ++ .../VisualPinball.Unity/Sound/SoundUtils.cs | 80 ---------- .../VisualPinball.Unity/Sound/VoiceAsset.cs | 33 ++++ .../Sound/VoiceAsset.cs.meta | 11 ++ 26 files changed, 638 insertions(+), 219 deletions(-) create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs.meta create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml.meta create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundEffectAssetInspector.cs create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundEffectAssetInspector.cs.meta create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundEffectAssetInspector.uxml create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundEffectAssetInspector.uxml.meta create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/VoiceAssetInspector.cs create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/VoiceAssetInspector.cs.meta create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/VoiceAssetInspector.uxml create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/VoiceAssetInspector.uxml.meta create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/MusicAsset.cs create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/MusicAsset.cs.meta create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/MusicPlayer.cs create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/MusicPlayer.cs.meta create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/SoundEffectAsset.cs create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/SoundEffectAsset.cs.meta create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/VoiceAsset.cs create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/VoiceAsset.cs.meta diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs new file mode 100644 index 000000000..0cf7193ac --- /dev/null +++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs @@ -0,0 +1,38 @@ +// Visual Pinball Engine +// Copyright (C) 2023 freezy and VPE Team +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +using UnityEditor; +using UnityEngine.UIElements; +using UnityEngine; + +namespace VisualPinball.Unity.Editor +{ + [CustomEditor(typeof(MusicAsset)), CanEditMultipleObjects] + public class MusicAssetInspector : SoundAssetInspector + { + [SerializeField] private VisualTreeAsset _musicAssetInspectorAsset; + + public override VisualElement CreateInspectorGUI() + { + var root = new VisualElement(); + var baseUi = base.CreateInspectorGUI(); + root.Add(baseUi); + var subUi = _musicAssetInspectorAsset.Instantiate(); + root.Add(subUi); + return root; + } + } +} \ No newline at end of file diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs.meta b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs.meta new file mode 100644 index 000000000..05694000e --- /dev/null +++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: ff8590e7b8c275545a4e3572fbd5346f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - _soundAssetInspectorAsset: {fileID: 9197481963319205126, guid: 84e4ce75c16723f428f39b87bcd555a1, + type: 3} + - _musicAssetInspectorAsset: {fileID: 9197481963319205126, guid: a628fd30c34ffb74a8d1a9d170031b1c, + type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml new file mode 100644 index 000000000..59abaf6fc --- /dev/null +++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml @@ -0,0 +1,6 @@ + + + + + + diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml.meta b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml.meta new file mode 100644 index 000000000..22a3ac554 --- /dev/null +++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a628fd30c34ffb74a8d1a9d170031b1c +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0} diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs index 6d9e219da..a5cb9ad76 100644 --- a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs +++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs @@ -14,101 +14,22 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -using System; using System.Threading; using UnityEditor; using UnityEngine.UIElements; using UnityEngine; -using UnityEditor.UIElements; -using System.Collections.Generic; namespace VisualPinball.Unity.Editor { [CustomEditor(typeof(SoundAsset)), CanEditMultipleObjects] public class SoundAssetInspector : UnityEditor.Editor { - private CancellationTokenSource _allowFadeCts; - private CancellationTokenSource _instantCts; - [SerializeField] - private VisualTreeAsset _inspectorXml; - - private Button _playButton; - + private VisualTreeAsset _soundAssetInspectorAsset; + public override VisualElement CreateInspectorGUI() { - var ui = _inspectorXml.Instantiate(); - _playButton = ui.Q