forked from mirrors/NBTExplorer
Small bit of Anvil support.
This commit is contained in:
parent
33e8cf2174
commit
d9832544ce
1 changed files with 69 additions and 0 deletions
|
@ -151,4 +151,73 @@ namespace Substrate.Core
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public sealed class YZXNibbleArray : NibbleArray
|
||||||
|
{
|
||||||
|
private readonly int _xdim;
|
||||||
|
private readonly int _ydim;
|
||||||
|
private readonly int _zdim;
|
||||||
|
|
||||||
|
public YZXNibbleArray (int xdim, int ydim, int zdim)
|
||||||
|
: base(xdim * ydim * zdim)
|
||||||
|
{
|
||||||
|
_xdim = xdim;
|
||||||
|
_ydim = ydim;
|
||||||
|
_zdim = zdim;
|
||||||
|
}
|
||||||
|
|
||||||
|
public YZXNibbleArray (int xdim, int ydim, int zdim, byte[] data)
|
||||||
|
: base(data)
|
||||||
|
{
|
||||||
|
_xdim = xdim;
|
||||||
|
_ydim = ydim;
|
||||||
|
_zdim = zdim;
|
||||||
|
|
||||||
|
if (xdim * ydim * zdim != data.Length * 2) {
|
||||||
|
throw new ArgumentException("Product of dimensions must equal half length of raw data");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte this[int x, int y, int z]
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
int index = _xdim * (y * _zdim + z) + x;
|
||||||
|
return this[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
set
|
||||||
|
{
|
||||||
|
int index = _xdim * (y * _zdim + z) + x;
|
||||||
|
this[index] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int XDim
|
||||||
|
{
|
||||||
|
get { return _xdim; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int YDim
|
||||||
|
{
|
||||||
|
get { return _ydim; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int ZDim
|
||||||
|
{
|
||||||
|
get { return _zdim; }
|
||||||
|
}
|
||||||
|
|
||||||
|
#region ICopyable<NibbleArray> Members
|
||||||
|
|
||||||
|
public override NibbleArray Copy ()
|
||||||
|
{
|
||||||
|
byte[] data = new byte[Data.Length];
|
||||||
|
Data.CopyTo(data, 0);
|
||||||
|
|
||||||
|
return new YZXNibbleArray(_xdim, _ydim, _zdim, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue