feat(physics): added owner to collider
This commit is contained in:
		
							parent
							
								
									240186c8de
								
							
						
					
					
						commit
						9c68fca766
					
				|  | @ -4,17 +4,19 @@ | ||||||
| 
 | 
 | ||||||
| struct Collider { | struct Collider { | ||||||
|     Shape* shape; |     Shape* shape; | ||||||
|  |     PhysicsEntity owner; | ||||||
|     RigidBody* body; |     RigidBody* body; | ||||||
|     PhysicsMask layers; |     PhysicsMask layers; | ||||||
|     int overlap; |     int overlap; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| Collider* collider_new(RigidBody* body, Shape* shape, int overlap, PhysicsMask layers) { | Collider* collider_new(PhysicsEntity owner, Shape* shape, int overlap, PhysicsMask layers) { | ||||||
|     Collider* self = malloc(sizeof(Collider)); |     Collider* self = malloc(sizeof(Collider)); | ||||||
|     ASSERT_RETURN(self != NULL, NULL, "Failed to allocate space for Collider"); |     ASSERT_RETURN(self != NULL, NULL, "Failed to allocate space for Collider"); | ||||||
|     *self = (Collider) { |     *self = (Collider) { | ||||||
|         .shape = shape, |         .shape = shape, | ||||||
|         .body = body, |         .owner = owner, | ||||||
|  |         .body = owner.tc->get_rigidbody(owner.data), | ||||||
|         .layers = layers, |         .layers = layers, | ||||||
|         .overlap = overlap, |         .overlap = overlap, | ||||||
|     }; |     }; | ||||||
|  | @ -51,3 +53,7 @@ int collider_is_overlap(Collider* self) { | ||||||
| void collider_set_overlap(Collider* self, int value) { | void collider_set_overlap(Collider* self, int value) { | ||||||
|     self->overlap = value; |     self->overlap = value; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | PhysicsEntity collider_get_owner(Collider* self) { | ||||||
|  |     return self->owner; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| 
 | 
 | ||||||
| typedef struct Collider Collider; | typedef struct Collider Collider; | ||||||
| 
 | 
 | ||||||
| extern Collider* collider_new(RigidBody* owner, Shape* shape, int overlap, PhysicsMask layers); | extern Collider* collider_new(PhysicsEntity owner, Shape* shape, int overlap, PhysicsMask layers); | ||||||
| extern void collider_destroy(Collider* self); | extern void collider_destroy(Collider* self); | ||||||
| extern PhysicsQuery collider_to_query(Collider* self); | extern PhysicsQuery collider_to_query(Collider* self); | ||||||
| 
 | 
 | ||||||
|  | @ -16,4 +16,6 @@ extern RigidBody* collider_get_rigidbody(Collider* self); | ||||||
| extern int collider_is_overlap(Collider* self); | extern int collider_is_overlap(Collider* self); | ||||||
| extern void collider_set_overlap(Collider* self, int value); | extern void collider_set_overlap(Collider* self, int value); | ||||||
| 
 | 
 | ||||||
|  | extern PhysicsEntity collider_get_owner(Collider* self); | ||||||
|  | 
 | ||||||
| #endif // !_fencer_collider_h
 | #endif // !_fencer_collider_h
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Sara
						Sara