the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "DataLayer.h"
3
4DataLayer::DataLayer(int length, int depthBits) : depthBits(depthBits), depthBitsPlusFour(depthBits + 4)
5{
6 data = byteArray(length >> 1);
7}
8
9DataLayer::DataLayer(byteArray data, int depthBits) : depthBits(depthBits), depthBitsPlusFour(depthBits + 4)
10{
11 this->data = data;
12}
13
14DataLayer::~DataLayer()
15{
16 delete[] data.data;
17}
18
19int DataLayer::get(int x, int y, int z)
20{
21 int pos = (x << depthBitsPlusFour | z << depthBits | y);
22 int slot = pos >> 1;
23 int part = pos & 1;
24
25 if (part == 0)
26 {
27 return data[slot] & 0xf;
28 } else
29 {
30 return (data[slot] >> 4) & 0xf;
31 }
32}
33
34void DataLayer::set(int x, int y, int z, int val)
35{
36 int pos = (x << depthBitsPlusFour | z << depthBits | y);
37
38 int slot = pos >> 1;
39 int part = pos & 1;
40
41 if (part == 0)
42 {
43 data[slot] = (byte) ((data[slot] & 0xf0) | (val & 0xf));
44 } else
45 {
46 data[slot] = (byte) ((data[slot] & 0x0f) | ((val & 0xf) << 4));
47 }
48}
49
50bool DataLayer::isValid()
51{
52 return data.data != NULL;
53}
54
55void DataLayer::setAll(int br)
56{
57 byte val = (byte) (br & (br << 4));
58 for (unsigned int i = 0; i < data.length; i++)
59 {
60 data[i] = val;
61 }
62}