using System; namespace ET { [FriendClass(typeof(DBManagerComponent))] public static class DBManagerComponentSystem { [ObjectSystem] public class DBManagerComponentAwakeSystem: AwakeSystem { public override void Awake(DBManagerComponent self) { DBManagerComponent.Instance = self; } } [ObjectSystem] public class DBManagerComponentDestroySystem: DestroySystem { 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(startZoneConfig.DBConnection, startZoneConfig.DBName, zone); self.DBComponents[zone] = dbComponent; return dbComponent; } } }