< Summary

Class:BIWUtils
Assembly:BuilderInWorldUtils
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Scripts/Utils/BIWUtils.cs
Covered lines:120
Uncovered lines:122
Coverable lines:242
Total lines:523
Line coverage:49.5% (120 of 242)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
BIWUtils()0%110100%
AddSceneMappings(...)0%7.017095.24%
RemoveAssetsFromCurrentScene()0%6200%
ShowGenericNotification(...)0%2.062075%
ConvertToMilisecondsTimestamp(...)0%110100%
GetSceneMetricsLimits(...)0%2100%
CreateManifestFromProject(...)0%2100%
CreateEmtpyBuilderScene(...)0%2100%
CreateEmptyDefaultBuilderManifest(...)0%2100%
GetLandOwnershipType(...)0%110100%
GetLandOwnershipType(...)0%6200%
SnapFilterEulerAngles(...)0%2100%
ClosestNumber(...)0%12300%
GetSceneSize(...)0%660100%
CalculateUnityMiddlePoint(...)0%880100%
CreateFloorSceneObject()0%2100%
ConvertMappingsToDictionary(...)0%6200%
DrawScreenRect(...)0%2100%
DrawScreenRectBorder(...)0%2100%
GetScreenRect(...)0%2100%
GetViewportBounds(...)0%110100%
IsWithinSelectionBounds(...)0%2100%
IsWithinSelectionBounds(...)0%110100%
IsBoundInsideCamera(...)0%2100%
IsPointInsideCamera(...)0%12300%
IsPointInsideCamera(...)0%2100%
CopyGameObjectStatus(...)0%3.143075%
IsPointerOverMaskElement(...)0%110100%
IsPointerOverUIElement(...)0%110100%
IsPointerOverUIElement()0%110100%
ConvertEntityToJSON(...)0%9.665042.86%
ConvertJSONToEntityData(...)0%110100%
RemoveGroundEntities(...)0%12300%
FilterEntitiesBySmartItemComponentAndActions(...)0%20400%
CopyRectTransform(...)0%2100%
MakeGetCall(...)0%110100%
ConfigureEventTrigger(...)0%110100%
RemoveEventTrigger(...)0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Scripts/Utils/BIWUtils.cs

