< Summary

Class:Builder.DCLBuilderConfig
Assembly:Builder
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Builder/Scripts/DCLBuilderConfig.cs
Covered lines:1
Uncovered lines:10
Coverable lines:11
Total lines:65
Line coverage:9% (1 of 11)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
DCLBuilderConfig()0%110100%
SetConfig(...)0%6200%
SetConfig(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Builder/Scripts/DCLBuilderConfig.cs

#LineLine coverage
 1using System;
 2using UnityEngine;
 3
 4namespace Builder
 5{
 6    public static class DCLBuilderConfig
 7    {
 8        public static event Action<BuilderConfig> OnConfigChanged;
 49        public static BuilderConfig config { get; private set; } = BuilderConfig.DefaultBuilderConfig;
 10
 11        public static void SetConfig(BuilderConfig newBuilderConfig)
 12        {
 013            config = newBuilderConfig;
 014            OnConfigChanged?.Invoke(config);
 015        }
 16
 17        public static void SetConfig(string configJson)
 18        {
 19            try
 20            {
 021                JsonUtility.FromJsonOverwrite(configJson, config);
 022                SetConfig(config.Clone());
 023            }
 024            catch (Exception e)
 25            {
 026                Debug.LogError($"Error setting builder's configuration {e.Message}");
 027            }
 028        }
 29    }
 30
 31    [Serializable]
 32    public class BuilderConfig
 33    {
 34        [Serializable]
 35        public class Camera
 36        {
 37            public float zoomMin;
 38            public float zoomMax;
 39            public float zoomDefault;
 40        }
 41
 42        [Serializable]
 43        public class Environment
 44        {
 45            public bool disableFloor;
 46        }
 47
 48        public static BuilderConfig DefaultBuilderConfig
 49        {
 50            get
 51            {
 52                return new BuilderConfig()
 53                {
 54                    camera = new Camera() { zoomMin = 1f, zoomMax = 100f, zoomDefault = 32 },
 55                    environment = new Environment() { disableFloor = false }
 56                };
 57            }
 58        }
 59
 60        public BuilderConfig Clone() => (BuilderConfig)MemberwiseClone();
 61
 62        public Camera camera;
 63        public Environment environment;
 64    }
 65}