You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			42 lines
		
	
	
		
			836 B
		
	
	
	
		
			GDScript
		
	
			
		
		
	
	
			42 lines
		
	
	
		
			836 B
		
	
	
	
		
			GDScript
		
	
| var file: FileAccess;
 | |
| var chunk_size = 0;
 | |
| 
 | |
| func _init(file: FileAccess):
 | |
| 	self.file = file;
 | |
| 	self.chunk_size = 0;
 | |
| 
 | |
| func has_data_to_read(): return file.get_position() < file.get_length()
 | |
| 
 | |
| func set_chunk_size(size):
 | |
| 	chunk_size = size;
 | |
| 
 | |
| func get_8():
 | |
| 	chunk_size -= 1;
 | |
| 	return file.get_8();
 | |
| func get_32(): 
 | |
| 	chunk_size -= 4;
 | |
| 	return file.get_32();
 | |
| func get_buffer(length):
 | |
| 	chunk_size -= length;
 | |
| 	return file.get_buffer(length);
 | |
| 
 | |
| func read_remaining():
 | |
| 	get_buffer(chunk_size);
 | |
| 	chunk_size = 0;
 | |
| 
 | |
| func get_string(length):
 | |
| 	return get_buffer(length).get_string_from_ascii()
 | |
| 
 | |
| func get_vox_string():
 | |
| 	var length = get_32();
 | |
| 	return get_string(length);
 | |
| 
 | |
| func get_vox_dict():
 | |
| 	var result = {};
 | |
| 	var pairs = get_32();
 | |
| 	for _p in range(pairs):
 | |
| 		var key = get_vox_string();
 | |
| 		var value = get_vox_string();
 | |
| 		result[key] = value;
 | |
| 	return result;
 |