-
-
Notifications
You must be signed in to change notification settings - Fork 26.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement Entity Component System (ECS) architecture #3149
base: master
Are you sure you want to change the base?
Implement Entity Component System (ECS) architecture #3149
Conversation
c3ef23c
to
f92c2a4
Compare
PR SummaryThis pull request implements the Entity Component System (ECS) architecture, improving entity management, component interaction, scalability, and reusability. It includes comprehensive unit tests for all components and systems. Changes
autogenerated by presubmit.ai |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ LGTM!
Review Summary
Commits Considered (10)
- b6a3848: Merge branch 'master' into feature/485-ecs-pattern-implementation
- f92c2a4: even more issues fixed
- cada3be: fixing the last issues
- b4c6a30: fixing more maintainability and intentionality issues
- 80e42c3: Update HealthComponentTest.java
- a9edc07: fixing maintainability, and intentionality issues
- 38ef4a6: even more test cases
- cd41e1a: Update EntityTest.java
- 49cfb6b: adding test cases to all classes
- 0bb2e90: implementing ECS pattern
Files Processed (19)
- entity-component-system/README.md (0 hunks)
- entity-component-system/etc/entity-component-system.urm.puml (1 hunk)
- entity-component-system/pom.xml (1 hunk)
- entity-component-system/src/main/java/com/iluwatar/App.java (1 hunk)
- entity-component-system/src/main/java/com/iluwatar/Component.java (1 hunk)
- entity-component-system/src/main/java/com/iluwatar/Entity.java (1 hunk)
- entity-component-system/src/main/java/com/iluwatar/GameSystem.java (1 hunk)
- entity-component-system/src/main/java/com/iluwatar/HealthComponent.java (1 hunk)
- entity-component-system/src/main/java/com/iluwatar/TransformComponent.java (1 hunk)
- entity-component-system/src/main/java/com/iluwatar/VelocityComponent.java (1 hunk)
- entity-component-system/src/test/java/com/iluwatar/AppTest.java (1 hunk)
- entity-component-system/src/test/java/com/iluwatar/ComponentTest.java (1 hunk)
- entity-component-system/src/test/java/com/iluwatar/EntityTest.java (1 hunk)
- entity-component-system/src/test/java/com/iluwatar/GameSystemTest.java (1 hunk)
- entity-component-system/src/test/java/com/iluwatar/HealthComponentTest.java (1 hunk)
- entity-component-system/src/test/java/com/iluwatar/TransformComponentTest.java (1 hunk)
- entity-component-system/src/test/java/com/iluwatar/VelocityComponentTest.java (1 hunk)
- pom.xml (1 hunk)
- update-header.sh (1 hunk)
Actionable Comments (0)
Skipped Comments (0)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Additionally, please update the README.md
. It needs to have a very specific format described in https://github.com/iluwatar/java-design-patterns/wiki/01.-How-to-contribute. See the other patterns for examples.
/** | ||
* The main entry point for the application. | ||
* This class simulates a game loop where entities are created, updated, and their states are modified. | ||
*/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here, above the App
class, please explain the pattern briefly and describe how the code example implements it.
Entity entity1 = new Entity("Entity1"); | ||
Entity entity2 = new Entity("Entity2"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add comments where needed. Remember, this is learning material.
private String name; | ||
private boolean isEnabled; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use Lombok to get rid of boilerplate code such as getters and setters
Quality Gate passedIssues Measures |
This pull request implements the ECS pattern, improving and enabling : entity management, component interaction, scalability, and reusability.
Close # <485>