Esempio n. 1
0
 public static void LoadRefCounter <T>(ILoadableResource image, System.Action <T> callbackOnLoad, System.Action callbackOnFailed, bool async, string customResourcePath)       /*where T : Object*/
 {
     if (WindowSystemResources.instance != null)
     {
         WindowSystemResources.instance.LoadRefCounter_INTERNAL <T>(image, callbackOnLoad, callbackOnFailed, async, customResourcePath);
     }
 }
		public void Unregister(ILoadableResource component) {
			
			this.CleanUp();

			this.items.RemoveAll(x => x.component == component);
			
		}
Esempio n. 3
0
        private void LoadAuto_INTERNAL(ILoadableResource resourceController, System.Action onDataLoaded, System.Action onComplete, string customResourcePath = null)
        {
            var image = resourceController as IImageComponent;

            System.Action <Object> setup = (data) => {
                if (data == null)
                {
                    WindowSystemLogger.Error(image, string.Format("Error in ResourcesManager: Required resource can't be loaded. Resource: {0}", image.GetResource().GetId()));
                    return;
                }

                var res = resourceController.GetResource();
                res.loadedObject   = data;
                res.loadedObjectId = data.GetInstanceID();
                res.loaded         = true;
            };

            Graphic source = image.GetImageSource();

            if (source != null)
            {
                this.LoadAndSetup_INTERNAL <Sprite>(image, source, (data) => {
                    setup.Invoke(data);
                    image.SetImage(data, () => {
                        if (onComplete != null)
                        {
                            onComplete.Invoke();
                        }
                    });

                    if (onDataLoaded != null)
                    {
                        onDataLoaded.Invoke();
                    }
                }, customResourcePath);
            }
            else
            {
                source = image.GetRawImageSource();
                if (source != null)
                {
                    this.LoadAndSetup_INTERNAL <Texture>(image, source, (data) => {
                        setup.Invoke(data);
                        image.SetImage(data, () => {
                            if (onComplete != null)
                            {
                                onComplete.Invoke();
                            }
                        });

                        if (onDataLoaded != null)
                        {
                            onDataLoaded.Invoke();
                        }
                    }, customResourcePath);
                }
            }
        }
Esempio n. 4
0
        public static void Validate(ILoadableResource resourceController)
        {
            if (Application.isPlaying == true)
            {
                return;
            }

            var image = resourceController as IImageComponent;

            image.GetResource().Validate();

            //var mapInstance = WindowSystemResourcesMap.FindFirst();
            //if (mapInstance == null) return;

            /*if (resourceController.GetResource().controlType != ResourceAuto.ControlType.None) {
             *
             *      var image = resourceController as IImageComponent;
             *      //mapInstance.Register(image);
             *
             *      var source = image.GetImageSource();
             *      if (source != null) {
             *
             *              resourceController.GetResource().Validate(source.sprite);
             *              image.ResetImage();
             *              //image.SetImage(resourceController.GetResource().tempSprite);
             *
             *      } else {
             *
             *              var sourceRaw = image.GetRawImageSource();
             *              if (sourceRaw != null) {
             *
             *                      resourceController.GetResource().Validate(sourceRaw.texture);
             *                      image.ResetImage();
             *
             *              }
             *
             *      }
             *
             *      resourceController.GetResource().Validate((resourceController.GetResource() as IResourceValidationObject).GetValidationObject());
             *
             * } else {
             *
             *      if (resourceController.GetResource().loadableResource == true) {
             *
             *              var image = resourceController as IImageComponent;
             *              //mapInstance.Unregister(image);
             *
             *              image.SetImage((resourceController.GetResource() as IResourceValidationObject).GetValidationObject() as Sprite);
             *              image.SetImage((resourceController.GetResource() as IResourceValidationObject).GetValidationObject() as Texture);
             *
             *              resourceController.GetResource().ResetToDefault();
             *
             *      }
             *
             * }*/
        }
Esempio n. 5
0
        public static void Validate(ILoadableResource resourceController)
        {
            if (Application.isPlaying == true)
            {
                return;
            }

            var mapInstance = WindowSystemResourcesMap.FindFirst();

            if (mapInstance == null)
            {
                return;
            }

            if (resourceController.GetResource().controlType != AutoResourceItem.ControlType.None)
            {
                var image = resourceController as IImageComponent;
                mapInstance.Register(image);

                var source = image.GetImageSource();
                if (source != null)
                {
                    resourceController.GetResource().Validate(source.sprite);
                    image.ResetImage();
                    //image.SetImage(resourceController.GetResource().tempSprite);
                }
                else
                {
                    var sourceRaw = image.GetRawImageSource();
                    if (sourceRaw != null)
                    {
                        resourceController.GetResource().Validate(sourceRaw.texture);
                        image.ResetImage();
                    }
                }

                resourceController.GetResource().Validate(resourceController.GetResource().tempObject);
            }
            else
            {
                if (resourceController.GetResource().loadableResource == true)
                {
                    var image = resourceController as IImageComponent;
                    mapInstance.Unregister(image);

                    image.SetImage(resourceController.GetResource().tempObject as Sprite);
                    image.SetImage(resourceController.GetResource().tempObject as Texture);

                    resourceController.GetResource().Reset();
                }
            }
        }
		public void Register(ILoadableResource component) {

			this.CleanUp();

			if (component == null) return;

			if (this.items.Any(x => x.component == component) == false) {
				
				this.items.Add(new Item() { component = component as WindowComponent, texture = component.GetResource().tempObject });
				
			}
			
		}
