Exemplo n.º 1
0
    internal override void OnValidate()
    {
        base.OnValidate();

        portraits   = AssetHandler.LoadAllNearbyAssets <Sprite>(this, "Portraits");
        spritesheet = AssetHandler.LoadAllNearbyAssets <Sprite>(this, $"{name} Sprite Sheet");
    }
Exemplo n.º 2
0
 public void OnAsset(AssetPacket packet)
 {
     // If im recieving from the server that i need an asset
     if (packet.Asset == null)
     {
         // if i dont have it
         if (!File.Exists(Path.Combine(Application.persistentDataPath, packet.ResquestedImageName)) || DEBUG_ALWAYS_DOWNLOAD)
         {
             _assetsRequested.Add(packet);
         }
         else
         {
             var spriteMap = AssetHandler.LoadNewSprite(Path.Combine(Application.persistentDataPath, packet.ResquestedImageName));
             AssetHandler.LoadedAssets.Add(packet.ResquestedImageName, spriteMap);
             AssetsRecieved++;
         }
     }
     else
     {
         Debug.Log("Saving asset " + packet.ResquestedImageName + " SIZE " + packet.Asset.Length);
         File.WriteAllBytes(Path.Combine(Application.persistentDataPath, packet.ResquestedImageName), packet.Asset);
         var spriteMap = AssetHandler.LoadNewSprite(Path.Combine(Application.persistentDataPath, packet.ResquestedImageName));
         AssetHandler.LoadedAssets.Add(packet.ResquestedImageName, spriteMap);
         AssetsRecieved++;
         if (AssetsRecieved == NumberOfAssetsToRecieve && AssetsRecieved > 0)
         {
             DoneDownloading();
         }
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// 卸载资源
        /// </summary>
        /// <param name="asset"></param>
        public void UnloadAssetAsync(UnityEngine.Object asset)
        {
            MDebug.Assert(asset != null, LOG_TAG, "asset != null");
            MDebug.Assert(m_AssetToAssetHandlerMap.ContainsKey(asset), LOG_TAG, "m_AssetToAssetHandlerMap.ContainsKey(asset)");

            if (asset == null || !m_AssetToAssetHandlerMap.ContainsKey(asset))
            {
                return;
            }
            AssetHandler assetHandler = m_AssetToAssetHandlerMap[asset];

            if (assetHandler == null)
            {
                MDebug.Log(LOG_TAG, $"UnloadAssetAsync({assetHandler.GetAssetKey()})");

                AssetAction assetAction = assetHandler.RemoveReference();
                switch (assetAction)
                {
                case AssetAction.Unload:
                    AddAssetActionRequest(assetHandler.GetAssetIndex(), AssetAction.Unload);
                    break;

                default:
                    MDebug.Log(LOG_TAG, "unload failed !");
                    break;
                }
            }
        }
        public void GetVersion_Should_Return_Correct_Version()
        {
            string version;

            cache.Expect(c => c.TryGet(It.IsAny <string>(), out version)).Returns(false);
            cache.Expect(c => c.Contains(It.IsAny <string>())).Returns(false);
            cache.Expect(c => c.Set(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>()));

            var assetSettings = new AssetSettingsSection
            {
                CacheDurationInDays = 10,
                Compress            = true,
                Version             = "1.5"
            };

            assetSettings.Assets.Add(new AssetElement {
                Name = "js"
            });

            configurationManager.Expect(c => c.GetSection <AssetSettingsSection>(It.IsAny <string>())).Returns(assetSettings);

            string result = AssetHandler.GetVersion("js");

            Assert.Equal("1.5", result);
        }
Exemplo n.º 5
0
 public void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
     }
 }
Exemplo n.º 6
0
 /// <summary>
 /// 加载失败
 /// </summary>
 /// <param name="loader"></param>
 public void LoadFailed(AssetHandler loader)
 {
     this.Loader   = loader;
     this.IsFinish = true;
     OnLoadFinish.Invoke();
     OnLoadFinish.RemoveAllListeners();
 }
 public void SetUp()
 {
     _game        = MockRepository.GenerateMock <IGame>();
     _gameHandler = MockRepository.GenerateMock <IGameHandler>();
     _gameState   = MockRepository.GenerateMock <IHsGameState>();
     _gameState.Stub(x => x.GameHandler).Return(_gameHandler);
     _assetHandler = new AssetHandler();
 }
Exemplo n.º 8
0
 public void TryAddDependencyAsset(AssetHandler assetHandler)
 {
     if (m_BundleState != BundleState.Loaded)
     {
         m_OnBundleLoaded += assetHandler.OnBundleLoaded;
         assetHandler.AddNeedLoadBundle();
     }
 }
