Quellcode durchsuchen

Material library QoL

clandrin vor 2 Jahren
Ursprung
Commit
19e473a2ff
1 geänderte Dateien mit 6 neuen und 3 gelöschten Zeilen
  1. 6 3
      hxd/fmt/hmd/Library.hx

+ 6 - 3
hxd/fmt/hmd/Library.hx

@@ -278,12 +278,12 @@ class Library {
 		#if hide
 		if( (props:Dynamic).__ref != null ) {
 			try {
-				setupMaterialLibrary(mat, hxd.res.Loader.currentInstance.load((props:Dynamic).__ref).toPrefab(), (props:Dynamic).name);
+				if ( setupMaterialLibrary(mat, hxd.res.Loader.currentInstance.load((props:Dynamic).__ref).toPrefab(), (props:Dynamic).name) )
+					return mat;
 			} catch( e : hxd.res.NotFound ) {
 				e.path += " (in "+resource.entry.path+"@"+mat.name+")";
 				throw e;
 			}
-			return mat;
 		}
 		#end
 		if( m.diffuseTexture != null ) {
@@ -745,7 +745,9 @@ class Library {
 
 	#if hide
 	public dynamic static function setupMaterialLibrary( mat : h3d.mat.Material, lib : hrt.prefab.Resource, name : String ) {
-		var m  = lib.load().get(hrt.prefab.Material,name);
+		var m  = lib.load().getOpt(hrt.prefab.Material,name);
+		if ( m == null )
+			return false;
 		@:privateAccess m.update(mat, m.renderProps(),
 		function loadTexture ( path : String ) {
 			return hxd.res.Loader.currentInstance.load(path).toTexture();
@@ -759,6 +761,7 @@ class Library {
 			var s = shader.makeShader(ctx);
 			@:privateAccess shader.applyShader(null, mat, s);
 		}
+		return true;
 	}
 	#end