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/ParticleEngine.h | 44 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Minecraft.Client/ParticleEngine.h (limited to 'Minecraft.Client/ParticleEngine.h') diff --git a/Minecraft.Client/ParticleEngine.h b/Minecraft.Client/ParticleEngine.h new file mode 100644 index 00000000..09e3685b --- /dev/null +++ b/Minecraft.Client/ParticleEngine.h @@ -0,0 +1,44 @@ +#pragma once +using namespace std; + +class Particle; +class Level; +class Textures; +class Entity; +class Random; +using namespace std; + +class ParticleEngine +{ +private: + static const int MAX_PARTICLES_PER_LAYER = 200; // 4J - reduced from 4000 + static const int MAX_DRAGON_BREATH_PARTICLES = 1000; + +public: + static const int MISC_TEXTURE = 0; + static const int TERRAIN_TEXTURE = 1; + static const int ITEM_TEXTURE = 2; + static const int ENTITY_PARTICLE_TEXTURE = 3; + static const int DRAGON_BREATH_TEXTURE = 4; // 4J Added + + static const int TEXTURE_COUNT = 5; + +protected: + Level *level; +private: + deque > particles[3][TEXTURE_COUNT]; // 4J made two arrays to cope with simultaneous two dimensions + Textures *textures; + Random *random; + +public: + ParticleEngine(Level *level, Textures *textures); + ~ParticleEngine(); + void add(shared_ptr p); + void tick(); + void render(shared_ptr player, float a); + void renderLit(shared_ptr player, float a); + void setLevel(Level *level); + void destroy(int x, int y, int z, int tid, int data); + void crack(int x, int y, int z, int face); + wstring countParticles(); +}; \ No newline at end of file -- cgit v1.2.3