#LineLine coverage
 1using DCL;
 2using DCL.Components;
 3using DCL.Models;
 4using System;
 5using System.Collections;
 6using System.Collections.Generic;
 7using UnityEngine;
 8using UnityEngine.EventSystems;
 9using Newtonsoft.Json;
 10using Newtonsoft.Json.Linq;
 11using DCL.Configuration;
 12using static ProtocolV2;
 13using Environment = DCL.Environment;
 14using System.IO;
 15using System.Linq;
 16using System.Runtime.Serialization.Formatters.Binary;
 17using DCL.Builder;
 18using DCL.Builder.Manifest;
 19using DCL.Controllers;
 20using DCL.Helpers;
 21using UnityEditor;
 22using UnityEngine.Networking;
 23using UnityEngine.Events;
 24
 25public static partial class BIWUtils
 26{
 127    private static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
 28
 29    public static LoadParcelScenesMessage.UnityParcelScene AddSceneMappings(Dictionary<string, string> contents, string 
 30    {
 1531        if (data == null)
 032            data = new LoadParcelScenesMessage.UnityParcelScene();
 33
 1534        data.baseUrl = baseUrl;
 1535        if (data.contents == null)
 1036            data.contents = new List<ContentServerUtils.MappingPair>();
 37
 8838        foreach (KeyValuePair<string, string> content in contents)
 39        {
 2940            ContentServerUtils.MappingPair mappingPair = new ContentServerUtils.MappingPair();
 2941            mappingPair.file = content.Key;
 2942            mappingPair.hash = content.Value;
 2943            bool found = false;
 16144            foreach (ContentServerUtils.MappingPair mappingPairToCheck in data.contents)
 45            {
 5546                if (mappingPairToCheck.file == mappingPair.file)
 47                {
 748                    found = true;
 749                    break;
 50                }
 51            }
 52
 2953            if (!found)
 2254                data.contents.Add(mappingPair);
 55        }
 1556        return data;
 57    }
 58
 59    public static void RemoveAssetsFromCurrentScene()
 60    {
 61        //We remove the old assets to they don't collide with the new ones
 062        foreach (var catalogItem in DataStore.i.builderInWorld.currentSceneCatalogItemDict.GetValues())
 63        {
 064            AssetCatalogBridge.i.RemoveSceneObjectToSceneCatalog(catalogItem.id);
 65        }
 066        DataStore.i.builderInWorld.currentSceneCatalogItemDict.Clear();
 067    }
 68
 69    public static void ShowGenericNotification(string message, DCL.NotificationModel.Type type = DCL.NotificationModel.T
 70    {
 371        if (NotificationsController.i == null)
 072            return;
 373        NotificationsController.i.ShowNotification(new DCL.NotificationModel.Model
 74        {
 75            message = message,
 76            type = DCL.NotificationModel.Type.GENERIC,
 77            timer = timer,
 78            destroyOnFinish = true
 79        });
 380    }
 81
 82    public static long ConvertToMilisecondsTimestamp(DateTime value)
 83    {
 784        TimeSpan elapsedTime = value - Epoch;
 785        return (long) elapsedTime.TotalMilliseconds;
 86    }
 87
 88    public static SceneMetricsModel GetSceneMetricsLimits(int parcelAmount)
 89    {
 090        SceneMetricsModel  cachedModel = new SceneMetricsModel();
 91
 092        float log = Mathf.Log(parcelAmount + 1, 2);
 093        float lineal = parcelAmount;
 94
 095        cachedModel.triangles = (int) (lineal * SceneMetricsCounter.LimitsConfig.triangles);
 096        cachedModel.bodies = (int) (lineal * SceneMetricsCounter.LimitsConfig.bodies);
 097        cachedModel.entities = (int) (lineal * SceneMetricsCounter.LimitsConfig.entities);
 098        cachedModel.materials = (int) (log * SceneMetricsCounter.LimitsConfig.materials);
 099        cachedModel.textures = (int) (log * SceneMetricsCounter.LimitsConfig.textures);
 0100        cachedModel.meshes = (int) (log * SceneMetricsCounter.LimitsConfig.meshes);
 0101        cachedModel.sceneHeight = (int) (log * SceneMetricsCounter.LimitsConfig.height);
 102
 0103        return cachedModel;
 104    }
 105
 106    public static Manifest CreateManifestFromProject(ProjectData projectData)
 107    {
 0108        Manifest manifest = new Manifest();
 0109        manifest.version = 10;
 0110        manifest.project = projectData;
 0111        manifest.scene = CreateEmtpyBuilderScene(projectData.rows * projectData.cols);
 112
 0113        manifest.project.scene_id = manifest.scene.id;
 0114        return manifest;
 115    }
 116
 117    //We create the scene the same way as the current builder do, so we ensure the compatibility between both builders
 118    private static BuilderScene CreateEmtpyBuilderScene(int parcelsAmount)
 119    {
 0120        BuilderGround ground = new BuilderGround();
 0121        ground.assetId = BIWSettings.FLOOR_ID;
 0122        ground.componentId = Guid.NewGuid().ToString();
 123
 0124        BuilderScene scene = new BuilderScene
 125        {
 126            id = Guid.NewGuid().ToString(),
 127            limits = GetSceneMetricsLimits(parcelsAmount),
 128            metrics = new SceneMetricsModel(),
 129            ground = ground
 130        };
 131
 0132        return scene;
 133    }
 134
 135    public static Manifest CreateEmptyDefaultBuilderManifest(string landCoordinates)
 136    {
 0137        Manifest manifest = new Manifest();
 0138        return manifest;
 139    }
 140
 141    public static LandRole GetLandOwnershipType(List<LandWithAccess> lands, IParcelScene scene)
 142    {
 5143        LandWithAccess filteredLand = lands.FirstOrDefault(land => scene.sceneData.basePosition == land.baseCoords);
 5144        return GetLandOwnershipType(filteredLand);
 145    }
 146
 147    public static LandRole GetLandOwnershipType(LandWithAccess land)
 148    {
 0149        if (land != null)
 0150            return land.role;
 0151        return LandRole.OWNER;
 152    }
 153
 154    public static Vector3 SnapFilterEulerAngles(Vector3 vectorToFilter, float degrees)
 155    {
 0156        vectorToFilter.x = ClosestNumber(vectorToFilter.x, degrees);
 0157        vectorToFilter.y = ClosestNumber(vectorToFilter.y, degrees);
 0158        vectorToFilter.z = ClosestNumber(vectorToFilter.z, degrees);
 159
 0160        return vectorToFilter;
 161    }
 162
 163    static float ClosestNumber(float n, float m)
 164    {
 165        // find the quotient
 0166        int q = Mathf.RoundToInt(n / m);
 167
 168        // 1st possible closest number
 0169        float n1 = m * q;
 170
 171        // 2nd possible closest number
 0172        float n2 = (n * m) > 0 ? (m * (q + 1)) : (m * (q - 1));
 173
 174        // if true, then n1 is the required closest number
 0175        if (Math.Abs(n - n1) < Math.Abs(n - n2))
 0176            return n1;
 177
 178        // else n2 is the required closest number
 0179        return n2;
 180    }
 181
 182    public static Vector2Int GetSceneSize(IParcelScene parcelScene)
 183    {
 11184        int minX = Int32.MaxValue;
 11185        int maxX = Int32.MinValue;
 11186        int minY = Int32.MaxValue;
 11187        int maxY = Int32.MinValue;
 188
 60189        foreach (var parcel in parcelScene.sceneData.parcels)
 190        {
 19191            if (parcel.x > maxX)
 13192                maxX = parcel.x;
 19193            if (parcel.x < minX)
 13194                minX = parcel.x;
 195
 19196            if (parcel.y > maxY)
 13197                maxY = parcel.y;
 19198            if (parcel.y < minY)
 13199                minY = parcel.y;
 200        }
 201
 11202        int sizeX = maxX - minX + 1;
 11203        int sizeY = maxY - minY + 1;
 11204        return new Vector2Int(sizeX, sizeY);
 205    }
 206
 207    public static Vector3 CalculateUnityMiddlePoint(IParcelScene parcelScene)
 208    {
 209        Vector3 position;
 210
 80211        float totalX = 0f;
 80212        float totalY = 0f;
 80213        float totalZ = 0f;
 214
 80215        int minX = int.MaxValue;
 80216        int minY = int.MaxValue;
 80217        int maxX = int.MinValue;
 80218        int maxY = int.MinValue;
 219
 80220        if (parcelScene.sceneData == null || parcelScene.sceneData.parcels == null)
 2221            return Vector3.zero;
 222
 312223        foreach (Vector2Int vector in parcelScene.sceneData.parcels)
 224        {
 78225            totalX += vector.x;
 78226            totalZ += vector.y;
 78227            if (vector.x < minX)
 78228                minX = vector.x;
 78229            if (vector.y < minY)
 78230                minY = vector.y;
 78231            if (vector.x > maxX)
 78232                maxX = vector.x;
 78233            if (vector.y > maxY)
 78234                maxY = vector.y;
 235        }
 236
 78237        float centerX = totalX / parcelScene.sceneData.parcels.Length;
 78238        float centerZ = totalZ / parcelScene.sceneData.parcels.Length;
 239
 78240        position.x = centerX;
 78241        position.y = totalY;
 78242        position.z = centerZ;
 243
 78244        position = WorldStateUtils.ConvertScenePositionToUnityPosition(parcelScene);
 245
 78246        position.x += ParcelSettings.PARCEL_SIZE / 2;
 78247        position.z += ParcelSettings.PARCEL_SIZE / 2;
 248
 78249        return position;
 250    }
 251
 252    public static CatalogItem CreateFloorSceneObject()
 253    {
 0254        CatalogItem floorSceneObject = new CatalogItem();
 0255        floorSceneObject.id = BIWSettings.FLOOR_ID;
 256
 0257        floorSceneObject.model = BIWSettings.FLOOR_MODEL;
 0258        floorSceneObject.name = BIWSettings.FLOOR_NAME;
 0259        floorSceneObject.assetPackName = BIWSettings.FLOOR_ASSET_PACK_NAME;
 260
 0261        floorSceneObject.contents = new Dictionary<string, string>();
 262
 0263        floorSceneObject.contents.Add(BIWSettings.FLOOR_GLTF_KEY, BIWSettings.FLOOR_GLTF_VALUE);
 0264        floorSceneObject.contents.Add(BIWSettings.FLOOR_TEXTURE_KEY, BIWSettings.FLOOR_TEXTURE_VALUE);
 265
 0266        floorSceneObject.metrics = new SceneObject.ObjectMetrics();
 267
 0268        return floorSceneObject;
 269    }
 270
 271    public static Dictionary<string, string> ConvertMappingsToDictionary(ContentServerUtils.MappingPair[] contents)
 272    {
 0273        Dictionary<string, string> mappingDict = new Dictionary<string, string>();
 274
 0275        foreach (ContentServerUtils.MappingPair mappingPair in contents)
 276        {
 0277            mappingDict.Add(mappingPair.file, mappingPair.hash);
 278        }
 279
 0280        return mappingDict;
 281    }
 282
 283    public static void DrawScreenRect(Rect rect, Color color)
 284    {
 0285        GUI.color = color;
 0286        GUI.DrawTexture(rect, Texture2D.whiteTexture);
 0287    }
 288
 289    public static void DrawScreenRectBorder(Rect rect, float thickness, Color color)
 290    {
 291        //Top
 0292        DrawScreenRect(new Rect(rect.xMin, rect.yMin, rect.width, thickness), color);
 293        // Left
 0294        DrawScreenRect(new Rect(rect.xMin, rect.yMin, thickness, rect.height), color);
 295        // Right
 0296        DrawScreenRect(new Rect(rect.xMax - thickness, rect.yMin, thickness, rect.height), color);
 297        // Bottom
 0298        DrawScreenRect(new Rect(rect.xMin, rect.yMax - thickness, rect.width, thickness), color);
 0299    }
 300
 301    public static Rect GetScreenRect(Vector3 screenPosition1, Vector3 screenPosition2)
 302    {
 303        // Move origin from bottom left to top left
 0304        screenPosition1.y = Screen.height - screenPosition1.y;
 0305        screenPosition2.y = Screen.height - screenPosition2.y;
 306        // Calculate corners
 0307        var topLeft = Vector3.Min(screenPosition1, screenPosition2);
 0308        var bottomRight = Vector3.Max(screenPosition1, screenPosition2);
 309        // Create Rect
 0310        return Rect.MinMaxRect(topLeft.x, topLeft.y, bottomRight.x, bottomRight.y);
 311    }
 312
 313    public static Bounds GetViewportBounds(Camera camera, Vector3 screenPosition1, Vector3 screenPosition2)
 314    {
 2315        var v1 = camera.ScreenToViewportPoint(screenPosition1);
 2316        var v2 = camera.ScreenToViewportPoint(screenPosition2);
 2317        var min = Vector3.Min(v1, v2);
 2318        var max = Vector3.Max(v1, v2);
 2319        min.z = camera.nearClipPlane;
 2320        max.z = camera.farClipPlane;
 321
 2322        var bounds = new Bounds();
 323
 2324        bounds.SetMinMax(min, max);
 2325        return bounds;
 326    }
 327
 0328    public static bool IsWithinSelectionBounds(Transform transform, Vector3 lastClickMousePosition, Vector3 mousePositio
 329
 330    public static bool IsWithinSelectionBounds(Vector3 point, Vector3 lastClickMousePosition, Vector3 mousePosition)
 331    {
 2332        Camera camera = Camera.main;
 2333        var viewPortBounds = GetViewportBounds(camera, lastClickMousePosition, mousePosition);
 2334        return viewPortBounds.Contains(camera.WorldToViewportPoint(point));
 335    }
 336
 337    public static bool IsBoundInsideCamera(Bounds bound)
 338    {
 0339        Vector3[] points = { bound.max, bound.center, bound.min };
 0340        return IsPointInsideCamera(points);
 341    }
 342
 343    public static bool IsPointInsideCamera(Vector3[] points)
 344    {
 0345        foreach (Vector3 point in points)
 346        {
 0347            if (IsPointInsideCamera(point))
 0348                return true;
 349        }
 0350        return false;
 351    }
 352
 353    public static bool IsPointInsideCamera(Vector3 point)
 354    {
 0355        Vector3 topRight = new Vector3(Screen.width, Screen.height, 0);
 0356        var viewPortBounds = GetViewportBounds(Camera.main, Vector3.zero, topRight);
 0357        return viewPortBounds.Contains(Camera.main.WorldToViewportPoint(point));
 358    }
 359
 360    public static void CopyGameObjectStatus(GameObject gameObjectToCopy, GameObject gameObjectToReceive, bool copyParent
 361    {
 5362        if (copyParent)
 0363            gameObjectToReceive.transform.SetParent(gameObjectToCopy.transform.parent);
 364
 5365        gameObjectToReceive.transform.position = gameObjectToCopy.transform.position;
 366
 5367        if (localRotation)
 0368            gameObjectToReceive.transform.localRotation = gameObjectToCopy.transform.localRotation;
 369        else
 5370            gameObjectToReceive.transform.rotation = gameObjectToCopy.transform.rotation;
 371
 5372        gameObjectToReceive.transform.localScale = gameObjectToCopy.transform.lossyScale;
 5373    }
 374
 375    public static bool IsPointerOverMaskElement(LayerMask mask)
 376    {
 377        RaycastHit hitInfo;
 2378        UnityEngine.Ray mouseRay = Camera.main.ScreenPointToRay(Input.mousePosition);
 2379        return Physics.Raycast(mouseRay, out hitInfo, 5555, mask);
 380    }
 381
 382    public static bool IsPointerOverUIElement(Vector3 mousePosition)
 383    {
 1384        var eventData = new PointerEventData(EventSystem.current);
 1385        eventData.position = mousePosition;
 1386        var results = new List<RaycastResult>();
 1387        EventSystem.current.RaycastAll(eventData, results);
 1388        return results.Count > 2;
 389    }
 390
 1391    public static bool IsPointerOverUIElement() { return IsPointerOverUIElement(Input.mousePosition); }
 392
 393    public static string ConvertEntityToJSON(IDCLEntity entity)
 394    {
 4395        EntityData builderInWorldEntityData = new EntityData();
 4396        builderInWorldEntityData.entityId = entity.entityId;
 397
 398
 10399        foreach (KeyValuePair<CLASS_ID_COMPONENT, IEntityComponent> keyValuePair in entity.components)
 400        {
 1401            if (keyValuePair.Key == CLASS_ID_COMPONENT.TRANSFORM)
 402            {
 1403                EntityData.TransformComponent entityComponentModel = new EntityData.TransformComponent();
 404
 1405                entityComponentModel.position = WorldStateUtils.ConvertUnityToScenePosition(entity.gameObject.transform.
 1406                entityComponentModel.rotation = entity.gameObject.transform.localRotation.eulerAngles;
 1407                entityComponentModel.scale = entity.gameObject.transform.localScale;
 408
 1409                builderInWorldEntityData.transformComponent = entityComponentModel;
 1410            }
 411            else
 412            {
 0413                ProtocolV2.GenericComponent entityComponentModel = new ProtocolV2.GenericComponent();
 0414                entityComponentModel.componentId = (int) keyValuePair.Key;
 0415                entityComponentModel.data = keyValuePair.Value.GetModel();
 416
 0417                builderInWorldEntityData.components.Add(entityComponentModel);
 418            }
 419        }
 420
 8421        foreach (KeyValuePair<Type, ISharedComponent> keyValuePair in entity.sharedComponents)
 422        {
 0423            if (keyValuePair.Value.GetClassId() == (int) CLASS_ID.NFT_SHAPE)
 424            {
 0425                EntityData.NFTComponent nFTComponent = new EntityData.NFTComponent();
 0426                NFTShape.Model model = (NFTShape.Model) keyValuePair.Value.GetModel();
 427
 0428                nFTComponent.id = keyValuePair.Value.id;
 0429                nFTComponent.color = new ColorRepresentation(model.color);
 0430                nFTComponent.assetId = model.assetId;
 0431                nFTComponent.src = model.src;
 0432                nFTComponent.style = model.style;
 433
 0434                builderInWorldEntityData.nftComponent = nFTComponent;
 0435            }
 436            else
 437            {
 0438                ProtocolV2.GenericComponent entityComponentModel = new ProtocolV2.GenericComponent();
 0439                entityComponentModel.componentId = keyValuePair.Value.GetClassId();
 0440                entityComponentModel.data = keyValuePair.Value.GetModel();
 0441                entityComponentModel.classId = keyValuePair.Value.id;
 442
 0443                builderInWorldEntityData.sharedComponents.Add(entityComponentModel);
 444            }
 445        }
 446
 447
 4448        return JsonConvert.SerializeObject(builderInWorldEntityData);
 449    }
 450
 3451    public static EntityData ConvertJSONToEntityData(string json) { return JsonConvert.DeserializeObject<EntityData>(jso
 452
 453    public static List<BIWEntity> RemoveGroundEntities(List<BIWEntity> entityList)
 454    {
 0455        List<BIWEntity> newList = new List<BIWEntity>();
 456
 0457        foreach (BIWEntity entity in entityList)
 458        {
 0459            if (entity.isFloor)
 460                continue;
 461
 0462            newList.Add(entity);
 463        }
 464
 0465        return newList;
 466    }
 467
 468    public static List<BIWEntity> FilterEntitiesBySmartItemComponentAndActions(List<BIWEntity> entityList)
 469    {
 0470        List<BIWEntity> newList = new List<BIWEntity>();
 471
 0472        foreach (BIWEntity entity in entityList)
 473        {
 0474            if (!entity.HasSmartItemComponent() || !entity.HasSmartItemActions())
 475                continue;
 476
 0477            newList.Add(entity);
 478        }
 479
 0480        return newList;
 481    }
 482
 483    public static void CopyRectTransform(RectTransform original, RectTransform rectTransformToCopy)
 484    {
 0485        original.anchoredPosition = rectTransformToCopy.anchoredPosition;
 0486        original.anchorMax = rectTransformToCopy.anchorMax;
 0487        original.anchorMin = rectTransformToCopy.anchorMin;
 0488        original.offsetMax = rectTransformToCopy.offsetMax;
 0489        original.offsetMin = rectTransformToCopy.offsetMin;
 0490        original.sizeDelta = rectTransformToCopy.sizeDelta;
 0491        original.pivot = rectTransformToCopy.pivot;
 0492    }
 493
 494    public static IWebRequestAsyncOperation MakeGetCall(string url, Promise<string> callPromise, Dictionary<string, stri
 495    {
 4496        var asyncOperation = Environment.i.platform.webRequest.Get(
 497            url: url,
 498            OnSuccess: (webRequestResult) =>
 499            {
 4500                byte[] byteArray = webRequestResult.GetResultData();
 4501                string result = System.Text.Encoding.UTF8.GetString(byteArray);
 4502                callPromise?.Resolve(result);
 4503            },
 504            OnFail: (webRequestResult) =>
 505            {
 0506                Debug.Log(webRequestResult.webRequest.error);
 0507                callPromise.Reject(webRequestResult.webRequest.error);
 0508            },
 509            headers: headers);
 510
 4511        return asyncOperation;
 512    }
 513
 514    public static void ConfigureEventTrigger(EventTrigger eventTrigger, EventTriggerType eventType, UnityAction<BaseEven
 515    {
 2084516        EventTrigger.Entry entry = new EventTrigger.Entry();
 2084517        entry.eventID = eventType;
 2084518        entry.callback.AddListener(call);
 2084519        eventTrigger.triggers.Add(entry);
 2084520    }
 521
 5124522    public static void RemoveEventTrigger(EventTrigger eventTrigger, EventTriggerType eventType) { eventTrigger.triggers
 523}

Methods/Properties

BIWUtils()
AddSceneMappings(System.Collections.Generic.Dictionary[String,String], System.String, DCL.Models.LoadParcelScenesMessage/UnityParcelScene)
RemoveAssetsFromCurrentScene()
ShowGenericNotification(System.String, DCL.NotificationModel.Type, System.Single)
ConvertToMilisecondsTimestamp(System.DateTime)
GetSceneMetricsLimits(System.Int32)
CreateManifestFromProject(DCL.Builder.ProjectData)
CreateEmtpyBuilderScene(System.Int32)
CreateEmptyDefaultBuilderManifest(System.String)
GetLandOwnershipType(System.Collections.Generic.List[LandWithAccess], DCL.Controllers.IParcelScene)
GetLandOwnershipType(LandWithAccess)
SnapFilterEulerAngles(UnityEngine.Vector3, System.Single)
ClosestNumber(System.Single, System.Single)
GetSceneSize(DCL.Controllers.IParcelScene)
CalculateUnityMiddlePoint(DCL.Controllers.IParcelScene)
CreateFloorSceneObject()
ConvertMappingsToDictionary(DCL.ContentServerUtils/MappingPair[])
DrawScreenRect(UnityEngine.Rect, UnityEngine.Color)
DrawScreenRectBorder(UnityEngine.Rect, System.Single, UnityEngine.Color)
GetScreenRect(UnityEngine.Vector3, UnityEngine.Vector3)
GetViewportBounds(UnityEngine.Camera, UnityEngine.Vector3, UnityEngine.Vector3)
IsWithinSelectionBounds(UnityEngine.Transform, UnityEngine.Vector3, UnityEngine.Vector3)
IsWithinSelectionBounds(UnityEngine.Vector3, UnityEngine.Vector3, UnityEngine.Vector3)
IsBoundInsideCamera(UnityEngine.Bounds)
IsPointInsideCamera(UnityEngine.Vector3[])
IsPointInsideCamera(UnityEngine.Vector3)
CopyGameObjectStatus(UnityEngine.GameObject, UnityEngine.GameObject, System.Boolean, System.Boolean)
IsPointerOverMaskElement(UnityEngine.LayerMask)
IsPointerOverUIElement(UnityEngine.Vector3)
IsPointerOverUIElement()
ConvertEntityToJSON(DCL.Models.IDCLEntity)
ConvertJSONToEntityData(System.String)
RemoveGroundEntities(System.Collections.Generic.List[BIWEntity])
FilterEntitiesBySmartItemComponentAndActions(System.Collections.Generic.List[BIWEntity])
CopyRectTransform(UnityEngine.RectTransform, UnityEngine.RectTransform)
MakeGetCall(System.String, DCL.Helpers.Promise[String], System.Collections.Generic.Dictionary[String,String])
ConfigureEventTrigger(UnityEngine.EventSystems.EventTrigger, UnityEngine.EventSystems.EventTriggerType, UnityEngine.Events.UnityAction[BaseEventData])
RemoveEventTrigger(UnityEngine.EventSystems.EventTrigger, UnityEngine.EventSystems.EventTriggerType)