Handle multiple material params
This commit is contained in:
parent
a3436495b0
commit
b424b058bb
|
@ -8,8 +8,7 @@ class SetMaterialImageParamNode extends LogicNode {
|
||||||
|
|
||||||
static var registered = false;
|
static var registered = false;
|
||||||
static var mat:MaterialData = null;
|
static var mat:MaterialData = null;
|
||||||
static var node = "";
|
static var map = new Map<String, kha.Image>();
|
||||||
static var image:kha.Image = null;
|
|
||||||
|
|
||||||
public function new(tree:LogicTree) {
|
public function new(tree:LogicTree) {
|
||||||
super(tree);
|
super(tree);
|
||||||
|
@ -21,21 +20,16 @@ class SetMaterialImageParamNode extends LogicNode {
|
||||||
|
|
||||||
override function run(from:Int) {
|
override function run(from:Int) {
|
||||||
mat = inputs[1].get();
|
mat = inputs[1].get();
|
||||||
node = inputs[2].get();
|
if (mat == null) return;
|
||||||
if (mat == null || node == null) return;
|
|
||||||
|
|
||||||
var name = inputs[3].get();
|
iron.data.Data.getImage(inputs[3].get(), function(image:kha.Image) {
|
||||||
iron.data.Data.getImage(name, function(img:kha.Image) {
|
map.set(inputs[2].get(), image);
|
||||||
image = img;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
runOutput(0);
|
runOutput(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function textureLink(object:Object, mat:MaterialData, link:String):kha.Image {
|
static function textureLink(object:Object, mat:MaterialData, link:String):kha.Image {
|
||||||
if (link == node) {
|
return map.get(link);
|
||||||
return image;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,8 @@ class SetMaterialRgbParamNode extends LogicNode {
|
||||||
|
|
||||||
static var registered = false;
|
static var registered = false;
|
||||||
static var mat:MaterialData = null;
|
static var mat:MaterialData = null;
|
||||||
|
static var map = new Map<String, Vec4>();
|
||||||
|
|
||||||
static var node = "";
|
static var node = "";
|
||||||
static var col:Vec4 = null;
|
static var col:Vec4 = null;
|
||||||
|
|
||||||
|
@ -21,16 +23,12 @@ class SetMaterialRgbParamNode extends LogicNode {
|
||||||
|
|
||||||
override function run(from:Int) {
|
override function run(from:Int) {
|
||||||
mat = inputs[1].get();
|
mat = inputs[1].get();
|
||||||
node = inputs[2].get();
|
if (mat == null) return;
|
||||||
col = inputs[3].get();
|
map.set(inputs[2].get(), inputs[3].get());
|
||||||
|
|
||||||
runOutput(0);
|
runOutput(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function vec3Link(object:Object, mat:MaterialData, link:String):iron.math.Vec4 {
|
static function vec3Link(object:Object, mat:MaterialData, link:String):iron.math.Vec4 {
|
||||||
if (link == node) {
|
return map.get(link);
|
||||||
return col;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,8 +8,7 @@ class SetMaterialValueParamNode extends LogicNode {
|
||||||
|
|
||||||
static var registered = false;
|
static var registered = false;
|
||||||
static var mat:MaterialData = null;
|
static var mat:MaterialData = null;
|
||||||
static var node = "";
|
static var map = new Map<String, Null<kha.FastFloat>>();
|
||||||
static var value:Null<kha.FastFloat> = null;
|
|
||||||
|
|
||||||
public function new(tree:LogicTree) {
|
public function new(tree:LogicTree) {
|
||||||
super(tree);
|
super(tree);
|
||||||
|
@ -21,16 +20,12 @@ class SetMaterialValueParamNode extends LogicNode {
|
||||||
|
|
||||||
override function run(from:Int) {
|
override function run(from:Int) {
|
||||||
mat = inputs[1].get();
|
mat = inputs[1].get();
|
||||||
node = inputs[2].get();
|
if (mat == null) return;
|
||||||
value = inputs[3].get();
|
map.set(inputs[2].get(), inputs[3].get()); // Node name, value
|
||||||
|
|
||||||
runOutput(0);
|
runOutput(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function floatLink(object:Object, mat:MaterialData, link:String):Null<kha.FastFloat> {
|
static function floatLink(object:Object, mat:MaterialData, link:String):Null<kha.FastFloat> {
|
||||||
if (link == node) {
|
return map.get(link);
|
||||||
return value;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue