public static PLExtractor CreateExtractor(int Subtype, int level) { PLExtractor InExtractor; if (Subtype >= Instance.VanillaExtractorMaxType) { InExtractor = new PLExtractor(EExtractorType.E_MAX, level); int subtypeformodded = Subtype - Instance.VanillaExtractorMaxType; if (subtypeformodded <= Instance.ExtractorTypes.Count && subtypeformodded > -1) { ExtractorMod ExtractorType = Instance.ExtractorTypes[Subtype - Instance.VanillaExtractorMaxType]; InExtractor.SubType = Subtype; InExtractor.Name = ExtractorType.Name; InExtractor.Desc = ExtractorType.Description; InExtractor.m_IconTexture = ExtractorType.IconTexture; InExtractor.m_Stability = ExtractorType.Stability; InExtractor.m_MarketPrice = ExtractorType.MarketPrice; InExtractor.CargoVisualPrefabID = ExtractorType.CargoVisualID; InExtractor.CanBeDroppedOnShipDeath = ExtractorType.CanBeDroppedOnShipDeath; InExtractor.Experimental = ExtractorType.Experimental; InExtractor.Unstable = ExtractorType.Unstable; InExtractor.Contraband = ExtractorType.Contraband; InExtractor.Price_LevelMultiplierExponent = ExtractorType.Price_LevelMultiplierExponent; } } else { InExtractor = new PLExtractor((EExtractorType)Subtype, level); } return(InExtractor); }
ExtractorModManager() { VanillaExtractorMaxType = Enum.GetValues(typeof(EExtractorType)).Length; Logger.Info($"MaxTypeint = {VanillaExtractorMaxType - 1}"); foreach (PulsarMod mod in ModManager.Instance.GetAllMods()) { Assembly asm = mod.GetType().Assembly; Type ExtractorMod = typeof(ExtractorMod); foreach (Type t in asm.GetTypes()) { if (ExtractorMod.IsAssignableFrom(t) && !t.IsInterface && !t.IsAbstract) { Logger.Info("Loading Extractor from assembly"); ExtractorMod ExtractorModHandler = (ExtractorMod)Activator.CreateInstance(t); if (GetExtractorIDFromName(ExtractorModHandler.Name) == -1) { ExtractorTypes.Add(ExtractorModHandler); Logger.Info($"Added Extractor: '{ExtractorModHandler.Name}' with ID '{GetExtractorIDFromName(ExtractorModHandler.Name)}'"); } else { Logger.Info($"Could not add Extractor from {mod.Name} with the duplicate name of '{ExtractorModHandler.Name}'"); } } } } }