public void Awake() { using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("LostInTransit.lostintransit_assets")) { MainAssets = AssetBundle.LoadFromStream(stream); } var materialAssets = MainAssets.LoadAllAssets <Material>(); foreach (Material material in materialAssets) { if (!material.shader.name.StartsWith("Stubbed")) { continue; } //Logger.LogInfo(material); var replacementShader = Resources.Load <Shader>(ShaderLookup[material.shader.name.ToLower()]); if (replacementShader) { material.shader = replacementShader; } } var ItemTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(ItemBase))); foreach (var itemType in ItemTypes) { ItemBase item = (ItemBase)System.Activator.CreateInstance(itemType); if (ValidateItem(item, Items)) { item.Init(Config); } } //Material shader autoconversion - thanks Komrade, you're da best! ^^ var EquipmentTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(EquipmentBase))); foreach (var equipmentType in EquipmentTypes) { EquipmentBase equipment = (EquipmentBase)System.Activator.CreateInstance(equipmentType); if (ValidateEquipment(equipment, Equipments)) { equipment.Init(Config); } } var EliteTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(EliteBase))); foreach (var eliteType in EliteTypes) { EliteBase elite = (EliteBase)System.Activator.CreateInstance(eliteType); if (ValidateElites(elite, Elites)) { elite.Init(Config); } } }
public bool ValidateElites(EliteBase elite, List <EliteBase> eliteList) { var enabled = Config.Bind <bool>("Elite: " + elite.EliteName, "Enable Elite?", true, "Should this elite appear in runs?").Value; EliteStatusDictionary.Add(elite, enabled); if (enabled) { eliteList.Add(elite); } return(enabled); }