public IEnumerable <IRelatedSolutionItemCreator> GetRelatedCreators(RelatedSolutionItem related) { foreach (var creator in relatedCreators) { if (creator.CanCreatedRelatedSolutionItem(related)) { yield return(creator); } } }
public Task <ISolutionItem?> CreateRelatedSolutionItem(RelatedSolutionItem related) { if (definition.Picker == "GossipMenuParameter" && related.Type == RelatedSolutionItem.RelatedType.CreatureEntry) { var template = databaseProvider.GetCreatureTemplate((uint)related.Entry); if (template == null || template.GossipMenuId == 0) { return(Task.FromResult <ISolutionItem?>(null)); } return(Create(template.GossipMenuId)); } return(Create((uint)related.Entry)); }
public bool CanCreatedRelatedSolutionItem(RelatedSolutionItem related) { if (related.Type == RelatedSolutionItem.RelatedType.CreatureEntry && definition.Picker == "GossipMenuParameter") { var template = databaseProvider.GetCreatureTemplate((uint)related.Entry); return(template != null && template.GossipMenuId != 0); } return(related.Type == RelatedSolutionItem.RelatedType.CreatureEntry && definition.Picker == "CreatureParameter" || related.Type == RelatedSolutionItem.RelatedType.GameobjectEntry && definition.Picker == "GameobjectParameter" || related.Type == RelatedSolutionItem.RelatedType.GossipMenu && definition.Picker == "GossipMenuParameter" || related.Type == RelatedSolutionItem.RelatedType.QuestEntry && definition.Picker == "QuestParameter"); }
public bool CanCreatedRelatedSolutionItem(RelatedSolutionItem related) { return(related.Type == RelatedSolutionItem.RelatedType.CreatureEntry); }
public Task <ISolutionItem?> CreateRelatedSolutionItem(RelatedSolutionItem related) { return(Task.FromResult <ISolutionItem>( new SmartScriptSolutionItem((int)related.Entry, SmartScriptType.Creature))); }