#pragma once #include "Tile.h" class Random; class Level; class FallingTile; class HeavyTile : public Tile { public: static bool instaFall; HeavyTile(int type, bool isSolidRender = true); HeavyTile(int type, Material* material, bool isSolidRender = true); virtual void onPlace(Level* level, int x, int y, int z); virtual void neighborChanged(Level* level, int x, int y, int z, int type); virtual void tick(Level* level, int x, int y, int z, Random* random); private: void checkSlide(Level* level, int x, int y, int z); protected: virtual void falling(std::shared_ptr entity); public: virtual int getTickDelay(Level* level); static bool isFree(Level* level, int x, int y, int z); virtual void onLand(Level* level, int xt, int yt, int zt, int data); };