private void Awake() { ModLogger = Logger; // Don't know how to create/use an asset bundle, or don't have a unity project set up? // Look here for info on how to set these up: https://github.com/KomradeSpectre/AetheriumMod/blob/rewrite-master/Tutorials/Item%20Mod%20Creation.md#unity-project using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ItemModCreationBoilerplate.my_assetbundlefile")) { MainAssets = AssetBundle.LoadFromStream(stream); } //This section automatically scans the project for all artifacts var ArtifactTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(ArtifactBase))); foreach (var artifactType in ArtifactTypes) { ArtifactBase artifact = (ArtifactBase)Activator.CreateInstance(artifactType); if (ValidateArtifact(artifact, Artifacts)) { artifact.Init(Config); } } //This section automatically scans the project for all items 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); } } //this section automatically scans the project for all equipment 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); } } //this section automatically scans the project for all elite equipment var EliteEquipmentTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(EliteEquipmentBase))); foreach (var eliteEquipmentType in EliteEquipmentTypes) { EliteEquipmentBase eliteEquipment = (EliteEquipmentBase)System.Activator.CreateInstance(eliteEquipmentType); if (ValidateEliteEquipment(eliteEquipment, EliteEquipments)) { eliteEquipment.Init(Config); } } }
public void AddToAssembly() { //This section automatically scans the project for all artifacts var ArtifactTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(ArtifactBase))); foreach (var artifactType in ArtifactTypes) { ArtifactBase artifact = (ArtifactBase)Activator.CreateInstance(artifactType); if (ValidateArtifact(artifact, Artifacts)) { artifact.Init(Config); } } //This section automatically scans the project for all items 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); } } //this section automatically scans the project for all equipment 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); } } //this section automatically scans the project for all elite equipment var EliteEquipmentTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(EliteEquipmentBase))); foreach (var eliteEquipmentType in EliteEquipmentTypes) { EliteEquipmentBase eliteEquipment = (EliteEquipmentBase)System.Activator.CreateInstance(eliteEquipmentType); if (ValidateEliteEquipment(eliteEquipment, EliteEquipments)) { eliteEquipment.Init(Config); } } //this section automatically scans the project for all elite equipment var ControllerTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => !type.IsAbstract && type.IsSubclassOf(typeof(ControllerBase))); foreach (var controllerType in ControllerTypes) { ControllerBase controllerBase = (ControllerBase)System.Activator.CreateInstance(controllerType); controllerBase.Init(Config); } }
/// <summary> /// A helper to easily set up and initialize an elite equipment from your elite equipment classes if the user has it enabled in their configuration files. /// </summary> /// <param name="eliteEquipment">A new instance of an EliteEquipmentBase class.</param> /// <param name="eliteEquipmentList">The list you would like to add this to if it passes the config check.</param> /// <returns></returns> public bool ValidateEliteEquipment(EliteEquipmentBase eliteEquipment, List <EliteEquipmentBase> eliteEquipmentList) { var enabled = Config.Bind <bool>("Equipment: " + eliteEquipment.EliteEquipmentName, "Enable Elite Equipment?", true, "Should this elite equipment appear in runs? If disabled, the associated elite will not appear in runs either.").Value; if (enabled) { eliteEquipmentList.Add(eliteEquipment); return(true); } return(false); }