Esempio n. 7
0
        public static void LoadAuto(ILoadableResource resourceController, System.Action onDataLoaded, System.Action onComplete, bool onShowHide)
        {
            var type = resourceController.GetResource().controlType;

            if (onShowHide == true && (type & AutoResourceItem.ControlType.Show) != 0)
            {
                WindowSystemResources.instance.LoadAuto_INTERNAL(resourceController, onDataLoaded, onComplete);
            }
            else if (onShowHide == false && (type & AutoResourceItem.ControlType.Init) != 0)
            {
                WindowSystemResources.instance.LoadAuto_INTERNAL(resourceController, onDataLoaded, onComplete);
            }
        }
Esempio n. 8
0
        public static void UnloadAuto(ILoadableResource resourceController, bool onShowHide)
        {
            var type = resourceController.GetResource().controlType;

            if (onShowHide == true && (type & AutoResourceItem.ControlType.Hide) != 0)
            {
                WindowSystemResources.instance.Unload_INTERNAL(resourceController, resourceController.GetResource());
            }
            else if (onShowHide == false && (type & AutoResourceItem.ControlType.Deinit) != 0)
            {
                WindowSystemResources.instance.Unload_INTERNAL(resourceController, resourceController.GetResource());
            }
        }
Esempio n. 9
0
        private void Unload_INTERNAL(ILoadableResource resourceController, ResourceBase resource, bool resetController = true)
        {
            if (resource.loaded == false)
            {
                return;
            }

            //Debug.LogWarning("Unload: " + resource.GetId(), resourceController as MonoBehaviour);
            var item = this.loaded.FirstOrDefault(x => x.id == resource.GetId());

            if (item != null)
            {
                if (item.references.Remove(resourceController as WindowComponent) == true)
                {
                    this.loaded.RemoveAll(x => {
                        if (x.id == resource.GetId() && x.references.Count == 0)
                        {
                            if (x.loadedObjectId < 0)
                            {
                                Object.Destroy(x.loadedObject);
                            }
                            return(true);
                        }

                        return(false);
                    });
                }
            }

            if (resetController == true)
            {
                var image  = resourceController as IImageComponent;
                var source = image.GetImageSource();
                if (source != null)
                {
                    image.ResetImage();
                    resource.Unload(source.sprite);
                }
                else
                {
                    var sourceRaw = image.GetRawImageSource();
                    if (sourceRaw != null)
                    {
                        image.ResetImage();
                        resource.Unload(sourceRaw.texture);
                    }
                }
            }
        }
        internal BlueprintService(IDefinitionsRepository definitionsRepository, ILoadableResource <XDocument> blueprintResource)
        {
            _definitionsRepository = definitionsRepository;

            try
            {
                Blueprint             = blueprintResource.Load();
                _blueprintDataContext = new BlueprintDataContext(XElement.Parse(Blueprint.ToString()));
            }
            catch (Exception e)
            {
                throw new Exception("Blueprint cannot be loaded. This is probably because the game changed, and this app became incompatible with the blueprint files.", e);
            }

            SetBlueprintInfo();
        }
Esempio n. 11
0
        private void LoadRefCounter_INTERNAL <T>(ILoadableResource image, System.Action <T> callbackOnLoad, System.Action callbackOnFailed, bool async, string customResourcePath)       /*where T : Object*/
        {
            IResourceReference reference = null;

            if (image is ILoadableReference)
            {
                reference = (image as ILoadableReference).GetReference();
            }
            else
            {
                reference = image as IResourceReference;
            }

            var resource = image.GetResource();

            this.LoadRefCounter_INTERNAL(reference, resource, callbackOnLoad, callbackOnFailed, async, customResourcePath);
        }
        public void Register(ILoadableResource component)
        {
            this.CleanUp();

            if (component == null)
            {
                return;
            }

            if (this.items.Any(x => x.component == component) == false)
            {
                this.items.Add(new Item()
                {
                    component = component as WindowComponent, texture = component.GetResource().tempObject
                });
            }
        }
        public void Unregister(ILoadableResource component)
        {
            this.CleanUp();

            this.items.RemoveAll(x => x.component == component);
        }
Esempio n. 14
0
 public static void Unload(ILoadableResource resourceController, ResourceBase resource, bool resetController = true)
 {
     WindowSystemResources.instance.Unload_INTERNAL(resourceController, resource, resetController);
 }
