diff --git a/Sources/armory/logicnode/AddTraitNode.hx b/Sources/armory/logicnode/AddTraitNode.hx index 4647f214..a11dd3c2 100644 --- a/Sources/armory/logicnode/AddTraitNode.hx +++ b/Sources/armory/logicnode/AddTraitNode.hx @@ -12,7 +12,7 @@ class AddTraitNode extends LogicNode { var object:Object = inputs[1].get(); var trait:Dynamic = inputs[2].get(); - if (object == null) return; + if (object == null || trait == null) return; object.addTrait(trait); diff --git a/Sources/armory/logicnode/AppendTransformNode.hx b/Sources/armory/logicnode/AppendTransformNode.hx index dd277418..1a3d30b1 100644 --- a/Sources/armory/logicnode/AppendTransformNode.hx +++ b/Sources/armory/logicnode/AppendTransformNode.hx @@ -16,7 +16,7 @@ class AppendTransformNode extends LogicNode { var object:Object = inputs[1].get(); var matrix:Mat4 = inputs[2].get(); - if (object == null) return; + if (object == null || matrix == null) return; object.transform.multMatrix(matrix); diff --git a/Sources/armory/logicnode/ApplyForceAtLocationNode.hx b/Sources/armory/logicnode/ApplyForceAtLocationNode.hx index 59311f51..93a96938 100644 --- a/Sources/armory/logicnode/ApplyForceAtLocationNode.hx +++ b/Sources/armory/logicnode/ApplyForceAtLocationNode.hx @@ -15,7 +15,7 @@ class ApplyForceAtLocationNode extends LogicNode { var force:Vec4 = inputs[2].get(); var location:Vec4 = inputs[3].get(); - if (object == null) return; + if (object == null || force == null || location == null) return; #if arm_physics var rb:RigidBody = object.getTrait(RigidBody); diff --git a/Sources/armory/logicnode/ApplyForceNode.hx b/Sources/armory/logicnode/ApplyForceNode.hx index f2d21a32..3aa5a8fd 100644 --- a/Sources/armory/logicnode/ApplyForceNode.hx +++ b/Sources/armory/logicnode/ApplyForceNode.hx @@ -14,7 +14,7 @@ class ApplyForceNode extends LogicNode { var object:Object = inputs[1].get(); var force:Vec4 = inputs[2].get(); - if (object == null) return; + if (object == null || force == null) return; #if arm_physics var rb:RigidBody = object.getTrait(RigidBody); diff --git a/Sources/armory/logicnode/ApplyImpulseAtLocationNode.hx b/Sources/armory/logicnode/ApplyImpulseAtLocationNode.hx index 1e3de230..384496a5 100644 --- a/Sources/armory/logicnode/ApplyImpulseAtLocationNode.hx +++ b/Sources/armory/logicnode/ApplyImpulseAtLocationNode.hx @@ -15,7 +15,7 @@ class ApplyImpulseAtLocationNode extends LogicNode { var impulse:Vec4 = inputs[2].get(); var location:Vec4 = inputs[3].get(); - if (object == null) return; + if (object == null || impulse == null || location == null) return; #if arm_physics var rb:RigidBody = object.getTrait(RigidBody); diff --git a/Sources/armory/logicnode/ApplyImpulseNode.hx b/Sources/armory/logicnode/ApplyImpulseNode.hx index 990fe3eb..e52d1fb1 100644 --- a/Sources/armory/logicnode/ApplyImpulseNode.hx +++ b/Sources/armory/logicnode/ApplyImpulseNode.hx @@ -14,7 +14,7 @@ class ApplyImpulseNode extends LogicNode { var object:Object = inputs[1].get(); var impulse:Vec4 = inputs[2].get(); - if (object == null) return; + if (object == null || impulse == null) return; #if arm_physics var rb:RigidBody = object.getTrait(RigidBody); diff --git a/Sources/armory/logicnode/ArrayAddNode.hx b/Sources/armory/logicnode/ArrayAddNode.hx index f1746075..ea79f113 100644 --- a/Sources/armory/logicnode/ArrayAddNode.hx +++ b/Sources/armory/logicnode/ArrayAddNode.hx @@ -8,6 +8,7 @@ class ArrayAddNode extends LogicNode { override function run() { var ar:Array = inputs[1].get(); + if (ar == null) return; if (inputs.length > 2) { for (i in 2...inputs.length) { diff --git a/Sources/armory/logicnode/ArrayAddUniqueNode.hx b/Sources/armory/logicnode/ArrayAddUniqueNode.hx index 03100ae1..6e8633d6 100644 --- a/Sources/armory/logicnode/ArrayAddUniqueNode.hx +++ b/Sources/armory/logicnode/ArrayAddUniqueNode.hx @@ -8,6 +8,7 @@ class ArrayAddUniqueNode extends LogicNode { override function run() { var ar:Array = inputs[1].get(); + if (ar == null) return; if (inputs.length > 2) { for (i in 2...inputs.length) { diff --git a/Sources/armory/logicnode/ArrayGetNode.hx b/Sources/armory/logicnode/ArrayGetNode.hx index 634a52ac..caaad707 100644 --- a/Sources/armory/logicnode/ArrayGetNode.hx +++ b/Sources/armory/logicnode/ArrayGetNode.hx @@ -8,6 +8,8 @@ class ArrayGetNode extends LogicNode { override function get(from:Int):Dynamic { var ar:Array = inputs[0].get(); + if (ar == null) return null; + var i:Int = inputs[1].get(); if (i < 0) i = ar.length + i; if (i < 0 || i > ar.length - 1) { diff --git a/Sources/armory/logicnode/ArrayLoopNode.hx b/Sources/armory/logicnode/ArrayLoopNode.hx index 34223785..b61de05b 100644 --- a/Sources/armory/logicnode/ArrayLoopNode.hx +++ b/Sources/armory/logicnode/ArrayLoopNode.hx @@ -10,6 +10,8 @@ class ArrayLoopNode extends LogicNode { override function run() { var ar:Array = inputs[1].get(); + if (ar == null) return; + for (val in ar) { value = val; runOutputs(0); diff --git a/Sources/armory/logicnode/ArrayPopNode.hx b/Sources/armory/logicnode/ArrayPopNode.hx index 88634445..c3eb7e94 100644 --- a/Sources/armory/logicnode/ArrayPopNode.hx +++ b/Sources/armory/logicnode/ArrayPopNode.hx @@ -8,6 +8,8 @@ class ArrayPopNode extends LogicNode { override function get(from:Int):Dynamic { var ar:Array = inputs[0].get(); + if (ar == null) return null; + return ar.pop(); } } diff --git a/Sources/armory/logicnode/ArrayRemoveNode.hx b/Sources/armory/logicnode/ArrayRemoveNode.hx index f8703a66..9eaf022c 100644 --- a/Sources/armory/logicnode/ArrayRemoveNode.hx +++ b/Sources/armory/logicnode/ArrayRemoveNode.hx @@ -10,6 +10,8 @@ class ArrayRemoveNode extends LogicNode { override function run() { var ar:Array = inputs[1].get(); + if (ar == null) return; + var i:Int = inputs[2].get(); if (i < 0) i = ar.length + i; diff --git a/Sources/armory/logicnode/ArrayRemoveValueNode.hx b/Sources/armory/logicnode/ArrayRemoveValueNode.hx index 0e072668..3fc5e9fb 100644 --- a/Sources/armory/logicnode/ArrayRemoveValueNode.hx +++ b/Sources/armory/logicnode/ArrayRemoveValueNode.hx @@ -10,6 +10,8 @@ class ArrayRemoveValueNode extends LogicNode { override function run() { var ar:Array = inputs[1].get(); + if (ar == null) return; + var val:Dynamic = inputs[2].get(); removedValue = val; diff --git a/Sources/armory/logicnode/ArraySetNode.hx b/Sources/armory/logicnode/ArraySetNode.hx index cf1e5496..a711b9b9 100644 --- a/Sources/armory/logicnode/ArraySetNode.hx +++ b/Sources/armory/logicnode/ArraySetNode.hx @@ -8,6 +8,8 @@ class ArraySetNode extends LogicNode { override function run() { var ar:Array = inputs[1].get(); + if (ar == null) return; + var i:Int = inputs[2].get(); var value:Dynamic = inputs[3].get(); diff --git a/Sources/armory/logicnode/ArrayShiftNode.hx b/Sources/armory/logicnode/ArrayShiftNode.hx index 2d78d61f..d53544ff 100644 --- a/Sources/armory/logicnode/ArrayShiftNode.hx +++ b/Sources/armory/logicnode/ArrayShiftNode.hx @@ -8,6 +8,8 @@ class ArrayShiftNode extends LogicNode { override function get(from:Int):Dynamic { var ar:Array = inputs[0].get(); + if (ar == null) return null; + return ar.shift(); } } diff --git a/Sources/armory/logicnode/CallFunctionNode.hx b/Sources/armory/logicnode/CallFunctionNode.hx index 101c52d8..d53fabae 100644 --- a/Sources/armory/logicnode/CallFunctionNode.hx +++ b/Sources/armory/logicnode/CallFunctionNode.hx @@ -11,8 +11,9 @@ class CallFunctionNode extends LogicNode { } override function run() { - var object:Object = inputs[1].get(); + if (object == null) return; + var funName:String = inputs[2].get(); result = Reflect.callMethod(object, Reflect.field(object, funName), null); diff --git a/Sources/armory/logicnode/CastPhysicsRayNode.hx b/Sources/armory/logicnode/CastPhysicsRayNode.hx index 8a0f7691..20e848bc 100644 --- a/Sources/armory/logicnode/CastPhysicsRayNode.hx +++ b/Sources/armory/logicnode/CastPhysicsRayNode.hx @@ -18,6 +18,8 @@ class CastPhysicsRayNode extends LogicNode { var vfrom:Vec4 = inputs[0].get(); var vto:Vec4 = inputs[1].get(); + if (vfrom == null || vto == null) return null; + #if arm_physics var physics = armory.trait.physics.PhysicsWorld.active; var rb = physics.rayCast(vfrom, vto); diff --git a/Sources/armory/logicnode/GetDistanceNode.hx b/Sources/armory/logicnode/GetDistanceNode.hx index 068930ce..356b9da3 100644 --- a/Sources/armory/logicnode/GetDistanceNode.hx +++ b/Sources/armory/logicnode/GetDistanceNode.hx @@ -12,6 +12,8 @@ class GetDistanceNode extends LogicNode { var object1:Object = inputs[0].get(); var object2:Object = inputs[1].get(); + if (object1 == null || object2 == null) return 0; + return iron.math.Vec4.distance(object1.transform.world.getLoc(), object2.transform.world.getLoc()); } } diff --git a/Sources/armory/logicnode/GetFirstContactNode.hx b/Sources/armory/logicnode/GetFirstContactNode.hx index a33db46a..c9c85cfd 100644 --- a/Sources/armory/logicnode/GetFirstContactNode.hx +++ b/Sources/armory/logicnode/GetFirstContactNode.hx @@ -11,6 +11,7 @@ class GetFirstContactNode extends LogicNode { override function get(from:Int):Dynamic { var object:Object = inputs[0].get(); + if (object == null) return; #if arm_physics var physics = armory.trait.physics.PhysicsWorld.active; diff --git a/Sources/armory/logicnode/GoToLocationNode.hx b/Sources/armory/logicnode/GoToLocationNode.hx index f24f95ff..b2f61a3a 100644 --- a/Sources/armory/logicnode/GoToLocationNode.hx +++ b/Sources/armory/logicnode/GoToLocationNode.hx @@ -14,8 +14,7 @@ class GoToLocationNode extends LogicNode { var object:Object = inputs[1].get(); var location:Vec4 = inputs[2].get(); - if (location == null) return; - if (object == null) return; + if (object == null || location == null) return; #if arm_navigation // Assume navmesh exists.. diff --git a/Sources/armory/logicnode/HasContactNode.hx b/Sources/armory/logicnode/HasContactNode.hx index 46de54f2..d12b3b20 100644 --- a/Sources/armory/logicnode/HasContactNode.hx +++ b/Sources/armory/logicnode/HasContactNode.hx @@ -13,6 +13,8 @@ class HasContactNode extends LogicNode { var object1:Object = inputs[0].get(); var object2:Object = inputs[1].get(); + if (object1 == null || object2 == null) return false; + #if arm_physics var physics = armory.trait.physics.PhysicsWorld.active; var rb2 = object2.getTrait(RigidBody); diff --git a/Sources/armory/logicnode/MatrixMathNode.hx b/Sources/armory/logicnode/MatrixMathNode.hx index 1174d524..9de3469c 100644 --- a/Sources/armory/logicnode/MatrixMathNode.hx +++ b/Sources/armory/logicnode/MatrixMathNode.hx @@ -16,6 +16,8 @@ class MatrixMathNode extends LogicNode { var m1:Mat4 = inputs[0].get(); var m2:Mat4 = inputs[1].get(); + if (m1 == null || m2 == null) return null; + m.setFrom(m1); switch (property0) { case "Multiply": diff --git a/Sources/armory/logicnode/PauseSoundNode.hx b/Sources/armory/logicnode/PauseSoundNode.hx index f7dc3534..9f3da32b 100644 --- a/Sources/armory/logicnode/PauseSoundNode.hx +++ b/Sources/armory/logicnode/PauseSoundNode.hx @@ -10,6 +10,7 @@ class PauseSoundNode extends LogicNode { override function run() { var object:SpeakerObject = cast(inputs[1].get(), SpeakerObject); + if (object == null) return; object.pause(); super.run(); } diff --git a/Sources/armory/logicnode/PickLocationNode.hx b/Sources/armory/logicnode/PickLocationNode.hx index 4ddf2b7d..f6d96b23 100644 --- a/Sources/armory/logicnode/PickLocationNode.hx +++ b/Sources/armory/logicnode/PickLocationNode.hx @@ -15,7 +15,7 @@ class PickLocationNode extends LogicNode { var object:Object = inputs[0].get(); var coords:Vec4 = inputs[1].get(); - if (object == null) null; + if (object == null || coords == null) null; #if arm_physics var physics = armory.trait.physics.PhysicsWorld.active; diff --git a/Sources/armory/logicnode/PickObjectNode.hx b/Sources/armory/logicnode/PickObjectNode.hx index bb439f05..df561292 100644 --- a/Sources/armory/logicnode/PickObjectNode.hx +++ b/Sources/armory/logicnode/PickObjectNode.hx @@ -13,6 +13,8 @@ class PickObjectNode extends LogicNode { override function get(from:Int):Dynamic { var coords:Vec4 = inputs[0].get(); + if (coords == null) return null; + #if arm_physics var physics = armory.trait.physics.PhysicsWorld.active; var rb = physics.pickClosest(coords.x, coords.y); diff --git a/Sources/armory/logicnode/PlaySoundNode.hx b/Sources/armory/logicnode/PlaySoundNode.hx index 2a1af86e..a64acce1 100644 --- a/Sources/armory/logicnode/PlaySoundNode.hx +++ b/Sources/armory/logicnode/PlaySoundNode.hx @@ -10,6 +10,7 @@ class PlaySoundNode extends LogicNode { override function run() { var object:SpeakerObject = cast(inputs[1].get(), SpeakerObject); + if (object == null) return; object.play(); super.run(); } diff --git a/Sources/armory/logicnode/RemoveTraitNode.hx b/Sources/armory/logicnode/RemoveTraitNode.hx index 16a6c3fc..542b7611 100644 --- a/Sources/armory/logicnode/RemoveTraitNode.hx +++ b/Sources/armory/logicnode/RemoveTraitNode.hx @@ -10,6 +10,7 @@ class RemoveTraitNode extends LogicNode { override function run() { var trait:Dynamic = inputs[1].get(); + if (trait == null) return; trait.remove(); super.run(); diff --git a/Sources/armory/logicnode/RotateObjectNode.hx b/Sources/armory/logicnode/RotateObjectNode.hx index f190b214..717ad188 100644 --- a/Sources/armory/logicnode/RotateObjectNode.hx +++ b/Sources/armory/logicnode/RotateObjectNode.hx @@ -18,7 +18,7 @@ class RotateObjectNode extends LogicNode { var object:Object = inputs[1].get(); var vec:Vec4 = inputs[2].get(); - if (object == null) return; + if (object == null || vec == null) return; q.fromEuler(vec.x, vec.y, vec.z); diff --git a/Sources/armory/logicnode/ScaleObjectNode.hx b/Sources/armory/logicnode/ScaleObjectNode.hx index a7d396d9..72d3e2b5 100644 --- a/Sources/armory/logicnode/ScaleObjectNode.hx +++ b/Sources/armory/logicnode/ScaleObjectNode.hx @@ -15,7 +15,7 @@ class ScaleObjectNode extends LogicNode { var object:Object = inputs[1].get(); var vec:Vec4 = inputs[2].get(); - if (object == null) return; + if (object == null || vec == null) return; object.transform.scale.add(vec); object.transform.buildMatrix(); diff --git a/Sources/armory/logicnode/ScreenToWorldSpaceNode.hx b/Sources/armory/logicnode/ScreenToWorldSpaceNode.hx index 8eb36bb9..e57f0fb2 100644 --- a/Sources/armory/logicnode/ScreenToWorldSpaceNode.hx +++ b/Sources/armory/logicnode/ScreenToWorldSpaceNode.hx @@ -16,6 +16,8 @@ class ScreenToWorldSpaceNode extends LogicNode { override function get(from:Int):Dynamic { var v1:Vec4 = inputs[0].get(); + if (v1 == null) return null; + var cam = iron.Scene.active.camera; v.setFrom(v1); m.getInverse(cam.P); diff --git a/Sources/armory/logicnode/SeparateColorNode.hx b/Sources/armory/logicnode/SeparateColorNode.hx index cdbe6e25..4a240b7d 100644 --- a/Sources/armory/logicnode/SeparateColorNode.hx +++ b/Sources/armory/logicnode/SeparateColorNode.hx @@ -10,6 +10,7 @@ class SeparateColorNode extends LogicNode { override function get(from:Int):Dynamic { var vector:Vec4 = inputs[0].get(); + if (vector == null) return 0.0; if (from == 0) return vector.x; else if (from == 1) return vector.y; diff --git a/Sources/armory/logicnode/SeparateTransformNode.hx b/Sources/armory/logicnode/SeparateTransformNode.hx index 2eecfd8e..a32c6532 100644 --- a/Sources/armory/logicnode/SeparateTransformNode.hx +++ b/Sources/armory/logicnode/SeparateTransformNode.hx @@ -12,6 +12,7 @@ class SeparateTransformNode extends LogicNode { override function get(from:Int):Dynamic { var matrix:Mat4 = inputs[0].get(); + if (matrix == null) return null; var loc = new Vec4(); var rot = new Quat(); diff --git a/Sources/armory/logicnode/SeparateVectorNode.hx b/Sources/armory/logicnode/SeparateVectorNode.hx index be35f595..bf7ec2ed 100644 --- a/Sources/armory/logicnode/SeparateVectorNode.hx +++ b/Sources/armory/logicnode/SeparateVectorNode.hx @@ -10,6 +10,7 @@ class SeparateVectorNode extends LogicNode { override function get(from:Int):Dynamic { var vector:Vec4 = inputs[0].get(); + if (vector == null) return 0.0; if (from == 0) return vector.x; else if (from == 1) return vector.y; diff --git a/Sources/armory/logicnode/SetGravityNode.hx b/Sources/armory/logicnode/SetGravityNode.hx index 4bc8d100..d58e0d4d 100644 --- a/Sources/armory/logicnode/SetGravityNode.hx +++ b/Sources/armory/logicnode/SetGravityNode.hx @@ -12,6 +12,8 @@ class SetGravityNode extends LogicNode { override function run() { var gravity:Vec4 = inputs[1].get(); + + if (gravity == null) return; #if arm_physics var physics = armory.trait.physics.PhysicsWorld.active; diff --git a/Sources/armory/logicnode/SetLocationNode.hx b/Sources/armory/logicnode/SetLocationNode.hx index ac9fad49..326f891e 100644 --- a/Sources/armory/logicnode/SetLocationNode.hx +++ b/Sources/armory/logicnode/SetLocationNode.hx @@ -14,7 +14,7 @@ class SetLocationNode extends LogicNode { var object:Object = inputs[1].get(); var vec:Vec4 = inputs[2].get(); - if (object == null) return; + if (object == null || vec == null) return; object.transform.loc.setFrom(vec); object.transform.buildMatrix(); diff --git a/Sources/armory/logicnode/SetMaterialImageParamNode.hx b/Sources/armory/logicnode/SetMaterialImageParamNode.hx index 58618381..25af2534 100644 --- a/Sources/armory/logicnode/SetMaterialImageParamNode.hx +++ b/Sources/armory/logicnode/SetMaterialImageParamNode.hx @@ -22,6 +22,8 @@ class SetMaterialImageParamNode extends LogicNode { override function run() { mat = inputs[1].get(); node = inputs[2].get(); + if (mat == null || node == null) return; + var name = inputs[3].get(); iron.data.Data.getImage(name, function(img:kha.Image) { image = img; diff --git a/Sources/armory/logicnode/SetRotationNode.hx b/Sources/armory/logicnode/SetRotationNode.hx index f87ff0cc..72bc9778 100644 --- a/Sources/armory/logicnode/SetRotationNode.hx +++ b/Sources/armory/logicnode/SetRotationNode.hx @@ -14,7 +14,7 @@ class SetRotationNode extends LogicNode { var object:Object = inputs[1].get(); var vec:Vec4 = inputs[2].get(); - if (object == null) return; + if (object == null || vec == null) return; object.transform.rot.fromEuler(vec.x, vec.y, vec.z); object.transform.buildMatrix(); diff --git a/Sources/armory/logicnode/SetScaleNode.hx b/Sources/armory/logicnode/SetScaleNode.hx index 83e43f5e..8d7aee76 100644 --- a/Sources/armory/logicnode/SetScaleNode.hx +++ b/Sources/armory/logicnode/SetScaleNode.hx @@ -14,7 +14,7 @@ class SetScaleNode extends LogicNode { var object:Object = inputs[1].get(); var vec:Vec4 = inputs[2].get(); - if (object == null) return; + if (object == null || vec == null) return; object.transform.scale.setFrom(vec); object.transform.buildMatrix(); diff --git a/Sources/armory/logicnode/SetTransformNode.hx b/Sources/armory/logicnode/SetTransformNode.hx index 8fb43cf5..1b683236 100755 --- a/Sources/armory/logicnode/SetTransformNode.hx +++ b/Sources/armory/logicnode/SetTransformNode.hx @@ -14,7 +14,7 @@ class SetTransformNode extends LogicNode { var object:Object = inputs[1].get(); var matrix:Mat4 = inputs[2].get(); - if (object == null) return; + if (object == null || matrix == null) return; object.transform.setMatrix(matrix); diff --git a/Sources/armory/logicnode/SetVelocityNode.hx b/Sources/armory/logicnode/SetVelocityNode.hx index e8bdb103..ce8cd564 100644 --- a/Sources/armory/logicnode/SetVelocityNode.hx +++ b/Sources/armory/logicnode/SetVelocityNode.hx @@ -17,7 +17,7 @@ class SetVelocityNode extends LogicNode { var angular:Vec4 = inputs[4].get(); var angularFactor:Vec4 = inputs[5].get(); - if (object == null) return; + if (object == null || linear == null || linearFactor == null || angular == null || angularFactor == null) return; #if arm_physics var rb:RigidBody = object.getTrait(RigidBody); diff --git a/Sources/armory/logicnode/StopSoundNode.hx b/Sources/armory/logicnode/StopSoundNode.hx index fb35838e..80ba4dbf 100644 --- a/Sources/armory/logicnode/StopSoundNode.hx +++ b/Sources/armory/logicnode/StopSoundNode.hx @@ -10,6 +10,7 @@ class StopSoundNode extends LogicNode { override function run() { var object:SpeakerObject = cast(inputs[1].get(), SpeakerObject); + if (object == null) return; object.stop(); super.run(); } diff --git a/Sources/armory/logicnode/TransformNode.hx b/Sources/armory/logicnode/TransformNode.hx index 25f27d23..b01f258c 100644 --- a/Sources/armory/logicnode/TransformNode.hx +++ b/Sources/armory/logicnode/TransformNode.hx @@ -18,8 +18,9 @@ class TransformNode extends LogicNode { override function get(from:Int):Dynamic { var loc:Vec4 = inputs[0].get(); var rot:Vec4 = inputs[1].get(); - q.fromEuler(rot.x, rot.y, rot.z); var scale:Vec4 = inputs[2].get(); + if (loc == null || rot == null || scale == null) return null; + q.fromEuler(rot.x, rot.y, rot.z); value.compose(loc, q, scale); return value; } diff --git a/Sources/armory/logicnode/TranslateObjectNode.hx b/Sources/armory/logicnode/TranslateObjectNode.hx index 17ee12c6..d9782e12 100644 --- a/Sources/armory/logicnode/TranslateObjectNode.hx +++ b/Sources/armory/logicnode/TranslateObjectNode.hx @@ -15,7 +15,7 @@ class TranslateObjectNode extends LogicNode { var object:Object = inputs[1].get(); var vec:Vec4 = inputs[2].get(); - if (object == null) return; + if (object == null || vec == null) return; object.transform.loc.add(vec); object.transform.buildMatrix(); diff --git a/Sources/armory/logicnode/VectorClampToSizeNode.hx b/Sources/armory/logicnode/VectorClampToSizeNode.hx index b9e97d43..4552d9c2 100644 --- a/Sources/armory/logicnode/VectorClampToSizeNode.hx +++ b/Sources/armory/logicnode/VectorClampToSizeNode.hx @@ -12,8 +12,8 @@ class VectorClampToSizeNode extends LogicNode { override function get(from:Int):Dynamic { v = inputs[0].get(); - var fmin = inputs[1].get(); - var fmax = inputs[2].get(); + var fmin:kha.FastFloat = inputs[1].get(); + var fmax:kha.FastFloat = inputs[2].get(); v.clamp(fmin, fmax); diff --git a/Sources/armory/logicnode/VectorFromTransformNode.hx b/Sources/armory/logicnode/VectorFromTransformNode.hx index d7263ebb..c8a0a4bd 100644 --- a/Sources/armory/logicnode/VectorFromTransformNode.hx +++ b/Sources/armory/logicnode/VectorFromTransformNode.hx @@ -13,6 +13,8 @@ class VectorFromTransformNode extends LogicNode { override function get(from:Int):Dynamic { var m:Mat4 = inputs[0].get(); + if (m == null) return null; + switch (property0) { case "Up": return m.up(); diff --git a/Sources/armory/logicnode/VectorMathNode.hx b/Sources/armory/logicnode/VectorMathNode.hx index 435999be..8e99c93b 100644 --- a/Sources/armory/logicnode/VectorMathNode.hx +++ b/Sources/armory/logicnode/VectorMathNode.hx @@ -14,6 +14,7 @@ class VectorMathNode extends LogicNode { override function get(from:Int):Dynamic { var v1:Vec4 = inputs[0].get(); var v2:Vec4 = inputs[1].get(); + if (v1 == null || v2 == null) return null; v.setFrom(v1); var f = 0.0; switch (property0) { diff --git a/Sources/armory/logicnode/VectorMixNode.hx b/Sources/armory/logicnode/VectorMixNode.hx index 0b1857d5..8d381a95 100644 --- a/Sources/armory/logicnode/VectorMixNode.hx +++ b/Sources/armory/logicnode/VectorMixNode.hx @@ -48,6 +48,7 @@ class VectorMixNode extends LogicNode { var k:Float = inputs[0].get(); //Factor var v1:Vec4 = inputs[1].get(); var v2:Vec4 = inputs[2].get(); + if (v1 == null || v2 == null) return null; var f = ease(k); v.x = v1.x + (v2.x - v1.x) * f; v.y = v1.y + (v2.y - v1.y) * f; diff --git a/Sources/armory/logicnode/WorldToScreenSpaceNode.hx b/Sources/armory/logicnode/WorldToScreenSpaceNode.hx index 53b30324..b58f3942 100644 --- a/Sources/armory/logicnode/WorldToScreenSpaceNode.hx +++ b/Sources/armory/logicnode/WorldToScreenSpaceNode.hx @@ -13,6 +13,7 @@ class WorldToScreenSpaceNode extends LogicNode { override function get(from:Int):Dynamic { var v1:Vec4 = inputs[0].get(); + if (v1 == null) return null; var cam = iron.Scene.active.camera; v.setFrom(v1);