#pragma once #include "Entity.h" class EnderCrystal : public Entity { public: eINSTANCEOF GetType() { return eTYPE_ENDER_CRYSTAL; }; static Entity *create(Level *level) { return new EnderCrystal(level); } private: static const int MAX_LIFE = 5; public: static const int serialVersionUID = 0; int time; int life; private: static const int DATA_REMAINING_LIFE = 8; void _init(Level *level); public: EnderCrystal(Level *level); EnderCrystal(Level *level, double x, double y, double z); protected: virtual bool makeStepSound(); virtual void defineSynchedData(); public: void tick(); protected: virtual void addAdditonalSaveData(CompoundTag *tag); virtual void readAdditionalSaveData(CompoundTag *tag); public: virtual float getShadowHeightOffs(); virtual bool isPickable(); virtual bool hurt(DamageSource *source, int damage); };