mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-24 10:03:38 +00:00
40 lines
1.4 KiB
C++
40 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include "Tile.h"
|
|
|
|
class HalfSlabTile : public Tile {
|
|
public:
|
|
static const int TYPE_MASK = 7;
|
|
static const int TOP_SLOT_BIT = 8;
|
|
|
|
protected:
|
|
bool fullSize;
|
|
|
|
public:
|
|
HalfSlabTile(int id, bool fullSize, Material* material);
|
|
virtual void updateShape(
|
|
LevelSource* level, int x, int y, int z, int forceData = -1,
|
|
std::shared_ptr<TileEntity> forceEntity = std::shared_ptr<
|
|
TileEntity>()); // 4J added forceData, forceEntity param
|
|
virtual void updateDefaultShape();
|
|
virtual void addAABBs(Level* level, int x, int y, int z, AABB* box,
|
|
AABBList* boxes, std::shared_ptr<Entity> source);
|
|
virtual bool isSolidRender(bool isServerLevel);
|
|
virtual int getPlacedOnFaceDataValue(Level* level, int x, int y, int z,
|
|
int face, float clickX, float clickY,
|
|
float clickZ, int itemValue);
|
|
virtual int getResourceCount(Random* random);
|
|
virtual int getSpawnResourcesAuxValue(int data);
|
|
virtual bool isCubeShaped();
|
|
virtual bool shouldRenderFace(LevelSource* level, int x, int y, int z,
|
|
int face);
|
|
|
|
private:
|
|
static bool isHalfSlab(int tileId);
|
|
|
|
public:
|
|
virtual int getAuxName(int auxValue) = 0;
|
|
|
|
virtual int cloneTileData(Level* level, int x, int y, int z);
|
|
virtual int cloneTileId(Level* level, int x, int y, int z);
|
|
}; |