예제 #1
0
 public TrinityMySqlDatabaseProvider(IDatabaseSettingsProvider settings,
                                     DatabaseLogger databaseLogger,
                                     ICurrentCoreVersion currentCoreVersion)
 {
     this.currentCoreVersion = currentCoreVersion;
     DataConnection.TurnTraceSwitchOn();
     DataConnection.WriteTraceLine  = databaseLogger.Log;
     DataConnection.DefaultSettings = new MySqlSettings(settings.Settings);
 }
예제 #2
0
 public SkyFireMySqlDatabaseProvider(IWorldDatabaseSettingsProvider settings,
                                     IAuthDatabaseSettingsProvider authSettings,
                                     DatabaseLogger databaseLogger,
                                     ICurrentCoreVersion currentCoreVersion)
 {
     this.currentCoreVersion = currentCoreVersion;
     DataConnection.TurnTraceSwitchOn();
     DataConnection.WriteTraceLine  = databaseLogger.Log;
     DataConnection.DefaultSettings = new MySqlWorldSettings(settings.Settings, authSettings.Settings);
 }
 public TrinityCoreSmartScriptExporter(ISmartFactory smartFactory,
                                       ISmartDataManager smartDataManager,
                                       ICurrentCoreVersion currentCoreVersion,
                                       IConditionQueryGenerator conditionQueryGenerator)
 {
     this.smartFactory            = smartFactory;
     this.smartDataManager        = smartDataManager;
     this.currentCoreVersion      = currentCoreVersion;
     this.conditionQueryGenerator = conditionQueryGenerator;
 }
예제 #4
0
 public WizardsMenuItemProvider(IEnumerable <IWizardProvider> wizards,
                                ICurrentCoreVersion currentCoreVersion,
                                IDocumentManager documentManager)
 {
     this.documentManager = documentManager;
     foreach (var wizard in wizards.Where(w => w.IsCompatibleWithCore(currentCoreVersion.Current)))
     {
         SubItems.Add(new ModuleMenuItem(wizard.Name, new DelegateCommand(async() =>
         {
             var document = await wizard.Create();
             documentManager.OpenDocument(document);
         })));
     }
 }
예제 #5
0
 public TrinityCoreSmartScriptExporter(ISmartFactory smartFactory,
                                       ISmartDataManager smartDataManager,
                                       ICurrentCoreVersion currentCoreVersion,
                                       ISolutionItemNameRegistry nameRegistry,
                                       IDatabaseProvider databaseProvider,
                                       IConditionQueryGenerator conditionQueryGenerator)
 {
     this.smartFactory            = smartFactory;
     this.smartDataManager        = smartDataManager;
     this.currentCoreVersion      = currentCoreVersion;
     this.nameRegistry            = nameRegistry;
     this.databaseProvider        = databaseProvider;
     this.conditionQueryGenerator = conditionQueryGenerator;
 }
예제 #6
0
        public NewItemDialogViewModel(ISolutionItemProvideService provider, ICurrentCoreVersion currentCore)
        {
            Dictionary <string, NewItemPrototypeGroup> groups = new();

            Categories = new ObservableCollection <NewItemPrototypeGroup>();

            bool coreIsSpecific = currentCore.IsSpecified;

            foreach (var item in provider.All)
            {
                if (!groups.TryGetValue(item.GetGroupName(), out var group))
                {
                    group = new NewItemPrototypeGroup(item.GetGroupName());
                    groups[item.GetGroupName()] = group;
                    Categories.Add(group);
                }

                bool isCompatible = item.IsCompatibleWithCore(currentCore.Current);

                if (!isCompatible && coreIsSpecific)
                {
                    continue;
                }

                var info = new NewItemPrototypeInfo(item, isCompatible);
                group.Add(info);
            }

            Accept = new DelegateCommand(() =>
            {
                CloseOk?.Invoke();
            });
            Cancel = new DelegateCommand(() =>
            {
                CloseCancel?.Invoke();
            });

            Categories.RemoveIf(c => c.Count == 0);

            if (Categories.Count > 0)
            {
                SelectedCategory = Categories[0];
            }

            if (Categories.Count > 0 && Categories[0].Count > 0)
            {
                SelectedPrototype = Categories[0][0];
            }
        }
