first commit

This commit is contained in:
murdle
2026-03-01 02:38:58 +02:00
commit 19250b9db4
19111 changed files with 4358159 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
#pragma once
#include "ChunkStorage.h"
#include "LevelChunk.h"
#include "File.h"
#include "CompoundTag.h"
#include "com.mojang.nbt.h"
class Level;
class OldChunkStorage : public ChunkStorage
{
private:
// 4J added so we can have separate storage arrays for different threads
class ThreadStorage
{
public:
byteArray blockData;
byteArray dataData;
byteArray skyLightData;
byteArray blockLightData;
ThreadStorage();
~ThreadStorage();
};
static DWORD tlsIdx;
static ThreadStorage *tlsDefault;
public:
// Each new thread that needs to use Compression will need to call one of the following 2 functions, to either create its own
// local storage, or share the default storage already allocated by the main thread
static void CreateNewThreadStorage();
static void UseDefaultThreadStorage();
static void ReleaseThreadStorage();
private:
File dir;
bool create;
public:
OldChunkStorage(File dir, bool create);
private:
File getFile(int x, int z);
LevelChunk *load(Level *level, int x, int z);
public:
virtual void save(Level *level, LevelChunk *levelChunk);
static bool saveEntities(LevelChunk *lc, Level *level, CompoundTag *tag); // 4J Added
static void save(LevelChunk *lc, Level *level, DataOutputStream *dos); // 4J Added
static void save(LevelChunk *lc, Level *level, CompoundTag *tag);
static void loadEntities(LevelChunk *lc, Level *level, CompoundTag *tag);
static LevelChunk *load(Level *level, CompoundTag *tag);
static LevelChunk *load(Level *level, DataInputStream *dis); // 4J Added
virtual void tick();
virtual void flush();
virtual void saveEntities(Level *level, LevelChunk *levelChunk);
};