39 lines
		
	
	
		
			851 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			851 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package kha;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import haxe.io.Bytes;
							 | 
						||
| 
								 | 
							
								import haxe.io.BytesBuffer;
							 | 
						||
| 
								 | 
							
								import haxe.io.BytesData;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								using StringTools;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class KromStorageFile extends StorageFile {
							 | 
						||
| 
								 | 
							
									var name: String;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function new(name: String) {
							 | 
						||
| 
								 | 
							
										this.name = name;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									override public function read(): Blob {
							 | 
						||
| 
								 | 
							
										var data: BytesData = Krom.readStorage(name);
							 | 
						||
| 
								 | 
							
										return data != null ? Blob.fromBytes(Bytes.ofData(data)) : null;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									override public function write(data: Blob): Void {
							 | 
						||
| 
								 | 
							
										if (data != null) {
							 | 
						||
| 
								 | 
							
											Krom.writeStorage(name, data.toBytes().getData());
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Storage {
							 | 
						||
| 
								 | 
							
									public static function namedFile(name: String): StorageFile {
							 | 
						||
| 
								 | 
							
										name = name.replace("\\", ".");
							 | 
						||
| 
								 | 
							
										name = name.replace("/", ".");
							 | 
						||
| 
								 | 
							
										return new KromStorageFile(name);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public static function defaultFile(): StorageFile {
							 | 
						||
| 
								 | 
							
										return namedFile("default.kha");
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |