diff options
| author | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
|---|---|---|
| committer | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
| commit | b691c43c44ff180d10e7d4a9afc83b98551ff586 (patch) | |
| tree | 3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.World/Explosion.h | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.World/Explosion.h')
| -rw-r--r-- | Minecraft.World/Explosion.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Minecraft.World/Explosion.h b/Minecraft.World/Explosion.h new file mode 100644 index 00000000..c06960d2 --- /dev/null +++ b/Minecraft.World/Explosion.h @@ -0,0 +1,42 @@ +#pragma once +#include "TilePos.h" +#include "Player.h" + +class Random; +class Level; + +class Explosion +{ +public: + bool fire; + bool destroyBlocks; + +private: + int size; + + Random *random; + Level *level; + +public: + double x, y, z; + shared_ptr<Entity> source; + float r; + + unordered_set<TilePos, TilePosKeyHash, TilePosKeyEq> toBlow; + +private: + typedef unordered_map<shared_ptr<Player>, Vec3 * , PlayerKeyHash, PlayerKeyEq> playerVec3Map; + playerVec3Map hitPlayers; + +public: + Explosion(Level *level, shared_ptr<Entity> source, double x, double y, double z, float r); + ~Explosion(); + +public: + void explode(); + +public: + void finalizeExplosion(bool generateParticles, vector<TilePos> *toBlowDirect = NULL); // 4J - added toBlow parameter + playerVec3Map *getHitPlayers(); + Vec3 *getHitPlayerKnockback( shared_ptr<Player> player ); +};
\ No newline at end of file |
