From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.Client/Chunk.h | 87 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 Minecraft.Client/Chunk.h (limited to 'Minecraft.Client/Chunk.h') diff --git a/Minecraft.Client/Chunk.h b/Minecraft.Client/Chunk.h new file mode 100644 index 00000000..f7947156 --- /dev/null +++ b/Minecraft.Client/Chunk.h @@ -0,0 +1,87 @@ +#pragma once +#include "AllowAllCuller.h" +#include "Tesselator.h" +#include "..\Minecraft.World\ArrayWithLength.h" +#include "LevelRenderer.h" + +class Level; +class TileEntity; +class Entity; +using namespace std; + +class ClipChunk +{ +public: + Chunk *chunk; + int globalIdx; + bool visible; + float aabb[6]; + int xm, ym, zm; +}; + +class Chunk +{ +private: + static const int XZSIZE = LevelRenderer::CHUNK_XZSIZE; + static const int SIZE = LevelRenderer::CHUNK_SIZE; + +public: + Level *level; + static LevelRenderer *levelRenderer; +private: +#ifndef _LARGE_WORLDS + static Tesselator *t; +#else + static DWORD tlsIdx; +public: + static void CreateNewThreadStorage(); + static void ReleaseThreadStorage(); + static unsigned char *GetTileIdsStorage(); +#endif + +public: + static int updates; + + int x, y, z; + int xRender, yRender, zRender; + int xRenderOffs, yRenderOffs, zRenderOffs; + + int xm, ym, zm; + AABB *bb; + ClipChunk *clipChunk; + + int id; +//public: +// vector > renderableTileEntities; // 4J - removed + +private: + LevelRenderer::rteMap *globalRenderableTileEntities; + CRITICAL_SECTION *globalRenderableTileEntities_cs; + bool assigned; +public: + Chunk(Level *level, LevelRenderer::rteMap &globalRenderableTileEntities, CRITICAL_SECTION &globalRenderableTileEntities_cs, int x, int y, int z, ClipChunk *clipChunk); + Chunk(); + + void setPos(int x, int y, int z); +private: + void translateToPos(); +public: + void makeCopyForRebuild(Chunk *source); + void rebuild(); +#ifdef __PS3__ + void rebuild_SPU(); +#endif // __PS3__ + float distanceToSqr(shared_ptr player) const; + float squishedDistanceToSqr(shared_ptr player); + void reset(); + void _delete(); + + int getList(int layer); + void cull(Culler *culler); + void renderBB() ; + bool isEmpty(); + void setDirty(); + void clearDirty(); // 4J added + bool emptyFlagSet(int layer); + ~Chunk(); +}; -- cgit v1.2.3