aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/RailTile.cpp
blob: 798d248ca4336b069d4400d69ea67db8aa2dc92d (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
#include "stdafx.h"
#include "net.minecraft.world.h"
#include "RailTile.h"

RailTile::RailTile(int id) : BaseRailTile(id, false)
{
}

Icon *RailTile::getTexture(int face, int data)
{
	if (data >= 6)
	{
		return iconTurn;
	}
	else
	{
		return icon;
	}
}

void RailTile::registerIcons(IconRegister *iconRegister)
{
	BaseRailTile::registerIcons(iconRegister);
	iconTurn = iconRegister->registerIcon(getIconName() + L"_turned");
}

void RailTile::updateState(Level *level, int x, int y, int z, int data, int dir, int type)
{
	if (type > 0 && Tile::tiles[type]->isSignalSource())
	{
		if (Rail(level, x, y, z).countPotentialConnections() == 3)
		{
			updateDir(level, x, y, z, false);
		}
	}
}