forked from LeenkxTeam/LNXSDK
		
	t3du - Set / Get World Nodes
This commit is contained in:
		
							
								
								
									
										40
									
								
								leenkx/Sources/leenkx/logicnode/SetWorldNode.hx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								leenkx/Sources/leenkx/logicnode/SetWorldNode.hx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
			
		||||
package leenkx.logicnode;
 | 
			
		||||
 | 
			
		||||
class SetWorldNode extends LogicNode {
 | 
			
		||||
 | 
			
		||||
	public function new(tree: LogicTree) {
 | 
			
		||||
		super(tree);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	override function run(from: Int) {
 | 
			
		||||
		var world: String = inputs[1].get();
 | 
			
		||||
 | 
			
		||||
		if (world != null){
 | 
			
		||||
 | 
			
		||||
			//check if world shader data exists
 | 
			
		||||
			var file: String = 'World_'+world+'_data';
 | 
			
		||||
			#if lnx_json
 | 
			
		||||
				file += ".json";
 | 
			
		||||
			#elseif lnx_compress
 | 
			
		||||
				file += ".lz4";
 | 
			
		||||
			#else
 | 
			
		||||
				file += '.lnx';
 | 
			
		||||
			#end
 | 
			
		||||
 | 
			
		||||
			var exists: Bool = false;
 | 
			
		||||
 | 
			
		||||
			iron.data.Data.getBlob(file, function(b: kha.Blob) {
 | 
			
		||||
				if (b != null) exists = true;
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			assert(Error, exists == true, "World must be either associated to a scene or have fake user");
 | 
			
		||||
 | 
			
		||||
			iron.Scene.active.raw.world_ref = world;
 | 
			
		||||
			var npath = leenkx.renderpath.RenderPathCreator.get();
 | 
			
		||||
			npath.loadShader("shader_datas/World_" + world + "/World_" + world);
 | 
			
		||||
			iron.RenderPath.setActive(npath);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		runOutput(0);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user