From 433908c1d5e271ba5d56b6136423c06c1c1dbb02 Mon Sep 17 00:00:00 2001 From: arthurkehrwald <50906979+arthurkehrwald@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:22:13 +0100 Subject: [PATCH 1/4] Fix compile error --- .../VPT/Surface/SurfaceColliderGenerator.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/VisualPinball.Unity/VisualPinball.Unity/VPT/Surface/SurfaceColliderGenerator.cs b/VisualPinball.Unity/VisualPinball.Unity/VPT/Surface/SurfaceColliderGenerator.cs index 60046a307..96fc61360 100644 --- a/VisualPinball.Unity/VisualPinball.Unity/VPT/Surface/SurfaceColliderGenerator.cs +++ b/VisualPinball.Unity/VisualPinball.Unity/VPT/Surface/SurfaceColliderGenerator.cs @@ -17,6 +17,7 @@ // ReSharper disable CompareOfFloatsByEqualityOperator using Unity.Mathematics; +using VisualPinball.Engine.Math; using VisualPinball.Engine.VPT.Surface; namespace VisualPinball.Unity @@ -34,7 +35,8 @@ public SurfaceColliderGenerator(SurfaceApi surfaceApi, SurfaceComponent componen var data = new SurfaceData(); component.CopyDataTo(data, null, null, false); - _meshGen = new SurfaceMeshGenerator(data); + var pos = new Vertex3D(matrix.c3.x, matrix.c3.y, matrix.c3.z); + _meshGen = new SurfaceMeshGenerator(data, pos); } internal void GenerateColliders(ref ColliderReference colliders) From 08e6e743403425f3b57fdbf9c869dcb853026ca4 Mon Sep 17 00:00:00 2001 From: arthurkehrwald <50906979+arthurkehrwald@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:28:07 +0100 Subject: [PATCH 2/4] Remove unneccessary HideInInspector attributes These classes have custom inspectors anyways and the HideInInspector attribute makes it impossible to debug those using the Debug view in the inspector. --- .../VisualPinball.Unity/Sound/CoilSoundComponent.cs | 1 - .../VisualPinball.Unity/Sound/SwitchSoundComponent.cs | 1 - 2 files changed, 2 deletions(-) diff --git a/VisualPinball.Unity/VisualPinball.Unity/Sound/CoilSoundComponent.cs b/VisualPinball.Unity/VisualPinball.Unity/Sound/CoilSoundComponent.cs index c7c66eb06..a1c25c9a5 100644 --- a/VisualPinball.Unity/VisualPinball.Unity/Sound/CoilSoundComponent.cs +++ b/VisualPinball.Unity/VisualPinball.Unity/Sound/CoilSoundComponent.cs @@ -29,7 +29,6 @@ namespace VisualPinball.Unity [AddComponentMenu("Pinball/Sound/Coil Sound")] public class CoilSoundComponent : BinaryEventSoundComponent, IPackable { - [HideInInspector] public string CoilName; public override Type GetRequiredType() => typeof(ICoilDeviceComponent); diff --git a/VisualPinball.Unity/VisualPinball.Unity/Sound/SwitchSoundComponent.cs b/VisualPinball.Unity/VisualPinball.Unity/Sound/SwitchSoundComponent.cs index 74242d951..eb28d9c2f 100644 --- a/VisualPinball.Unity/VisualPinball.Unity/Sound/SwitchSoundComponent.cs +++ b/VisualPinball.Unity/VisualPinball.Unity/Sound/SwitchSoundComponent.cs @@ -29,7 +29,6 @@ namespace VisualPinball.Unity [AddComponentMenu("Pinball/Sound/Switch Sound")] public class SwitchSoundComponent : BinaryEventSoundComponent, IPackable { - [HideInInspector] public string SwitchName; public override Type GetRequiredType() => typeof(ISwitchDeviceComponent); From 1642ffc3853dc4dad2fe5c3491627e291a101f34 Mon Sep 17 00:00:00 2001 From: arthurkehrwald <50906979+arthurkehrwald@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:30:24 +0100 Subject: [PATCH 3/4] Fix: Bumper coil was not triggering status events This was broken in https://github.com/freezy/VisualPinball.Engine/commit/b890c47341c82e10ba6ebafc6deab58e6e8ca7e5. --- VisualPinball.Unity/VisualPinball.Unity/VPT/Bumper/BumperApi.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/VisualPinball.Unity/VisualPinball.Unity/VPT/Bumper/BumperApi.cs b/VisualPinball.Unity/VisualPinball.Unity/VPT/Bumper/BumperApi.cs index 78938e03f..cb1e1d749 100644 --- a/VisualPinball.Unity/VisualPinball.Unity/VPT/Bumper/BumperApi.cs +++ b/VisualPinball.Unity/VisualPinball.Unity/VPT/Bumper/BumperApi.cs @@ -102,6 +102,8 @@ void IApiCoil.OnCoil(bool enabled) BumperCollider.PushBallAway(ref ballState, in bumperState.Static, ref collEvent, in physicsMaterialData, ref state); } } + + CoilStatusChanged?.Invoke(this, new NoIdCoilEventArgs(enabled)); } void IApiWireDest.OnChange(bool enabled) => (this as IApiCoil).OnCoil(enabled); From fda49fcfeddcd13e4178123e5e3bb88a373aff09 Mon Sep 17 00:00:00 2001 From: arthurkehrwald <50906979+arthurkehrwald@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:32:39 +0100 Subject: [PATCH 4/4] Fix: Bumper coil is named after bumper game object This didn't really break anything because the bumper API ignores the ID of the requested coil, but it did cause the coil sound inspector to stop showing the "Ring Coil" text whenever the name of the bumper prefab was changed. --- .../VisualPinball.Unity/VPT/Bumper/BumperComponent.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/VisualPinball.Unity/VisualPinball.Unity/VPT/Bumper/BumperComponent.cs b/VisualPinball.Unity/VisualPinball.Unity/VPT/Bumper/BumperComponent.cs index 0a98e0072..d7565a0b5 100644 --- a/VisualPinball.Unity/VisualPinball.Unity/VPT/Bumper/BumperComponent.cs +++ b/VisualPinball.Unity/VisualPinball.Unity/VPT/Bumper/BumperComponent.cs @@ -95,6 +95,7 @@ public void UnpackReferences(byte[] data, Transform root, PackagedRefs refs, Pac public const float DataMeshScale = 100f; public const string SocketSwitchItem = "socket_switch"; + public const string RingCoilItem = "ring_coil"; #endregion @@ -144,7 +145,7 @@ private void Start() public SwitchDefault SwitchDefault => SwitchDefault.Configurable; public IEnumerable AvailableCoils => new[] { - new GamelogicEngineCoil(name) { + new GamelogicEngineCoil(RingCoilItem) { Description = "Ring Coil" } };