public static void Init() { var itemTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(s => s.GetTypes()) .Where(p => typeof(IItem).IsAssignableFrom(p) && !p.IsInterface); foreach (var itemType in itemTypes) { IItem instance = (IItem)Activator.CreateInstance(itemType); Items.Add(itemType, instance); } var buildingTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(s => s.GetTypes()) .Where(p => typeof(IIndustryBuilding).IsAssignableFrom(p) && !p.IsInterface); foreach (var buildingType in buildingTypes) { IIndustryBuilding instance = (IIndustryBuilding)Activator.CreateInstance(buildingType); Buildings.Add(buildingType, instance); } }
public IndustryNode(Type productType) { Product = Statics.Items[productType]; ItemsNeeded = Product.GetRecipe(); Building = Statics.Buildings[Product.GetIndustryBuildingType()]; }