public void Restore(IRestoreData restoreData) { var data = restoreData as PostProcessingRestoreData; // Materials must be RestorableMaterial MaterialFactory factory = MaterialPool.Ensure(gameObject).factory; layers.Clear(); foreach (var materialRestoreData in data.layersData) { var material = RestorableMaterial.RestoreMaterialFromData(materialRestoreData, factory); layers.Add(material); } }
static int SetTexture(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 3 && TypeChecker.CheckTypes <string, UnityEngine.Texture>(L, 2)) { Nova.RestorableMaterial obj = (Nova.RestorableMaterial)ToLua.CheckObject <Nova.RestorableMaterial>(L, 1); string arg0 = ToLua.ToString(L, 2); UnityEngine.Texture arg1 = (UnityEngine.Texture)ToLua.ToObject(L, 3); obj.SetTexture(arg0, arg1); return(0); } else if (count == 3 && TypeChecker.CheckTypes <int, UnityEngine.Texture>(L, 2)) { Nova.RestorableMaterial obj = (Nova.RestorableMaterial)ToLua.CheckObject <Nova.RestorableMaterial>(L, 1); int arg0 = (int)LuaDLL.lua_tonumber(L, 2); UnityEngine.Texture arg1 = (UnityEngine.Texture)ToLua.ToObject(L, 3); obj.SetTexture(arg0, arg1); return(0); } else if (count == 4 && TypeChecker.CheckTypes <string, UnityEngine.RenderTexture, UnityEngine.Rendering.RenderTextureSubElement>(L, 2)) { Nova.RestorableMaterial obj = (Nova.RestorableMaterial)ToLua.CheckObject <Nova.RestorableMaterial>(L, 1); string arg0 = ToLua.ToString(L, 2); UnityEngine.RenderTexture arg1 = (UnityEngine.RenderTexture)ToLua.ToObject(L, 3); UnityEngine.Rendering.RenderTextureSubElement arg2 = (UnityEngine.Rendering.RenderTextureSubElement)ToLua.ToObject(L, 4); obj.SetTexture(arg0, arg1, arg2); return(0); } else if (count == 4 && TypeChecker.CheckTypes <int, UnityEngine.RenderTexture, UnityEngine.Rendering.RenderTextureSubElement>(L, 2)) { Nova.RestorableMaterial obj = (Nova.RestorableMaterial)ToLua.CheckObject <Nova.RestorableMaterial>(L, 1); int arg0 = (int)LuaDLL.lua_tonumber(L, 2); UnityEngine.RenderTexture arg1 = (UnityEngine.RenderTexture)ToLua.ToObject(L, 3); UnityEngine.Rendering.RenderTextureSubElement arg2 = (UnityEngine.Rendering.RenderTextureSubElement)ToLua.ToObject(L, 4); obj.SetTexture(arg0, arg1, arg2); return(0); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to method: Nova.RestorableMaterial.SetTexture")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int SetTexturePath(IntPtr L) { try { ToLua.CheckArgsCount(L, 3); Nova.RestorableMaterial obj = (Nova.RestorableMaterial)ToLua.CheckObject <Nova.RestorableMaterial>(L, 1); string arg0 = ToLua.CheckString(L, 2); string arg1 = ToLua.CheckString(L, 3); obj.SetTexturePath(arg0, arg1); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int GetRestorableMaterial(IntPtr L) { try { ToLua.CheckArgsCount(L, 2); Nova.MaterialPoolComponent obj = (Nova.MaterialPoolComponent)ToLua.CheckObject <Nova.MaterialPoolComponent>(L, 1); string arg0 = ToLua.CheckString(L, 2); Nova.RestorableMaterial o = obj.GetRestorableMaterial(arg0); ToLua.Push(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
public virtual void Restore(IRestoreData restoreData) { var data = restoreData as CompositeSpriteControllerBaseRestoreData; data.transformRestoreData.Restore(transform); color = data.color; if (spriteRenderer != null) { // Material must be RestorableMaterial or DefaultMaterial if (data.materialRestoreData != null) { MaterialFactory factory = MaterialPoolComponent.Ensure(gameObject).factory; spriteRenderer.material = RestorableMaterial.RestoreMaterialFromData(data.materialRestoreData, factory); } else { spriteRenderer.material = MaterialPoolComponent.Ensure(gameObject).defaultMaterial; } } RenderQueueOverrider.Ensure(gameObject).renderQueue = data.renderQueue; if (data.currentImageName == currentImageName) { return; } if (!string.IsNullOrEmpty(data.currentImageName)) { string[] parts = StringToPoseArray(data.currentImageName); if (parts.Length == 1) { SetImage(data.currentImageName, fade: false); } else { SetPose(parts, fade: false); } } else { ClearImage(fade: false); } }
public virtual IRestoreData GetRestoreData() { // Material must be RestorableMaterial or DefaultMaterial MaterialRestoreData materialRestoreData; if (spriteRenderer != null && spriteRenderer.sharedMaterial is RestorableMaterial) { materialRestoreData = RestorableMaterial.GetRestoreData(spriteRenderer.sharedMaterial); } else { materialRestoreData = null; } int renderQueue = RenderQueueOverrider.Ensure(gameObject).renderQueue; return(new CompositeSpriteControllerBaseRestoreData(currentImageName, transform, color, materialRestoreData, renderQueue)); }
public IRestoreData GetRestoreData() { // Materials must be RestorableMaterial var layersData = new List <List <MaterialRestoreData> >(); foreach (var layer in layers) { var layerData = new List <MaterialRestoreData>(); foreach (var material in layer) { if (material is RestorableMaterial) { layerData.Add(RestorableMaterial.GetRestoreData(material)); } } layersData.Add(layerData); } return(new PostProcessingRestoreData(layersData, layersEnabledUntil)); }
public void Restore(IRestoreData restoreData) { var data = restoreData as PostProcessingRestoreData; // Materials must be RestorableMaterial MaterialFactory factory = MaterialPoolComponent.Ensure(gameObject).factory; layers.Clear(); foreach (var layerData in data.layersData) { var layer = new List <Material>(); foreach (var materialRestoreData in layerData) { var material = RestorableMaterial.RestoreMaterialFromData(materialRestoreData, factory); layer.Add(material); } layers.Add(layer); } layersEnabledUntil = data.layersEnabledUntil; }
static int _CreateNova_RestorableMaterial(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 1 && TypeChecker.CheckTypes <UnityEngine.Shader>(L, 1)) { UnityEngine.Shader arg0 = (UnityEngine.Shader)ToLua.ToObject(L, 1); Nova.RestorableMaterial obj = new Nova.RestorableMaterial(arg0); ToLua.Push(L, obj); return(1); } else if (count == 1 && TypeChecker.CheckTypes <UnityEngine.Material>(L, 1)) { UnityEngine.Material arg0 = (UnityEngine.Material)ToLua.ToObject(L, 1); Nova.RestorableMaterial obj = new Nova.RestorableMaterial(arg0); ToLua.Push(L, obj); return(1); } else if (count == 1 && TypeChecker.CheckTypes <Nova.RestorableMaterial>(L, 1)) { Nova.RestorableMaterial arg0 = (Nova.RestorableMaterial)ToLua.ToObject(L, 1); Nova.RestorableMaterial obj = new Nova.RestorableMaterial(arg0); ToLua.Push(L, obj); return(1); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to ctor method: Nova.RestorableMaterial.New")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
public RestorableMaterial GetRestorableMaterial(string shaderName) { if (restorableMaterials.TryGetValue(shaderName, out var resMat)) { return(resMat); } var shader = Shader.Find(shaderName); if (shader == null) { throw new ArgumentException($"Nova: Shader not found: {shaderName}"); } resMat = new RestorableMaterial(shader) { name = string.Format("Nova:Restorable - {0}", shaderName.Substring(shaderName.LastIndexOf("/", StringComparison.Ordinal) + 1)), hideFlags = HideFlags.DontSave }; restorableMaterials.Add(shaderName, resMat); return(resMat); }
public RestorableMaterial(RestorableMaterial resMat) : base(resMat) { textureNames = resMat.textureNames; }