示例#1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MainWindow"/> class.
        /// </summary>
        /// <param name="plugin">PlayerTrack plugin.</param>
        public MainWindow(PlayerTrackPlugin plugin)
            : base(plugin, "PlayerTrack")
        {
            this.plugin = plugin;

            // set to none on load if left on player detail
            if (this.plugin.Configuration.CurrentView == View.PlayerDetail)
            {
                this.plugin.Configuration.CurrentView = View.None;
                this.plugin.SaveConfig();
            }

            // set window sizes
            this.SetWindowSizes();
            this.Size = this.plugin.Configuration.CurrentView != View.None ?
                        this.MaximizedSize : this.MinimizedSize;

            // set lock state
            if (this.plugin.Configuration.LockWindow)
            {
                this.LockWindow();
            }
            else
            {
                this.UnlockWindow();
            }

            // open window
            this.IsOpen = this.plugin.Configuration.ShowWindow;
        }
示例#2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Panel"/> class.
        /// </summary>
        /// <param name="plugin">PlayerTrack plugin.</param>
        public Panel(PlayerTrackPlugin plugin)
        {
            this.plugin = plugin;

            // set world names for add player
            this.worldNames = PlayerTrackPlugin.DataManager.WorldNames();
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="PlayerDetailWindow"/> class.
        /// </summary>
        /// <param name="plugin">PlayerTrack plugin.</param>
        public PlayerDetailWindow(PlayerTrackPlugin plugin)
            : base(plugin, "PlayerTrack###PlayerDetail")
        {
            this.plugin = plugin;

            // set to none on load if left on player detail
            if (this.plugin.Configuration.CurrentView == View.PlayerDetail)
            {
                this.plugin.Configuration.CurrentView = View.None;
                this.plugin.SaveConfig();
            }

            // set lock state
            if (this.plugin.Configuration.LockWindow)
            {
                this.LockWindow();
            }
            else
            {
                this.UnlockWindow();
            }

            // open window
            this.IsOpen = true;
        }
示例#4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ConfigWindow"/> class.
 /// </summary>
 /// <param name="plugin">PlayerTrack plugin.</param>
 public ConfigWindow(PlayerTrackPlugin plugin)
     : base(plugin, "PlayerTrack Config")
 {
     this.plugin             = plugin;
     this.Size               = new Vector2(1500f, 400f);
     this.SizeCondition      = ImGuiCond.Appearing;
     this.RespectCloseHotkey = true;
 }
示例#5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="VisibilityService"/> class.
 /// </summary>
 /// <param name="plugin">player track plugin.</param>
 public VisibilityService(PlayerTrackPlugin plugin)
 {
     this.plugin             = plugin;
     this.visibilityConsumer = new VisibilityConsumer();
     this.syncTimer          = new Timer {
         Interval = this.plugin.Configuration.SyncWithVisibilityFrequency, Enabled = false
     };
     this.syncTimer.Elapsed += this.SyncTimerOnElapsed;
     if (this.plugin.Configuration.SyncWithVisibility)
     {
         this.IsVisibilityAvailable = this.visibilityConsumer.IsAvailable();
         if (this.IsVisibilityAvailable)
         {
             this.SyncWithVisibility();
         }
     }
 }
示例#6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FCNameColorService"/> class.
 /// </summary>
 /// <param name="plugin">player track plugin.</param>
 public FCNameColorService(PlayerTrackPlugin plugin)
 {
     this.plugin = plugin;
     this.fCNameColorConsumer = new FCNameColorConsumer();
     this.localPlayerRegex    = new Regex(@"^(?<playerName>[^@]*)@(?<playerWorldName>[^ ]*) (?<playerId>[0-9]*)", RegexOptions.Compiled);
     this.freeCompanyRegex    = new Regex(@"^(?<playerId>[^ ]*) (?<freeCompanyId>[^ ]*) (?<freeCompanyName>[^ ]*)", RegexOptions.Compiled);
     this.syncTimer           = new Timer {
         Interval = this.plugin.Configuration.SyncWithFCNameColorFrequency, Enabled = false
     };
     this.syncTimer.Elapsed += this.SyncTimerOnElapsed;
     if (this.plugin.Configuration.SyncWithFCNameColor)
     {
         this.IsFCNameColorAvailable = this.fCNameColorConsumer.IsAvailable();
         if (this.IsFCNameColorAvailable)
         {
             this.SyncWithFCNameColor();
         }
     }
 }
示例#7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WindowManager"/> class.
        /// </summary>
        /// <param name="playerTrackPlugin">PlayerTrack plugin.</param>
        public WindowManager(PlayerTrackPlugin playerTrackPlugin)
        {
            this.Plugin = playerTrackPlugin;

            // create windows
            this.Panel              = new Panel(this.Plugin);
            this.MainWindow         = new MainWindow(this.Plugin);
            this.ConfigWindow       = new ConfigWindow(this.Plugin);
            this.ModalWindow        = new ModalWindow(this.Plugin);
            this.MigrationWindow    = new MigrationWindow(this.Plugin);
            this.PlayerDetailWindow = new PlayerDetailWindow(this.Plugin);

            // setup window system
            this.WindowSystem = new WindowSystem("PlayerTrackWindowSystem");
            this.WindowSystem.AddWindow(this.MigrationWindow);

            // add event listeners
            PlayerTrackPlugin.PluginInterface.UiBuilder.Draw         += this.Draw;
            PlayerTrackPlugin.PluginInterface.UiBuilder.OpenConfigUi += this.OpenConfigUi;
        }
示例#8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PluginCommandManager"/> class.
 /// </summary>
 /// <param name="plugin">plugin.</param>
 public PluginCommandManager(PlayerTrackPlugin plugin)
 {
     this.plugin = plugin;
     PlayerTrackPlugin.CommandManager.AddHandler("/ptrack", new CommandInfo(this.TogglePlayerTrack)
     {
         HelpMessage = "Show/hide PlayerTrack.",
         ShowInHelp  = true,
     });
     PlayerTrackPlugin.CommandManager.AddHandler("/ptrackconfig", new CommandInfo(this.TogglePlayerTrackConfig)
     {
         HelpMessage = "Open PlayerTrack settings.",
         ShowInHelp  = true,
     });
     PlayerTrackPlugin.CommandManager.AddHandler("/ptrackintegrity", new CommandInfo(this.RunIntegrityCheck)
     {
         HelpMessage = "Clean-up and delete erroneous data from previous versions.",
         ShowInHelp  = true,
     });
     PlayerTrackPlugin.CommandManager.AddHandler("/ptrackowenc", new CommandInfo(this.DeleteOverworldEncounters)
     {
         HelpMessage = "Delete overworld encounters from previous versions or settings.",
         ShowInHelp  = true,
     });
 }
示例#9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PluginWindow"/> class.
 /// </summary>
 /// <param name="plugin">PlayerTrack plugin.</param>
 /// <param name="windowName">Name of the window.</param>
 /// <param name="flags">ImGui flags.</param>
 protected PluginWindow(PlayerTrackPlugin plugin, string windowName, ImGuiWindowFlags flags = ImGuiWindowFlags.None)
     : base(windowName, flags)
 {
     this.Plugin             = plugin;
     this.RespectCloseHotkey = this.Plugin.Configuration.RespectCloseHotkey;
 }
示例#10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PlayerTrackAPI"/> class.
 /// </summary>
 /// <param name="plugin">playertrack plugin.</param>
 public PlayerTrackAPI(PlayerTrackPlugin plugin)
 {
     this.plugin      = plugin;
     this.initialized = true;
 }
示例#11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NamePlateManager"/> class.
 /// </summary>
 /// <param name="plugin">plugin.</param>
 public NamePlateManager(PlayerTrackPlugin plugin)
 {
     this.plugin = plugin;
     this.plugin.XivCommon.Functions.NamePlates.OnUpdate += this.OnNamePlateUpdate;
 }
示例#12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ModalWindow"/> class.
 /// </summary>
 /// <param name="plugin">PlayerTrack plugin.</param>
 public ModalWindow(PlayerTrackPlugin plugin)
     : base(plugin, "ModalWindow", ModalFlags)
 {
     this.plugin = plugin;
 }
示例#13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MigrationWindow"/> class.
 /// </summary>
 /// <param name="plugin">plugin.</param>
 public MigrationWindow(PlayerTrackPlugin plugin)
     : base(plugin, "PlayerTrack Migration")
 {
     this.Size = new Vector2(500f, 500f);
 }