the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at master 129 lines 4.0 kB view raw
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