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