forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			123 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			123 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package kha; | ||
|  | 
 | ||
|  | import haxe.io.Bytes; | ||
|  | import kha.Blob; | ||
|  | import kha.FontStyle; | ||
|  | import java.lang.Byte; | ||
|  | import java.util.ArrayList; | ||
|  | import java.util.List; | ||
|  | import java.io.InputStream; | ||
|  | import java.io.BufferedInputStream; | ||
|  | import java.io.FileInputStream; | ||
|  | import java.io.IOException; | ||
|  | 
 | ||
|  | class LoaderImpl { | ||
|  | 	@:functionCode('
 | ||
|  | 		String everything = ""; | ||
|  | 		try { | ||
|  | 		java.io.BufferedReader br = new java.io.BufferedReader(new java.io.FileReader(filename)); | ||
|  | 		try { | ||
|  | 			StringBuilder sb = new StringBuilder(); | ||
|  | 			String line = br.readLine(); | ||
|  | 
 | ||
|  | 			while (line != null) { | ||
|  | 				sb.append(line); | ||
|  | 				sb.append("\\n"); | ||
|  | 				line = br.readLine(); | ||
|  | 			} | ||
|  | 			everything = sb.toString(); | ||
|  | 		} finally { | ||
|  | 			br.close(); | ||
|  | 		} | ||
|  | 		} | ||
|  | 		catch (java.io.IOException ex) { | ||
|  | 
 | ||
|  | 		} | ||
|  | 		return everything; | ||
|  | 	')
 | ||
|  | 	static function loadText(filename: String): String { | ||
|  | 		return ""; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function loadSoundFromDescription(desc: Dynamic, done: kha.Sound->Void, ?failed: AssetError->Void): Void { | ||
|  | 		done(new kha.java.Sound(desc.files[0])); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function getSoundFormats(): Array<String> { | ||
|  | 		return ["wav"]; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function loadImageFromDescription(desc: Dynamic, done: Image->Void, ?failed: AssetError->Void): Void { | ||
|  | 		var image = new kha.Image(desc.files[0]); | ||
|  | 		loadRealImage(desc.files[0], image); | ||
|  | 		done(image); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function getImageFormats(): Array<String> { | ||
|  | 		return ["png", "jpg"]; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	@:functionCode('
 | ||
|  | 		try { | ||
|  | 			// getClass().getResource(filename) | ||
|  | 			image.image = javax.imageio.ImageIO.read(new java.io.File("../" + filename)); | ||
|  | 		} catch (java.io.IOException e) { | ||
|  | 			e.printStackTrace(); | ||
|  | 		} | ||
|  | 	')
 | ||
|  | 	static function loadRealImage(filename: String, image: Image) {} | ||
|  | 
 | ||
|  | 	public static function loadBlobFromDescription(desc: Dynamic, done: Blob->Void, ?failed: AssetError->Void): Void { | ||
|  | 		loadRealBlob(desc.files[0], done); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// @:functionCode(' | ||
|  | 	// 	java.util.List<Byte> bytes = new java.util.ArrayList<Byte>(); | ||
|  | 	// 	try { | ||
|  | 	// 		java.io.InputStream in = new java.io.BufferedInputStream(new java.io.FileInputStream(filename)); | ||
|  | 	// 		for (int c; (c = in.read()) != -1;) { | ||
|  | 	// 			bytes.add((byte)c); | ||
|  | 	// 		} | ||
|  | 	// 		in.close(); | ||
|  | 	// 	} | ||
|  | 	// 	catch (java.io.IOException ex) { | ||
|  | 	// 	} | ||
|  | 	// 	byte[] realbytes = new byte[bytes.size()]; | ||
|  | 	// 	for (int i = 0; i < bytes.size(); ++i) realbytes[i] = bytes.get(i); | ||
|  | 	// 	done.__hx_invoke1_o(0.0, new kha.Blob(new haxe.io.Bytes(bytes.size(), realbytes))); | ||
|  | 	// ') | ||
|  | 	static function loadRealBlob(filename: String, done: Blob->Void, ?failed: AssetError->Void) { | ||
|  | 		var bytes: List<Byte> = new ArrayList<Byte>(); | ||
|  | 		try { | ||
|  | 			var input: InputStream = new BufferedInputStream(new FileInputStream("../" + filename)); | ||
|  | 			while (true) { | ||
|  | 				var c = input.read(); | ||
|  | 				if (c == -1) | ||
|  | 					break; | ||
|  | 				bytes.add(c); | ||
|  | 			} | ||
|  | 			input.close(); | ||
|  | 		} | ||
|  | 		catch (ex:IOException) {} | ||
|  | 		var realBytes = Bytes.alloc(bytes.size()); | ||
|  | 		for (i in 0...bytes.size()) | ||
|  | 			realBytes.set(i, cast bytes.get(i).toByte()); | ||
|  | 		done(Blob.fromBytes(realBytes)); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	/*override public function loadFont(desc: Dynamic, style: FontStyle, size: Float): kha.Font { | ||
|  | 		return new Font(name, style, size); | ||
|  | 	}*/ | ||
|  | 	public static function loadFontFromDescription(desc: Dynamic, done: Font->Void, ?failed: AssetError->Void): Void { | ||
|  | 		done(new kha.java.Font("Arial", new FontStyle(false, false, false), 12)); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function loadVideoFromDescription(desc: Dynamic, done: Video->Void, ?failed: AssetError->Void): Void { | ||
|  | 		done(null); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function getVideoFormats(): Array<String> { | ||
|  | 		return []; | ||
|  | 	} | ||
|  | } |