Esempio n. 15
0
 public static object Load(ILoadableResource resource)
 {
     return(Load(Path.GetDirectoryName(resource.Source),
                 resource.Data?.ToString( )));
 }
Esempio n. 16
0
 private void Load_INTERNAL(ILoadableResource resourceController, System.Action onDataLoaded, System.Action onComplete, string customResourcePath = null)
 {
     this.LoadAuto_INTERNAL(resourceController, onDataLoaded, onComplete, customResourcePath);
 }
Esempio n. 17
0
 public void Contain(ILoadableResource loadable)
 {
     m_loadableResources.Add(loadable);
 }
Esempio n. 18
0
        private void LoadAuto_INTERNAL(ILoadableResource resourceController, System.Action onDataLoaded, System.Action onComplete, System.Action onFailed = null, string customResourcePath = null)
        {
            var image = resourceController as IImageComponent;
            var async = image.GetResource().async;

            System.Action <Object> setup = (data) => {
                if (data == null)
                {
                    if (onFailed != null)
                    {
                        onFailed.Invoke();
                    }
                    WindowSystemLogger.Error(image, string.Format("Error in ResourcesManager: Required resource can't be loaded. Resource: {0}", image.GetResource().GetId()));
                    return;
                }
            };

            var source = image.GetGraphicSource();

            var isMaterial = image.GetResource().IsMaterialLoadingType();

            if (isMaterial == false)
            {
                MovieSystem.UnregisterOnUpdateTexture(this.ValidateTexture);
            }

            if (isMaterial == true)
            {
                this.LoadRefCounter_INTERNAL <Material>(resourceController, (data) => {
                    setup.Invoke(data);
                    image.SetMaterial(data, callback: () => {
                        if (onComplete != null)
                        {
                            onComplete.Invoke();
                        }
                    });

                    if (onDataLoaded != null)
                    {
                        onDataLoaded.Invoke();
                    }
                }, onFailed, async, customResourcePath);
            }
            else
            {
                if (source is Image)
                {
                    this.LoadRefCounter_INTERNAL <Sprite>(resourceController, (data) => {
                        setup.Invoke(data);
                        image.SetImage(data, () => {
                            if (onComplete != null)
                            {
                                onComplete.Invoke();
                            }
                        });

                        if (onDataLoaded != null)
                        {
                            onDataLoaded.Invoke();
                        }
                    }, onFailed, async, customResourcePath);
                }
                else if (source is RawImage)
                {
                    this.LoadRefCounter_INTERNAL <Texture>(resourceController, (data) => {
                        setup.Invoke(data);
                        image.SetImage(data, () => {
                            if (onComplete != null)
                            {
                                onComplete.Invoke();
                            }
                        });

                        if (isMaterial == true)
                        {
                            MovieSystem.RegisterOnUpdateTexture(this.ValidateTexture);
                        }

                        if (onDataLoaded != null)
                        {
                            onDataLoaded.Invoke();
                        }
                    }, onFailed, async, customResourcePath);
                }
            }
        }
Esempio n. 19
0
 public static void Load(ILoadableResource resourceController, System.Action onDataLoaded, System.Action onComplete, string customResourcePath = null)
 {
     WindowSystemResources.instance.Load_INTERNAL(resourceController, onDataLoaded, onComplete, customResourcePath);
 }
        private void Unload_INTERNAL(ILoadableResource resourceController, ResourceBase resource, bool resetController = true)
        {
            /*
             * if (resource.loaded == false) {
             *
             *
             *      return;
             *
             * }*/

            //Debug.LogWarning("Unload: " + resource.GetId() + " :: " + resource.GetStreamPath(), resourceController as MonoBehaviour);

            var item = this.loaded.FirstOrDefault(x => x.id == resource.GetId());

            if (WindowSystemResources.Remove(item, resourceController as WindowComponent, forced: true) == true)
            {
                //Debug.LogWarning("Unload movie: " + resource.GetId(), resourceController as MonoBehaviour);

                MovieSystem.Unload(resourceController as IImageComponent, resource);
            }

            /*if (item != null) {
             *
             *      if (item.references.Remove(resourceController as WindowComponent) == true) {
             *
             *              this.loaded.RemoveAll(x => {
             *
             *                      if (x.id == resource.GetId() && x.references.Count == 0) {
             *
             *                              if (x.loadedObjectId < 0) Object.Destroy(x.loadedObject);
             *                              return true;
             *
             *                      }
             *
             *                      return false;
             *
             *              });
             *
             *      }
             *
             * }*/

            if (resetController == true)
            {
                var image  = resourceController as IImageComponent;
                var source = image.GetImageSource();
                if (source != null)
                {
                    image.ResetImage();
                    resource.Unload(source.sprite);
                }
                else
                {
                    var sourceRaw = image.GetRawImageSource();
                    if (sourceRaw != null)
                    {
                        image.ResetImage();
                        resource.Unload(sourceRaw.texture);
                    }
                }
            }
        }