private void Open() { OpenResourcePackRequest.Raise(new Notification { Content = "Open Resource Pack", Title = "Open Resource Pack" }, delegate(INotification notification) { _loadedResourcePackFileName = notification.Content as string; if (_loadedResourcePackFileName == null) { return; } ClearLoadedData(); var resources = _domainService.LoadResourcePack(_loadedResourcePackFileName).ToList(); BGMResources.AddRange(resources.Where(x => x.ResourceType == ResourceType.BGM)); SFXResources.AddRange(resources.Where(x => x.ResourceType == ResourceType.SFX)); CreatureResources.AddRange(resources.Where(x => x.ResourceType == ResourceType.Creature)); IconResources.AddRange(resources.Where(x => x.ResourceType == ResourceType.Icon)); ItemResources.AddRange(resources.Where(x => x.ResourceType == ResourceType.Item)); PortraitResources.AddRange(resources.Where(x => x.ResourceType == ResourceType.Portrait)); TilesetResources.AddRange(resources.Where(x => x.ResourceType == ResourceType.Tileset)); }); }
private void ClearLoadedData() { BGMResources.Clear(); CreatureResources.Clear(); ItemResources.Clear(); SFXResources.Clear(); IconResources.Clear(); PortraitResources.Clear(); TilesetResources.Clear(); }
private void AddOrUpdateResource(ResourceItemData item) { ResourceItemData existing; switch (SelectedTab) { case Tab.BGM: existing = BGMResources.SingleOrDefault(x => x.FileName == item.FileName); if (existing != null) { BGMResources.Remove(existing); } BGMResources.Add(item); break; case Tab.SFX: existing = SFXResources.SingleOrDefault(x => x.FileName == item.FileName); if (existing != null) { SFXResources.Remove(existing); } SFXResources.Add(item); break; case Tab.Creatures: existing = CreatureResources.SingleOrDefault(x => x.FileName == item.FileName); if (existing != null) { CreatureResources.Remove(existing); } CreatureResources.Add(item); break; case Tab.Icons: existing = IconResources.SingleOrDefault(x => x.FileName == item.FileName); if (existing != null) { IconResources.Remove(existing); } IconResources.Add(item); break; case Tab.Items: existing = ItemResources.SingleOrDefault(x => x.FileName == item.FileName); if (existing != null) { ItemResources.Remove(existing); } ItemResources.Add(item); break; case Tab.Portraits: existing = PortraitResources.SingleOrDefault(x => x.FileName == item.FileName); if (existing != null) { PortraitResources.Remove(existing); } PortraitResources.Add(item); break; case Tab.Tilesets: existing = TilesetResources.SingleOrDefault(x => x.FileName == item.FileName); if (existing != null) { TilesetResources.Remove(existing); } TilesetResources.Add(item); break; } }