public static PLCaptainsChair CreateCaptainsChair(int Subtype, int level) { PLCaptainsChair InCaptainsChair; if (Subtype >= Instance.VanillaCaptainsChairMaxType) { InCaptainsChair = new PLCaptainsChair(ECaptainsChairType.E_MAX, level); int subtypeformodded = Subtype - Instance.VanillaCaptainsChairMaxType; if (subtypeformodded <= Instance.CaptainsChairTypes.Count && subtypeformodded > -1) { CaptainsChairMod CaptainsChairType = Instance.CaptainsChairTypes[Subtype - Instance.VanillaCaptainsChairMaxType]; InCaptainsChair.SubType = Subtype; InCaptainsChair.Name = CaptainsChairType.Name; InCaptainsChair.Desc = CaptainsChairType.Description; InCaptainsChair.m_IconTexture = CaptainsChairType.IconTexture; InCaptainsChair.m_MarketPrice = CaptainsChairType.MarketPrice; InCaptainsChair.CargoVisualPrefabID = CaptainsChairType.CargoVisualID; InCaptainsChair.CanBeDroppedOnShipDeath = CaptainsChairType.CanBeDroppedOnShipDeath; InCaptainsChair.Experimental = CaptainsChairType.Experimental; InCaptainsChair.Unstable = CaptainsChairType.Unstable; InCaptainsChair.Contraband = CaptainsChairType.Contraband; InCaptainsChair.Price_LevelMultiplierExponent = CaptainsChairType.Price_LevelMultiplierExponent; } } else { InCaptainsChair = new PLCaptainsChair((ECaptainsChairType)Subtype, level); } return(InCaptainsChair); }
CaptainsChairModManager() { VanillaCaptainsChairMaxType = Enum.GetValues(typeof(ECaptainsChairType)).Length; Logger.Info($"MaxTypeint = {VanillaCaptainsChairMaxType - 1}"); foreach (PulsarMod mod in ModManager.Instance.GetAllMods()) { Assembly asm = mod.GetType().Assembly; Type CaptainsChairMod = typeof(CaptainsChairMod); foreach (Type t in asm.GetTypes()) { if (CaptainsChairMod.IsAssignableFrom(t) && !t.IsInterface && !t.IsAbstract) { Logger.Info("Loading CaptainsChair from assembly"); CaptainsChairMod CaptainsChairModHandler = (CaptainsChairMod)Activator.CreateInstance(t); if (GetCaptainsChairIDFromName(CaptainsChairModHandler.Name) == -1) { CaptainsChairTypes.Add(CaptainsChairModHandler); Logger.Info($"Added CaptainsChair: '{CaptainsChairModHandler.Name}' with ID '{GetCaptainsChairIDFromName(CaptainsChairModHandler.Name)}'"); } else { Logger.Info($"Could not add CaptainsChair from {mod.Name} with the duplicate name of '{CaptainsChairModHandler.Name}'"); } } } } }