File Details
PullTimer v1.20
- R
- Apr 27, 2025
- 205.65 KB
- 33
- 4.4.2
File Name
PullTimer.zip
Supported Versions
- 4.4.2
General
-
Version Update: Updated addon version from 1.16 to 1.20 in PullTimer.toc.
-
New File Added: Added BreakTimer.lua to implement break timer functionality, enhancing raid coordination with configurable break timers.
-
TOC Update: Added BreakTimer.lua and Settings.lua to the list of loaded files in PullTimer.toc to support new features and maintain modularity.
PullTimer.toc
-
Changes:
-
Updated version number from 1.16 to 1.20.
-
Added Settings.lua and BreakTimer.lua to the file list to include new settings framework and break timer functionality.
-
No changes to dependencies or interface version (40402).
-
Core.lua
-
New Features:
-
Added support for break timer settings in the defaults table, including breakTimerEnabled, breakTimerPopoutVisible, breakTimerAnnounce, and breakTimerAnnounceChannel.
-
Introduced debug mode with a new debug setting in the defaults table, enabling verbose logging for troubleshooting.
-
Added new settings to the settingsConfig table:
-
BreakTimerCheckBox: Toggles break timer functionality.
-
BreakTimerAnnounceCheckBox: Enables/disables break timer announcements.
-
BreakTimerAnnounceChannelDropdown: Selects the announcement channel (RAID, PARTY, SAY).
-
DebugCheckBox: Toggles debug logging.
-
-
Added Minimal layout option to the LayoutDropdown settings, supporting a new compact UI layout.
-
-
Enhancements:
-
Improved backdrop updates with backdropUpdatePending flag to prevent multiple simultaneous updates, using C_Timer.After for smoother performance.
-
Enhanced UI refresh with uiUpdatePending flag to avoid redundant UI updates, also using C_Timer.After.
-
Added debug logging for settings initialization, including checks for SettingsFramework methods (Initialize, HandleProfileCreation, UpdateConfigPanel, UpdateProfilesPanel).
-
Updated OnPlayerLogin to display version 1.19 (likely a typo, as TOC indicates 1.20).
-
Improved minimap button tooltip with colored text and additional command information (/pulltimer and /pulltimer reset).
-
-
Bug Fixes:
-
Added fallback for missing LDBIcon library, with debug logging to report if LibDBIcon-1.0 is not found.
-
Enhanced HandleReset to reset new settings (debug, breakTimerEnabled, breakTimerPopoutVisible, breakTimerAnnounce, breakTimerAnnounceChannel).
-
-
Optimizations:
-
Consolidated UpdateBackdrop logic to handle both main frame and break timer popout frame, ensuring consistent appearance.
-
Improved RefreshUI to handle frame visibility more robustly, ensuring the frame is shown unless explicitly hidden.
-
Frame.lua
-
New Features:
-
Added break timer popout frame (BreakTimerPopoutFrame) with buttons for 3-minute, 5-minute, and 10-minute break timers.
-
Introduced arrow button to toggle the break timer popout visibility, with dynamic texture updates (UI-Panel-CollapseButton-Down or UI-Panel-CollapseButton-Up).
-
Added Minimal layout to the layout cache, with adjusted button positions for a compact single-row design.
-
-
Enhancements:
-
Refactored layout management into a ConfigureLayout function and layoutCache table for cleaner, more maintainable code.
-
Added UpdateButtonSizesAndFonts function to centralize button and input sizing/font logic, improving consistency across layouts.
-
Enhanced RefreshUI to dynamically position the break timer popout frame below the main frame.
-
Added debug logging for Minimal layout application, including frame size and button positions.
-
Improved visibility logic for UI elements when minimized, hiding all children except minimizeBtn and arrowButton.
-
-
Bug Fixes:
-
Fixed button positioning logic to use SetButtonPoint helper function, ensuring accurate placement across all layouts.
-
Corrected btnx button script to cancel both pull and break timers (CancelTimer and CancelBreakTimer).
-
-
Optimizations:
-
Consolidated button size and font updates into UpdateButtonSizesAndFonts, reducing redundant code.
-
Improved drag handling to save frame position only when moved, enhancing performance.
-
Timer.lua
-
Enhancements:
-
Improved CancelTimer to include remaining countdown time in the cancellation message for better user feedback.
-
Optimized button enabling/disabling logic by iterating over a button table, reducing code duplication.
-
-
Bug Fixes:
-
Removed redundant activeTimer check in CancelTimer, as the function already handles nil cases gracefully.
-
-
Optimizations:
-
Streamlined timer initialization by attaching functions directly to PullTimer object, maintaining modularity.
-
BreakTimer.lua (New File)
-
New Features:
-
Implemented StartBreakTimer and CancelBreakTimer functions to manage break timers (3m, 5m, 10m).
-
Added time formatting with FormatTime function for readable MM:SS display.
-
Integrated with COUNTDOWN and BREAK slash commands for compatibility with raid assist or DBM addons.
-
Supported break timer announcements in configurable channels (RAID, PARTY, SAY) with debug logging.
-
-
Enhancements:
-
Added fallback message if neither COUNTDOWN nor BREAK commands are available, prompting users to install raid assist or DBM.
-
Used C_Timer.NewTicker for precise second-by-second updates to the break timer display.
-
-
Optimizations:
-
Designed as a standalone module, attaching functions to PullTimer object to maintain modularity.
-
Settings.lua
-
New Features:
-
Added tooltip support for new settings (Debug Logging, Enable Break Timer, Announce Break Timer, Announce Channel) with descriptive hover text.
-
Introduced tooltip support for Frame Layout and Announce Channel dropdowns, providing detailed descriptions for each option.
-
-
Enhancements:
-
Improved SetTooltipScripts helper function to standardize tooltip creation across settings.
-
Enhanced CreateCustomSettings to include specific tooltips for new settings and dynamic tooltips for dropdown options.
-
Updated UpdateConfigPanel to handle new settings (BreakTimerCheckBox, BreakTimerAnnounceCheckBox, BreakTimerAnnounceChannelDropdown, DebugCheckBox).
-
Improved SetupDropdown helper function to streamline dropdown initialization and refresh.
-
-
Bug Fixes:
-
Fixed copy profile button to silently ignore invalid profiles instead of printing an error.
-
Corrected delete profile button to silently ignore invalid profiles, improving user experience.
-
-
Optimizations:
-
Consolidated tooltip logic into SetTooltipScripts, reducing code duplication.
-
Optimized dropdown updates in UpdateProfilesPanel using SetupDropdown, improving maintainability.
-

