PJB3005
bb81d88653
Add [NotContentImplementable] to shared interfaces
2025-12-20 16:49:35 +01:00
4747e5a05a
Add and update a lot of documentation ( #6337 )
...
* Serialization docs
Co-authored-by: Moony <moonheart08@users.noreply.github.com >
* ECS docs
Co-authored-by: Moony <moonheart08@users.noreply.github.com >
* scattered docs
Co-authored-by: Moony <moonheart08@users.noreply.github.com >
* Fixes
---------
Co-authored-by: Moony <moonheart08@users.noreply.github.com >
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com >
2025-12-15 20:26:17 +01:00
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
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
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
metalgearsloth and GitHub
a044f04e3b
Remove CompIdx locks ( #5231 )
...
* Remove CompIdx locks
So GetComponentState in PVS calls RaiseComponentEvent which in turn calls this. When you start getting a significant number of players it seems to run into lock contention considering every single compstate get will lock this.
Instead we'll just update the dictionary whenever RegisterClass is called instead.
* Fix thread-safety issues
2024-06-15 01:30:45 +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
fbc8086335
Don't iterate over component events when removing components ( #5138 )
...
* Don't iterate over component events when removing components
* Welp nevermind, forgot about tests
* A
* AAAAAA
* AAAA
2024-05-16 18:53:33 +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
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
DrSmugleaf and GitHub
b737ecf9b3
Add generic EntityUid, remove some usages of .Owner ( #4498 )
2023-10-19 12:23:48 -07:00
DrSmugleaf and GitHub
f87012e681
Allow handling by-value events by ref ( #4373 )
2023-10-18 18:37:43 -07:00
metalgearsloth and GitHub
4879252e99
Remove comprefs entirely ( #4367 )
2023-09-15 21:52:47 +10:00
PrPleGoo and GitHub
6e8ab5ce78
Ignore deleted components while raising events. ( #4311 )
2023-09-10 10:48:00 +10:00
Kara and GitHub
85547a9be7
Auto-componentstate source generator ( #3684 )
...
* dog what am i doing
* finish gen source part from class symbol
* we are dangerously close to things happening
* generation fixes
* oh? on god?
* stop autogenerating the attribute for no reason + diagnostics
* testing diagnostics
* proper type name handling + clonedata bool
* thank you material storage for making me realize this
* forgot to commit
* p
* fixes for afterautohandlestate
* make it work with access
2023-04-06 12:32:57 -05:00
DrSmugleaf and GitHub
c889c2b2aa
Optimize client entity spawning by 15% ( #3364 )
2022-10-23 15:46:46 +11: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
3c5618364c
Move ValueList<T> to Robust.Shared.Collections
2022-05-28 15:34:46 +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
Vera Aguilera Puerto and GitHub
a54283e637
ByRefEvent attribute for events. ( #2375 )
2021-12-27 17:59:32 +01:00
Pieter-Jan Briers
baf86b5b83
Get rid of ComponentTypeCache stuff.
...
It didn't really work.
2021-12-23 01:15:25 +01:00
wrexbe and GitHub
c94e49ed08
Cache Component Types ( #2325 )
2021-12-12 16:06:51 -08:00
DrSmugleaf
163deff564
Fix 3000 errors
2021-12-05 18:13:33 +01:00
Vera Aguilera Puerto
5eda1b326d
Inline OwnerUid
2021-12-03 16:30:34 +01:00
Vera Aguilera Puerto
079e099a3b
Makes many things use OwnerUid instead of Owner.Uid
2021-11-09 15:11:02 +01:00
Vera Aguilera Puerto
e2c7d95519
Don't make SubscriptionsEnumerator nullable for no good reason.
2021-10-02 11:28:38 +02:00
Vera Aguilera Puerto
0e6c00573f
EventTables' "TryGetSubscriptions" doesn't throw anymore when it can't find the uid on the event tables.
2021-10-02 11:26:38 +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
Vera Aguilera Puerto and GitHub
84b7742656
Adds by-ref and struct event support to ComponentEvents ( #1987 )
2021-08-29 16:52:38 +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
aa44b1cb8a
RaiseLocalEvent non-generic overload that checks for GetType() ( #1907 )
...
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com >
2021-07-29 13:30:29 +02:00
metalgearsloth and GitHub
ba40185179
Make entitylookup grid-relative ( #1849 )
...
* Refactor entitylookups to be 30% more based
* Refactor gucci
* Done?
* Fix most tests
* nothing suss
* Vera single-handedly saving shuttles
* fex
* Copy lookup from shuttles
* sys
* comp recursion
2021-07-12 13:39:02 +02:00
Pieter-Jan Briers
db4d787b49
use a struct enumerator for EventTables GetReferences.
2021-06-20 18:50:43 +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
65357ee8da
ComponentHandleState event ( #1778 )
2021-06-12 15:50:27 +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
Vera Aguilera Puerto
ef2c0ad8cf
Fix the comp lifetime ComponentRemove event
...
Now, event tables DispatchComponent takes in the component reference directly.
2021-04-30 01:09:50 +02: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