Пример #1
0
    static string GetNavmapThumbnailUrl(CatalystSceneEntityPayload pointerData, string contentUrl)
    {
        const string contentDownloadUrlFormat = "{0}/contents/{1}";
        const string builderUrlFormat         = "https://builder-api.decentraland.org/v1/projects/{0}/media/preview.png";

        string thumbnail = pointerData.metadata.display.navmapThumbnail;

        bool isThumbnailPresent      = !string.IsNullOrEmpty(thumbnail);
        bool isThumbnailFileDeployed = isThumbnailPresent && !thumbnail.StartsWith("http");

        if (isThumbnailPresent && !isThumbnailFileDeployed)
        {
            return(thumbnail);
        }

        if (isThumbnailFileDeployed && pointerData.content != null)
        {
            string thumbnailHash = pointerData.content.FirstOrDefault(content => content.file == thumbnail)?.hash;
            if (!string.IsNullOrEmpty(thumbnailHash))
            {
                return(string.Format(contentDownloadUrlFormat, contentUrl, thumbnailHash));
            }
        }

        if (pointerData.metadata.source != null && !string.IsNullOrEmpty(pointerData.metadata.source.projectId))
        {
            return(string.Format(builderUrlFormat, pointerData.metadata.source.projectId));
        }

        return(thumbnail);
    }
Пример #2
0
    public DeployedScene(CatalystSceneEntityPayload pointerData, string contentUrl)
    {
        const string builderInWorldStateJson  = "scene-state-definition.json";
        const string builderSourceName        = "builder";
        const string builderInWorldSourceName = "builder-in-world";

        metadata = pointerData.metadata;
        entityId = pointerData.id;

        deploymentSource = Source.SDK;

        if (pointerData.content != null && pointerData.content.Any(content => content.file == builderInWorldStateJson))
        {
            deploymentSource = Source.BUILDER_IN_WORLD;
        }
        else if (metadata.source != null && metadata.source.origin == builderInWorldSourceName)
        {
            deploymentSource = Source.BUILDER_IN_WORLD;
        }
        else if (metadata.source != null && metadata.source.origin == builderSourceName)
        {
            deploymentSource = Source.BUILDER;
        }

        baseCoord    = StringToVector2Int(metadata.scene.@base);
        parcelsCoord = metadata.scene.parcels.Select(StringToVector2Int).ToArray();
        thumbnail    = GetNavmapThumbnailUrl(pointerData, contentUrl);
    }