/// <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);
        }
Beispiel #2
0
        /// <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;
        }