28 lines
569 B
C
28 lines
569 B
C
#ifndef VOXELS_VOXEL_H_
|
|
#define VOXELS_VOXEL_H_
|
|
|
|
#include "../typedefs.h"
|
|
|
|
const int BLOCK_DIR_NORTH = 0x0;
|
|
const int BLOCK_DIR_WEST = 0x1;
|
|
const int BLOCK_DIR_SOUTH = 0x2;
|
|
const int BLOCK_DIR_EAST = 0x3;
|
|
const int BLOCK_DIR_UP = 0x4;
|
|
const int BLOCK_DIR_DOWN = 0x5;
|
|
|
|
// limited to 8 block orientations
|
|
const int BLOCK_ROT_MASK = 0b0000'0111;
|
|
// reserved bits
|
|
const int BLOCK_RESERVED_MASK = 0b1111'1000;
|
|
|
|
struct voxel {
|
|
blockid_t id;
|
|
blockstate_t states;
|
|
|
|
inline uint8_t rotation() const {
|
|
return states & BLOCK_ROT_MASK;
|
|
}
|
|
};
|
|
|
|
#endif /* VOXELS_VOXEL_H_ */
|