76 lines
1.2 KiB
C#
76 lines
1.2 KiB
C#
using Godot;
|
|
|
|
using System;
|
|
using System.Text;
|
|
|
|
namespace Rokojori
|
|
{
|
|
public class ByteView
|
|
{
|
|
byte[] _data;
|
|
int _start;
|
|
int _size;
|
|
|
|
public ByteView From( byte[] bytes )
|
|
{
|
|
var view = new ByteView();
|
|
view._start = 0;
|
|
view._size = bytes.Length;
|
|
view._data = bytes;
|
|
|
|
return view;
|
|
}
|
|
|
|
public byte[] GetBytes()
|
|
{
|
|
if ( _start == 0 && _size == _data.Length )
|
|
{
|
|
return _data;
|
|
}
|
|
|
|
var bytes = new byte[ _size ];
|
|
|
|
Array.Copy( _data, _start, bytes, 0, _size );
|
|
|
|
return bytes;
|
|
}
|
|
|
|
public string Stringify()
|
|
{
|
|
return Stringify( _data, _start, _size );
|
|
}
|
|
|
|
public static string Stringify( byte[] _data, int _start = 0, int _size = -1)
|
|
{
|
|
if ( _size < 0 )
|
|
{
|
|
_size = _data.Length - _start;
|
|
}
|
|
|
|
var sb = new StringBuilder();
|
|
|
|
for ( int i = 0; i < _size; i++ )
|
|
{
|
|
if ( i != 0 )
|
|
{
|
|
sb.Append( " " );
|
|
}
|
|
|
|
var value = _data[ i + _start ] + "";
|
|
|
|
while ( value.Length < 3 )
|
|
{
|
|
value = "0" + value;
|
|
}
|
|
|
|
sb.Append( value );
|
|
|
|
}
|
|
|
|
return sb.ToString();
|
|
}
|
|
|
|
|
|
|
|
}
|
|
} |