blob: 131bd4906fb107844bad93b168f7ca7abf591647 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#pragma once
#include "Tile_SPU.h"
#include "Facing_SPU.h"
class DiodeTile_SPU : public Tile_SPU
{
public:
static const int DIRECTION_MASK = 0x3;
static const int DELAY_MASK = 0xC;
static const int DELAY_SHIFT = 2;
static const double DELAY_RENDER_OFFSETS[4];
static const int DELAYS[4];
public:
DiodeTile_SPU(int id) : Tile_SPU(id) {}
virtual Icon_SPU *getTexture(int face, int data)
{
// down is used by the torch tesselator
if (face == Facing::DOWN)
{
if (id==diode_on_Id)
{
return TileRef_SPU(notGate_on_Id)->getTexture(face);
}
return TileRef_SPU(notGate_off_Id)->getTexture(face);
}
if (face == Facing::UP)
{
return icon();
}
// edge of stone half-step
return TileRef_SPU(stoneSlab_Id)->getTexture(Facing::UP);
}
virtual bool shouldRenderFace(LevelSource *level, int x, int y, int z, int face)
{
if (face == Facing::DOWN || face == Facing::UP)
return false;
return true;
}
virtual int getRenderShape() { return SHAPE_DIODE; }
virtual bool isSolidRender(bool isServerLevel = false) { return false; }
};
|