50 lines
1.3 KiB
C
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
|