#ifndef __LEVEL_H__
#define __LEVEL_H__

#include "types/Vector2.h"

typedef struct Level Level;

typedef enum {
	WALL_TYPE_STICKY = 0,
	WALL_TYPE_EXIT = 1,
	WALL_TYPE_BOUNCY = 2,
	WALL_TYPE_DEADLY = 3
} WallTypeEnum;

struct LevelWall {
	WallTypeEnum type;
	unsigned int vertexCount;
	Vector2 * vertices;
};

struct Level {
	Vector2 size;
	Vector2 center;
	float radius;
	Vector2 startPosition;
	
	unsigned int wallCount;
	struct LevelWall * walls;
};

struct JSONNode;

Level * Level_fromJSON(struct JSONNode * node);
void Level_dispose(Level * self);

#endif
