/// <summary> /// Register provider of resolving item state and filling properties. /// </summary> /// <param name="provider">Provider to be registered.</param> public void RegisterItemPropertyProvider(IItemPropertyProvider provider) { if (!ItemPropertyProviders.Contains(provider)) { ItemPropertyProviders.Add(provider); return; } throw new HoardException("Provider already registered"); }
/// <summary> /// Fills properties for given Game Item. /// </summary> /// <param name="item">item to fetch properties for</param> /// <returns></returns> public async Task FetchItemProperties(GameItem item) { //find compatible provider IItemPropertyProvider pp = GetItemPropertyProvider(item); if (pp != null) { await pp.FetchGameItemProperties(item); } throw new HoardException("Fetch game item failed"); }