diff --git a/NewHorizons/Builder/Props/DetailBuilder.cs b/NewHorizons/Builder/Props/DetailBuilder.cs index a8d563d4..3a9cfc52 100644 --- a/NewHorizons/Builder/Props/DetailBuilder.cs +++ b/NewHorizons/Builder/Props/DetailBuilder.cs @@ -394,31 +394,30 @@ namespace NewHorizons.Builder.Props } } + // TODO: simulate in sector + // BUG: detector collider is not included in groups private class AddPhysics : MonoBehaviour { private IEnumerator Start() { yield return new WaitForSeconds(.1f); - + var parentBody = GetComponentInParent(); - + foreach (var meshCollider in GetComponentsInChildren(true)) - { - meshCollider.convex = true; - } + // hack. doesnt work for all meshes but seems to for most + if (!meshCollider.isTrigger) + meshCollider.convex = true; - var go = new GameObject($"{name}_Body"); - go.transform.position = transform.position; - go.transform.rotation = transform.rotation; - transform.parent = go.transform; - - go.layer = LayerMask.NameToLayer("PhysicalDetector"); - go.AddComponent(); - var owRigidbody = go.AddComponent(); - go.AddComponent(); - go.AddComponent(); + var owRigidbody = gameObject.AddComponent(); owRigidbody.SetVelocity(parentBody.GetPointVelocity(transform.position)); - owRigidbody.SetMass(0.0001f); + + var detector = new GameObject("Detector"); + detector.transform.SetParent(transform, false); + detector.layer = LayerMask.NameToLayer("AdvancedDetector"); + detector.AddComponent(); + detector.AddComponent(); + detector.AddComponent(); Destroy(this); }