Start business management from menu

This commit is contained in:
hydrant
2018-11-25 20:10:39 +01:00
parent 054e9159e1
commit d30930a949
8 changed files with 205 additions and 20 deletions

View File

@@ -10,12 +10,11 @@ namespace reallife_gamemode.Server.Managers
{
class BusinessManager : Script
{
private static List<BusinessBase> businesses;
public static List<BusinessBase> Businesses { get => businesses; }
public static List<BusinessBase> Businesses { get; private set; }
public static void LoadBusinesses()
{
businesses = new List<BusinessBase>();
Businesses = new List<BusinessBase>();
IEnumerable<Type> allTypes = Assembly.GetExecutingAssembly().GetTypes().Where(type => type.IsClass && !type.IsAbstract && type.IsSubclassOf(typeof(BusinessBase)));
foreach (Type item in allTypes)
@@ -23,11 +22,11 @@ namespace reallife_gamemode.Server.Managers
NAPI.Util.ConsoleOutput($"Loading Business {item.Name}");
if (Activator.CreateInstance(item) is BusinessBase o)
{
if (businesses.Any(x => x.Id == o.Id))
if (Businesses.Any(x => x.Id == o.Id))
{
throw new InvalidOperationException($"Double Business ID found: {o.Id} | {o.Name}");
}
businesses.Add(o);
Businesses.Add(o);
o.Setup();
o.Load();
o.Update();
@@ -37,12 +36,12 @@ namespace reallife_gamemode.Server.Managers
public static T GetBusiness<T>() where T : BusinessBase
{
return (T)businesses.Find(b => b.GetType() == typeof(T));
return (T)Businesses.Find(b => b.GetType() == typeof(T));
}
public static BusinessBase GetBusiness(int? id)
{
return businesses.Find(b => b.Id == id);
return Businesses.Find(b => b.Id == id);
}
}
}