コード例 #1
0
        internal static void Init()
        {
            AssemblyLoader.LoadedAssembyList _assemblies = AssemblyLoader.loadedAssemblies;
            Type _type = null;

            foreach (var _assembly in _assemblies)
            {
                if (_assembly.name == "ProbeControlRoom")
                {
                    Type[] types = _assembly.assembly.GetExportedTypes();
                    foreach (Type type in types)
                    {
                        if (type.FullName == "ProbeControlRoom.ProbeControlRoom")
                        {
                            _type = type;
                            break;
                        }
                    }
                }
            }
            if (_type != null)
            {
                Instance = Activator.CreateInstance(_type);
                if (Instance != null)
                {
                    Method_startIVA            = _type.GetMethod("startIVA", new Type[] { }, new ParameterModifier[] { });
                    Field_isActive             = _type.GetField("isActive", BindingFlags.Static | BindingFlags.Public);
                    Property_vesselCanStockIVA = _type.GetProperty("vesselCanStockIVA");
                    if (Method_startIVA == null)
                    {
                        Warning("No ProbeControlRoom.startIVA()", "QProbeControlRoom");
                        return;
                    }
                    if (Property_vesselCanStockIVA == null)
                    {
                        Warning("No ProbeControlRoom.vesselCanStockIVA", "QProbeControlRoom");
                        return;
                    }
                    if (Field_isActive == null)
                    {
                        Warning("No ProbeControlRoom.isActive", "QProbeControlRoom");
                        return;
                    }
                    isLoaded = true;
                }
                else
                {
                    Warning("No ProbeControlRoom.Instance", "QProbeControlRoom");
                }
            }
            else
            {
                Warning("No ProbeControlRoom.Assembly", "QProbeControlRoom");
            }
        }
コード例 #2
0
 public static bool needLongWait()
 {
     AssemblyLoader.LoadedAssembyList _assemblies = AssemblyLoader.loadedAssemblies;
     for (int _i = _assemblies.Count - 1; _i >= 0; --_i)
     {
         AssemblyLoader.LoadedAssembly _assembly = _assemblies[_i];
         if (longWait.Contains(_assembly.name))
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #3
0
        void cleanMiniAVC()
        {
            AssemblyLoader.LoadedAssembyList _assemblies = AssemblyLoader.loadedAssemblies;
            for (int _i = _assemblies.Count - 1; _i >= 0; --_i)
            {
                AssemblyLoader.LoadedAssembly _assembly = _assemblies[_i];

                if (_assembly.name.ToLower() == "miniavc")
                {
                    _assembly.Unload();
                    AssemblyLoader.loadedAssemblies.RemoveAt(_i);
                    DoCleanup(_assembly.path);
                }
            }
            FindAllDLLs();
            if (duplicateDlls.Count > 0)
            {
                this.gameObject.AddComponent <IssueGui>();
            }
        }
コード例 #4
0
ファイル: ZeroMiniAVC.cs プロジェクト: Dazpoet/ZeroMiniAVC
 void cleanMiniAVC()
 {
     AssemblyLoader.LoadedAssembyList _assemblies = AssemblyLoader.loadedAssemblies;
     for (int _i = _assemblies.Count - 1; _i >= 0; --_i)
     {
         AssemblyLoader.LoadedAssembly _assembly = _assemblies[_i];
         if (_assembly.name == "MiniAVC")
         {
             _assembly.Unload();
             AssemblyLoader.loadedAssemblies.RemoveAt(_i);
             string _mod       = mod(_assembly.path);
             string _prunePath = _assembly.path + pruneExt;
             if (File.Exists(_prunePath))
             {
                 File.Delete(_prunePath);
             }
             if (prune)
             {
                 File.Move(_assembly.path, _prunePath);
                 ConfigNode _cfgMod = config.AddNode("mod");
                 _cfgMod.AddValue("name", _mod);
                 _cfgMod.AddValue("pruned", _prunePath);
                 screenMsg("MiniAVC pruned for " + _mod);
             }
             else if (delete)
             {
                 File.Delete(_assembly.path);
                 screenMsg("MiniAVC deleted for " + _mod);
             }
             else
             {
                 screenMsg("MiniAVC disabled for " + _mod);
             }
         }
     }
 }