Repe [T3DU] Update - 31f26d171bba0355ce2a77031e3aad4c64dbc7e9

This commit is contained in:
2026-09-04 10:46:13 -07:00
parent c915312901
commit 0460b9d587
482 changed files with 27797 additions and 3226 deletions

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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')

View 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')

View File

@ -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):

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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):

View 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')