the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1
2#pragma once
3#ifndef SN_TARGET_PS3_SPU
4#include "..\..\..\stdafx.h"
5#include "..\..\..\..\Minecraft.World\Region.h"
6#include "..\..\..\Tesselator.h"
7#include "..\..\..\..\Minecraft.World\LightLayer.h"
8#endif // SN_TARGET_PS3_SPU
9
10#include "..\..\..\..\Minecraft.World\LightLayer.h"
11#include "Tile_SPU.h"
12#include "Tesselator_SPU.h"
13
14class TileRenderer_SPU;
15
16
17
18class ChunkRebuildData
19{
20public:
21 enum tileFlags
22 {
23 e_flag_NoRender = 0x01,
24 e_flag_SPURenderCodeMissing = 0x02
25 };
26
27 enum chunkFlags
28 {
29 e_flag_EmptyChunk = 0x01,
30 e_flag_HasCeiling = 0x02,
31 e_flag_TouchedSky = 0x04,
32 e_flag_Rendered = 0x08
33 };
34
35// private:
36 static const int sc_size = 20;
37 unsigned char m_tileIds[sc_size*sc_size*sc_size]; // byte
38 unsigned char m_brightness[sc_size*sc_size*sc_size]; // 2x 4bit
39 unsigned char m_data_flags[sc_size*sc_size*sc_size]; // 2x 4bit
40 int m_grassColor[sc_size*sc_size];
41 int m_foliageColor[sc_size*sc_size];
42 int m_waterColor[sc_size*sc_size];
43
44 TileData_SPU m_tileData;
45 Tesselator_SPU m_tesselator;
46
47#ifdef SN_TARGET_PS3_SPU
48 void* m_pRegion;
49#else
50 Region* m_pRegion;
51#endif // SN_TARGET_PS3_SPU
52 int m_x0;
53 int m_y0;
54 int m_z0;
55 float m_brightnessRamp[16];
56 int m_levelSkyDarken;
57 unsigned int m_flags;
58 unsigned int m_currentLayer;
59 int m_lastHitBlockX;
60 int m_lastHitBlockY;
61 int m_lastHitBlockZ;
62 unsigned int m_pad[3];// padding to 16 byte alignment
63
64
65 int getTileIdx(int x, int y, int z) { return (( x - m_x0 )*sc_size*sc_size) + (( y - m_y0 )*sc_size) + ( z - m_z0 ); }
66 int getTileIdx(int x, int z) { return (( x - m_x0 )*sc_size) + ( z - m_z0 ); }
67
68 void buildTile(int x, int y, int z);
69 void disableUnseenTiles();
70 void createTileData();
71public:
72
73#if 0 //def SN_TARGET_PS3_SPU
74 int getTile(int x, int y, int z);
75 int getBrightnessSky(int x, int y, int z);
76 int getBrightnessBlock(int x, int y, int z);
77 int getData(int x, int y, int z);
78 int getFlags(int x, int y, int z);
79
80 void setFlag(int x, int y, int z, int flag);
81 int getGrassColor(int x, int z);
82 int getFoliageColor(int x, int z);
83
84#else
85 int getTile( int x, int y, int z ) { return m_tileIds[getTileIdx(x,y,z)]; }
86 int getBrightnessSky(int x, int y, int z) { return m_brightness[getTileIdx(x,y,z)] & 0x0f; }
87 int getBrightnessBlock(int x, int y, int z) { return m_brightness[getTileIdx(x,y,z)] >> 4; }
88 int getData(int x, int y, int z) { return m_data_flags[getTileIdx(x,y,z)] & 0x0f; }
89 int getFlags(int x, int y, int z) { return m_data_flags[getTileIdx(x,y,z)] >> 4; }
90
91 void setFlag(int x, int y, int z, int flag) { m_data_flags[getTileIdx(x,y,z)] |= (flag<<4); }
92 int getGrassColor( int x, int z ) { return m_grassColor[getTileIdx(x,z)]; }
93 int getFoliageColor( int x, int z ) { return m_foliageColor[getTileIdx(x,z)]; }
94 int getWaterColor( int x, int z ) { return m_waterColor[getTileIdx(x,z)]; }
95#endif
96
97
98#ifndef SN_TARGET_PS3_SPU
99 void buildMaterials();
100 void buildMaterial(int matSPUIndex, Material* mat);
101 int getMaterialID(Tile* pTile);
102 void buildForChunk(Region* region, Level* level, int x0, int y0, int z0);
103 void copyFromTesselator();
104 void storeInTesselator();
105#endif
106 bool isEmptyTile(int x, int y, int z);
107 bool isEmptyChunk() { return m_flags & e_flag_EmptyChunk;}
108 bool isSolidRenderTile(int x, int y, int z);
109 bool isSolidBlockingTile(int x, int y, int z);
110 float getBrightness(int x, int y, int z, int emitt);
111 float getBrightness(int x, int y, int z);
112
113 // 4J - changes brought forward from 1.8.2
114 int getBrightness(LightLayer::variety layer, int x, int y, int z);
115 int getBrightnessPropagate(LightLayer::variety layer, int x, int y, int z);
116
117 int getLightColor(int x, int y, int z, int emitt); // 4J - change brought forward from 1.8.2
118 int getRawBrightness(int x, int y, int z);
119 int getRawBrightness(int x, int y, int z, bool propagate);
120
121 int LevelChunk_getRawBrightness(int x, int y, int z, int skyDampen);
122 Material_SPU* getMaterial(int x, int y, int z);
123
124
125 void tesselateAllTiles(TileRenderer_SPU* pTileRenderer);
126
127};
128
129