Commit Graph

50 Commits

Author SHA1 Message Date
988a6f67f2 BREAKING CHANGE: renamed original Behaviour class to BehaviourInternal, and replaced it with BehaviourBase
Original Behaviour was using old methods for detecting entering/exiting universe,
they are now all under the same hood and the original is kept for UniverseEntranceManager
because it needs to enter the universe without itself. The internal behaviour kept under
a subnamespace of "Core.Internal" for the purpose that it might come in handy for other use cases.
2025-10-22 16:50:19 +03:00
c7d170fad9 perf: significant performance optimizations on ordered behaviour collectors by using a sorted dictionary 2025-10-13 09:58:58 +03:00
e3d4899112 refactor: renamed behaviour collectors from sorted to ordered 2025-10-11 16:05:47 +03:00
3d183b21cd BREAKING CHANGE: renamed namespace & assembly names 2025-08-05 19:41:35 +03:00
30ccab1b93 refactor: list pool initial count and capacity parameters added 2025-06-09 20:36:39 +03:00
152b0e93db feat: added list pools 2025-06-09 18:33:47 +03:00
6a41407005 feat: added raycasting support for physics engine 2D 2025-06-09 18:11:20 +03:00
45524e474e refactor: updated systems to use the update interfaces 2025-06-06 20:26:19 +03:00
fbdea47dc7 docs: updated physics interface delta parameter comment 2025-06-05 23:28:08 +03:00
f5fbd4e5ef feat: IPhysicsIteration interface added 2025-06-05 23:23:34 +03:00
beecefec1c refactor: switched from universe objects to behaviours on all managers like update, draw & physics etc. 2025-06-03 23:59:40 +03:00
7a3202a053 chore: simplified type names on physics engine 2D 2025-06-01 10:26:38 +03:00
1acc8bdb8f perf!: improved sorted behaviour collector by using binary insertion to reduce performance impact 2025-05-31 12:00:32 +03:00
61e2761580 perf!: events refactored throughout all the project to use Event<> class
All delegate events are refactored to use the Event<TSender> and Event<TSender, TArgument> for performance issues regarding delegate events creating garbage, also this gives us better control on event invocation since C# Delegates did also create unnecessary garbage during Delegate.DynamicInvoke
2025-05-31 00:32:58 +03:00
b0f8b0dad6 refactor: behaviour collector Count and indexer accessors added 2025-05-29 23:17:11 +03:00
9bf17cc191 perf: physics engine memory leaks fixed 2025-05-29 22:33:47 +03:00
bf8fbebae3 perf: DelegateExtensions.InvokeSafe marked obsolete for memory allocation reasons, soon to be removed 2025-05-29 21:48:08 +03:00
a3b03efd47 feat: IPhysicsEngine2D.StepIndividual method for individual object simulation 2025-05-27 15:54:07 +03:00
4213b3f8b5 fix: fixed an issue where when there is an inactive collider in the universe messing up the physics engine 2025-05-27 13:52:53 +03:00
877a004a13 refactor: added pre, regular & post physics update interfaces 2025-05-24 13:59:07 +03:00
8293c58f9f refactor: removed X.Abstract namespaces and moved StateMachine to under Systems namespace 2025-04-15 23:33:58 +03:00
70c884acfe refactor!: renamed GameManager to Universe and HierarchyObject to UniverseObject 2025-04-13 21:57:05 +03:00
58eb373c79 feat: safe delegate invocation helper added 2025-04-13 19:08:47 +03:00
48710b0a7f fix: physics engine not progressing properly due to wrong delta time parameter 2025-04-09 23:19:20 +03:00
3f7a646bf0 refactor: updated PhysicsEngine2D to be plug & play 2025-04-08 20:30:32 +03:00
61488aa0e5 fix: physics engines not triggering with correct parameters 2025-04-08 18:22:29 +03:00
f9785462b0 refactor: delegate names updated to have no "On" prefix 2025-03-29 21:51:51 +03:00
9af44d48b3 refactor: code styles enforced with .editorconfig 2025-03-17 21:32:37 +03:00
e725a4e89c refactor: Renamed Delegate Declarations as EventHandler 2024-11-23 23:14:44 +03:00
55ed8b84f6 Refactor: CollisionDetectionInformation Names 2024-11-03 20:25:28 +03:00
9f522bdb66 fix: Physics Engine Not Resolving Static Objects Correctly 2024-11-02 09:39:53 +03:00
62e50aefc1 feat: IPhysicsEngine2D Events 2024-10-25 23:10:32 +03:00
ef21cdf213 refactor: Actions to Delegates 2024-07-15 01:13:39 +03:00
ab0e868d52 style: IterationCount to IterationPerStep 2024-02-01 11:33:23 +03:00
de336d0ee5 refactor: Dependency Injection to PhysicsEngine2Ds 2024-01-31 10:08:13 +03:00
4facfdb6cf fix: Physics Engine Stepping Inactive Rigid Bodies Fixed 2024-01-31 09:59:42 +03:00
1c7d941bc1 feat(core): IBehavior.IsActive 2024-01-28 14:56:50 +03:00
dc96b93024 feat(physics): Engine Rigidbody2D Static Check 2024-01-28 14:56:13 +03:00
affd2bb8c4 feat: ICollider.OnTriggered 2024-01-27 20:31:51 +03:00
a3c4afb223 refactor: Basic Collision Resolver 2024-01-27 20:08:16 +03:00
4d9121118d refactor: Renamed OnCollisionPreResolve to OnCollisionDetected 2024-01-27 19:59:27 +03:00
05d88f7ca2 refactor: Renamed ICollisionDetector to ICollisionDetector2D 2024-01-27 19:58:55 +03:00
309c8db6e1 feat: ICollider2D Action Calls 2024-01-27 19:22:59 +03:00
0ba6913a61 fix: Static Rigidbodies Moving When Velocity or AngularVelocity Assigned 2024-01-27 19:21:18 +03:00
9556be6f17 feat: Static & Mass Consideration For Rigidbodies 2024-01-27 15:07:40 +03:00
b14d10db0c perf: Drastically Improved Memory Usage
TIL, records are not value types and are actually just reference types. So I was pretty much allocating from heap every time I used any of my data types (Like Vector2D). Needless to say, they are all now readonly structs as I originally intended them to be.
2024-01-27 00:35:12 +03:00
058c6dafe3 refactor: Removed Unused Methods 2024-01-26 17:09:21 +03:00
266443504f feat: Improved Test Collision Resolving 2024-01-25 21:54:23 +03:00
0af1b11396 feat: Test Collision Detection & Move 2024-01-25 17:45:22 +03:00
a9485475c7 feat: Initial Physics Code From Previous Repo 2024-01-23 15:40:04 +03:00