summaryrefslogtreecommitdiff
path: root/byte_stream.gd
blob: df55a7d6b242e963f07aaac546321cc5e221f5b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
class_name ByteStream


var bytes: PackedByteArray

var position: int = 0


@warning_ignore("shadowed_variable")
static func from_bytes(bytes: PackedByteArray):
	var byte_stream = ByteStream.new()
	
	byte_stream.bytes = bytes
	
	return byte_stream


@warning_ignore("shadowed_variable")
func seek(position: int):
	if position > 0:
		assert(position < bytes.size())
	
	self.position = position


func decode_u8():
	var result = bytes.decode_u8(position)
	seek(position + 1)
	
	return result

func decode_u16():
	var result = bytes.decode_u16(position)
	seek(position + 2)
	
	return result

func decode_u32():
	var result = bytes.decode_u32(position)
	seek(position + 4)
	
	return result

func decode_u64():
	var result = bytes.decode_u64(position)
	seek(position + 8)
	
	return result

func decode_s8():
	var result = bytes.decode_s8(position)
	seek(position + 1)
	
	return result

func decode_s16():
	var result = bytes.decode_s16(position)
	seek(position + 2)
	
	return result

func decode_s32():
	var result = bytes.decode_s32(position)
	seek(position + 4)
	
	return result

func decode_s64():
	var result = bytes.decode_s64(position)
	seek(position + 8)
	
	return result