Exemplo n.º 9
0
 /// <summary>
 /// 回收
 /// </summary>
 public void Release()
 {
     RefCount = 0;
     Asset    = null;
     Loader   = null;
     Name     = string.Empty;
     IsFinish = false;
     OnLoadFinish.RemoveAllListeners();
 }
Exemplo n.º 10
0
        // 加载 AB
        private bool LoadAB <T>(string name, AbMeta ab, AssetHandler <T> handler, ErrorHandler errorhandler, bool loadDependencies = true) where T : Object
        {
            if (ab == null)
            {
                var error = string.Format("Can't find AssetBundle \"{0}\"", name);
#if UNITY_EDITOR
                RTLog.LogError(LogCat.Asset, error);
#endif
                if (errorhandler != null)
                {
                    errorhandler(error);
                }
                return(false);
            }
            if (ab.assetBundle != null)
            {
                if (handler != null)
                {
                    handler(ab.assetBundle as T);
                }
                return(false);
            }
            bool load = false;
            // 加载依赖包
            if (loadDependencies)
            {
                var dependencies = mManifest.GetAllDependencies(ab.name);
                if (dependencies != null)
                {
                    for (int i = 0; i < dependencies.Length; i++)
                    {
                        var id  = HashAssetID(dependencies[i]);
                        var dab = GlobalUtil.Binsearch(mAbs, id);
                        load |= LoadAB <AssetBundle>(dependencies[i], dab, null, null, false);
                    }
                }
            }
            // 加载 ab
            var assethandler = GetHandler(ab.Identify);
            if (assethandler == null)
            {
                assethandler = new ABObtain(ab);
                mHandlers.AddLast(assethandler);
                mLoaders++;
                load = true;
                assethandler.DoComplete(FinishAndLoadNextAsset);
            }
            if (handler != null)
            {
                assethandler.RegistHandler(handler);
            }
            if (errorhandler != null)
            {
                assethandler.RegistErrorHandler(errorhandler);
            }
            return(load);
        }
Exemplo n.º 11
0
 protected override void LoadAllAssets <T>(string abname, AssetHandler <T> handler, ErrorHandler errorHandler)
 {
     GetAssetAsync <AssetBundle>(abname, (x) => {
         var assets = x.GetAllAssetNames();
         foreach (var asset in assets)
         {
             GetAssetAsync <T>(asset, handler, errorHandler);
         }
     }, errorHandler);
 }
Exemplo n.º 12
0
        async public void Pressed()
        {
            var s = new InitVehicle();

            s.vehicle_name = "car" + ++counter;
            s.vehicle_type = AssetHandler.getInstance().getVehicle();
            s.pos          = new Vector3(-250, 2, 50);
            s.rotation     = Quaternion.identity;
            VehicleQueue.Enqueue(s);
        }
Exemplo n.º 13
0
    internal override void OnValidate()
    {
        base.OnValidate();

        sprite = AssetHandler.LoadNearbyAssetWithSameName <Sprite>(this);
        // TODO: optimize, to avoid sorting all objects each validation
        // sort ascending by drop chance, for easier loot spawning
        lootTable?.Sort((x, y) => y.dropChance.CompareTo(x.dropChance));
        lootTable?.Reverse();
    }
 // Add vehicle
 private static bool AddVehicle(string vehicle_name, string vehicle_type) // Take in init pose and path?
 {
     Debug.LogError("Attempting to add car: " + vehicle_name + " - " + vehicle_type);
     if (vehicle_type == "")
     {
         vehicle_type = AssetHandler.getInstance().getVehicle();
     }
     AddCar.GetInstance().SpawnVehicle(vehicle_name, vehicle_type, new Vector3(-250, 2, 50), Quaternion.identity);
     return true;
 }
Exemplo n.º 15
0
    void Start()
    {
        AssetHandler asset = GameManager.Instance.assetHandler;

        avatarImage = GetComponent <SpriteRenderer>().sprite;

        player       = new Player("LocalPlayer", transform, cardPlace);
        playerState  = new PlayerState(player, avatarPlayer);
        avatarPlayer = new Avatar(asset.avatarExpression[0], asset.avatarExpression[1], asset.avatarExpression[2]);
    }
Exemplo n.º 16
0
        public async Task AddMinimalAsset_ReturnsCorrectStageId()
        {
            var handler = new AssetHandler(BasicNeeds);
            var stageId = 100;
            var result  = await handler.Handle(new Domain.Asset.Commands.AddMinimalAsset
            {
                StageId = stageId,
            }, CancellationToken.None);

            Assert.AreEqual(result.StageId, stageId);
        }
Exemplo n.º 17
0
 public void RegisterExtensionHandler(string extension, Action <string> action)
 {
     if (_extension_handler.ContainsKey(extension))
     {
         _extension_handler[extension] += new AssetHandler(action);
     }
     else
     {
         _extension_handler[extension] = new AssetHandler(action);
     }
 }
