7.6 KiB
7.6 KiB
Changelog
All notable changes to Card Framework will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.2.3] - 2025-09-23
Fixed
- Mouse Interaction: Fixed "dead cards" bug where rapid clicks made cards unresponsive (#22)
[1.2.2] - 2025-08-23
Added
- CardContainer API: Added
get_card_count()method to return the number of cards in a container
Fixed
- CardFactory Configuration: Set proper JsonCardFactory defaults in
card_factory.tscn
Improved
- Documentation: Enhanced API reference with missing methods and corrected code examples
- Getting Started: Fixed code formatting and updated examples to use current API patterns
- Code Examples: Standardized API usage across all documentation and README files
Contributors
- Community: Documentation improvements by @psin09
[1.2.1] - 2025-08-19
Refactored
- DraggableObject API Enhancement: Added
return_to_original()method to base class for improved code reusability - Card API Simplification:
Card.return_card()now uses inheritedreturn_to_original()wrapper pattern for better maintainability
[1.2.0] - 2025-08-14
Added
- CardFrameworkSettings: Centralized configuration constants for all framework values
- State Machine System: Complete rewrite of DraggableObject with robust state management
- Tween Animation System: Smooth, interruptible animations replacing _process-based movement
- Precise Undo System: Index-based undo with adaptive algorithm for correct card ordering
- Comprehensive Documentation: Full GDScript style guide compliance with detailed API docs
Changed
- BREAKING:
CardContainer.undo()method signature now includes optionalfrom_indicesparameter - Magic Numbers: All hardcoded values replaced with
CardFrameworkSettingsconstants - Animation System: All movement and hover effects now use Tween-based animations
- State Management: Drag-and-drop interactions now use validated state machine transitions
- Memory Management: Improved Tween resource cleanup preventing memory leaks
Fixed
- Multi-Card Undo Ordering: Resolved card sequence corruption when undoing consecutive multi-card moves
- Tween Memory Leaks: Proper cleanup of animation resources in DraggableObject
- Mouse Interaction: Resolved various mouse control issues after card movements
- Hover Animation: Fixed scale accumulation bug preventing proper hover reset
- Z-Index Management: Foundation cards maintain proper z-index after auto-move completion
- Hand Reordering: Optimized internal reordering to prevent card position drift
Developer Experience
- MCP Integration: Added Claude Code and TaskMaster AI integration for development workflow
- Documentation Tools: Custom Claude commands for automated documentation sync
- Code Quality: Applied comprehensive GDScript style guide with detailed method documentation
[1.1.3] - 2025-07-10
Added
- Debug Mode: Visual debugging support in
CardManagerwithdebug_modeflag - Drop Zone Visualization: Reference guides matching Sensor Drop Zone size for debugging
- Swap Reordering:
swap_only_on_reorderflag inHandfor alternative card reordering behavior
Changed
- Reordering Behavior:
Handnow supports both shifting (default) and swapping modes - History Optimization: Moves within the same
CardContainerno longer recorded in history
Deprecated
sensor_visibilityproperty inCardContainer(usedebug_modeinCardManager)sensor_textureproperty inCardContainer(replaced by automatic debug visualization)
Fixed
- Mouse Control: Resolved inconsistent mouse control when adding cards to
CardContainerat specific index - Performance: Improved reliability of card positioning and interaction handling
[1.1.2] - 2025-06-20
Added
- DraggableObject System: Separated drag-and-drop functionality from
Cardclass - Enhanced DropZone:
accept_typeproperty for broader compatibility beyondCardContainer - Runtime Drop Zone Control: Dynamic enable/disable of drop zones during gameplay
Changed
- Architecture: Drag-and-drop now inheritable by any object via
DraggableObject - Flexibility:
DropZoneusable for non-card objects with type filtering
Fixed
- Hand Reordering: Cards in full
Handcontainers can now be properly reordered - Drop Zone Reliability: Improved drop zone detection and interaction handling
[1.1.1] - 2025-06-06
Fixed
- Card Sizing: Critical fix for
card_sizeproperty not applying correctly - Visual Consistency: Cards now properly respect configured size settings
[1.1.0] - 2025-06-02
Added
- Enhanced Hand Functionality: Card reordering within hands via drag-and-drop
- JsonCardFactory: Separated card creation logic for better extensibility
- Improved Architecture: Generic
CardFactorybase class for custom implementations
Changed
- Factory Pattern: Refactored card creation system with abstract
CardFactory - Drop Zone Logic: Significantly improved drop zone handling and reliability
- Code Organization: Better separation of concerns between factory types
Improved
- Extensibility: Easier to create custom card factories for different data sources
- Reliability: More robust card movement and container interactions
[1.0.0] - 2025-01-03
Added
- Initial Release: Complete Card Framework for Godot 4.x
- Core Classes:
CardManager,Card,CardContainer,Pile,Hand - Drag & Drop System: Intuitive card interactions with validation
- JSON Card Support: Data-driven card creation and configuration
- Sample Projects:
example1demonstration and completefreecellgame - Flexible Architecture: Extensible base classes for custom game types
Features
- Card Management: Creation, movement, and lifecycle management
- Container System: Specialized containers for different card layouts
- Visual System: Animations, hover effects, and visual feedback
- Game Logic: Move history, undo functionality, and rule validation
- Asset Integration: Image loading and JSON data parsing
Version Support
| Version | Godot Support | Status | EOL Date |
|---|---|---|---|
| 1.1.x | 4.4+ | Active | - |
| 1.0.x | 4.0-4.3 | Legacy | 2025-12-31 |
Upgrade Guide
1.1.2 → 1.1.3
- Optional: Enable
debug_modeinCardManagerfor development - Deprecated: Update any usage of
sensor_visibilityandsensor_texture - New Feature: Consider
swap_only_on_reorderfor different hand behavior
1.1.1 → 1.1.2
- Breaking: Review custom drag-and-drop implementations
- Migration: Update to use
DraggableObjectbase class if extending drag functionality - Enhancement: Utilize new
accept_typeinDropZonefor type filtering
1.1.0 → 1.1.1
- Fix: No code changes required, automatic improvement for card sizing
1.0.x → 1.1.0
- Migration: Update
CardFactoryreferences toJsonCardFactoryif using custom factories - Enhancement: Take advantage of improved hand reordering functionality
- Testing: Verify drop zone interactions work correctly with improvements
Contributing
See Contributing Guidelines for information on reporting issues and contributing improvements.
License
This project is open source. See License for details.