forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			59 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								from lnx.logicnode.lnx_nodes import *
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class SetParticleDataNode(LnxLogicTreeNode):
							 | 
						||
| 
								 | 
							
								    """Sets the parameters of the given particle system."""
							 | 
						||
| 
								 | 
							
								    bl_idname = 'LNSetParticleDataNode'
							 | 
						||
| 
								 | 
							
								    bl_label = 'Set Particle Data'
							 | 
						||
| 
								 | 
							
								    lnx_version = 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def remove_extra_inputs(self, context):
							 | 
						||
| 
								 | 
							
								        while len(self.inputs) > 3:
							 | 
						||
| 
								 | 
							
								                self.inputs.remove(self.inputs[-1])
							 | 
						||
| 
								 | 
							
								        if self.property0 == 'Particle Size':
							 | 
						||
| 
								 | 
							
								            self.add_input('LnxFloatSocket', 'Particle Size')
							 | 
						||
| 
								 | 
							
								        if self.property0 == 'Frame End':
							 | 
						||
| 
								 | 
							
								            self.add_input('LnxIntSocket', 'Frame End')
							 | 
						||
| 
								 | 
							
								        if self.property0 == 'Frame Start':
							 | 
						||
| 
								 | 
							
								            self.add_input('LnxIntSocket', 'Frame Start')
							 | 
						||
| 
								 | 
							
								        if self.property0 == 'Lifetime': 
							 | 
						||
| 
								 | 
							
								            self.add_input('LnxIntSocket', 'Lifetime')
							 | 
						||
| 
								 | 
							
								        if self.property0 == 'Lifetime Random':
							 | 
						||
| 
								 | 
							
								            self.add_input('LnxFloatSocket', 'Lifetime Random')
							 | 
						||
| 
								 | 
							
								        if self.property0 == 'Emit From':
							 | 
						||
| 
								 | 
							
								            self.add_input('LnxIntSocket', 'Emit From')
							 | 
						||
| 
								 | 
							
								        if self.property0 == 'Velocity':
							 | 
						||
| 
								 | 
							
								            self.add_input('LnxVectorSocket', 'Velocity')
							 | 
						||
| 
								 | 
							
								        if self.property0 == 'Velocity Random':
							 | 
						||
| 
								 | 
							
								            self.add_input('LnxFloatSocket', 'Velocity Random')
							 | 
						||
| 
								 | 
							
								        if self.property0 == 'Weight Gravity':
							 | 
						||
| 
								 | 
							
								            self.add_input('LnxFloatSocket', 'Weight Gravity')
							 | 
						||
| 
								 | 
							
								        if self.property0 == 'Speed':
							 | 
						||
| 
								 | 
							
								            self.add_input('LnxFloatSocket', 'Speed')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								       
							 | 
						||
| 
								 | 
							
								    property0: HaxeEnumProperty(
							 | 
						||
| 
								 | 
							
								    'property0',
							 | 
						||
| 
								 | 
							
								    items = [('Particle Size', 'Particle Size', 'for the system'),
							 | 
						||
| 
								 | 
							
								             ('Frame Start', 'Frame Start', 'for the system'),
							 | 
						||
| 
								 | 
							
								             ('Frame End', 'Frame End', 'for the system'),
							 | 
						||
| 
								 | 
							
								             ('Lifetime', 'Lifetime', 'for the instance'),
							 | 
						||
| 
								 | 
							
								             ('Lifetime Random', 'Lifetime Random', 'for the system'),
							 | 
						||
| 
								 | 
							
								             ('Emit From', 'Emit From', 'for the system (Vertices:0 Faces:1 Volume: 2)'),
							 | 
						||
| 
								 | 
							
								             ('Velocity', 'Velocity', 'for the instance'),
							 | 
						||
| 
								 | 
							
								             ('Velocity Random', 'Velocity Random', 'for the system'),
							 | 
						||
| 
								 | 
							
								             ('Weight Gravity', 'Weight Gravity', 'for the instance'),
							 | 
						||
| 
								 | 
							
								             ('Speed', 'Speed', 'for the instance')],
							 | 
						||
| 
								 | 
							
								    name='', default='Speed', update=remove_extra_inputs)
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def lnx_init(self, context):
							 | 
						||
| 
								 | 
							
								        self.add_input('LnxNodeSocketAction', 'In')
							 | 
						||
| 
								 | 
							
								        self.add_input('LnxNodeSocketObject', 'Object')
							 | 
						||
| 
								 | 
							
								        self.add_input('LnxIntSocket', 'Slot')
							 | 
						||
| 
								 | 
							
								        self.add_input('LnxFloatSocket', 'Speed', default_value=1.0)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        self.add_output('LnxNodeSocketAction', 'Out')
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								    def draw_buttons(self, context, layout):
							 | 
						||
| 
								 | 
							
								        layout.prop(self, 'property0')
							 |