예제 #7
0
    public DatabaseResolver(ICurrentCoreVersion core,
                            Lazy <TrinityWrathMySqlDatabaseProvider> tcWrath,
                            Lazy <TrinityCataMySqlDatabaseProvider> tcCata,
                            Lazy <TrinityMasterMySqlDatabaseProvider> tcMaster,
                            Lazy <AzerothhMySqlDatabaseProvider> azeroth)
    {
        switch (core.Current.Tag)
        {
        case "Azeroth":
        {
            var db = azeroth.Value;
            auth  = db;
            world = db;
            break;
        }

        case "TrinityWrath":
        {
            var db = tcWrath.Value;
            auth  = db;
            world = db;
            break;
        }

        case "TrinityCata":
        {
            var db = tcCata.Value;
            auth  = db;
            world = db;
            break;
        }

        case "TrinityMaster":
        {
            var db = tcMaster.Value;
            auth  = db;
            world = db;
            break;
        }

        default:
        {
            var db = tcWrath.Value;
            auth  = db;
            world = db;
            return;
        }
        }
    }
예제 #8
0
        public SolutionItemProviderService(IEnumerable <ISolutionItemProvider> items,
                                           IEnumerable <ISolutionItemProviderProvider> providers,
                                           ICurrentCoreVersion coreVersion)
        {
            All = items.Concat(providers.SelectMany(p => p.Provide())).ToList();

            AllCompatible = All
                            .Where(i => i.IsCompatibleWithCore(coreVersion.Current))
                            .ToList();

            relatedCreators = AllCompatible
                              .Where(c => c is IRelatedSolutionItemCreator)
                              .Cast <IRelatedSolutionItemCreator>()
                              .ToList();
        }
        public NewItemDialogViewModel(IEnumerable <ISolutionItemProvider> items,
                                      ICurrentCoreVersion coreVersion)
        {
            ItemPrototypes = new ObservableCollection <NewItemPrototypeInfo>();

            foreach (var item in items.Where(i => i.IsCompatibleWithCore(coreVersion.Current)))
            {
                ItemPrototypes.Add(new NewItemPrototypeInfo(item));
            }

            Accept = new DelegateCommand(() =>
            {
                CloseOk?.Invoke();
            });
        }
        public ConditionDataProvider(IConditionDataJsonProvider provider,
                                     IConditionDataSerializationProvider serializationProvider,
                                     ICurrentCoreVersion currentCoreVersion)
        {
            this.provider = provider;
            this.serializationProvider = serializationProvider;

            var currentTag = currentCoreVersion.Current.Tag;

            conditions = serializationProvider
                         .DeserializeConditionData <ConditionJsonData>(provider.GetConditionsJson())
                         .Where(c => c.Tags == null || c.Tags.Contains(currentTag))
                         .ToList();
            conditionSources = serializationProvider.DeserializeConditionData <ConditionSourcesJsonData>(provider.GetConditionSourcesJson());
            conditionGroups  = serializationProvider.DeserializeConditionData <ConditionGroupsJsonData>(provider.GetConditionGroupsJson());
        }
 public ExporterHelper(SmartScript script,
                       IDatabaseProvider databaseProvider,
                       ISmartScriptSolutionItem item,
                       ISmartScriptExporter scriptExporter,
                       ICurrentCoreVersion currentCoreVersion,
                       ISolutionItemNameRegistry nameProvider,
                       IConditionQueryGenerator conditionQueryGenerator)
 {
     this.script                  = script;
     this.databaseProvider        = databaseProvider;
     this.item                    = item;
     this.scriptExporter          = scriptExporter;
     this.currentCoreVersion      = currentCoreVersion;
     this.conditionQueryGenerator = conditionQueryGenerator;
     this.nameProvider            = nameProvider;
 }
