diff --git a/Editor/Inspector/MpfEventSoundInspector.cs b/Editor/Inspector/MpfEventSoundInspector.cs new file mode 100644 index 00000000..977a8c8f --- /dev/null +++ b/Editor/Inspector/MpfEventSoundInspector.cs @@ -0,0 +1,34 @@ +// Visual Pinball Engine +// Copyright (C) 2025 freezy and VPE Team +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; +using VisualPinball.Engine.Mpf.Unity.MediaController.Sound; +using VisualPinball.Unity.Editor; + +namespace VisualPinball.Engine.Mpf.Unity.Editor +{ + [CustomEditor(typeof(MpfEventSound)), CanEditMultipleObjects] + public class MpfEventSoundInspector : SoundComponentInspector + { + [SerializeField] + private VisualTreeAsset mpfEventSoundInspectorXml; + + public override VisualElement CreateInspectorGUI() + { + var root = base.CreateInspectorGUI(); + var inspectorUi = mpfEventSoundInspectorXml.Instantiate(); + root.Add(inspectorUi); + return root; + } + } +} diff --git a/Editor/Inspector/MpfEventSoundInspector.cs.meta b/Editor/Inspector/MpfEventSoundInspector.cs.meta new file mode 100644 index 00000000..3ebc3c49 --- /dev/null +++ b/Editor/Inspector/MpfEventSoundInspector.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 9625a0bfe8daf7140bbbb7dc1e77bceb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - soundComponentInspectorXml: {fileID: 9197481963319205126, guid: 86610575353b6f44aa325d86ee6d779b, + type: 3} + - mpfEventSoundInspectorXml: {fileID: 9197481963319205126, guid: 8aa1309004b4c514f8c210d6f7c23fc1, + type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Inspector/MpfEventSoundInspector.uxml b/Editor/Inspector/MpfEventSoundInspector.uxml new file mode 100644 index 00000000..f12a876c --- /dev/null +++ b/Editor/Inspector/MpfEventSoundInspector.uxml @@ -0,0 +1,3 @@ + + + diff --git a/Editor/Inspector/MpfEventSoundInspector.uxml.meta b/Editor/Inspector/MpfEventSoundInspector.uxml.meta new file mode 100644 index 00000000..4bf9628e --- /dev/null +++ b/Editor/Inspector/MpfEventSoundInspector.uxml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 8aa1309004b4c514f8c210d6f7c23fc1 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Editor/Inspector/MpfGamelogicEngineInspector.cs b/Editor/Inspector/MpfGamelogicEngineInspector.cs index e439c0ed..2434117e 100644 --- a/Editor/Inspector/MpfGamelogicEngineInspector.cs +++ b/Editor/Inspector/MpfGamelogicEngineInspector.cs @@ -17,11 +17,11 @@ using System.Linq; using System.Threading; using Grpc.Core; -using Mono.Cecil; using UnityEditor; using UnityEditor.UIElements; using UnityEngine; using UnityEngine.UIElements; +using VisualPinball.Engine.Mpf.Unity.MediaController; using VisualPinball.Unity; namespace VisualPinball.Engine.Mpf.Unity.Editor @@ -38,6 +38,9 @@ public class MpfGamelogicEngineInspector : UnityEditor.Editor private PropertyField _connectDelayField; private VisualElement _commandLineOptionsContainer; private VisualElement _startupBehaviorOptionsContainer; + private TextField _mpfStateField; + private TextField _mediaControllerStateField; + private VisualElement _bcpOptionsContainer; public override VisualElement CreateInspectorGUI() { @@ -63,12 +66,9 @@ public override VisualElement CreateInspectorGUI() if (!string.IsNullOrWhiteSpace(path)) { - path = path.Replace("\\", "/"); - if (path.Contains("StreamingAssets/")) - path = "./StreamingAssets/" + path.Split("StreamingAssets/")[1]; - + path = MpfWranglerOptions.RealPathToSerializedPath(path); var machineFolderProp = serializedObject.FindProperty( - $"_mpfWrangler._machineFolder" + $"_wranglerOptions._machineFolder" ); machineFolderProp.stringValue = path; serializedObject.ApplyModifiedProperties(); @@ -77,7 +77,7 @@ public override VisualElement CreateInspectorGUI() ); var getDescBtn = root.Q