* Move previously hardcoded `strictSkipUnavailable` variable into component state
* Add detailed comments explaining color mapping and eligibility logic
* Verify existing logic remains correct through local testing
Benefits:
* Improves code readability and maintainability
* Prepares for future UI integration of `strictSkipUnavailable` setting
Note:
* No new functionality added; behavior remains unchanged
- Fix charge counter inconsistencies between Status block and Stats section.
- Implement rounding with a 0.95 threshold instead of always flooring.
- Prevent Stats counter from showing -1 when painting reaches the last pixel.
- Ensure Status UI updates correctly during painting progress (instead of being stuck on "Starting painting").
- Refactor charge calculation code for clarity and maintainability.
- Standardize dynamic sleep interval handling with a minimum threshold of 100ms.
Benefits:
- Accurate and consistent charge display across UI components.
- More reliable progress updates during painting.
- Cleaner, more maintainable codebase.
- Replace cryptic or untranslated comments with clear, descriptive English explanations.
- Standardize comment formatting for consistency across the codebase.
- Clarify logic in migration checks for version upgrades.
- Improve descriptions for cache size limiting and color matching logic.
Benefits:
- Enhances code readability and maintainability.
- Reduces confusion for developers unfamiliar with the original comments.
- Provides better context for complex logic blocks.
- Updated `noChargesThreshold` status message to use `Math.floor(current)` instead of raw `current`.
- Ensures displayed charge count is always an integer in the Status block.
Benefits:
- Prevents confusing non-integer values in the UI.
- Improves readability and consistency of charge status display.
- Update the title in `en.json` to "Auto-Image".
- Standardize button labels for upload and resize actions.
- Add new translation keys: "colorsUpdated", "overlayTilesNotLoaded", "paintingBatchFailed",
"paintingPixelCheckFailed", "paintingFinalBatchFailed", and "fullChargeIn".
- Refine messages for clarity, such as updating "noColorsFound" and "noChargesThreshold".
- Improve error and progress messages for better user understanding.
Benefits:
- Provides more descriptive and user-friendly translations.
- Enhances consistency across UI elements.
- Supports additional scenarios with new translations.
Note:
- Ensure all new keys are properly integrated into the application logic.
- Replace inline styles for turnstile title with a CSS class (`wplace-turnstile-title`).
- Add buttons for clearing ignored pixels (`clearIgnoredBtn`) and inverting masks (`invertMaskBtn`).
- Introduce a helper text (`resize-shortcut-help`) for keyboard shortcuts.
Benefits:
- Improves maintainability by using CSS classes instead of inline styles.
- Provides additional functionality for mask management and user guidance.
- Add entries for Node modules, NPM/Yarn lock files, and Prettier/ESLint configs.
- Include staged changes file and IDE-specific directory (.idea/) in ignored paths.
Benefits:
- Reduces noise in version control by excluding generated and environment-specific files.
- Improves consistency across developer environments.
- Replace inline styles with reusable CSS classes for better maintainability.
- Standardize toggle, select, and input components under consistent naming conventions (`wplace-settings-*`).
- Extract icon styling into dedicated CSS rules for consistency.
- Introduce grid layout for block size controls to improve responsiveness.
- Remove redundant styles and consolidate common patterns into shared classes.
Benefits:
- Improves code readability and reduces duplication.
- Enhances theming support by centralizing style definitions.
- Simplifies future updates to the settings UI structure.
Note:
- Ensure all theme variables (`--wplace-*`) are correctly defined in the respective theme files.
* Consolidated multi-line comments into single-line comments where appropriate to reduce clutter.
* Simplified and clarified inline comments for better code readability and maintainability.
* Refactored sitekey detection logic to use a reusable `trySitekey` function, reducing redundancy and improving maintainability.
* Enhanced fallback logic in `detectSitekey` to handle edge cases more effectively.
* Updated token generation logic to prioritize reusing pre-generated or cached tokens, optimizing performance.
* Added detailed debug logs for Turnstile token capture, token generation, validation processes, and pixel comparison.
* Improved formatting of complex log messages, dynamic strings, and template literals for better readability and debugging.
* Reworked how available colors are extracted and validated to ensure proper handling of edge cases.
* Added checks for null or insufficient color data during upload, improving error feedback to users.
* Enhanced skipped pixel tracking by restructuring logic for transparency, white pixels, and unavailable colors.
* Refactored batch processing to handle region changes more efficiently and log progress accurately.
* Updated color extraction logic to handle scenarios where no color elements are found.
* Simplified and standardized checkbox, select, slider, and toggle rendering for settings UI.
* Ensured proper alignment and spacing in multi-line template literals for themes, languages, and other dropdowns.
* Fixed minor typos, inconsistencies, and formatting issues across multiple modules.
These changes improve maintainability, debugging visibility, and robustness of pixel/color processing while enhancing overall user experience without altering core functionality.
* Refactored tile range calculation into a reusable `Utils.calculateTileRange` method.
* Added retry logic with exponential backoff in `getTilePixelColor` to handle transient bitmap read errors.
* Introduced `waitForTiles` method to ensure all required tiles are loaded before painting.
* Improved error messages for painting failures, including tile loading and pixel read errors.
* Fixed potential infinite loop in tile processing by adding timeout handling.
* Updated color resolution logic to use `availableColors` parameter name for clarity.
* Enhanced debugging logs for transparency checks and tile loading.
* Fixed diffCount calculation to correctly reflect newCount minus oldCount.
* Updated `updateStats` call to remove unnecessary parameter.
* Improved error logging with `console.error` for unexpected exceptions during image processing.
* Enhanced user feedback with additional `updateUI` calls for error states such as batch failures and tile load issues.
* Added debug logging to better track pixel painting decisions, comparing current and target colors.
* Introduced stop-checks in painting process when critical errors occur, ensuring proper UI updates and state management.
* Refined skipped pixel reporting to include unavailable colors and improved log clarity.
These changes make the overlay painting process more robust by ensuring reliable tile loading, correct pixel comparison, and accurate stats. Error handling and debugging are significantly improved, making failures easier to detect, diagnose, and recover from.
* Implemented `resolveColor` to improve color matching with exact matches, white threshold handling, and chroma penalty adjustments.
* Enhanced `extractAvailableColors` to parse RGB values robustly and skip invalid color elements with warnings.
* Refactored progress data management with `buildPaintedMapPacked`, `buildProgressData`, and `migrateProgress` for better organization and version handling.
* Added migration logic to support progress data from versions 1.x, 2.0, and 2.1 to 2.2.
* Improved error handling and logging during progress saving and loading operations.
* Updated progress file structure to include additional state details like coordinate modes, block dimensions, and painted map packing.
* Refactored progress migration to use a unified `Utils.migrateProgress`, reducing redundancy and improving maintainability.
* Simplified color matching by moving inline functions to utilities for readability and reusability.
* Enhanced `updateStats` with optional `isManualRefresh` for granular UI updates and alerts.
* Added utility functions `getRemainingMsToThreshold`, `startChargesThresholdTicker`, and `updateChargesThresholdUI` to modularize charge-related logic.
* Added coordinate generation logic supporting various modes, directions, and block configurations.
* Fixed potential issues with color filtering and invalid cache management.
* Ensured alerts and notifications are displayed correctly when colors or thresholds change.
* Simplified coordinate generation logic, removing redundant code and improving readability.
* Introduced `flushPixelBatch` for modular batch pixel processing.
* Added detailed pixel eligibility checks in `processImage` to ensure valid pixels are processed.
* Configurable transparency thresholds and strict color availability checks for flexibility.
* Improved error handling for unsupported modes and directions.
* Refactored pixel processing for readability and maintainability.
* Consolidated batch flushing logic and simplified batch size calculations.
* Enhanced logging with debug information for pixel eligibility, existing colors, and batch processing.
* Added safeguards to clear intervals and prevent memory leaks during state cleanup.
These changes improve color resolution accuracy, progress tracking, coordinate generation flexibility, and pixel processing robustness, while making the codebase more modular, maintainable, and easier to debug.
* Enabled PAINTING\_SPEED\_ENABLED by default to improve painting performance.
* Disabled desktop notifications by default to reduce interruptions.
* Lowered overlay opacity from 0.6 to 0.2 for better visibility.
* Commented out theme variable assignments for future cleanup or removal.
* Added new state properties for coordinate generation (coordinateMode, coordinateDirection, etc.) to support advanced painting strategies.
* Introduced dynamicSleep utility for more efficient sleep handling during cooldowns.
* Added msToTimeText utility to format time durations in a human-readable way.
* Implemented migration logic to version 2.2 for backward compatibility with saved progress data.
* Enhanced saveProgress and loadProgress methods to include new coordinate generation settings.
* Improved error handling in getCharges to provide default values when API calls fail.
* Refactored notification messages for better clarity and consistency.
* Added multiple coordinate generation modes including rows, columns, circle-out, circle-in, blocks, and shuffle-blocks.
* Implemented UI controls for selecting generation modes, setting block sizes, toggling snake patterns, and choosing directions.
* Enhanced settings panel with collapsible sections and improved styling for better user experience.
* Added dynamic visibility logic to show/hide relevant controls based on the selected generation mode.
* Integrated state management to persist user preferences for generation modes, directions, snake pattern toggling, and block dimensions.
* Improved logging and user feedback with success alerts when changing coordinate-related settings.
* Implemented functionality to track full charge progress using a dynamic timer.
* Displays remaining time until full charge in the UI, updating every second.
* Ensures charges are calculated accurately based on elapsed time and cooldown intervals.
* Added support for pausing and resuming charge updates when the user interacts with the system.
* Improved UI feedback for charge-related information, including current charges and full charge status.
* Refactored the pixel batch processing logic to improve readability and maintainability.
* Introduced a generateCoordinates function to handle coordinate generation for various modes (rows, columns, circle-out, etc.).
* Added support for configurable block-based painting modes (blocks and shuffle-blocks) with customizable block dimensions.
* Improved logic for handling region transitions during batch painting.
* Updated delay calculations for batch processing to better align with painting speed settings.
* Enhanced transparency and white pixel skipping logic with customizable thresholds.
* Added detailed logging for debugging and monitoring purposes.
* Ensured proper cleanup of intervals and state updates when stopping or pausing painting.
* Refactored pixel painting logic to include smarter batch processing.
* Added checks to skip already painted pixels, reducing redundant operations.
* Improved batch size calculation and handling, ensuring batches are sent optimally.
* Enhanced error handling for failed batches, preventing infinite loops in case of persistent failures.
* Introduced dynamic sleep functionality during cooldown periods to optimize resource usage.
* Updated UI interactions to reflect batch progress and cooldown states more accurately.
* Added new coordinate mode and direction settings for greater flexibility in pixel painting.
These changes improve the bot's configurability, performance, maintainability, and user experience while ensuring backward compatibility with existing progress data, accurate charge tracking, and efficient pixel painting across multiple modes.
Updated CSS variables for button border-radius across themes and adjusted layout spacing for sections and settings footer.
* Introduced `--wplace-btn-radius` for consistent button rounding in all themes.
* Reduced margins and padding for `.wplace-section` and `.wplace-status-section` for tighter layout.
* Added collapsible section behavior with arrow rotation and hidden controls.
* Made settings footer sticky with proper background and padding.
* Minor spacing and formatting fixes for better visual alignment.
* Set up a linter for local use only; changes are not pushed to the branch.
* Reformatted project files according to local linter rules.
* Improves local code consistency and readability without affecting the shared codebase.
- Add a bug report template with sections for describing the bug, expected behavior, reproduction steps, and system information.
- Add a feature request template with sections for problem description, proposed solution, alternatives, and additional context.
- Add a pull request template with fields for summary, related issues, change type, checklist, and additional notes.
- Configure issue templates to disable blank issues and provide a link to community support on Discord.
Benefits:
- Standardize issue reporting to improve clarity and consistency.
- Guide contributors in providing necessary details for bug reports and feature requests.
- Streamline pull request submissions by prompting key information.
- Reduce ambiguity in contributions and improve collaboration efficiency.