forked from LeenkxTeam/LNXSDK
Repe [T3DU] Update - 31f26d171bba0355ce2a77031e3aad4c64dbc7e9
This commit is contained in:
@ -0,0 +1,14 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class AroundNavigableLocationNode(LnxLogicTreeNode):
|
||||
"""A random around a navigable location in the navmesh."""
|
||||
bl_idname = 'LNAroundNavigableLocationNode'
|
||||
bl_label = 'Around NavMesh Location'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxStringSocket', 'NavMeshId', default_value = 'NavMesh')
|
||||
self.add_input('LnxVectorSocket', 'Position')
|
||||
self.add_input('LnxFloatSocket', 'Radius')
|
||||
|
||||
self.add_output('LnxVectorSocket', 'Location')
|
||||
@ -4,17 +4,26 @@ class GoToLocationNode(LnxLogicTreeNode):
|
||||
"""Makes a NavCrowd agent go to location.
|
||||
|
||||
@input In: Start navigation.
|
||||
@input NavMeshId: The ID of the NavMesh to use.
|
||||
@input Object: The object to navigate. Object must have `NavCrowd` trait applied.
|
||||
@input Location: Closest point on the navmesh to navigate to.
|
||||
@input Max Speed: Maximum speed of the crowd agent.
|
||||
@input Max Accelaration: Maximum acceleration of the agent.
|
||||
@input Turn Speed: Turn rate in range (0, 1).
|
||||
"""
|
||||
bl_idname = 'LNCrowdGoToLocationNode'
|
||||
bl_label = 'Crowd Go to Location'
|
||||
lnx_section = 'crowd'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxStringSocket', 'NavMeshId', default_value = 'NavMesh')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
self.add_input('LnxVectorSocket', 'Location')
|
||||
self.add_input('LnxFloatSocket', 'Max Speed', 5.0)
|
||||
self.add_input('LnxFloatSocket', 'Max Accelaration', 100)
|
||||
self.add_input('LnxFloatSocket', 'Turn Speed', 0.1)
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class CrowdSetLocationNode(LnxLogicTreeNode):
|
||||
"""Makes a NavCrowd agent go to location.
|
||||
|
||||
@input In: Start teleport.
|
||||
@input Object: The object to navigate. Object must have `NavCrowd` trait applied.
|
||||
@input Location: Closest point on the navmesh to navigate to.
|
||||
"""
|
||||
bl_idname = 'LNCrowdSetLocationNode'
|
||||
bl_label = 'Crowd Set Location'
|
||||
lnx_section = 'crowd'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxStringSocket', 'NavMeshId', default_value = 'NavMesh')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
self.add_input('LnxVectorSocket', 'Location')
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
@ -4,10 +4,13 @@ class GetAgentDataNode(LnxLogicTreeNode):
|
||||
"""Gets the speed and turn duration of the agent"""
|
||||
bl_idname = 'LNGetAgentDataNode'
|
||||
bl_label = 'Get Agent Data'
|
||||
lnx_version = 1
|
||||
lnx_section = 'agent'
|
||||
lnx_version = 2
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
|
||||
self.add_output('LnxStringSocket', 'NavMesh ID')
|
||||
self.add_output('LnxFloatSocket', 'Speed')
|
||||
self.add_output('LnxFloatSocket', 'Turn Duration')
|
||||
self.add_output('LnxFloatSocket', 'Turn Duration')
|
||||
self.add_output('LnxNodeSocketArray', 'Path')
|
||||
21
leenkx/blender/lnx/logicnode/navmesh/LN_get_crowd_data.py
Normal file
21
leenkx/blender/lnx/logicnode/navmesh/LN_get_crowd_data.py
Normal file
@ -0,0 +1,21 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class GetCrowdDataNode(LnxLogicTreeNode):
|
||||
"""Gets the speed and position of the crowd"""
|
||||
bl_idname = 'LNGetCrowdDataNode'
|
||||
bl_label = 'Get Crowd Data'
|
||||
lnx_section = 'crowd'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
|
||||
self.add_output('LnxStringSocket', 'NavMeshId')
|
||||
self.add_output('LnxVectorSocket', 'Speed')
|
||||
self.add_output('LnxFloatSocket', 'Max Speed')
|
||||
self.add_output('LnxFloatSocket', 'Max Acceleration')
|
||||
self.add_output('LnxFloatSocket', 'Turn Speed')
|
||||
self.add_output('LnxVectorSocket', 'Location')
|
||||
self.add_output('LnxVectorSocket', 'Target Location')
|
||||
self.add_output('LnxIntSocket', 'Id')
|
||||
self.add_output('LnxNodeSocketArray', 'Path')
|
||||
@ -4,37 +4,28 @@ class GoToLocationNode(LnxLogicTreeNode):
|
||||
"""Makes a NavMesh agent go to location.
|
||||
|
||||
@input In: Start navigation.
|
||||
@input NavMeshId: The ID of the NavMesh to use.
|
||||
@input Object: The object to navigate. Object must have `NavAgent` trait applied.
|
||||
@input Location: Closest point on the navmesh to navigate to.
|
||||
@input Speed: Rate of movement.
|
||||
@input Turn Duration: Rate of turn.
|
||||
@input Height Offset: Height of the object from the navmesh.
|
||||
@input Use Raycast: Use physics ray cast to get more precise z positioning.
|
||||
@input Ray Cast Depth: Depth of ray cast from the object origin.
|
||||
@input Ray Cast Mask: Ray cast mask for collision detection.
|
||||
|
||||
@output Out: Executed immidiately after start of the navigation.
|
||||
@output Tick Position: Executed at every step of navigation translation.
|
||||
@output Tick Rotation: Executed at every step of navigation rotation.
|
||||
"""
|
||||
bl_idname = 'LNGoToLocationNode'
|
||||
bl_label = 'Go to Location'
|
||||
bl_label = 'Agent Go to Location'
|
||||
lnx_section = 'agent'
|
||||
lnx_version = 2
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxStringSocket', 'NavMeshId', default_value = 'NavMesh')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
self.add_input('LnxVectorSocket', 'Location')
|
||||
self.add_input('LnxFloatSocket', 'Speed', 5.0)
|
||||
self.add_input('LnxFloatSocket', 'Turn Duration', 0.4)
|
||||
self.add_input('LnxFloatSocket', 'Height Offset', 0.0)
|
||||
self.add_input('LnxBoolSocket','Use Raycast')
|
||||
self.add_input('LnxFloatSocket', 'Ray Cast Depth', -5.0)
|
||||
self.add_input('LnxIntSocket', 'Ray Cast Mask', 1)
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
self.add_output('LnxNodeSocketAction', 'Tick Position')
|
||||
self.add_output('LnxNodeSocketAction', 'Tick Rotation')
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
if self.lnx_version not in (0, 1):
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class NavigableLocationNode(LnxLogicTreeNode):
|
||||
"""TO DO."""
|
||||
"""A random navigable location in the navmesh."""
|
||||
bl_idname = 'LNNavigableLocationNode'
|
||||
bl_label = 'Navigable Location'
|
||||
lnx_version = 1
|
||||
bl_label = 'Random NavMesh Location'
|
||||
lnx_version = 2
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxDynamicSocket', 'Location')
|
||||
self.add_input('LnxNodeSocketObject', 'NavMesh')
|
||||
|
||||
self.add_output('LnxVectorSocket', 'Location')
|
||||
|
||||
@ -1,13 +1,14 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class PickLocationNode(LnxLogicTreeNode):
|
||||
"""Pick a location coordinates in the given NavMesh."""
|
||||
"""Pick a location on the given NavMesh using screen coordinates."""
|
||||
bl_idname = 'LNPickLocationNode'
|
||||
bl_label = 'Pick NavMesh Location'
|
||||
lnx_version = 1
|
||||
lnx_version = 2
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketObject', 'NavMesh')
|
||||
self.add_input('LnxVectorSocket', 'Screen Coords')
|
||||
self.add_input('LnxIntSocket', 'X')
|
||||
self.add_input('LnxIntSocket', 'Y')
|
||||
|
||||
self.add_output('LnxVectorSocket', 'Location')
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class ReconstructNavMeshNode(LnxLogicTreeNode):
|
||||
"""Reconstruct a given NavMesh."""
|
||||
bl_idname = 'LNReconstructNavMeshNode'
|
||||
bl_label = 'Reconstruct NavMesh'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxStringSocket', 'NavMeshId', default_value = 'NavMesh')
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
@ -4,6 +4,7 @@ class StopAgentNode(LnxLogicTreeNode):
|
||||
"""Stops the given NavMesh agent."""
|
||||
bl_idname = 'LNStopAgentNode'
|
||||
bl_label = 'Stop Agent'
|
||||
lnx_section = 'agent'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
|
||||
14
leenkx/blender/lnx/logicnode/navmesh/LN_stop_crowd.py
Normal file
14
leenkx/blender/lnx/logicnode/navmesh/LN_stop_crowd.py
Normal file
@ -0,0 +1,14 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
class StopCrowdNode(LnxLogicTreeNode):
|
||||
"""Stops the given NavMesh agent."""
|
||||
bl_idname = 'LNStopCrowdNode'
|
||||
bl_label = 'Stop Crowd'
|
||||
lnx_section = 'crowd'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxNodeSocketObject', 'Object')
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
Reference in New Issue
Block a user