Exemplo n.º 1
0
        public override void Execute()
        {
            var args       = Environment.GetCommandLineArgs();
            var configPath = "";

            if (args.Length < 2 || args.ToList().IndexOf("-config") == -1)
            {
                configPath = DefaultConfigPath;
                Debug.LogError("missing config path. Use default instead");
            }
            else
            {
                var configIndex = args.ToList().IndexOf("-config");
                configPath = args[configIndex + 1];
            }


            var configTxt = Resources.Load <TextAsset>(configPath).text;
            var config    = JsonUtility.FromJson <Config>(configTxt);

            Observable.Start(() =>
            {
                var response = "";
                using (var webClient = new WebClient())
                {
                    response = webClient.DownloadString(config.url);
                }

                var serializer = new XmlSerializer(typeof(Data));
                Data roomModel;

                using (TextReader reader = new StringReader(response))
                {
                    roomModel = (Data)serializer.Deserialize(reader);
                }

                Data.Settings = roomModel.Settings;
                Data.Games    = roomModel.Games.Where(p => config.games.Contains(p.GameId)).ToArray();
            }).ObserveOnMainThread().Subscribe(r =>
            {
                var imagesToLoad = Data.Settings.Select(p => p.Value);
                foreach (var imgUrl in imagesToLoad)
                {
                    LoadImageSignal.Dispatch(imgUrl);
                }

                RoomsFetchedSignal.Dispatch();
            });
        }
Exemplo n.º 2
0
 public override void OnRegister()
 {
     RoomsFetchedSignal.AddListener(OnRoomsFetched);
 }