rj-action-library/Runtime/Bits/BitView_Byte.cs

60 lines
1.0 KiB
C#
Raw Normal View History

2025-01-08 18:46:17 +00:00
using Godot;
using System.Collections.Generic;
using System.Text;
namespace Rokojori
{
public partial class BitView
{
public void WriteByte( byte value )
{
for ( int i = 0; i < 8; i++ )
{
WriteBit( BitMath.IsBitSet( value, i ) );
}
}
public void WriteBytes( byte[] values )
{
for ( int i = 0; i < values.Length; i++ )
{
WriteByte( values[ i ] );
}
}
public byte ReadByte()
{
var byteValue = 0;
for ( int i = 0; i < 8; i++ )
{
var bitValue = ReadBit();
if ( ! bitValue )
{
continue;
}
byteValue = byteValue | ( 1 << i );
}
return (byte) byteValue;
}
public void ReadBytes( byte[] output, int size )
{
for ( int i = 0; i < size; i++ )
{
output[ i ] = ReadByte();
}
}
public byte[] ReadByteArray( int size )
{
var data = new byte[ size ];
ReadBytes( data, size );
return data;
}
}
}