2018-06-12 13:50:27 +02:00
|
|
|
package armory.logicnode;
|
|
|
|
|
2021-06-07 13:40:54 +02:00
|
|
|
import iron.Scene;
|
2018-06-12 13:50:27 +02:00
|
|
|
import iron.data.MaterialData;
|
|
|
|
import iron.object.Object;
|
2021-06-24 21:33:21 +02:00
|
|
|
import armory.trait.internal.UniformsManager;
|
2018-06-12 13:50:27 +02:00
|
|
|
|
|
|
|
class SetMaterialValueParamNode extends LogicNode {
|
2021-06-09 19:09:24 +02:00
|
|
|
|
2019-12-19 23:54:08 +01:00
|
|
|
public function new(tree: LogicTree) {
|
2018-06-12 13:50:27 +02:00
|
|
|
super(tree);
|
|
|
|
}
|
|
|
|
|
2019-12-19 23:54:08 +01:00
|
|
|
override function run(from: Int) {
|
2021-07-10 19:20:56 +02:00
|
|
|
var perObject: Null<Bool>;
|
|
|
|
|
2021-06-07 13:40:54 +02:00
|
|
|
var object = inputs[1].get();
|
|
|
|
if(object == null) return;
|
|
|
|
|
2021-07-10 19:20:56 +02:00
|
|
|
perObject = inputs[2].get();
|
2021-06-14 13:37:10 +02:00
|
|
|
if(perObject == null) perObject = false;
|
|
|
|
|
|
|
|
var mat = inputs[3].get();
|
2021-06-07 13:40:54 +02:00
|
|
|
if(mat == null) return;
|
|
|
|
|
2021-06-14 13:37:10 +02:00
|
|
|
if(! perObject){
|
|
|
|
UniformsManager.removeObjectFromMap(object, Float);
|
2021-06-07 13:40:54 +02:00
|
|
|
object = Scene.active.root;
|
|
|
|
}
|
2021-06-05 15:11:06 +02:00
|
|
|
|
2021-06-14 13:37:10 +02:00
|
|
|
UniformsManager.setFloatValue(mat, object, inputs[4].get(), inputs[5].get());
|
2018-10-22 10:10:33 +02:00
|
|
|
runOutput(0);
|
2018-06-12 13:50:27 +02:00
|
|
|
}
|
2021-06-14 13:37:10 +02:00
|
|
|
|
2018-06-12 13:50:27 +02:00
|
|
|
}
|