private void CollisionPlanesSceneGUI()
{
if (this.m_ScenePlanes.Count != 0)
{
Event current = Event.current;
Color color = Handles.color;
Color color2 = new Color(1f, 1f, 1f, 0.5f);
for (int i = 0; i < this.m_ScenePlanes.Count; i++)
{
if (!(this.m_ScenePlanes[i] == null))
{
Transform transform = this.m_ScenePlanes[i];
Vector3 position = transform.position;
Quaternion rotation = transform.rotation;
Vector3 axis = rotation * Vector3.right;
Vector3 normal = rotation * Vector3.up;
Vector3 axis2 = rotation * Vector3.forward;
bool flag = EditorApplication.isPlaying && transform.gameObject.isStatic;
if (this.editingPlanes)
{
if (object.ReferenceEquals(CollisionModuleUI.s_SelectedTransform, transform))
{
EditorGUI.BeginChangeCheck();
Vector3 position2 = transform.position;
Quaternion rotation2 = transform.rotation;
using (new EditorGUI.DisabledScope(flag))
{
if (flag)
{
Handles.ShowStaticLabel(position);
}
if (EditMode.editMode == EditMode.SceneViewEditMode.ParticleSystemCollisionModulePlanesMove)
{
position2 = Handles.PositionHandle(position, rotation);
}
else if (EditMode.editMode == EditMode.SceneViewEditMode.ParticleSystemCollisionModulePlanesRotate)
{
rotation2 = Handles.RotationHandle(rotation, position);
}
}
if (EditorGUI.EndChangeCheck())
{
Undo.RecordObject(transform, "Modified Collision Plane Transform");
transform.position = position2;
transform.rotation = rotation2;
ParticleSystemEditorUtils.PerformCompleteResimulation();
}
}
else
{
float num = HandleUtility.GetHandleSize(position) * 0.6f;
EventType eventType = current.type;
if (current.type == EventType.Ignore && current.rawType == EventType.MouseUp)
{
eventType = current.rawType;
}
Vector3 arg_1F3_0 = position;
Quaternion arg_1F3_1 = Quaternion.identity;
float arg_1F3_2 = num;
Vector3 arg_1F3_3 = Vector3.zero;
if (CollisionModuleUI.< > f__mg$cache0 == null)
{
CollisionModuleUI.< > f__mg$cache0 = new Handles.CapFunction(Handles.RectangleHandleCap);
}
Handles.FreeMoveHandle(arg_1F3_0, arg_1F3_1, arg_1F3_2, arg_1F3_3, CollisionModuleUI.< > f__mg$cache0);
if (eventType == EventType.MouseDown && current.type == EventType.Used)
{
CollisionModuleUI.s_SelectedTransform = transform;
GUIUtility.hotControl = 0;
}
}
}
Handles.color = color2;
Color color3 = Handles.s_ColliderHandleColor * 0.9f;
if (flag)
{
color3.a *= 0.2f;
}
if (CollisionModuleUI.m_PlaneVisualizationType == CollisionModuleUI.PlaneVizType.Grid)
{
CollisionModuleUI.DrawGrid(position, axis, axis2, normal, color3);
}
else
{
CollisionModuleUI.DrawSolidPlane(position, rotation, color3, Color.yellow);
}
}
}
Handles.color = color;
}
}