Exemplo n.º 1
0
 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");
        }
Exemplo n.º 4
0
 public bool CanCreatedRelatedSolutionItem(RelatedSolutionItem related)
 {
     return(related.Type == RelatedSolutionItem.RelatedType.CreatureEntry);
 }
Exemplo n.º 5
0
 public Task <ISolutionItem?> CreateRelatedSolutionItem(RelatedSolutionItem related)
 {
     return(Task.FromResult <ISolutionItem>(
                new SmartScriptSolutionItem((int)related.Entry, SmartScriptType.Creature)));
 }