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