You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
using System; |
|
|
|
namespace ET |
|
{ |
|
[FriendClass(typeof(DBManagerComponent))] |
|
public static class DBManagerComponentSystem |
|
{ |
|
[ObjectSystem] |
|
public class DBManagerComponentAwakeSystem: AwakeSystem<DBManagerComponent> |
|
{ |
|
public override void Awake(DBManagerComponent self) |
|
{ |
|
DBManagerComponent.Instance = self; |
|
} |
|
} |
|
|
|
[ObjectSystem] |
|
public class DBManagerComponentDestroySystem: DestroySystem<DBManagerComponent> |
|
{ |
|
public override void Destroy(DBManagerComponent self) |
|
{ |
|
DBManagerComponent.Instance = null; |
|
} |
|
} |
|
|
|
public static DBComponent GetZoneDB(this DBManagerComponent self, int zone) |
|
{ |
|
DBComponent dbComponent = self.DBComponents[zone]; |
|
if (dbComponent != null) |
|
{ |
|
return dbComponent; |
|
} |
|
|
|
StartZoneConfig startZoneConfig = StartZoneConfigCategory.Instance.Get(zone); |
|
if (startZoneConfig.DBConnection == "") |
|
{ |
|
throw new Exception($"zone: {zone} not found mongo connect string"); |
|
} |
|
|
|
dbComponent = self.AddChild<DBComponent, string, string, int>(startZoneConfig.DBConnection, startZoneConfig.DBName, zone); |
|
self.DBComponents[zone] = dbComponent; |
|
return dbComponent; |
|
} |
|
} |
|
} |