Exemplo n.º 18
0
        protected override void OnDestroy()
        {
            if (assetHandler != null)
            {
                AssetService assetService = Facade.GetInstance().GetServicer <AssetService>(AssetService.NAME);
                assetService.UnloadAssetAsync(assetHandler);
                assetHandler = null;
            }

            base.OnDestroy();
        }
 private static ServerUtils.StringArray GetVehicleTypes()
 {
     ServerUtils.StringArray array = new ServerUtils.StringArray();
     List<string> lst = new List<string>();
     foreach(var i in AssetHandler.getInstance().vehicles)
     {
         lst.Add(i.name);
     }
     DataManager.ConvertToStringArray(lst, ref array);
     return array;
 }
Exemplo n.º 20
0
 private void Update()
 {
     if (PedestrainQueue.Count > 0)
     {
         InitPedestrain s   = PedestrainQueue.Dequeue();
         var            obj = Instantiate(AssetHandler.getInstance().getPedestrian(), s.pos, s.rotation);
         AirSimServer.pedestrianList.Add(obj);
         var component = obj.GetComponent <PedestrianOverhead>();
         component.name = s.name;
     }
 }
Exemplo n.º 21
0
 private void Update()
 {
     if (VehicleQueue.Count > 0)
     {
         InitVehicle s    = VehicleQueue.Dequeue();
         var         type = Array.Find(AssetHandler.getInstance().vehicles, element => element.name == s.vehicle_type);
         var         obj  = Instantiate(type.vehicle, s.pos, s.rotation);
         obj.GetComponent <Vehicle>().vehicle_name = s.vehicle_name;
         AirSimServer.vehicleList.Add(obj);
     }
 }
Exemplo n.º 22
0
 public void ModifyAsset()
 {
     Parallel.ForEach(_assetfiles, file =>
     {
         var extension        = Path.GetExtension(file);
         AssetHandler handler = null;
         if (_extension_handler.TryGetValue(extension, out handler))
         {
             handler.Invoke(file);
         }
     });
 }
Exemplo n.º 23
0
        /// <summary>
        /// 加载成功
        /// </summary>
        /// <param name="asset"></param>
        public void LoadSuccess(AssetHandler loader, Object asset)
        {
            this.Asset    = asset;
            this.Loader   = loader;
            this.IsFinish = true;
#if UNITY_EDITOR
            DealEditorMode();
#endif
//            loader.AddRefResData(this.Name);
            OnLoadFinish.Invoke();
            OnLoadFinish.RemoveAllListeners();
        }
Exemplo n.º 24
0
        /// <summary>
        /// 异步加载资源
        /// </summary>
        /// <param name="assetKey"></param>
        /// <param name="callback"></param>
        public void LoadAssetAsync(AssetKey assetKey, Action <AssetKey, UnityEngine.Object> callback)
        {
            MDebug.Log(LOG_TAG, $"LoadAssetAsync({assetKey})");
            MDebug.Assert(callback != null, LOG_TAG, "callback != null");

            int assetIndex = (int)assetKey;

            AssetHandler assetHandler = m_AssetHandlers[assetIndex];

            if (assetHandler == null)
            {
                assetHandler = m_AssetHandlerPool.Alloc();
                assetHandler.SetAssetKey(assetKey);
                m_AssetHandlers[assetIndex] = assetHandler;
            }

            AssetAction assetAction = assetHandler.AddReference(callback);

            switch (assetAction)
            {
            case AssetAction.RequestLoadBundle:
                int   bundleIndex            = m_AssetInfos[assetIndex].BundleIndex;
                int[] dependencyBundleIndexs = m_BundleInfos[bundleIndex].DependencyBundleIndexs;
                for (int iBundle = 0; iBundle < dependencyBundleIndexs.Length; iBundle++)
                {
                    int iterDependencyBundleIndex = dependencyBundleIndexs[iBundle];
                    LoadBundleForLoadAsset(iterDependencyBundleIndex, assetIndex);
                }
                LoadBundleForLoadAsset(bundleIndex, assetIndex);

                //全部依赖Bundle加载完成?

                if (assetHandler.GetRemainLoadBundleCount() == 0)
                {
                    AddAssetActionRequest(assetIndex, AssetAction.Load);
                }
                break;

            case AssetAction.Load:
            case AssetAction.LoadedCallback:
                AddAssetActionRequest(assetIndex, assetAction);
                break;

            case AssetAction.Null:
                // Nothing To Do
                break;

            default:
                MDebug.Assert(false, LOG_TAG, "Asset Not Support AssetAction: " + assetAction);
                break;
            }
        }
