public void Save(MapId id, PSLM model) { string file = Path.Combine(MapFolderPath, id.ToInternalFileName()); using (var bw = new BinaryWriter(File.Create(file))) { model.WriteTo(bw); } }
public override void Initialise(IServiceGetter modServices) { base.Initialise(modServices); _service = modServices.Get <IMapService>(); _nestedVm = modServices.Get <IMapViewModel>(); var mapComboItems = _service.GetMapIds().Select(i => new SelectorComboBoxItem((int)i, i.ToString())).ToList(); _viewModel = new SelectorViewModelWithoutScroll(mapComboItems, _nestedVm, id => { _currentMap = _service.Retrieve((MapId)id); _nestedVm.SetModel(_currentMap); }, id => _service.GetMapIds().Select(i => (int)i).Contains(id)); }
public void SetModel(PSLM model) { Map = model; Gimmicks.Clear(); PokemonPositions.Clear(); foreach (var gimmick in Map.GimmickSection.Items.Select(i => new MapGimmickViewModel(this, i))) { Gimmicks.Add(gimmick); } for (int i = 0; i < Map.PositionSection.Positions.Length; i++) { PokemonPositions.Add(new MapPokemonPositionViewModel(this, Map.PositionSection.Positions, i)); } Draw(); }
public void IdenticalThroughLoadSaveCycle() { foreach (var file in Directory.GetFiles(Path.Combine(TestConstants.TestModFolder, RanseiLink.Core.Services.Constants.MapFolderPath))) { var unchangedBytes = File.ReadAllBytes(file); string temp = Path.GetTempFileName(); PSLM map; using (var br = new BinaryReader(File.OpenRead(file))) { map = new PSLM(br); } using (var bw = new BinaryWriter(File.Create(temp))) { map.WriteTo(bw); } var shouldBeUnchangedBytes = File.ReadAllBytes(temp); File.Delete(temp); shouldBeUnchangedBytes.Should().Equal(unchangedBytes); } }