fencer/src/player.h
2023-10-14 20:55:21 +02:00

52 lines
1.1 KiB
C

#ifndef _fencer_player_h
#define _fencer_player_h
#include "physics_entity.h"
#include "behaviour_entity.h"
#include "transformable.h"
#include "collision.h"
#include "sprite.h"
#include "sprite_entity.h"
typedef struct Player {
Transform transform;
RigidBody* rigidbody;
Shape* shape;
Sprite* sprite;
} Player;
extern void player_spawn(Player* self, Vector at);
extern void player_start(Player* self);
extern void player_update(Player* self, float dt);
extern void player_collision(Player* self, Collision hit);
extern Sprite* player_get_sprite(Player* sprite);
extern Transform* player_get_transform(Player* self);
extern RigidBody* player_get_rigidbody(Player* self);
extern Shape* player_get_shape(Player* self);
impl_Transformable_for(Player,
player_get_transform
)
impl_SpriteEntity_for(Player,
player_get_sprite
)
impl_PhysicsEntity_for(Player,
player_get_rigidbody,
player_get_shape,
player_collision
)
impl_BehaviourEntity_for(Player,
player_start,
player_update,
player_spawn
)
#endif // !_fencer_player_h