Beispiel #1
0
        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));
        }
Beispiel #7
0
        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));
        }
Beispiel #8
0
        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));
        }
    }
Beispiel #10
0
        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);
        }
Beispiel #11
0
 public RestorableMaterial(RestorableMaterial resMat) : base(resMat)
 {
     textureNames = resMat.textureNames;
 }