b15d960c69
Try improve RaiseEvent performance ( #5925 )
...
* IEventBus -> EventBus
* Fix CompIdx.RefArray
* IEntityManager -> EntityManager
* Remove double delegate
* Add GetNetCompEventHandlers()
* release notes & cleanup
* Make PVS use GetNetCompEventHandlers
* I love event bus tests
* also fix pvs pause test
* dont trimm
---------
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com >
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com >
2025-11-13 21:32:40 +11:00
6d46d3f4a5
Cleanup most warnings in unit tests ( #5946 )
...
* 2 warnings in JointDeletion_Test
* 1 warning in Collision_Test
* 2 warnings in Color_Test (deleted test of deprecated HCY color space)
* 1 warning in MapVelocity_Test
* 2 warnings in MapManager_Tests
* 2 warnings in MapPauseTests
* 1 warning in NetDisconnectMessageTest
* 1 warning in ContainerTests
* Suppress 1 warning in EntityEventBusTests.ComponentEvent
* 4 warnings in MapGridMap_Tests
* 1 warning in GridDeletion_Test
* Remove TryGetContainingContainer foolishness
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com >
2025-05-29 00:12:58 +10:00
metalgearsloth and GitHub
8d5ebd830a
Add CompRegistry methods to EntManager / CompFac ( #5379 )
...
* Add CompRegistry methods to EntManager / CompFac
CompRegistries are nice to use and this just makes it a bit easier to extend functionality.
* fix bad pull
2024-08-25 21:37:14 +10:00
Leon Friedrich and GitHub
1de8731465
Reduce uses of IComponentFactory.GetIndex(Type) ( #5242 )
...
* Update `RaiseComponentEvent` & component lifestatge methods
* Fix ComponentNetworkGenerator
* a
* A
2024-06-17 01:46:51 +10:00
Leon Friedrich and GitHub
36f02b4a18
Fix IComponentFactory mock in tests ( #5240 )
2024-06-15 16:38:05 +10:00
Leon Friedrich and GitHub
2eb740cea8
Try prevent eventbus loops ( #5166 )
...
* Add test
* Try prevent event bus linked list loops
* Eh, add an upper limit anyways
2024-06-15 12:20:48 +10:00
DrSmugleaf and GitHub
30907d8415
Fix ordered subscriptions not working when targeting a parent system type ( #5135 )
...
* Fix ordered subscriptions not working when targeting a parent system type
* Fix missing usages of expand ordering
* Extract method
2024-05-16 20:00:15 +02:00
Leon Friedrich and GitHub
2f0283edb7
Freeze event bus dictionaries ( #4727 )
...
* Make component factory use frozen collections
* Fix integration tests
* Also freeze _entTraitDict
* A
* I love integration test setup logic
* Re-add public method
* Freeze event bus
* Remove per-component dictionary lookup on EntAddComponent
* release notes + fix test jank
* Fix merge
* fix tests
* Shutdown
2024-01-06 13:50:19 +11:00
Leon Friedrich and GitHub
7d27835543
Use frozen collections in component factory and EntityManager._entTraitDict ( #4726 )
...
* Make component factory use frozen collections
* Fix integration tests
* Also freeze _entTraitDict
* A
* I love integration test setup logic
* Re-add public method
* changes
* Better notes
* And the new method
* Fix notes
2024-01-04 12:21:24 +11:00
metalgearsloth and GitHub
24b0165ec9
Revert Arch ( #4613 )
2023-11-27 21:41:01 +11:00
7dce51e2cf
Arch PR two electric boogaloo ( #4388 )
...
Co-authored-by: DrSmugleaf <drsmugleaf@gmail.com >
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com >
2023-11-23 14:29:37 +11:00
DrSmugleaf and GitHub
2b85fa88c1
Print stack trace when adding a component while iterating net comps in ResetPredictedEntities ( #4541 )
2023-11-13 05:26:13 +11:00
PrPleGoo and GitHub
6e8ab5ce78
Ignore deleted components while raising events. ( #4311 )
2023-09-10 10:48:00 +10:00
DrSmugleaf and GitHub
66239d23ea
Refactor serialization copying to use source generators ( #4286 )
2023-08-22 17:37:13 -07:00
e71f1cc8a5
Warning fixes ( #4160 )
...
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com >
2023-07-01 22:02:12 +10:00
metalgearsloth and GitHub
62a24a320c
Make raiselocalevent not broadcast by default ( #2972 )
...
* Make raiselocalevent not broadcast by default
* I forgor to commit
2022-06-22 09:52:50 +10:00
Pieter-Jan Briers and GitHub
832672149b
Entity creation performance improvements ( #2911 )
2022-06-06 14:49:36 +02:00
Pieter-Jan Briers and GitHub
4226976821
Ordered EventBus optimizations ( #2902 )
2022-06-05 14:49:59 +02:00
Pieter-Jan Briers and GitHub
bf1cc8fd7c
Minor performance improvements ( #2860 )
2022-05-28 15:28:08 +02:00
de4d255841
Analyzer to enforce classes to be either [Virtual], abstract, or sealed. ( #2469 )
...
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com >
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com >
2022-02-05 19:31:58 +01:00
wrexbe and GitHub
d1e0f2cd94
Automatic Component Names (Alternate ending) ( #2389 )
2022-01-25 14:10:08 +01:00
Wrexbe
69fa2eed64
Building Tests
2021-12-03 14:22:53 -08:00
196e2bb427
The End of Entity (Komm, Süsser Todd: Part 1.0) ( #2295 )
...
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com >
2021-12-03 11:01:59 +01:00
Vera Aguilera Puerto
87f5c059c4
Remove IComponentManager entirely.
2021-09-28 13:40:48 +02:00
Vera Aguilera Puerto and GitHub
fbcdd63988
Gets rid of most ComponentManager usages. ( #2076 )
...
- Obsoletes more `ComponentManager` fields/properties.
2021-09-28 13:36:18 +02:00
Vera Aguilera Puerto
15778d3af4
Fix some warnings regarding IComponentManager.
2021-09-28 12:41:49 +02:00
Vera Aguilera Puerto and GitHub
051d47f4ff
Adds ComponentGetState ECS event ( #1988 )
2021-08-29 17:23:40 +02:00
e5013d9e3f
Add support for struct directed events, add by-ref directed/broadcast events. ( #1931 )
...
* Add support for struct directed events.
- Turn transform events into readonly structs
* TransformComponent events have readonly fields.
* Reduce boxing allocations, add DirectedRegistration readonly struct.
* Use typeof in a few places instead of GetType
* Add overloads to allow passing directed events by ref.
* Raise transform events by ref.
* Fix occluder AnchorStateChangedEvent subscription
* Fix broadphase subscriptions
* Fix bug oops
* Fix transform system raising moveevents by value
* Don't reflect the test entity systems.
* Directed EventBus uses ref everywhere, internally
Deduplicates a bunch of code. Whoo!
* Add broadcast by-ref events
* Fix by-ref events bug using Unsafe, add new tests for sorted by-ref events.
* Port broadcast events to by-ref.
* Speed, more correctness, reduce generics bloat.
* Clean up subscription code some.
* Remove bad test.
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com >
2021-08-21 11:37:02 +02:00
Pieter-Jan Briers and GitHub
fa0d4da6d1
Implement subscription ordering into EventBus. ( #1823 )
...
* Implement subscription ordering into EventBus.
* Topological helpers, rest of code uses shared topological sort, fix bugs.
* Fix tests.
Didn't realize that multi-subscriptions are allowed on input handlers like that??
* Improve and use topological sort helpers more.
2021-06-14 21:34:30 +02:00
Vera Aguilera Puerto and GitHub
7ad5ce302e
Directed event improvements ( #1761 )
...
* IComponentManager holds a reference to IComponentFactory.
* Directed events for a same <TComp, TEvent> can be duplicated, component references of a component are added to the entity's event tables.
* Fix tests.
* Improvements, duplicated subscriptions are no more
* Cache component factory for faster access
* when the
2021-05-21 17:38:52 -07:00
Acruid
7899780543
Unsubscribing from a directed entity event does not require a delegate argument anymore.
2021-05-02 14:23:48 -07:00
Acruid and GitHub
cbd7b62ad7
Component Lifetime Events ( #1660 )
...
* Events are now raised for component OnAdd/Initialize/Startup/Shutdown/OnRemove.
Code cleanup in the Component class.
2021-04-13 17:16:41 -07:00
Acruid and GitHub
f7e8178736
Added new ComponentEvents system in IEventBus. ( #1601 )
...
* Added new ComponentEventBus, combined it with IEventBus.
* Removed all traces of IEntity from ComponentDependencies.
Removed IEntityManager dependency from ComponentManager.
* Added entity create/delete events to IEntityManager.
* ComponentEvents now use EntitySystemMessages instead of their custom ComponentEvent class.
* Component events are now just overloads of entity events.
* Removed obsolete EntitySystemMessage, now everything uses the base EntityEventArgs.
* Add a bool argument for if the message should be broadcast as well as directed.
Fix ordering and init issues of events in EntityManager.
* Changed names from Component/Entity events to Directed/Broadcast.
* Fix bugs and unit tests.
2021-03-09 11:02:24 -08:00