Exemplo n.º 25
0
    void OnValidate()
    {
        // auto-load all location sprites in each area
        foreach (var area in areas)
        {
            area.locations = new List <Sprite>(AssetHandler.LoadChildAssets <Sprite>(area.areaTexture));
        }
        // sort ascending enemies spawn list by chance of spawn
        enemies = enemies?.OrderBy(x => x.relativeChanceWeight).ToList();

        // required to be able to save script changes to SO to an actual asset file (only inspector changes are saved by default)
        EditorUtility.SetDirty(this);
    }
Exemplo n.º 26
0
        protected override void LoadContent()
        {
            ///Singleton
            _assetHandler = AssetHandler.GetInstance();

            ///Monogame Loading Content
            _spriteBatch = new SpriteBatch(GraphicsDevice);

            ///Game Assets
            _background = new Background(this, "Images/back", 800, 480);
            _heroShip   = new HeroShip(this, "Images/white_ship", 50, 50, 400, 400, 100, 100, 8); //créer une fabrique
            _enemyShip  = new EnemyShip(this, "Images/enemy_ship", 50, 50, 400, 50, 50, 0, 5);
        }
Exemplo n.º 27
0
    public void SetupCard(string key, int cardNumb, int type)
    {
        assetHandler = GameManager.Instance.assetHandler;
        setupCard    = GameManager.Instance.setupCardHandler;

        card = new Card(key, cardNumb, (CardType)type);

        cardNumberSprite = GameManager.Instance.assetHandler.GetCardSprite(cardNumb, card.cardType);
        spriteRender     = GetComponent <SpriteRenderer>();
        objCollider      = GetComponent <BoxCollider2D>();
        startPosition    = transform.position;
        startScale       = transform.localScale;
        CloseCard();
    }
Exemplo n.º 28
0
        protected override void LoadAllAssets <T>(string abname, AssetHandler <T> handler, ErrorHandler errorHandler)
        {
#if UNITY_EDITOR
            abname = abname.ToLower();
            var assets = UnityEditor.AssetDatabase.FindAssets("t:" + typeof(T).Name);
            foreach (var t in assets)
            {
                var path   = UnityEditor.AssetDatabase.GUIDToAssetPath(t);
                var import = UnityEditor.AssetImporter.GetAtPath(path);
                if (import.assetBundleName == abname)
                {
                    handler(UnityEditor.AssetDatabase.LoadAssetAtPath <T>(path));
                }
            }
#endif
        }
        public void Setup()
        {
            mockContentRepository     = new Mock <IContentRepository>();
            mockBlobFactory           = new Mock <IBlobFactory>();
            mockContextResolver       = new Mock <IContextResolver>();
            mockLinkResolver          = new Mock <ILinkResolver>();
            mockContentTypeRepository = new Mock <IContentTypeRepository>();
            mockContentMediaResolver  = new Mock <ContentMediaResolver>();

            assetHandler = new AssetHandler(
                mockContentRepository.Object,
                mockBlobFactory.Object,
                mockContextResolver.Object,
                mockLinkResolver.Object,
                mockContentTypeRepository.Object,
                mockContentMediaResolver.Object);
        }
Exemplo n.º 30
0
        /// <summary>
        /// Gathers all the assets from a specific folder into our asset folder
        /// </summary>
        public void GatherAssetFiles(string fromDir)
        {
            if (!IO.Directory.Exists(AssetDirectory))
            {
                IO.Directory.CreateDirectory(AssetDirectory);
            }

            string blob  = AssetHandler.getStartingDirectory(fromDir, "BLOBS");
            string asset = AssetHandler.getStartingDirectory(fromDir, "assets");

            foreach (string file in directoryServer.AssetManifestList)
            {
                //Check the inner zone asset folder first
                string filePath = AssetHandler.findAssetFile(file, asset);
                if (filePath == null)
                {
                    //Get it from the blob folder instead
                    filePath = AssetHandler.findAssetFile(file, blob);
                    if (filePath == null)
                    {
                        //Still cant find it? Just skip it
                        continue;
                    }
                }

                if (filePath != null)
                {
                    try
                    {
                        string path = IO.Path.Combine(AssetDirectory, file);
                        //Lets copy it over
                        if (IO.File.Exists(path))
                        {
                            IO.File.Delete(path);
                        }

                        IO.File.Copy(filePath, path);
                    }
                    catch (Exception e)
                    {
                        Log.write(TLog.Warning, e.ToString());
                    }
                }
            }
        }
Exemplo n.º 31
0
 public MonoGameEngine(SpriteBatch spriteBatch, ContentManager contentManager)
 {
     this.graphics = new MonoGameGraphics(spriteBatch);
     this.assets = new MonoGameAssetHandler(contentManager);
 }