// Copyright (c) 2023 Alex Diener. All rights reserved.

#ifndef __RoomVisual_H__
#define __RoomVisual_H__

#include "renderer/VertexIO.h"
#include "PROJECT_NAME/RoomState.h"
#include "tileset/TileMapVisual.h"

struct RoomVisual_layer {
	RoomLayerType type;
	TileMapVisual * visual;
};

typedef struct RoomVisual {
	unsigned int layerCount;
	struct RoomVisual_layer * layers;
} RoomVisual;

RoomVisual * RoomVisual_create(RoomState * roomState);
void RoomVisual_dispose(RoomVisual * self);
RoomVisual * RoomVisual_copy(RoomVisual * self);

void RoomVisual_draw(RoomVisual * self, Vector2f offset, VertexIO * vertexIO);

#endif
