aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/Region.h
blob: 7d6cdc11d9b63b722396e522e5bf7bc554efae97 (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
45
46
47
48
49
50
51
52
#pragma once

#include "LevelSource.h"

class Material;
class TileEntity;
class BiomeSource;

class Region : public LevelSource
{
private:
	int xc1, zc1;
	LevelChunk2DArray *chunks;
	Level *level;
	bool allEmpty;

	// AP - added a caching system for Chunk::rebuild to take advantage of
	int xcCached, zcCached;
	unsigned char *CachedTiles;

public:
	Region(Level *level, int x1, int y1, int z1, int x2, int y2, int z2, int r);
	virtual ~Region();
	bool isAllEmpty();
	int getTile(int x, int y, int z);
	shared_ptr<TileEntity> getTileEntity(int x, int y, int z);
	float getBrightness(int x, int y, int z, int emitt);
	float getBrightness(int x, int y, int z);
	int getLightColor(int x, int y, int z, int emitt, int tileId = -1);	// 4J - change brought forward from 1.8.2
	int getRawBrightness(int x, int y, int z);
	int getRawBrightness(int x, int y, int z, bool propagate);
	int getData(int x, int y, int z);
	Material *getMaterial(int x, int y, int z);
	BiomeSource *getBiomeSource();
	Biome *getBiome(int x, int z);
	bool isSolidRenderTile(int x, int y, int z);
	bool isSolidBlockingTile(int x, int y, int z);
	bool isTopSolidBlocking(int x, int y, int z);
	bool isEmptyTile(int x, int y, int z);

	// 4J - changes brought forward from 1.8.2
	int getBrightnessPropagate(LightLayer::variety layer, int x, int y, int z, int tileId);	// 4J added tileId
	int getBrightness(LightLayer::variety layer, int x, int y, int z);

	int getMaxBuildHeight();
	int getDirectSignal(int x, int y, int z, int dir);

	LevelChunk* getLevelChunk(int x, int y, int z);

	// AP - added a caching system for Chunk::rebuild to take advantage of
	void setCachedTiles(unsigned char *tiles, int xc, int zc);
};