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); }
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); } } }
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(); * * } * * }*/ }
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 }); } }
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); } }
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()); } }
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(); }
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 static void Unload(ILoadableResource resourceController, ResourceBase resource, bool resetController = true) { WindowSystemResources.instance.Unload_INTERNAL(resourceController, resource, resetController); }
public static object Load(ILoadableResource resource) { return(Load(Path.GetDirectoryName(resource.Source), resource.Data?.ToString( ))); }
private void Load_INTERNAL(ILoadableResource resourceController, System.Action onDataLoaded, System.Action onComplete, string customResourcePath = null) { this.LoadAuto_INTERNAL(resourceController, onDataLoaded, onComplete, customResourcePath); }
public void Contain(ILoadableResource loadable) { m_loadableResources.Add(loadable); }
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); } } }
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); } } } }