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

#ifndef __FileUtilities_H__
#define __FileUtilities_H__

#include "3dmodelio/TextureAtlasData.h"
#include "bitmapimage/BitmapImage.h"
#include "tileset/ImageCollection.h"
#include "tileset/SpriteCollection.h"
#include "tileset/TileMapEditData.h"
#include "tileset/TilesetAdjacencyBlendMap.h"
#include "tileset/TilesetEditData.h"
#include "tileset/TileZoneMap.h"
#include "utilities/FileBundle.h"

bool unpackImageCollectionBundle(FileBundle * bundle, ImageCollection ** outImageCollection, BitmapImage ** outAtlasImage, TextureAtlasData ** outAtlasData);
TilesetEditData * readTilesetEditData(const void * data, size_t size);
TilesetAdjacencyBlendMap * readTilesetAdjacencyBlendMapData(const void * data, size_t size);
SpriteCollection * readSpriteCollectionData(const void * data, size_t size, ImageCollection * imageCollection);
TileMapEditData * readTileMapEditData(const void * data, size_t size);
TileZoneMap * readTileZoneMap(const void * data, size_t size);

#endif
