Example #1
0
        public void RequestImage(long id, DecorationDefinition definition, RequestImageCallback callback, Color backgroundColor)
        {
            string        hashedName    = getHashedName(id);
            CallbackToken callbackToken = default(CallbackToken);

            callbackToken.Id           = id;
            callbackToken.DefinitionId = definition.Id;
            DecorationRenderParams decorationRenderParams = new DecorationRenderParams();

            decorationRenderParams.CallbackToken   = callbackToken;
            decorationRenderParams.Definition      = definition;
            decorationRenderParams.BackgroundColor = backgroundColor;
            decorationRenderParams.ImageHash       = hashedName;
            DecorationRenderParams renderParams = decorationRenderParams;

            if (RequestImage(renderParams, callback))
            {
                loadedItemCount++;
                if (loadedItemCount >= 30)
                {
                    Resources.UnloadUnusedAssets();
                    loadedItemCount = 0;
                }
            }
        }
        protected bool RequestImage(RenderParams renderParams, RequestImageCallback callback)
        {
            CallbackToken callbackToken = renderParams.CallbackToken;

            if (completionCallbacks.ContainsKey(callbackToken))
            {
                completionCallbacks[callbackToken].Add(callback);
                return(false);
            }
            if (imageCache.ContainsImage(renderParams.ImageHash))
            {
                Texture2D textureFromCache = imageCache.GetTextureFromCache(renderParams.ImageHash);
                callback(success: true, textureFromCache, callbackToken);
                return(true);
            }
            List <RequestImageCallback> list = new List <RequestImageCallback>();

            list.Add(callback);
            completionCallbacks.Add(callbackToken, list);
            renderQueue.Enqueue(renderParams);
            if (renderQueue.Count == 1)
            {
                CoroutineRunner.Start(setupAndProcessRequests(), this, "ProcessNextRequest");
            }
            return(false);
        }
        public void RequestImage(DCustomEquipment equipment, RequestImageCallback callback)
        {
            CallbackToken callbackToken = default(CallbackToken);

            callbackToken.Id           = equipment.Id;
            callbackToken.DefinitionId = equipment.DefinitionId;
            RequestImage(equipment, callback, callbackToken, Color.clear, Color.clear);
        }
    public void RequestImage(long id, StructureDefinition definition, RequestImageCallback callback, Color backgroundColor)
    {
        string        hashedName    = getHashedName(id);
        CallbackToken callbackToken = default(CallbackToken);

        callbackToken.Id           = id;
        callbackToken.DefinitionId = definition.Id;
        StructureRenderParams structureRenderParams = new StructureRenderParams();

        structureRenderParams.CallbackToken   = callbackToken;
        structureRenderParams.Definition      = definition;
        structureRenderParams.BackgroundColor = backgroundColor;
        structureRenderParams.ImageHash       = hashedName;
        StructureRenderParams renderParams = structureRenderParams;

        RequestImage(renderParams, callback);
    }
        public void RequestImage(DCustomEquipment equipment, RequestImageCallback callback, CallbackToken callbackToken, Color backgroundColor, Color penguinColor)
        {
            string           imageHash        = calcHash(equipment, backgroundColor, penguinColor);
            ItemRenderParams itemRenderParams = new ItemRenderParams();

            itemRenderParams.CallbackToken   = callbackToken;
            itemRenderParams.equipment       = equipment;
            itemRenderParams.BackgroundColor = backgroundColor;
            itemRenderParams.bodyColor       = penguinColor;
            itemRenderParams.ImageHash       = imageHash;
            ItemRenderParams renderParams = itemRenderParams;

            RequestImage(renderParams, callback);
        }