瀏覽代碼

Adding callback to ModelLibrary.hx emit and proper cloned material class.

clementlandrin 11 月之前
父節點
當前提交
c9b46fe6a0
共有 1 個文件被更改,包括 4 次插入3 次删除
  1. 4 3
      hrt/prefab/l3d/ModelLibrary.hx

+ 4 - 3
hrt/prefab/l3d/ModelLibrary.hx

@@ -40,13 +40,13 @@ class MeshEmitter {
 		this.mesh = mesh;
 	}
 
-	public function emit( absPos : h3d.Matrix, emitCountTip : Int = -1 ) {
+	public function emit( absPos : h3d.Matrix, emitCountTip : Int = -1, ?cb : h3d.scene.MeshBatch -> Void ) {
 		for ( i => mat in materials ) {
 			var batch = @:privateAccess libraryInstance.getBatch(batches[i]);
 			libraryInstance.library.emit({ mat : mat, mesh : mesh }, batch, absPos, emitCountTip, batch.meshBatchFlags);
+			cb(batch);
 		}
 	}
-
 }
 
 class ModelLibraryInstance {
@@ -79,7 +79,8 @@ class ModelLibraryInstance {
 		var materials = [];
 
 		for ( material in mesh.getMaterials(false) ) {
-			var materialClone = cast(material.clone(), h3d.mat.Material);
+			var materialClone = h3d.mat.MaterialSetup.current.createMaterial();
+			material.clone(materialClone);
 
 			var props = h3d.mat.MaterialSetup.current.loadMaterialProps(material);
 			var prefab = null;