/// <summary> /// <para>Creates a new <see cref="CustomItem"/> with the specified <paramref name="id"/>, <paramref name="sprite"/>, <paramref name="name"/> and <paramref name="description"/>.</para> /// </summary> public static CustomItem CreateCustomItem(string id, Sprite sprite, bool unlockedFromStart, CustomNameInfo name, CustomNameInfo description, Action <InvItem> setupDetails) { CustomItem customItem = GetCustomItem(id); if (customItem != null) { string message = string.Concat("A CustomItem with Id \"", id, "\" already exists!"); Logger.LogError(message); throw new ArgumentException(message, nameof(id)); } CustomItems.Add(customItem = new CustomItem(id, CreateCustomName(id, "Item", name), CreateCustomName(id, "Description", description) )); customItem.Unlocked = unlockedFromStart; customItem.Sprite = sprite; customItem.SetupDetails = setupDetails; sprite.name = id; PluginInstance.Setup(customItem); Logger.LogDebug(string.Concat("A CustomItem with Id \"", id, "\" was created.")); return(customItem); }
private async void OnAddCustomItemExecute() { var dialogResult = await _messageDialogService.ShowInputMessageAsync(this, "Nowe pole zdefiniowane...", "Podaj nazwę nowego pola:"); if (!String.IsNullOrWhiteSpace(dialogResult)) { var wrappedCustomItem = new CustomItemWrapper(new CustomItem() { HardwareTypeId = SelectedHardwareType.Model.Id }); wrappedCustomItem.PropertyChanged += WrappedCustomItem_PropertyChanged; _customItemRepository.Add(wrappedCustomItem.Model); CustomItems.Add(wrappedCustomItem); wrappedCustomItem.Key = dialogResult; } }
private async Task LoadCustomItems() { foreach (var wrappedItem in CustomItems) { wrappedItem.PropertyChanged -= WrappedCustomItem_PropertyChanged; } CustomItems.Clear(); var customItems = await _customItemRepository.GetCustomItemsByHardwareTypeAsync(SelectedHardwareType.Id); foreach (var item in customItems) { var wrappedModel = new CustomItemWrapper(item); wrappedModel.PropertyChanged += WrappedCustomItem_PropertyChanged; if (CustomItems.Contains(wrappedModel)) { continue; } CustomItems.Add(wrappedModel); } }