feat: IComponent can access EntityComponent properties #2813
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.
PR Details
Like the
Entity Entity { get; }
already inStride.BepuPhysics.Components
.ISimulationUpdate
Allow flexible processing
Processor
to visit public properties ofEntityComponent
likeEntityProcessor<TComponent, TData>
It's common to get data from other components of the same entity in game dev, e.g.
Health
,MoveSpeed
are properties of reusable componentUnit
, another reusable componentUnitMove
need to getMoveSpeed
fromUnit
. Also, there could be anEffectContainer
contains effects may change speed likeFrozen
orSpeedUp
thatUnitMove
need to get.in
EntityProcessor
, it can do such things throughEntityComponent.Entity.Get<T>()
while traversingComponentDatas.Values
, but it's not a default feature forIComponent
andIProcessor
of flexible processing.So I add getter to
IComponent
and remove theEntity Entity { get; }
inISimulationUpdate
since it's the only one built-in component inheritsIComponent
.Related Issue
none
Types of changes
Checklist