/// <summary> /// Initialises a new instance with the given App Token. Must be called on the /// main thread. /// </summary> /// /// <param name="appToken">The App Token.</param> /// <param name="verboseLogging">Whether or not to enable verbose logging. This is typically only /// enabled while debugging.</param> public ChilliConnectSdk(string appToken, bool verboseLogging) { var logging = new Logging(verboseLogging); m_sdkObject = GameObjectFactory.CreateCoreSdkGameObject(); var taskScheduler = m_sdkObject.GetComponent <TaskScheduler>(); var httpSystem = new HttpSystem(taskScheduler); var serverRequestSystem = new ServerRequestSystem(taskScheduler, httpSystem); var dataStore = new DataStore(); dataStore.Set("AppToken", appToken); PlayerAccounts = new PlayerAccounts(logging, taskScheduler, serverRequestSystem, dataStore); CloudData = new CloudData(logging, taskScheduler, serverRequestSystem, dataStore); Leaderboards = new Leaderboards(logging, taskScheduler, serverRequestSystem, dataStore); CloudCode = new CloudCode(logging, taskScheduler, serverRequestSystem, dataStore); PushNotifications = new PushNotifications(logging, taskScheduler, serverRequestSystem, dataStore); InAppPurchase = new InAppPurchase(logging, taskScheduler, serverRequestSystem, dataStore); Metrics = new Metrics(logging, taskScheduler, serverRequestSystem, dataStore); Catalog = new Catalog(logging, taskScheduler, serverRequestSystem, dataStore); Economy = new Economy(logging, taskScheduler, serverRequestSystem, dataStore); Messaging = new Messaging(logging, taskScheduler, serverRequestSystem, dataStore); LiveOps = new LiveOps(logging, taskScheduler, serverRequestSystem, dataStore); Multiplayer = new Multiplayer(logging, taskScheduler, serverRequestSystem, dataStore); AsyncMultiplayer = new AsyncMultiplayer(logging, taskScheduler, serverRequestSystem, dataStore); }
/// <summary> /// Initialises a new instance of the module with the given logger, task scheduler /// and server request system. /// </summary> /// /// <param name="logging">Provides basic logging functionality.</param> /// <param name="taskScheduler">The system which allows scheduling of tasks on different threads.</param> /// <param name="serverRequestSystem">The system which processes all server requests.</param> /// <param name="dataStore">The data store used for persisting data across the session.</param> public Catalog(Logging logging, TaskScheduler taskScheduler, ServerRequestSystem serverRequestSystem, DataStore dataStore) { ReleaseAssert.IsNotNull(logging, "Logging cannot be null."); ReleaseAssert.IsNotNull(taskScheduler, "Task Scheduler cannot be null."); ReleaseAssert.IsNotNull(serverRequestSystem, "Server Request System cannot be null."); ReleaseAssert.IsNotNull(dataStore, "Data Store cannot be null."); m_logging = logging; m_taskScheduler = taskScheduler; m_serverRequestSystem = serverRequestSystem; m_dataStore = dataStore; }