private bool OnReloadShaders()
        {
            var success = true;

            _shader?.Dispose();
            _shader = (ShaderProgram)_mod.RegisterShader("deferredlighting", ref success);

            return(success);
        }
        private bool ReloadShaders()
        {
            var success = true;

            for (var i = 0; i < _shaders.Length; ++i)
            {
                _shaders[i]?.Dispose();
                _shaders[i] = null;
            }

            _shaders[(int)EnumSSRShaders.Liquid] = _mod.RegisterShader("ssrliquid", ref success);

            _shaders[(int)EnumSSRShaders.Opaque] = _mod.RegisterShader("ssropaque", ref success);
            ((ShaderProgram)_shaders[(int)EnumSSRShaders.Opaque])
            .SetCustomSampler("terrainTexLinear", true);

            _shaders[(int)EnumSSRShaders.Transparent] = _mod.RegisterShader("ssrtransparent", ref success);

            _shaders[(int)EnumSSRShaders.Topsoil] = _mod.RegisterShader("ssrtopsoil", ref success);

            _shaders[(int)EnumSSRShaders.Out] = _mod.RegisterShader("ssrout", ref success);

            _shaders[(int)EnumSSRShaders.Caustics] = _mod.RegisterShader("ssrcausticsout", ref success);

            return(success);
        }