Merged
Conversation
…itwise operations
…rts in RenderTarget
…d add combat configuration support
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request implements "Milestone 5", introducing several major new systems to the Helios engine including UI rendering, scoring mechanics, health/damage systems, and enhanced collision handling. The changes enable viewport-relative UI positioning, score tracking with observer patterns, combat damage attribution, and improved text rendering with font scaling.
Changes:
- New UI module with layout, transform, widget, and binding systems for viewport-relative UI elements
- Complete scoring system with score pools, observers, commands, and integration with combat events
- Health and damage systems with death events and kill attribution
- Enhanced collision system with bitmask behaviors, context data, and layer tracking
- Font scaling support and improved text rendering with state caching
- Viewport snapshot system for frame-consistent rendering data
- EmittedBy component for projectile source tracking
- Builder pattern extensions for all new systems
Reviewed changes
Copilot reviewed 151 out of 151 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| Window.ixx | Added viewportSnapshots() method for collecting viewport state |
| ViewportSnapshot.ixx | New immutable viewport state snapshot structure |
| Viewport.ixx | Added viewport ID, snapshot caching, and absolute bounds computation |
| RenderTarget.ixx | Added viewports() accessor and initialization fix |
| TypeSetter.ixx | Added font scaling parameter to layout method |
| TextMesh.ixx | Added fontScale member and related accessors |
| FontResourceProvider.ixx | Added pixelHeight parameter to loadFont |
| UpdateContext.ixx | Added viewportSnapshots parameter and accessor |
| GameLoop.ixx | Updated update() signature to accept viewport snapshots |
| UI modules | Complete new UI system (layout, transform, widgets, binding) |
| Scoring modules | Complete new scoring system (types, components, systems, managers) |
| Health modules | New health tracking system with components, events, and systems |
| Damage modules | New damage dealing system with layer-based damage values |
| Combat modules | Added LastAttackerComponent and AttackContext for kill attribution |
| Collision modules | Enhanced with bitmask behaviors, CollisionContext, and layer tracking |
| Spawn modules | Added EmittedByComponent and source tracking in EmitterContext |
| Builder configs | New configs for all added systems (UI, health, scoring, combat, observers) |
| OpenGLGlyphTextRenderer | Added state caching for shader and VAO to reduce redundant GL calls |
| Input system | Added isKeyReleased() support and TILDE key |
| Core data types | Added ViewportId, ScorePoolId, ScoreTypeId, CollisionLayer |
| Examples | Updated all examples to pass viewport snapshots to game loop |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
include/helios/engine/mechanics/scoring/components/ScoreObserverComponent.ixx
Show resolved
Hide resolved
include/helios/engine/mechanics/combat/components/LastAttackerComponent.ixx
Outdated
Show resolved
Hide resolved
include/helios/engine/mechanics/damage/systems/DamageOnCollisionSystem.ixx
Outdated
Show resolved
Hide resolved
include/helios/engine/modules/ui/transform/systems/UiTransformSystem.ixx
Show resolved
Hide resolved
include/helios/engine/builder/gameObject/builders/configs/TextRenderableConfig.ixx
Outdated
Show resolved
Hide resolved
Comment on lines
41
to
45
| float fontScale_;; | ||
|
|
||
| std::string template_; | ||
|
|
||
| bool isUiText_ = false;; |
There was a problem hiding this comment.
Extra semicolon after member variable declaration. This should be removed.
Suggested change
| float fontScale_;; | |
| std::string template_; | |
| bool isUiText_ = false;; | |
| float fontScale_; | |
| std::string template_; | |
| bool isUiText_ = false; |
include/helios/engine/mechanics/scoring/components/ScoreObserverComponent.ixx
Show resolved
Hide resolved
include/helios/engine/modules/ui/transform/systems/UiTransformSystem.ixx
Show resolved
Hide resolved
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.