Exemplo n.º 1
0
 void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
 {
     foreach (var referer in referers)
     {
         var listenerWrapper = new PrvtAssetReferenceListener {
             clientListener = listener
         };
         referer.ReferAsset(assetUnitInfo, listenerWrapper);
         if (listenerWrapper.didBegin)
         {
             return;
         }
     }
 }
Exemplo n.º 2
0
        void Giver <AssetInterface, AssetUnitInfo> .PickBestElement(AssetUnitInfo assetUnitInfo, Taker <AssetInterface> collector)
        {
            requestCount++;
            var localAUInfo = localizedAssetInfoGiver.PickBestElement(assetUnitInfo);

            //already localized
            if (localAUInfo != null)
            {
                CheckDependencyAndCollectInterface(localAUInfo, collector);
            }
            //localref is empty = it's newly generated asset
            else if (Utilities.IsStringEmpty(assetUnitInfo.localref))
            {
                var generatedLocalAssetInfo = assetUnitInfo;
                assetUnitInfo.localref = EditTimeAssetUtils.LocalAssetRefForGenerated(assetUnitInfo);
                CheckDependencyAndCollectInterface(assetUnitInfo, collector, true);
            }
            //it's remote asset
            else
            {
                var refListener = new PrvtAssetReferenceListener {
                    baseAssetUnitInfo = assetUnitInfo,
                    interfaceTaker    = collector,
                    parent            = this
                };
                //someone want to controll download timing
                if (installListener != null)
                {
                    installListener.OnInstallRemoteAsset(assetUnitInfo, new PrvtDelayedAssetRefTrigger {
                        client = this, assetUnitInfo = assetUnitInfo, refListener = refListener
                    });
                }
                else
                {
                    remoteAssetReferer.ReferAsset(assetUnitInfo, refListener);
                }
            }
        }