armory/blender/arm/logicnode/value_math.py
2017-10-19 18:27:01 +02:00

53 lines
1.9 KiB
Python

import bpy
from bpy.props import *
from bpy.types import Node, NodeSocket
from arm.logicnode.arm_nodes import *
class MathNode(Node, ArmLogicTreeNode):
'''Math node'''
bl_idname = 'LNMathNode'
bl_label = 'Math'
bl_icon = 'CURVE_PATH'
property0 = EnumProperty(
items = [('Add', 'Add', 'Add'),
('Multiply', 'Multiply', 'Multiply'),
('Sine', 'Sine', 'Sine'),
('Cosine', 'Cosine', 'Cosine'),
('Max', 'Maximum', 'Max'),
('Min', 'Minimum', 'Min'),
('Abs', 'Absolute', 'Abs'),
('Subtract', 'Subtract', 'Subtract'),
('Divide', 'Divide', 'Divide'),
('Tangent', 'Tangent', 'Tangent'),
('Arcsine', 'Arcsine', 'Arcsine'),
('Arccosine', 'Arccosine', 'Arccosine'),
('Arctangent', 'Arctangent', 'Arctangent'),
('Power', 'Power', 'Power'),
('Logarithm', 'Logarithm', 'Logarithm'),
('Round', 'Round', 'Round'),
('Less Than', 'Less Than', 'Less Than'),
('Greater Than', 'Greater Than', 'Greater Than'),
('Modulo', 'Modulo', 'Modulo'),
],
name='', default='Add')
@property
def property1(self):
return 'true' if self.property1_ else 'false'
property1_ = BoolProperty(name='Clamp', default=False)
def init(self, context):
self.inputs.new('NodeSocketFloat', 'Value')
self.inputs[-1].default_value = 0.5
self.inputs.new('NodeSocketFloat', 'Value')
self.inputs[-1].default_value = 0.5
self.outputs.new('NodeSocketFloat', 'Value')
def draw_buttons(self, context, layout):
layout.prop(self, 'property1_')
layout.prop(self, 'property0')
add_node(MathNode, category='Value')