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"); | ||
|  | 	} | ||
|  | } |