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(); }); }
public override void OnRegister() { RoomsFetchedSignal.AddListener(OnRoomsFetched); }