Example #1
0
        public void DuplicateSelectedItem()
        {
            if (this.SelectedItem == null)
            {
                return;
            }

            var item = (ItemData)this.SelectedItem.Data.Clone();
            var id   = this.NextItemId++;

            Items.ItemViewModel viewModel;
            if (item.GetType() == typeof(ItemData))
            {
                viewModel = new Items.ItemViewModel(id, item);
            }
            else if (item.GetType() == typeof(GearItemData))
            {
                viewModel = new Items.GearItemViewModel(id, (GearItemData)item);
            }
            else if (item.GetType() == typeof(RangedWeaponItemData))
            {
                viewModel = new Items.RangedWeaponItemViewModel(id, (RangedWeaponItemData)item);
            }
            else if (item.GetType() == typeof(PowerItemData))
            {
                viewModel = new Items.PowerItemViewModel(id, (PowerItemData)item);
            }
            else
            {
                throw new NotSupportedException();
            }

            this.Items.Add(viewModel);
            this.SelectedItem = viewModel;
        }
        public void ImportData(PartyMemberSnapshot snapshot, PartyMember data)
        {
            this._Snapshot = snapshot;
            this._Data     = data;

            if (this._Inventory != null)
            {
                if (data.Inventory != null)
                {
                    foreach (var rawItem in data.Inventory.Items)
                    {
                        if (rawItem.DataBytes == null || rawItem.DataLength == 0)
                        {
                            this._Inventory.RawItems.Add(rawItem);
                            continue;
                        }

                        var      bitReader = new BitReader(rawItem.DataBytes, rawItem.DataLength);
                        ItemData item;
                        try
                        {
                            item = InventoryComponent.ReadItemData(bitReader, data.Inventory.ReadVersion);
                        }
                        catch (Exception e)
                        {
                            this._Inventory.RawItems.Add(rawItem);
                            continue;
                        }

                        Items.ItemViewModel viewModel;
                        if (item.GetType() == typeof(ItemData))
                        {
                            viewModel = new Items.ItemViewModel(rawItem.Id, item);
                        }
                        else if (item.GetType() == typeof(GearItemData))
                        {
                            viewModel = new Items.GearItemViewModel(rawItem.Id, (GearItemData)item);
                        }
                        else if (item.GetType() == typeof(RangedWeaponItemData))
                        {
                            viewModel = new Items.RangedWeaponItemViewModel(rawItem.Id, (RangedWeaponItemData)item);
                        }
                        else if (item.GetType() == typeof(PowerItemData))
                        {
                            viewModel = new Items.PowerItemViewModel(rawItem.Id, (PowerItemData)item);
                        }
                        else
                        {
                            this._Inventory.RawItems.Add(rawItem);
                            continue;
                        }
                        this._Inventory.Items.Add(viewModel);
                    }
                }
            }
        }