예제 #12
0
        public SmartFactory(IParameterFactory parameterFactory,
                            ISmartDataManager smartDataManager,
                            IDatabaseProvider databaseProvider,
                            IConditionDataManager conditionDataManager,
                            ITableEditorPickerService tableEditorPickerService,
                            IItemFromListProvider itemFromListProvider,
                            ICurrentCoreVersion currentCoreVersion,
                            IQuestEntryProviderService questEntryProviderService,
                            IContainerProvider containerProvider)
        {
            this.parameterFactory     = parameterFactory;
            this.smartDataManager     = smartDataManager;
            this.conditionDataManager = conditionDataManager;
            this.currentCoreVersion   = currentCoreVersion;

            if (!parameterFactory.IsRegisteredLong("StoredTargetParameter"))
            {
                parameterFactory.Register("GossipMenuOptionParameter", new GossipMenuOptionParameter(databaseProvider, tableEditorPickerService, itemFromListProvider));
                parameterFactory.Register("CreatureTextParameter", new CreatureTextParameter(databaseProvider, tableEditorPickerService, itemFromListProvider));
                parameterFactory.Register("QuestStarterParameter", new QuestStarterEnderParameter(databaseProvider, tableEditorPickerService, questEntryProviderService, true));
                parameterFactory.Register("QuestEnderParameter", new QuestStarterEnderParameter(databaseProvider, tableEditorPickerService, questEntryProviderService, false));
                parameterFactory.Register("CreatureSpawnKeyParameter", new CreatureSpawnKeyParameter(databaseProvider));
                parameterFactory.Register("GameobjectSpawnKeyParameter", new GameObjectSpawnKeyParameter(databaseProvider));
                parameterFactory.Register("StoredTargetParameter", containerProvider.Resolve <VariableContextualParameter>(
                                              (typeof(GlobalVariableType), GlobalVariableType.StoredTarget), (typeof(string), "storedTarget")));
                parameterFactory.Register("DataVariableParameter", containerProvider.Resolve <VariableContextualParameter>(
                                              (typeof(GlobalVariableType), GlobalVariableType.DataVariable), (typeof(string), "data")));
                parameterFactory.Register("TimedEventParameter", containerProvider.Resolve <VariableContextualParameter>(
                                              (typeof(GlobalVariableType), GlobalVariableType.TimedEvent), (typeof(string), "timedEvent")));
                parameterFactory.Register("DoActionParameter", containerProvider.Resolve <VariableContextualParameter>(
                                              (typeof(GlobalVariableType), GlobalVariableType.Action), (typeof(string), "action")));
                parameterFactory.Register("DoFunctionParameter", containerProvider.Resolve <VariableContextualParameter>(
                                              (typeof(GlobalVariableType), GlobalVariableType.Function), (typeof(string), "function")));
                parameterFactory.Register("StoredPointParameter", containerProvider.Resolve <VariableContextualParameter>(
                                              (typeof(GlobalVariableType), GlobalVariableType.StoredPoint), (typeof(string), "storedPoint")));
                parameterFactory.Register("DatabasePointParameter", containerProvider.Resolve <VariableContextualParameter>(
                                              (typeof(GlobalVariableType), GlobalVariableType.DatabasePoint), (typeof(string), "databasePoint")));
            }
        }
예제 #13
0
        public SmartDataProvider(ISmartRawDataProvider smartRawDataProvider,
                                 ICurrentCoreVersion coreVersion)
        {
            this.coreVersion = coreVersion;

            actions = smartRawDataProvider.GetActions().Where(IsSmartValidForCore).ToList();
            events  = smartRawDataProvider.GetEvents().Where(IsSmartValidForCore).ToList();
            targets = smartRawDataProvider.GetTargets().Where(IsSmartValidForCore).ToList();

            var actionKeys = actions.Select(g => g.Name).ToHashSet();
            var eventKeys  = events.Select(g => g.Name).ToHashSet();
            var targetKeys = targets.Select(g => g.Name).ToHashSet();

            eventsGroups = smartRawDataProvider.GetEventsGroups().Select(group =>
                                                                         new SmartGroupsJsonData()
            {
                Name    = group.Name,
                Members = group.Members.Where(name => eventKeys.Contains(name)).ToList()
            })
                           .ToList();

            actionsGroups = smartRawDataProvider.GetActionsGroups().Select(group =>
                                                                           new SmartGroupsJsonData()
            {
                Name    = group.Name,
                Members = group.Members.Where(name => actionKeys.Contains(name)).ToList()
            })
                            .ToList();

            targetsGroups = smartRawDataProvider.GetTargetsGroups().Select(group =>
                                                                           new SmartGroupsJsonData()
            {
                Name    = group.Name,
                Members = group.Members.Where(name => targetKeys.Contains(name)).ToList()
            })
                            .ToList();
        }
예제 #14
0
 public SmartDataJsonProvider(ICurrentCoreVersion currentCoreVersion)
 {
     this.currentCoreVersion = currentCoreVersion;
 }
 public ParametersEditViewModel(IItemFromListProvider itemFromListProvider,
     ICurrentCoreVersion currentCoreVersion,
     SmartBaseElement element,
     bool focusFirst,
     IEnumerable<(ParameterValueHolder<long> parameter, string name)>? parameters,
 public TrinityWrathMySqlDatabaseProvider(IWorldDatabaseSettingsProvider settings, IAuthDatabaseSettingsProvider authSettings, DatabaseLogger databaseLogger, ICurrentCoreVersion currentCoreVersion) : base(settings, authSettings, databaseLogger, currentCoreVersion)
 {
 }
 public ConditionDataJsonProvider(ICurrentCoreVersion currentCoreVersion)
 {
     this.currentCoreVersion = currentCoreVersion;
 }
 public TrinityStringSqlGenerator(ICurrentCoreVersion currentCoreVersion)
 {
     this.currentCoreVersion = currentCoreVersion;
 }