4jcraft/Minecraft.World/Level/Storage/SavedDataStorage.h
2026-03-13 17:06:56 -05:00

37 lines
944 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);
};