#pragma once #include "Entity.h" class HangingEntity : public Entity { public: eINSTANCEOF GetType() { return eTYPE_HANGING_ENTITY; } private: void _init(Level *level); int checkInterval; //eINSTANCEOF eType; protected: virtual void defineSynchedData() {}; public: int dir; int xTile, yTile, zTile; HangingEntity(Level *level); HangingEntity(Level *level, int xTile, int yTile, int zTile, int dir); void setDir(int dir); virtual bool survives(); private: float offs(int w); public: virtual void tick(); virtual bool isPickable(); virtual bool skipAttackInteraction(shared_ptr source); virtual bool hurt(DamageSource *source, float damage); virtual void move(double xa, double ya, double za, bool noEntityCubes=false); // 4J - added noEntityCubes parameter virtual void push(double xa, double ya, double za); virtual void addAdditonalSaveData(CompoundTag *tag); virtual void readAdditionalSaveData(CompoundTag *tag); virtual int getWidth()=0; virtual int getHeight()=0; virtual void dropItem(shared_ptr causedBy)=0; protected: virtual bool repositionEntityAfterLoad(); };