map-range-node

This commit is contained in:
knowledgenude 2020-11-14 14:39:32 -03:00
parent 64ddadab7b
commit 7f82b2ae33
2 changed files with 36 additions and 0 deletions

View file

@ -0,0 +1,20 @@
package armory.logicnode;
class MapRangeNode extends LogicNode {
public function new(tree: LogicTree) {
super(tree);
}
override function get(from: Int): Dynamic {
var value: kha.FastFloat = inputs[0].get();
var fromMin: kha.FastFloat = inputs[1].get();
var fromMax: kha.FastFloat = inputs[2].get();
var toMin: kha.FastFloat = inputs[3].get();
var toMax: kha.FastFloat = inputs[4].get();
if (value == null || fromMin == null || fromMax == null || toMin == null || toMax == null) return null;
return (value / fromMax - fromMin) * toMax - toMin;
}
}

View file

@ -0,0 +1,16 @@
from arm.logicnode.arm_nodes import *
class MapRangeNode(ArmLogicTreeNode):
"""Converts the value between the given range to another range."""
bl_idname = 'LNMapRangeNode'
bl_label = 'Map Range'
arm_version = 1
def init(self, context):
super(MapRangeNode, self).init(context)
self.add_input('NodeSocketFloat', 'Value', default_value=1.0)
self.add_input('NodeSocketFloat', 'From Min')
self.add_input('NodeSocketFloat', 'From Max', default_value=1.0)
self.add_input('NodeSocketFloat', 'To Min')
self.add_input('NodeSocketFloat', 'To Max', default_value=1.0)
self.add_output('NodeSocketFloat', 'Result')