< Summary

Class:BIWUtils
Assembly:BuilderInWorldUtils
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Scripts/Utils/BIWUtils.cs
Covered lines:122
Uncovered lines:121
Coverable lines:243
Total lines:525
Line coverage:50.2% (122 of 243)
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%220100%
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%110100%
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    {
 271        if (NotificationsController.i == null)
 172            return;
 173        NotificationsController.i.ShowNotification(new DCL.NotificationModel.Model
 74        {
 75            message = message,
 76            type = DCL.NotificationModel.Type.GENERIC,
 77            timer = timer,
 78            destroyOnFinish = true
 79        });
 180    }
 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 WebBuilderScene CreateEmtpyBuilderScene(int parcelsAmount)
 119    {
 0120        BuilderGround ground = new BuilderGround();
 0121        ground.assetId = BIWSettings.FLOOR_ID;
 0122        ground.componentId = Guid.NewGuid().ToString();
 123
 0124        WebBuilderScene scene = new WebBuilderScene
 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
 11182    public static Vector2Int GetSceneSize(IParcelScene parcelScene) { return GetSceneSize(parcelScene.sceneData.parcels)
 183
 184    public static Vector2Int GetSceneSize(Vector2Int[] parcels)
 185    {
 11186        int minX = Int32.MaxValue;
 11187        int maxX = Int32.MinValue;
 11188        int minY = Int32.MaxValue;
 11189        int maxY = Int32.MinValue;
 190
 60191        foreach (var parcel in parcels)
 192        {
 19193            if (parcel.x > maxX)
 13194                maxX = parcel.x;
 19195            if (parcel.x < minX)
 13196                minX = parcel.x;
 197
 19198            if (parcel.y > maxY)
 13199                maxY = parcel.y;
 19200            if (parcel.y < minY)
 13201                minY = parcel.y;
 202        }
 203
 11204        int sizeX = maxX - minX + 1;
 11205        int sizeY = maxY - minY + 1;
 11206        return new Vector2Int(sizeX, sizeY);
 207    }
 208
 209    public static Vector3 CalculateUnityMiddlePoint(IParcelScene parcelScene)
 210    {
 211        Vector3 position;
 212
 78213        float totalX = 0f;
 78214        float totalY = 0f;
 78215        float totalZ = 0f;
 216
 78217        int minX = int.MaxValue;
 78218        int minY = int.MaxValue;
 78219        int maxX = int.MinValue;
 78220        int maxY = int.MinValue;
 221
 78222        if (parcelScene.sceneData == null || parcelScene.sceneData.parcels == null)
 2223            return Vector3.zero;
 224
 304225        foreach (Vector2Int vector in parcelScene.sceneData.parcels)
 226        {
 76227            totalX += vector.x;
 76228            totalZ += vector.y;
 76229            if (vector.x < minX)
 76230                minX = vector.x;
 76231            if (vector.y < minY)
 76232                minY = vector.y;
 76233            if (vector.x > maxX)
 76234                maxX = vector.x;
 76235            if (vector.y > maxY)
 76236                maxY = vector.y;
 237        }
 238
 76239        float centerX = totalX / parcelScene.sceneData.parcels.Length;
 76240        float centerZ = totalZ / parcelScene.sceneData.parcels.Length;
 241
 76242        position.x = centerX;
 76243        position.y = totalY;
 76244        position.z = centerZ;
 245
 76246        position = WorldStateUtils.ConvertScenePositionToUnityPosition(parcelScene);
 247
 76248        position.x += ParcelSettings.PARCEL_SIZE / 2;
 76249        position.z += ParcelSettings.PARCEL_SIZE / 2;
 250
 76251        return position;
 252    }
 253
 254    public static CatalogItem CreateFloorSceneObject()
 255    {
 0256        CatalogItem floorSceneObject = new CatalogItem();
 0257        floorSceneObject.id = BIWSettings.FLOOR_ID;
 258
 0259        floorSceneObject.model = BIWSettings.FLOOR_MODEL;
 0260        floorSceneObject.name = BIWSettings.FLOOR_NAME;
 0261        floorSceneObject.assetPackName = BIWSettings.FLOOR_ASSET_PACK_NAME;
 262
 0263        floorSceneObject.contents = new Dictionary<string, string>();
 264
 0265        floorSceneObject.contents.Add(BIWSettings.FLOOR_GLTF_KEY, BIWSettings.FLOOR_GLTF_VALUE);
 0266        floorSceneObject.contents.Add(BIWSettings.FLOOR_TEXTURE_KEY, BIWSettings.FLOOR_TEXTURE_VALUE);
 267
 0268        floorSceneObject.metrics = new SceneObject.ObjectMetrics();
 269
 0270        return floorSceneObject;
 271    }
 272
 273    public static Dictionary<string, string> ConvertMappingsToDictionary(ContentServerUtils.MappingPair[] contents)
 274    {
 0275        Dictionary<string, string> mappingDict = new Dictionary<string, string>();
 276
 0277        foreach (ContentServerUtils.MappingPair mappingPair in contents)
 278        {
 0279            mappingDict.Add(mappingPair.file, mappingPair.hash);
 280        }
 281
 0282        return mappingDict;
 283    }
 284
 285    public static void DrawScreenRect(Rect rect, Color color)
 286    {
 0287        GUI.color = color;
 0288        GUI.DrawTexture(rect, Texture2D.whiteTexture);
 0289    }
 290
 291    public static void DrawScreenRectBorder(Rect rect, float thickness, Color color)
 292    {
 293        //Top
 0294        DrawScreenRect(new Rect(rect.xMin, rect.yMin, rect.width, thickness), color);
 295        // Left
 0296        DrawScreenRect(new Rect(rect.xMin, rect.yMin, thickness, rect.height), color);
 297        // Right
 0298        DrawScreenRect(new Rect(rect.xMax - thickness, rect.yMin, thickness, rect.height), color);
 299        // Bottom
 0300        DrawScreenRect(new Rect(rect.xMin, rect.yMax - thickness, rect.width, thickness), color);
 0301    }
 302
 303    public static Rect GetScreenRect(Vector3 screenPosition1, Vector3 screenPosition2)
 304    {
 305        // Move origin from bottom left to top left
 0306        screenPosition1.y = Screen.height - screenPosition1.y;
 0307        screenPosition2.y = Screen.height - screenPosition2.y;
 308        // Calculate corners
 0309        var topLeft = Vector3.Min(screenPosition1, screenPosition2);
 0310        var bottomRight = Vector3.Max(screenPosition1, screenPosition2);
 311        // Create Rect
 0312        return Rect.MinMaxRect(topLeft.x, topLeft.y, bottomRight.x, bottomRight.y);
 313    }
 314
 315    public static Bounds GetViewportBounds(Camera camera, Vector3 screenPosition1, Vector3 screenPosition2)
 316    {
 2317        var v1 = camera.ScreenToViewportPoint(screenPosition1);
 2318        var v2 = camera.ScreenToViewportPoint(screenPosition2);
 2319        var min = Vector3.Min(v1, v2);
 2320        var max = Vector3.Max(v1, v2);
 2321        min.z = camera.nearClipPlane;
 2322        max.z = camera.farClipPlane;
 323
 2324        var bounds = new Bounds();
 325
 2326        bounds.SetMinMax(min, max);
 2327        return bounds;
 328    }
 329
 0330    public static bool IsWithinSelectionBounds(Transform transform, Vector3 lastClickMousePosition, Vector3 mousePositio
 331
 332    public static bool IsWithinSelectionBounds(Vector3 point, Vector3 lastClickMousePosition, Vector3 mousePosition)
 333    {
 2334        Camera camera = Camera.main;
 2335        var viewPortBounds = GetViewportBounds(camera, lastClickMousePosition, mousePosition);
 2336        return viewPortBounds.Contains(camera.WorldToViewportPoint(point));
 337    }
 338
 339    public static bool IsBoundInsideCamera(Bounds bound)
 340    {
 0341        Vector3[] points = { bound.max, bound.center, bound.min };
 0342        return IsPointInsideCamera(points);
 343    }
 344
 345    public static bool IsPointInsideCamera(Vector3[] points)
 346    {
 0347        foreach (Vector3 point in points)
 348        {
 0349            if (IsPointInsideCamera(point))
 0350                return true;
 351        }
 0352        return false;
 353    }
 354
 355    public static bool IsPointInsideCamera(Vector3 point)
 356    {
 0357        Vector3 topRight = new Vector3(Screen.width, Screen.height, 0);
 0358        var viewPortBounds = GetViewportBounds(Camera.main, Vector3.zero, topRight);
 0359        return viewPortBounds.Contains(Camera.main.WorldToViewportPoint(point));
 360    }
 361
 362    public static void CopyGameObjectStatus(GameObject gameObjectToCopy, GameObject gameObjectToReceive, bool copyParent
 363    {
 5364        if (copyParent)
 0365            gameObjectToReceive.transform.SetParent(gameObjectToCopy.transform.parent);
 366
 5367        gameObjectToReceive.transform.position = gameObjectToCopy.transform.position;
 368
 5369        if (localRotation)
 0370            gameObjectToReceive.transform.localRotation = gameObjectToCopy.transform.localRotation;
 371        else
 5372            gameObjectToReceive.transform.rotation = gameObjectToCopy.transform.rotation;
 373
 5374        gameObjectToReceive.transform.localScale = gameObjectToCopy.transform.lossyScale;
 5375    }
 376
 377    public static bool IsPointerOverMaskElement(LayerMask mask)
 378    {
 379        RaycastHit hitInfo;
 2380        UnityEngine.Ray mouseRay = Camera.main.ScreenPointToRay(Input.mousePosition);
 2381        return Physics.Raycast(mouseRay, out hitInfo, 5555, mask);
 382    }
 383
 384    public static bool IsPointerOverUIElement(Vector3 mousePosition)
 385    {
 1386        var eventData = new PointerEventData(EventSystem.current);
 1387        eventData.position = mousePosition;
 1388        var results = new List<RaycastResult>();
 1389        EventSystem.current.RaycastAll(eventData, results);
 1390        return results.Count > 2;
 391    }
 392
 1393    public static bool IsPointerOverUIElement() { return IsPointerOverUIElement(Input.mousePosition); }
 394
 395    public static string ConvertEntityToJSON(IDCLEntity entity)
 396    {
 4397        EntityData builderInWorldEntityData = new EntityData();
 4398        builderInWorldEntityData.entityId = entity.entityId;
 399
 400
 10401        foreach (KeyValuePair<CLASS_ID_COMPONENT, IEntityComponent> keyValuePair in entity.components)
 402        {
 1403            if (keyValuePair.Key == CLASS_ID_COMPONENT.TRANSFORM)
 404            {
 1405                EntityData.TransformComponent entityComponentModel = new EntityData.TransformComponent();
 406
 1407                entityComponentModel.position = WorldStateUtils.ConvertUnityToScenePosition(entity.gameObject.transform.
 1408                entityComponentModel.rotation = entity.gameObject.transform.localRotation.eulerAngles;
 1409                entityComponentModel.scale = entity.gameObject.transform.localScale;
 410
 1411                builderInWorldEntityData.transformComponent = entityComponentModel;
 1412            }
 413            else
 414            {
 0415                ProtocolV2.GenericComponent entityComponentModel = new ProtocolV2.GenericComponent();
 0416                entityComponentModel.componentId = (int) keyValuePair.Key;
 0417                entityComponentModel.data = keyValuePair.Value.GetModel();
 418
 0419                builderInWorldEntityData.components.Add(entityComponentModel);
 420            }
 421        }
 422
 8423        foreach (KeyValuePair<Type, ISharedComponent> keyValuePair in entity.sharedComponents)
 424        {
 0425            if (keyValuePair.Value.GetClassId() == (int) CLASS_ID.NFT_SHAPE)
 426            {
 0427                EntityData.NFTComponent nFTComponent = new EntityData.NFTComponent();
 0428                NFTShape.Model model = (NFTShape.Model) keyValuePair.Value.GetModel();
 429
 0430                nFTComponent.id = keyValuePair.Value.id;
 0431                nFTComponent.color = new ColorRepresentation(model.color);
 0432                nFTComponent.assetId = model.assetId;
 0433                nFTComponent.src = model.src;
 0434                nFTComponent.style = model.style;
 435
 0436                builderInWorldEntityData.nftComponent = nFTComponent;
 0437            }
 438            else
 439            {
 0440                ProtocolV2.GenericComponent entityComponentModel = new ProtocolV2.GenericComponent();
 0441                entityComponentModel.componentId = keyValuePair.Value.GetClassId();
 0442                entityComponentModel.data = keyValuePair.Value.GetModel();
 0443                entityComponentModel.classId = keyValuePair.Value.id;
 444
 0445                builderInWorldEntityData.sharedComponents.Add(entityComponentModel);
 446            }
 447        }
 448
 449
 4450        return JsonConvert.SerializeObject(builderInWorldEntityData);
 451    }
 452
 3453    public static EntityData ConvertJSONToEntityData(string json) { return JsonConvert.DeserializeObject<EntityData>(jso
 454
 455    public static List<BIWEntity> RemoveGroundEntities(List<BIWEntity> entityList)
 456    {
 0457        List<BIWEntity> newList = new List<BIWEntity>();
 458
 0459        foreach (BIWEntity entity in entityList)
 460        {
 0461            if (entity.isFloor)
 462                continue;
 463
 0464            newList.Add(entity);
 465        }
 466
 0467        return newList;
 468    }
 469
 470    public static List<BIWEntity> FilterEntitiesBySmartItemComponentAndActions(List<BIWEntity> entityList)
 471    {
 0472        List<BIWEntity> newList = new List<BIWEntity>();
 473
 0474        foreach (BIWEntity entity in entityList)
 475        {
 0476            if (!entity.HasSmartItemComponent() || !entity.HasSmartItemActions())
 477                continue;
 478
 0479            newList.Add(entity);
 480        }
 481
 0482        return newList;
 483    }
 484
 485    public static void CopyRectTransform(RectTransform original, RectTransform rectTransformToCopy)
 486    {
 0487        original.anchoredPosition = rectTransformToCopy.anchoredPosition;
 0488        original.anchorMax = rectTransformToCopy.anchorMax;
 0489        original.anchorMin = rectTransformToCopy.anchorMin;
 0490        original.offsetMax = rectTransformToCopy.offsetMax;
 0491        original.offsetMin = rectTransformToCopy.offsetMin;
 0492        original.sizeDelta = rectTransformToCopy.sizeDelta;
 0493        original.pivot = rectTransformToCopy.pivot;
 0494    }
 495
 496    public static IWebRequestAsyncOperation MakeGetCall(string url, Promise<string> callPromise, Dictionary<string, stri
 497    {
 4498        var asyncOperation = Environment.i.platform.webRequest.Get(
 499            url: url,
 500            OnSuccess: (webRequestResult) =>
 501            {
 4502                byte[] byteArray = webRequestResult.GetResultData();
 4503                string result = System.Text.Encoding.UTF8.GetString(byteArray);
 4504                callPromise?.Resolve(result);
 4505            },
 506            OnFail: (webRequestResult) =>
 507            {
 0508                Debug.Log(webRequestResult.webRequest.error);
 0509                callPromise.Reject(webRequestResult.webRequest.error);
 0510            },
 511            headers: headers);
 512
 4513        return asyncOperation;
 514    }
 515
 516    public static void ConfigureEventTrigger(EventTrigger eventTrigger, EventTriggerType eventType, UnityAction<BaseEven
 517    {
 2084518        EventTrigger.Entry entry = new EventTrigger.Entry();
 2084519        entry.eventID = eventType;
 2084520        entry.callback.AddListener(call);
 2084521        eventTrigger.triggers.Add(entry);
 2084522    }
 523
 5124524    public static void RemoveEventTrigger(EventTrigger eventTrigger, EventTriggerType eventType) { eventTrigger.triggers
 525}

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)
GetSceneSize(UnityEngine.Vector2Int[])
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)