// Copy list of joints and edges to the clipboard // Mostly copied from BridgeSelectionSet private static void CopyToClipboard(List <BridgeJoint> m_Joints, List <BridgeEdge> m_Edges) { ClipboardManager.ClearClipboard(); ClipboardManager.SetContainerPosition(GameUI.SnapPosToGrid(Utils.GetWorldPointFromScreenPos(Input.mousePosition))); ClipboardManager.AlignClipboardAnchors(); Vector2 vector = CalculateSelectSetCenter(m_Joints, m_Edges); foreach (BridgeJoint joint in m_Joints) { if (!joint.m_IsAnchor || BridgeEdges.EdgeIsConnectedToJoint(joint)) { ClipboardManager.AddJoint(Utils.V3toV2(joint.transform.position) - vector, joint); } } foreach (BridgeEdge edge in m_Edges) { float z = edge.transform.localEulerAngles.z; float length = edge.GetLength(); ClipboardManager.AddEdge(Utils.V3toV2(edge.transform.position) - vector, z, length, edge); if (!m_Joints.Contains(edge.m_JointA)) { ClipboardManager.AddJoint(Utils.V3toV2(edge.m_JointA.transform.position) - vector, edge.m_JointA); } if (!m_Joints.Contains(edge.m_JointB)) { ClipboardManager.AddJoint(Utils.V3toV2(edge.m_JointB.transform.position) - vector, edge.m_JointB); } } }
static void MenuDoBridgeEdges() { BridgeEdges instance = EditorToolbarLoader.GetInstance <BridgeEdges>(); if (instance != null) { UnityEditor.ProBuilder.EditorUtility.ShowNotification(instance.DoAction().notification); } }
static void Postfix() { if (!modEnabled.Value) { return; } if (!replayStress.Value) { return; } if (Profile.m_StressViewEnabled) { BridgeEdges.SetStressColor(); } }
static void Prefix(GameState state) { if (!modEnabled.Value) { return; } if (GameStateManager.GetState() == GameState.SIM && state == GameState.BUILD) { if (markWorst.Value && GameStateSim.m_NumBridgeBreaks == 0) { float worstStress = 0.0f; PolyPhysics.Edge worstEdge = null; foreach (var edge in maxStress) { if (Mathf.Abs(edge.Value) > worstStress) { worstStress = Mathf.Abs(edge.Value); worstEdge = edge.Key; } } BridgeEdge byPhysicsEdge = BridgeEdges.FindByPhysicsEdge(worstEdge); if (byPhysicsEdge && worstStress > 0.01f) { BridgeEdgeProxy proxy = new BridgeEdgeProxy(byPhysicsEdge); proxy.m_NodeA_Guid = (UnityEngine.Object)byPhysicsEdge.m_StartSimJointA != (UnityEngine.Object)null ? byPhysicsEdge.m_StartSimJointA.m_Guid : proxy.m_NodeA_Guid; proxy.m_NodeB_Guid = (UnityEngine.Object)byPhysicsEdge.m_StartSimJointB != (UnityEngine.Object)null ? byPhysicsEdge.m_StartSimJointB.m_Guid : proxy.m_NodeB_Guid; GameStateBuild.SetFirstBreakEdge(proxy); } } } originalColor.Clear(); maxStress.Clear(); curStress.Clear(); }
static bool MenuVerifyBridgeEdges() { BridgeEdges instance = EditorToolbarLoader.GetInstance <BridgeEdges>(); return(instance != null && instance.enabled); }