fencer/src/tilemap.h
2023-10-22 11:25:44 +02:00

50 lines
1.3 KiB
C

#ifndef _fencer_tilemap_h
#define _fencer_tilemap_h
#include "physics_entity.h"
#include "spritesheet.h"
#include "tileset.h"
#include "rigidbody.h"
#include "level.h"
#include "collision.h"
typedef struct TileInstance TileInstance;
typedef struct Tilemap Tilemap;
extern Tilemap* tilemap_from_autolayer(cJSON* json);
extern void tilemap_destroy(Tilemap* self);
extern void tilemap_set_tileset(Tilemap* self, Tileset* set);
extern void tilemap_draw(Tilemap* self, Transform transform);
extern size_t tilemap_get_tile_count(Tilemap* self);
extern TileInstance* tilemap_get_tile(Tilemap* self, size_t at);
extern Transform* tilemap_get_transform(Tilemap* self);
extern RigidBody* tile_instance_get_rigidbody(TileInstance* self);
extern Transform* tile_instance_get_transform(TileInstance* self);
extern Shape* tile_instance_get_shape(TileInstance* self);
extern void tile_instance_on_collision(TileInstance* self, Collision collision);
extern void tile_instance_solve_contacts(TileInstance* self, List* contacts);
impl_Transformable_for(Tilemap,
tilemap_get_transform
)
impl_Transformable_for(TileInstance,
tile_instance_get_transform
)
impl_PhysicsEntity_for(TileInstance,
tile_instance_get_rigidbody,
tile_instance_get_shape,
tile_instance_on_collision,
tile_instance_solve_contacts
)
#endif // !_fencer_tilemap_h