コード例 #1
0
ファイル: LevelModel.cs プロジェクト: jcapellman/BattleMech
        public async Task<bool> LoadData() {
            var levelHandler = new LevelHandler(Handler);

            var result = await levelHandler.GetLevelList();

            if (result.HasError) {
                return false;
            }

            LevelListing = new ObservableCollection<LevelListingView>(result.Value);

            SelectedLevel = LevelListing.FirstOrDefault();

            return true;
        }
コード例 #2
0
ファイル: LevelModel.cs プロジェクト: jcapellman/BattleMech
        public async Task<Level> LoadLevel(List<ActiveAssetsVIEW> assets) {
            var levelHandler = new LevelHandler(Handler);

            var result = await levelHandler.GetLevel(SelectedLevel.ID);

            if (result.HasError) {
                return null;
            }

            var level = new Level {
                LevelName = result.Value.Description,
                Objects = new List<LevelObject>()
            };
            
            var levelObjects = JsonConvert.DeserializeObject<List<LevelObjectLite>>(result.Value.LevelData);

            foreach (var item in levelObjects) {
                var asset = assets.FirstOrDefault(a => a.ID == item.AssetID);

                //setup level object's asset info
                var lvlObjAssetInfo = new ActiveAssetsVIEW()
                {
                    AssetTypeID = asset.AssetTypeID,
                    ID = asset.ID,
                    Description = "LevelObject",
                    Filename = asset.Filename.Replace("/Content/", "")
                };

                var nItem = new LevelObject {
                    AssetInfos = new List<ActiveAssetsVIEW>() { lvlObjAssetInfo },
                    PositionX = item.PositionX,
                    PositionY = item.PositionY
                };
                
                level.Objects.Add(nItem);
            }

            return level;
        }