public static List <LinkedRenderer> LoadLinkedRenderers(List <string> filepaths)
        {
            CompilerResults       compilationResults = null;
            List <LinkedRenderer> validRenders       = new List <LinkedRenderer>();
            CodeDomProvider       codeProvider       = GetCodeDomProvider();

            try
            {
                CompilerParameters parms = GetParameters("LinkedRenders.dll");
                compilationResults = codeProvider.CompileAssemblyFromFile(parms, filepaths.ToArray());
                Assembly assembly = compilationResults.CompiledAssembly;
                foreach (var type in assembly.ExportedTypes)
                {
                    var rawResult = assembly.CreateInstance(type.ToString());
                    if (rawResult is LinkedRenderer)
                    {
                        LinkedRenderer result = (LinkedRenderer)rawResult;
                        if (result != null)
                        {
                            validRenders.Add(result);
                        }
                    }
                }
                codeProvider.Dispose();
                return(validRenders);
            }
            catch (Exception ex)
            {
                InterpretException(ex, compilationResults, codeProvider);
                codeProvider.Dispose();
                return(validRenders);
            }
        }
        public static void DrawLinked(DevicePanel d, Classes.Scene.EditorEntity _entity)
        {
            if (ProgramBase.IsDebug)
            {
                Call();
            }
            else
            {
                try
                {
                    Call();
                }
                catch (Exception ex)
                {
                    string note  = "This object will no longer render it's linked render until reloaded!";
                    string error = string.Format("Linked Entity Rendering Error on Object {0}:{1}{2}{1}{3}{1}{1}{4})", _entity.Object.Name.Name, Environment.NewLine, ex.Message, ex.StackTrace, note);
                    MessageBox.Show(error);
                    _entity.DoesLinkedRenderHaveErrors = true;
                }
            }


            void Call()
            {
                if (!_entity.DoesLinkedRenderHaveErrors)
                {
                    var structure = new Structures.LinkedEntityRenderProp(d, _entity);
                    if (_entity.CurrentLinkedRender == null)
                    {
                        LinkedRenderer renderer = LinkedEntityRenderers.Where(t => t.GetObjectName() == _entity.Object.Name.Name.ToString()).FirstOrDefault();
                        _entity.CurrentLinkedRender = renderer;
                    }
                    if (_entity.CurrentLinkedRender != null)
                    {
                        _entity.CurrentLinkedRender.Draw(structure);
                    }
                }
            }
        }