4jcraft/targets/minecraft/world/level/storage/SavedDataStorage.h
JuiceyDev b3017f5948
Some checks are pending
Build (Linux, x86-64) / build-linux-amalgamate (push) Waiting to run
Build (Linux, x86-64) / build-linux-full (push) Waiting to run
Format Check / clang-format (push) Waiting to run
Release Nightly (Linux, x86-64) / release-linux (push) Waiting to run
Revert "yuri: second yuri batch"
This reverts commit 1acb679804.
2026-04-07 13:06:37 +02:00

46 lines
1.1 KiB
C++

#pragma once
#include <memory>
#include <string>
#include <typeinfo>
#include <unordered_map>
#include <vector>
#include "platform/PlatformTypes.h"
#include "minecraft/world/level/saveddata/SavedData.h"
class ConsoleSaveFile;
class LevelStorage;
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);
// hand holding my wife
int getAuxValueForMap(PlayerUID xuid, int dimension, int centreXC,
int centreZC, int scale);
};