< Summary

Class:DCL.Skybox.RenderLeftPanelSatelliteLayers
Assembly:SkyboxEditorAssembly
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Rendering/ProceduralSkybox/ToolProceduralSkybox/Scripts/Editor/Procedural Skybox/LeftPanel/RenderLeftPanelSatelliteLayers.cs
Covered lines:0
Uncovered lines:84
Coverable lines:84
Total lines:179
Line coverage:0% (0 of 84)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Render(...)0%3801900%
ShowSatelliteContextMenu(...)0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Rendering/ProceduralSkybox/ToolProceduralSkybox/Scripts/Editor/Procedural Skybox/LeftPanel/RenderLeftPanelSatelliteLayers.cs

#LineLine coverage
 1using System;
 2using System.Collections;
 3using System.Collections.Generic;
 4using UnityEditor;
 5using UnityEngine;
 6
 7namespace DCL.Skybox
 8{
 9    public static class RenderLeftPanelSatelliteLayers
 10    {
 11        public static void Render(ref float timeOfTheDay, EditorToolMeasurements toolSize, SkyboxConfiguration config, A
 12        {
 13            // Loop through satellite list and print the name of all layers
 014            for (int i = 0; i < config.satelliteLayers.Count; i++)
 15            {
 16
 017                EditorGUILayout.BeginHorizontal(toolSize.leftPanelHorizontal);
 18
 019                config.satelliteLayers[i].enabled = EditorGUILayout.Toggle(config.satelliteLayers[i].enabled, GUILayout.
 20
 021                if (GUILayout.Button(config.satelliteLayers[i].nameInEditor, GUILayout.Width(toolSize.layerButtonWidth))
 22                {
 023                    AddToRightPanel(new RightPanelPins { part = SkyboxEditorToolsParts.Elements3D_Satellite, name = conf
 24                }
 25
 026                if (i == 0)
 27                {
 028                    GUI.enabled = false;
 29                }
 030                if (GUILayout.Button(SkyboxEditorLiterals.Characters.upArrow.ToString()))
 31                {
 032                    Config3DSatellite temp = null;
 33
 034                    if (i >= 1)
 35                    {
 036                        temp = config.satelliteLayers[i - 1];
 037                        config.satelliteLayers[i - 1] = config.satelliteLayers[i];
 038                        config.satelliteLayers[i] = temp;
 39                    }
 40                }
 41
 042                GUI.enabled = true;
 43
 044                if (i == config.satelliteLayers.Count - 1)
 45                {
 046                    GUI.enabled = false;
 47                }
 48
 049                if (GUILayout.Button(SkyboxEditorLiterals.Characters.downArrow.ToString()))
 50                {
 051                    Config3DSatellite temp = null;
 052                    if (i < (config.satelliteLayers.Count - 1))
 53                    {
 054                        temp = config.satelliteLayers[i + 1];
 055                        config.satelliteLayers[i + 1] = config.satelliteLayers[i];
 056                        config.satelliteLayers[i] = temp;
 57                    }
 058                    break;
 59                }
 60
 061                GUI.enabled = true;
 62
 63                //if (GUILayout.Button(SkyboxEditorLiterals.sign_remove))
 64                //{
 65                //    config.satelliteLayers.RemoveAt(i);
 66                //    break;
 67                //}
 68
 069                Color circleColor = Color.green;
 070                switch (config.satelliteLayers[i].renderType)
 71                {
 72                    case LayerRenderType.Rendering:
 073                        circleColor = Color.green;
 074                        break;
 75                    case LayerRenderType.NotRendering:
 076                        circleColor = Color.gray;
 077                        break;
 78                    case LayerRenderType.Conflict_Playing:
 079                        circleColor = Color.yellow;
 080                        break;
 81                    case LayerRenderType.Conflict_NotPlaying:
 082                        circleColor = Color.red;
 83                        break;
 84                    default:
 85                        break;
 86                }
 87
 088                Color normalContentColor = GUI.color;
 089                GUI.color = circleColor;
 90
 091                EditorGUILayout.LabelField(SkyboxEditorLiterals.Characters.renderMarker.ToString(), SkyboxEditorStyles.I
 92
 093                GUI.color = normalContentColor;
 94
 95                // Dome context menu
 096                if (GUILayout.Button(":", GUILayout.Width(20), GUILayout.ExpandWidth(false)))
 97                {
 098                    ArrayList list = new ArrayList();
 099                    list.Add(config.satelliteLayers);
 0100                    list.Add(i);
 101
 102                    // Anonymous method for delete operation
 0103                    GenericMenu.MenuFunction2 deleteBtnClicked = (object obj) =>
 104                    {
 0105                        ArrayList list = obj as ArrayList;
 0106                        List<Config3DSatellite> satellites = list[0] as List<Config3DSatellite>;
 0107                        int index = (int)list[1];
 0108                        satellites.RemoveAt(index);
 0109                    };
 110
 111                    // Anonymous method for Add operation
 0112                    GenericMenu.MenuFunction2 addBtnClicked = (object obj) =>
 113                    {
 0114                        ArrayList list = obj as ArrayList;
 0115                        List<Config3DSatellite> satellites = list[0] as List<Config3DSatellite>;
 0116                        int index = (int)list[1];
 0117                        satellites.Insert(index + 1, new Config3DSatellite("Satellite " + (satellites.Count + 1)));
 0118                    };
 119
 120                    // Anonymous method for copy layer
 0121                    GenericMenu.MenuFunction2 copyBtnClicked = (object obj) =>
 122                    {
 0123                        ArrayList list = obj as ArrayList;
 0124                        List<Config3DSatellite> satellites = list[0] as List<Config3DSatellite>;
 0125                        int index = (int)list[1];
 0126                        copyPasteObj.SetSatellite(satellites[index]);
 0127                    };
 128
 129                    // Anonymous method for Paste layer
 0130                    GenericMenu.MenuFunction2 pasteBtnClicked = (object obj) =>
 131                    {
 0132                        ArrayList list = obj as ArrayList;
 0133                        List<Config3DSatellite> satellites = list[0] as List<Config3DSatellite>;
 0134                        int index = (int)list[1];
 0135                        satellites[index] = copyPasteObj.GetCopiedSatellite().DeepCopy();
 0136                    };
 0137                    ShowSatelliteContextMenu(copyPasteObj, deleteBtnClicked, addBtnClicked, copyBtnClicked, pasteBtnClic
 138                }
 0139                EditorGUILayout.EndHorizontal();
 140
 0141                EditorGUILayout.Space(toolSize.leftPanelButtonSpace);
 142            }
 0143            Rect r = EditorGUILayout.BeginHorizontal();
 0144            if (GUI.Button(new Rect(r.width - 35, r.y, 25, 25), SkyboxEditorLiterals.Characters.sign_add))
 145            {
 0146                config.satelliteLayers.Add(new Config3DSatellite("Satellite " + (config.satelliteLayers.Count + 1)));
 147            }
 0148            EditorGUILayout.EndHorizontal();
 0149            EditorGUILayout.Space(25);
 0150        }
 151
 152        private static void ShowSatelliteContextMenu(CopyFunctionality copyPasteObj, GenericMenu.MenuFunction2 OnDeleteB
 153        {
 154            // Create menu
 0155            GenericMenu menu = new GenericMenu();
 156
 0157            menu.AddItem(new GUIContent("Add"), false, OnAddBtnClicked, list);
 158
 159            // Copy option
 0160            menu.AddItem(new GUIContent("Copy"), false, OnCopyBtnClicked, list);
 161
 162            // Paste option
 0163            if (copyPasteObj.IsSatelliteAvailable())
 164            {
 0165                menu.AddItem(new GUIContent("Paste"), false, OnPasteBtnClicked, list);
 166            }
 167            else
 168            {
 0169                menu.AddDisabledItem(new GUIContent("Paste"));
 170            }
 171
 0172            menu.AddSeparator("");
 173            // Delete option
 0174            menu.AddItem(new GUIContent("Delete"), false, OnDeleteBtnClicked, list);
 175
 0176            menu.ShowAsContext();
 0177        }
 178    }
 179}