public static void refreshColliderList() { colliderBaseList = ColliderCon.getColliders(); if (colliderBaseList == null) { colliderBaseList = new ColliderData[0]; colliderNames = new string[0]; } colliderNames = new string[colliderBaseList.Length]; var i = 0; foreach (var coll in colliderBaseList) { colliderNames[i] = coll.name; i++; } }
public static void updateColliders() { colliderSnapshot = ColliderCon.getColliders(); foreach (var col in colliders) { var col1 = getColliderByName(col.first); var col2 = getColliderByName(col.second); if (col1 == null | col2 == null) { continue; } col.tripped = false; col.rfirst = col1; col.rsecond = col2; if (Vector3.Distance(col1.position, col2.position) < (col1.radius + col2.radius)) { col.tripped = true; } } }
public static void submit() { ImGui.SetNextWindowPos(new Vector2(0, 0)); ImGui.SetNextWindowSize(new Vector2(340, 200)); ImGui.Begin("Bluetooth Control"); { if (BTManager.selectedDevice == null) { var DrawList = ImGui.GetWindowDrawList(); ImGui.ListBox("Paired Devices", ref btSelIndex, BTManager.pairdDevicesNames, BTManager.pairdDevicesNames.Length); if (ImGui.Button("Rescan Devices")) { BTManager.rescanDevices(); } if (!BTManager.connecting) { if (ImGui.Button("Use Device")) { BTManager.connectDevice(BTManager.pairedDevices[btSelIndex]); } } else { ImGui.Text("Connecting...."); } if (BTManager.scanning) { ImGui.LabelText("Scanning...", ""); } } else { ImGui.Text($"Using Device: {BTManager.selectedDevice.Name}"); } } ImGui.End(); ImGui.SetNextWindowPos(new Vector2(340, 0)); ImGui.SetNextWindowSize(new Vector2(200, 200)); ImGui.Begin("VRC Collider Detection"); if (!ColliderCon.ready) { ImGui.Text("Not connected."); if (ImGui.Button("Connect to VRC")) { ColliderCon.connect(); } ImGui.Text(ColliderCon.error); } else { ImGui.Text("Connected to collider system."); } ImGui.End(); ImGui.SetNextWindowPos(new Vector2(0, 200)); ImGui.SetNextWindowSize(new Vector2(540, 400)); if (ColliderCon.ready) { ImGui.Begin("Add Collider Check"); if (ImGui.Button("Refresh Colliders")) { refreshColliderList(); } ImGui.Combo("First Collider", ref c1sel, colliderNames, colliderNames.Length); ImGui.Combo("Second Collider", ref c2sel, colliderNames, colliderNames.Length); if (ImGui.Button("Add Collider Check")) { var c1 = CollideSystem.getColliderByName(colliderBaseList[c1sel].name); var c2 = CollideSystem.getColliderByName(colliderBaseList[c2sel].name); if (c1 == null || c2 == null) { return; } CollideSystem.colliders.Add(new WatchedCollider(c1, c2)); refreshWatchedColliders(); } ImGui.ListBox("Watched Colliders", ref cwlSelIndex, colliderWatchlistNames, colliderWatchlistNames.Length); if (ImGui.Button("Remove collider check")) { CollideSystem.colliders.RemoveAt(cwlSelIndex); refreshWatchedColliders(); } ImGui.Text($"Current Toy Status: {BTManager.plugIntensity}"); ImGui.End(); } }