4jcraft/Minecraft.World/Level/Storage/SavedDataStorage.h
2026-03-06 12:16:41 -06:00

36 lines
851 B
C++

#pragma once
class ConsoleSaveFile;
#include "SavedData.h"
class SavedDataStorage
{
private:
LevelStorage *levelStorage;
typedef std::unordered_map<std::wstring, std::shared_ptr<SavedData> > cacheMapType;
cacheMapType cache;
std::vector<std::shared_ptr<SavedData> > savedDatas;
typedef std::unordered_map<std::wstring, short> uaiMapType;
uaiMapType usedAuxIds;
public:
SavedDataStorage(LevelStorage *);
std::shared_ptr<SavedData> get(const std::type_info& clazz, const std::wstring& id);
void set(const std::wstring& id, std::shared_ptr<SavedData> data);
void save();
private:
void save(std::shared_ptr<SavedData> data);
void loadAuxValues();
public:
int getFreeAuxValueFor(const std::wstring& id);
// 4J Added
int getAuxValueForMap(PlayerUID xuid, int dimension, int centreXC, int centreZC, int scale);
};