/// <summary> /// Finishes the item setup, adds it to the item databases, adds an encounter trackable /// blah, blah, blah /// </summary> public static void SetupItem(this PickupObject item, string shortDesc, string longDesc, string idPool = "psm") { try { item.encounterTrackable = null; ETGMod.Databases.Items.SetupItem(item, item.name); SpriteBuilder.AddToAmmonomicon(item.sprite.GetCurrentSpriteDef()); item.encounterTrackable.journalData.AmmonomiconSprite = item.sprite.GetCurrentSpriteDef().name; item.SetName(item.name); item.SetShortDescription(shortDesc); item.SetLongDescription(longDesc); if (item is PlayerItem) { (item as PlayerItem).consumable = false; } Gungeon.Game.Items.Add(idPool + ":" + item.name.ToLower().Replace(" ", "_"), item); AddedItems.Add(item); ETGMod.Databases.Items.Add(item); } catch (Exception e) { ETGModConsole.Log(e.Message); ETGModConsole.Log(e.StackTrace); } }
private void CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { if (e.NewItems != null) { if (AddedItems == null) { AddedItems = new List <object>(e.NewItems.Count); } foreach (var item in e.NewItems) { AddedItems.Add(item); } } if (e.OldItems != null) { if (RemovedItems == null) { RemovedItems = new List <object>(e.OldItems.Count); } foreach (var item in e.OldItems) { RemovedItems.Add(item); } } }
private void RaiseLanguageAddInteractionRequest() { var item = new GeneralLanguage(); if (RaiseLanguageEditInteractionRequest(item, "Create Language".Localize())) { AddedItems.Add(item); InnerItems.Add(item); } }
/// <summary> /// Rebuild the binding chain to establish property change monitoring, /// additionally setting up collection change event listening on the /// source object (if it is a collection) /// </summary> public override void RefreshBinding() { base.RefreshBinding(); object newValue = GetBoundValue(); if (newValue != _Collection) { // Remove collectionchanged event watcher: if (_Collection != null) { _Collection.CollectionChanged -= CollectionChanged; if (_Collection is IEnumerable) { // Remove items from the old collection: var enumerable = (IEnumerable)_Collection; if (RemovedItems == null) { RemovedItems = new List <object>(); } foreach (var item in enumerable) { RemovedItems.Add(item); } } } // Add collectionchanged event watcher: if (newValue != null && newValue is INotifyCollectionChanged) { var newCollection = (INotifyCollectionChanged)newValue; newCollection.CollectionChanged += CollectionChanged; _Collection = newCollection; if (newCollection is IEnumerable) { // Add items from the new collection: var enumerable = (IEnumerable)newCollection; if (AddedItems == null) { AddedItems = new List <object>(); } foreach (var item in enumerable) { AddedItems.Add(item); } } } else { _Collection = null; } } }
public void Add(T item) { item.PropertyChanged += OnPropertyChanged; AddedItems.Add(item); InnerItems.Add(item); }