< Summary

Class:DCL.WorldStateUtils
Assembly:PositionUtils
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/Utils/PositionUtils/WorldStateUtils.cs
Covered lines:21
Uncovered lines:13
Coverable lines:34
Total lines:103
Line coverage:61.7% (21 of 34)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
IsGlobalScene(...)0%6200%
TryToGetSceneCoordsID(...)0%6200%
ConvertUnityToScenePosition(...)0%330100%
ConvertSceneToUnityPosition(...)0%110100%
ConvertScenePositionToUnityPosition(...)0%2100%
ConvertPointInSceneToUnityPosition(...)0%4.943040%
ConvertPointInSceneToUnityPosition(...)0%110100%
IsCharacterInsideScene(...)0%110100%
GetCurrentScene()0%3.023087.5%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/Utils/PositionUtils/WorldStateUtils.cs

#LineLine coverage
 1using DCL.Controllers;
 2using DCL.Helpers;
 3using DCL.Models;
 4using UnityEngine;
 5
 6namespace DCL
 7{
 8    public static class WorldStateUtils
 9    {
 10        public static bool IsGlobalScene(string sceneId)
 11        {
 012            var worldState = Environment.i.world.state;
 13
 014            if (worldState.TryGetScene(sceneId, out IParcelScene scene))
 15            {
 016                return scene.isPersistent;
 17            }
 18
 019            return false;
 20        }
 21
 22        public static string TryToGetSceneCoordsID(string id)
 23        {
 024            var worldState = Environment.i.world.state;
 25
 026            if (worldState.TryGetScene(id, out IParcelScene parcelScene))
 27            {
 028                return parcelScene.sceneData.basePosition.ToString();
 29            }
 30
 031            return id;
 32        }
 33
 34        public static Vector3 ConvertUnityToScenePosition(Vector3 pos, IParcelScene scene = null)
 35        {
 6536            if (scene == null)
 37            {
 638                scene = GetCurrentScene();
 39
 640                if (scene == null)
 441                    return pos;
 42            }
 43
 6144            Vector3 worldPosition = PositionUtils.UnityToWorldPosition(pos);
 6145            return worldPosition -
 46                   Utils.GridToWorldPosition(scene.sceneData.basePosition.x, scene.sceneData.basePosition.y);
 47        }
 48
 49        public static Vector3 ConvertSceneToUnityPosition(Vector3 pos, IParcelScene scene = null)
 50        {
 251            return ConvertPointInSceneToUnityPosition(pos, scene);
 52        }
 53
 54        public static Vector3 ConvertScenePositionToUnityPosition(IParcelScene scene = null)
 55        {
 056            return ConvertPointInSceneToUnityPosition(Vector3.zero, scene);
 57        }
 58
 59        public static Vector3 ConvertPointInSceneToUnityPosition(Vector3 pos, IParcelScene scene = null)
 60        {
 261            if (scene == null)
 62            {
 063                scene = GetCurrentScene();
 64
 065                if (scene == null)
 066                    return pos;
 67            }
 68
 269            return ConvertPointInSceneToUnityPosition(pos,
 70                new Vector2Int(scene.sceneData.basePosition.x, scene.sceneData.basePosition.y));
 71        }
 72
 73        public static Vector3 ConvertPointInSceneToUnityPosition(Vector3 pos, Vector2Int scenePoint)
 74        {
 975            Vector3 scenePosition = Utils.GridToWorldPosition(scenePoint.x, scenePoint.y) + pos;
 976            Vector3 worldPosition = PositionUtils.WorldToUnityPosition(scenePosition);
 77
 978            return worldPosition;
 79        }
 80
 81        public static bool IsCharacterInsideScene(IParcelScene scene)
 82        {
 2883            Vector2Int gridPosition = Utils.WorldToGridPosition(CommonScriptableObjects.playerWorldPosition.Get());
 2884            return scene.IsInsideSceneBoundaries(gridPosition);
 85        }
 86
 87        public static IParcelScene GetCurrentScene()
 88        {
 689            var worldState = Environment.i.world.state;
 690            string currentSceneId = worldState.currentSceneId;
 91
 692            if (string.IsNullOrEmpty(currentSceneId))
 493                return null;
 94
 295            bool foundCurrentScene = worldState.loadedScenes.TryGetValue(currentSceneId, out IParcelScene scene);
 96
 297            if (!foundCurrentScene)
 098                return null;
 99
 2100            return scene;
 101        }
 102    }
 103}