This repository was archived by the owner on Dec 24, 2025. It is now read-only.
Merge dev branch to fix/diverged-main#21
Merged
Merged
Conversation
- Deleted the 'ratchetFrom' line from the spotless configuration (to simplify the build.gradle file).
* feat: implement abstract class Ball * refactor: update Ball class package and documentation - Renamed package from `com.github.codestorm.ball` to `com.github.codestorm.bounceverse.ball` (to reflect project structure) - Enhanced class documentation to clarify the purpose and functionality of the Ball class --------- Co-authored-by: Mai Thành <62001770+thnhmai06@users.noreply.github.com>
* feat: Brick * feat(brick): add PowerBrick and update Brick, ExoplodeBrick, ProtectedBrick * docs(brick): add Javadoc for Brick, ExoplodeBrick, PowerBrick, ProtectedBrick * refactor(brick): remove NormalBrick and StrongBrick * refactor(brick): rename packages and update formatting settings - Renamed package from `com.github.codestorm.brick` to `com.github.codestorm.bounceverse.brick` for consistency. - Updated Google Java Format settings to use AOSP style. --------- Co-authored-by: Mai Thành <62001770+thnhmai06@users.noreply.github.com>
* feat: add PowerUp class - Introduced PowerUp class to manage special effects and abilities for game objects (provides lazy-update functionality). - Updated build.gradle to include JavaFX plugin and specified version. - Modified project configuration files for compatibility with new features. * docs: update PowerUp class documentation - Corrected the description of PowerUps to use plural form for consistency. - Improved clarity in the apply and unapply method descriptions (automatically used when power up becomes active/ends).
- Added 'target/' to .gitignore to exclude build artifacts. - Updated .gitignore to simplify IntelliJ IDEA configuration exclusions. - Created git-commit-instructions.md for standardized commit message guidelines.
* feat: Brick * feat(brick): add PowerBrick and update Brick, ExoplodeBrick, Protecte… * docs(brick): add Javadoc for Brick, ExoplodeBrick, PowerBrick, Protec… * refactor(brick): remove NormalBrick and StrongBrick * feat(paddle): add ExpendPaddle, LaserPaddle, ShrinkPaddle and update … * feat(paddle): add ExpendPaddle, LaserPaddle, ShrinkPaddle and update … * feat(paddle): add ExpendPaddle, LaserPaddle, ShrinkPaddle and update … * refactor: remove brick and gameManager packages * refactor(paddle): enhance documentation for Paddle and its variants
* feat: Brick * feat(brick): add PowerBrick and update Brick, ExoplodeBrick, ProtectedBrick * docs(brick): add Javadoc for Brick, ExoplodeBrick, PowerBrick, ProtectedBrick * refactor(brick): remove NormalBrick and StrongBrick * feat(paddle): add ExpendPaddle, LaserPaddle, ShrinkPaddle and update Paddle * feat(paddle): add ExpendPaddle, LaserPaddle, ShrinkPaddle and update Paddle * refactor: remove brick and gameManager packages * feat(brick): refactor and document brick module (Factory, Component, Protected, Explode) * feat(brick): Introduce brick components and behaviors - Added Brick, BrickHealth, BrickDrop, BrickExplode, and BrickFactory classes to manage brick entities and their behaviors (enhances gameplay mechanics). - Refactored existing classes to align with new component structure. * docs(brick): Corrected spelling of 'nheritance' to 'inheritance' Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * refactor(brick): remove multiple Spawns annotation from newBrick methods Removed the @spawns annotation from the newBrick methods in BrickFactory to streamline the code and eliminate unnecessary complexity (no functional changes). --------- Co-authored-by: Mai Thành <62001770+thnhmai06@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat: Brick * feat(brick): add PowerBrick and update Brick, ExoplodeBrick, ProtectedBrick * docs(brick): add Javadoc for Brick, ExoplodeBrick, PowerBrick, ProtectedBrick * refactor(brick): remove NormalBrick and StrongBrick * feat(paddle): add ExpendPaddle, LaserPaddle, ShrinkPaddle and update Paddle * feat(paddle): add ExpendPaddle, LaserPaddle, ShrinkPaddle and update Paddle * refactor: remove brick and gameManager packages * feat(brick): refactor and document brick module (Factory, Component, Protected, Explode) * feat(game): add GameManager and BounceVerseApp for game initialization * refactor: Refactor GameManager, build/run scripts and update ci/cd - Renamed `BounceVerseApp` to `Bounceverse` for consistency. - Set the game title to the new class name. - Integrated `BrickFactory` for spawning bricks in the game. - Updated `build.gradle` for application configuration and added release tasks. * ci: add specific workflow permission - Added permissions to `buildRelease.yml`, `build.yml`, and `setup.yml` (to manage content access). - Created new log files for debugging (to assist in troubleshooting). - Updated `Readme.txt` to clarify the purpose of the directory. * docs: update git commit instructions to align with Conventional Commits Expanded the guidelines for writing commit messages, detailing structure, types, and examples to ensure clarity and consistency in commit history. --------- Co-authored-by: Mai Thành <62001770+thnhmai06@users.noreply.github.com>
Refactor the setup steps in build.yml, buildRelease.yml, and linting.yml to include a name for the setup action, improving readability and maintainability.
Cleared the `scriptParameters` option in `bytecode.run.xml` and `release.run.xml` to avoid unnecessary debug flags during execution.
) * refactor: reorganize component structure and improve entity tagging - Added new classes for Ball, BrickDrop, BrickExplode, and BrickHealth to enhance gameplay mechanics (introducing new behaviors and properties). - Updated .gitignore to include additional files and directories for better project management. - Adjusted BrickFactory to streamline brick creation process. * refactor: enhance BrickFactory to include entity type for bricks Added EntityType.BRICK to the newBrick method for better entity classification. Updated documentation for OptionalTag to correct a typo.
Eliminated SLF4J and Logback dependencies as they are no longer required for the project.
Changed the output directory from `release` to `out` in build.gradle and updated the artifact upload path in buildRelease.yml to reflect this change.
* feat: add configuration loading and game settings management Implement configuration loading from properties files to manage game settings dynamically. This includes setting the game title, version, and application mode based on the loaded configurations. Additionally, update the .gitignore to include new configuration files. * feat: implement game configuration loading and management Add structured loading of game configurations with separate classes for default options and system settings. This enhances the game's configurability and prepares for future expansion of settings management. * feat: add collision handling and launch options management Implement collision handling system and launch options for game configuration. This includes a new Collision class for managing collision logic and a LaunchOption class for parsing launch arguments (e.g., debug mode). * feat: enhance configuration loading with error handling Improve the loadConfigs method to throw an IOException when properties files cannot be opened (replaces assertion with exception handling). This ensures better error management during configuration loading. * feat: implement scene management and enhance collision handling - Added SceneFactory for managing game scenes (facilitates scene transitions). - Renamed Collision to CollisionSystem for clarity and improved structure. - Integrated credits loading into game settings (enhances user experience).
Modified the ProjectRootManager component in misc.xml to set the language level to JDK_24_PREVIEW for better compatibility with preview features.
* feat: Brick * feat(brick): add PowerBrick and update Brick, ExoplodeBrick, ProtectedBrick * docs(brick): add Javadoc for Brick, ExoplodeBrick, PowerBrick, ProtectedBrick * refactor(brick): remove NormalBrick and StrongBrick * feat(paddle): add ExpendPaddle, LaserPaddle, ShrinkPaddle and update Paddle * feat(paddle): add ExpendPaddle, LaserPaddle, ShrinkPaddle and update Paddle * refactor: remove brick and gameManager packages * feat(brick): refactor and document brick module (Factory, Component, Protected, Explode) * feat(game): add GameManager and BounceVerseApp for game initialization * feat(paddle): add PaddleComponent and variants (Expand, Shrink, Laser, Bullet) with factory integration * feat(brick): implement explosion logic and health management refactor * feat(components): add new paddle behaviors and properties (Bullet, Width); refactor brick to components structure * refactor: migrate paddle and bullet systems to new structure * refactor(paddle): adjust PaddleFactory, Shoot and Width property for move and scaling * feat(wall): add WallFactory and Wall components with Move property for paddle collision * feat(physics): handle paddle-wall collision in CollisionSystem * feat(data): add WALL entity type for collision system * feat(behavior): update BrickExplode logic for new collision handling * feat(paddle-wall): add Move component update and WallFactory with correct sides and spawn registration * (skip ci) refactor: rename components and update imports for consistency Refactored various components by renaming `BehaviorComponent` to `Behavior`, `OptionalTag` to `Optional`, and `PropertyComponent` to `Property`. Updated imports accordingly to maintain consistency across the codebase. * [skip ci] Add and refactor Systems, Core (#15) * [skip ci] feat(core): implement game systems and refactor initialization - Introduced GameSystem, InputSystem, PhysicSystem, and UISystem for better organization and modularity (applies game logic, input handling, physics, and UI settings). - Refactored Bounceverse to utilize new systems for initialization and configuration management. - Updated credits and settings files for improved user experience. * [skip ci] ci: update CI configuration for Spotless checks and builds - Rename linting.yml to spotlessCheck.yml for clarity - Add concurrency settings to optimize CI runs - Modify job conditions to skip CI based on commit messages - Implement automatic code formatting application on failure * [skip ci] feat(core): initialize Video instance in UserSetting Add a new Video instance to the UserSetting class to ensure proper initialization and avoid null references. This change enhances the reliability of video settings management. * [skip ci] refactor: rename spotlessCheck.yml to spotless.yml for consistency * [skip ci] chore: Remove log files * Replace `For*` interface tag by annotation (#16) * [skip ci] refactor: replace `For*` interface with `Suitable*` annotation (remove `Tag` system) * [skip ci] chore: reformat code and optimize import * [skip ci] chore: update JAVA_LANGUAGE to 24_PREVIEW * [skip ci] refactor: Assign new `For*` annotation for components * [skip ci] fix: fix null ref on `Utils.Time.Cooldown#current` * feat: add Attack and Attributes components for entity interactions Introduce Attack and Attributes classes to manage damage and defense mechanics for entities. The Attack class allows entities to inflict damage based on their attributes, while the Attributes class holds general property values like defense. This enhances gameplay dynamics by enabling combat interactions. * fix(paddle): fix freeze paddle * ci: update CI conditions to use startsWith for skip ci Modified CI configuration to use startsWith instead of contains for detecting '[skip ci]' in commit messages, improving clarity and functionality. * chore: correct spelling and rename classes for consistency Renamed `HeathDeath` to `HealthDeath` and fixed spelling in `CanExecute` documentation. These changes improve code readability and maintainability. --------- Co-authored-by: Mai Thành <62001770+thnhmai06@users.noreply.github.com>
* feat: add game context and ball entity * feat: generate brick and ball, add simple collision * feat: apply FXGL physic * feat: spotlessApply * chore: delete empty file `CollisionSystem.java` * refactor: update branch with new project structures Introduce AnchorPoint enum for common anchor points on Rectangle2D. Refactor BallFactory to use default values for ball properties and improve entity spawning logic. Update collision handling in PhysicSystem for better interaction between entities. --------- Co-authored-by: Mai Thành <62001770+thnhmai06@users.noreply.github.com>
- Changed JDK setup in build and release workflows to use Gradle's setup-java action instead of Oracle's. - Updated project configuration to reflect the new JDK vendor in various files.
Update JDK setup to use Eclipse Temurin 24
Renamed several classes and updated their package paths to improve organization (e.g., moved `AnchorPoint`, `EntityType`, and `CanExecute` to `typing.enums` and `typing.interfaces`). Updated import statements accordingly to reflect these changes.
…ling Replace RuntimeException with BounceverseException in Bounceverse.java to provide more context on errors. The new exception class allows for additional details to be passed, enhancing error reporting.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update source code