Files
2026-07-21 08:56:10 +03:00

37 lines
1.4 KiB
Plaintext

@startuml
class JointBlock {
- jointType : JointBlockType
- jointLength : float = 1f
- socketEnd1 : SocketPoint
- socketEnd2 : SocketPoint
- usePhysics : bool = true
- jointBreakForce : float
- jointBreakTorque : float
+ connectedBlocks : List<AttachableBlock>
- createdJoints : List<Joint>
- isPlaced : bool = false
- jointPlacementHandler : JointPlacementHandler
- Awake() : void
+ TryPlaceJoint(targetSockets:List<SocketPoint>, isGhost:bool) : bool
- AlignToSockets(targetSockets:List<SocketPoint>, isGhost:bool) : void
+ CreatePhysicsJoint(targetObj:GameObject, socket:SocketPoint) : void
- CreatePhysicsJoints(targetSockets:List<SocketPoint>) : void
- CreateJointByType(connectedBody:Rigidbody, socket:SocketPoint) : Joint
- CreateFixedJoint(connectedBody:Rigidbody) : FixedJoint
- CreateHingeJoint(connectedBody:Rigidbody, socket:SocketPoint) : HingeJoint
- CreateConfigurableJoint(connectedBody:Rigidbody, socket:SocketPoint) : ConfigurableJoint
- MarkSocketsOccupied(targetSockets:List<SocketPoint>) : void
+ RemoveJoint() : void
+ GetJointType() : JointBlockType
+ GetSocketEnd1() : SocketPoint
+ GetSocketEnd2() : SocketPoint
+ IsPlaced() : bool
}
enum JointBlockType {
FixedPivot,
HingePivot,
ConfigurablePivot,
}
MonoBehaviour <|-- JointBlock
@enduml