Пример #1
0
        /// <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);
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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);
            }
        }