commit
b2566a8249
|
@ -1,6 +1,7 @@
|
||||||
package armory.logicnode;
|
package armory.logicnode;
|
||||||
|
|
||||||
import iron.object.MeshObject;
|
import iron.object.MeshObject;
|
||||||
|
import iron.object.DecalObject;
|
||||||
|
|
||||||
class GetMaterialNode extends LogicNode {
|
class GetMaterialNode extends LogicNode {
|
||||||
|
|
||||||
|
@ -9,11 +10,27 @@ class GetMaterialNode extends LogicNode {
|
||||||
}
|
}
|
||||||
|
|
||||||
override function get(from: Int): Dynamic {
|
override function get(from: Int): Dynamic {
|
||||||
var object: MeshObject = inputs[0].get();
|
|
||||||
var slot: Int = inputs[1].get();
|
|
||||||
|
|
||||||
if (object == null) return null;
|
var object = inputs[0].get();
|
||||||
|
|
||||||
return object.materials[slot];
|
assert(Error, object != null, "The object input must not be null");
|
||||||
|
|
||||||
|
#if rp_decals
|
||||||
|
if (Std.isOfType(object, DecalObject)) {
|
||||||
|
var decal = cast(object, DecalObject);
|
||||||
|
return decal.material;
|
||||||
|
}
|
||||||
|
#end
|
||||||
|
|
||||||
|
if (Std.isOfType(object, MeshObject)) {
|
||||||
|
var mesh = cast(object, MeshObject);
|
||||||
|
var slot: Int = inputs[1].get();
|
||||||
|
|
||||||
|
if (mesh == null) return null;
|
||||||
|
|
||||||
|
return mesh.materials[slot];
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package armory.trait.internal;
|
package armory.trait.internal;
|
||||||
|
|
||||||
|
import iron.object.DecalObject;
|
||||||
import iron.object.MeshObject;
|
import iron.object.MeshObject;
|
||||||
import iron.Trait;
|
import iron.Trait;
|
||||||
import kha.Image;
|
import kha.Image;
|
||||||
|
@ -39,15 +40,28 @@ class UniformsManager extends Trait{
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
var materials = cast(object, MeshObject).materials;
|
if(Std.isOfType(object, MeshObject)){
|
||||||
|
var materials = cast(object, MeshObject).materials;
|
||||||
|
|
||||||
for (material in materials){
|
for (material in materials){
|
||||||
|
|
||||||
|
var exists = registerShaderUniforms(material);
|
||||||
|
if(exists) {
|
||||||
|
uniformExists = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#if rp_decals
|
||||||
|
if(Std.isOfType(object, DecalObject)){
|
||||||
|
var material = cast(object, DecalObject).material;
|
||||||
|
|
||||||
var exists = registerShaderUniforms(material);
|
var exists = registerShaderUniforms(material);
|
||||||
if(exists) {
|
if(exists) {
|
||||||
uniformExists = true;
|
uniformExists = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#end
|
||||||
}
|
}
|
||||||
|
|
||||||
static function removeScene() {
|
static function removeScene() {
|
||||||
|
|
Loading…
Reference in a new issue