58 lines
1.3 KiB
C++
58 lines
1.3 KiB
C++
#pragma once
|
|
#include "Tile_SPU.h"
|
|
|
|
class RailTile_SPU : public Tile_SPU
|
|
{
|
|
|
|
public:
|
|
static const int RAIL_DATA_BIT = 8;
|
|
static const int RAIL_DIRECTION_MASK = 7;
|
|
|
|
RailTile_SPU(int id) : Tile_SPU(id) {}
|
|
virtual bool isSolidRender(bool isServerLevel = false) { return false; }
|
|
virtual void updateShape(ChunkRebuildData *level, int x, int y, int z, int forceData = -1, TileEntity* forceEntity = NULL) // 4J added forceData, forceEntity param
|
|
{
|
|
int data = level->getData(x, y, z);
|
|
if (data >= 2 && data <= 5)
|
|
{
|
|
setShape(0, 0, 0, 1, 2 / 16.0f + 0.5f, 1);
|
|
} else
|
|
{
|
|
setShape(0, 0, 0, 1, 2 / 16.0f, 1);
|
|
}
|
|
}
|
|
virtual Icon_SPU *getTexture(int face, int data)
|
|
{
|
|
bool usesDataBit = false;
|
|
Icon_SPU* iconTurn = &ms_pTileData->railTile_iconTurn;
|
|
if(id == goldenRail_Id)
|
|
{
|
|
usesDataBit = true;
|
|
iconTurn = &ms_pTileData->railTile_iconTurnGolden;
|
|
}
|
|
|
|
if (usesDataBit)
|
|
{
|
|
// if (id == Tile::goldenRail_Id)
|
|
// {
|
|
if ((data & RAIL_DATA_BIT) == 0)
|
|
{
|
|
return icon();
|
|
}
|
|
else
|
|
{
|
|
return iconTurn; // Actually the powered rail on version
|
|
}
|
|
// }
|
|
} else if (data >= 6) return iconTurn;
|
|
return icon();
|
|
|
|
}
|
|
virtual int getRenderShape() { return Tile_SPU::SHAPE_RAIL; }
|
|
bool isUsesDataBit()
|
|
{
|
|
if(id == goldenRail_Id || id == detectorRail_Id)
|
|
return true;
|
|
return false;
|
|
}
|
|
}; |